|
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _nativeTypesConfig;
-
- exports.createNativeDragSource = createNativeDragSource;
- exports.matchNativeItemType = matchNativeItemType;
-
- var _NativeTypes = require('./NativeTypes');
-
- var NativeTypes = _interopRequireWildcard(_NativeTypes);
-
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-
- function _defineEnumerableProperties(obj, descs) { for (var key in descs) { var desc = descs[key]; desc.configurable = desc.enumerable = true; if ("value" in desc) desc.writable = true; Object.defineProperty(obj, key, desc); } return obj; }
-
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
- function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {
- var result = typesToTry.reduce(function (resultSoFar, typeToTry) {
- return resultSoFar || dataTransfer.getData(typeToTry);
- }, null);
-
- return result != null // eslint-disable-line eqeqeq
- ? result : defaultValue;
- }
-
- var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {
- exposeProperty: 'files',
- matchesTypes: ['Files'],
- getData: function getData(dataTransfer) {
- return Array.prototype.slice.call(dataTransfer.files);
- }
- }), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {
- exposeProperty: 'urls',
- matchesTypes: ['Url', 'text/uri-list'],
- getData: function getData(dataTransfer, matchesTypes) {
- return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\n');
- }
- }), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {
- exposeProperty: 'text',
- matchesTypes: ['Text', 'text/plain'],
- getData: function getData(dataTransfer, matchesTypes) {
- return getDataFromDataTransfer(dataTransfer, matchesTypes, '');
- }
- }), _nativeTypesConfig);
-
- function createNativeDragSource(type) {
- var _nativeTypesConfig$ty = nativeTypesConfig[type],
- exposeProperty = _nativeTypesConfig$ty.exposeProperty,
- matchesTypes = _nativeTypesConfig$ty.matchesTypes,
- getData = _nativeTypesConfig$ty.getData;
-
-
- return function () {
- function NativeDragSource() {
- var _item, _mutatorMap;
-
- _classCallCheck(this, NativeDragSource);
-
- this.item = (_item = {}, _mutatorMap = {}, _mutatorMap[exposeProperty] = _mutatorMap[exposeProperty] || {}, _mutatorMap[exposeProperty].get = function () {
- // eslint-disable-next-line no-console
- console.warn('Browser doesn\'t allow reading "' + exposeProperty + '" until the drop event.');
- return null;
- }, _defineEnumerableProperties(_item, _mutatorMap), _item);
- }
-
- _createClass(NativeDragSource, [{
- key: 'mutateItemByReadingDataTransfer',
- value: function mutateItemByReadingDataTransfer(dataTransfer) {
- delete this.item[exposeProperty];
- this.item[exposeProperty] = getData(dataTransfer, matchesTypes);
- }
- }, {
- key: 'canDrag',
- value: function canDrag() {
- return true;
- }
- }, {
- key: 'beginDrag',
- value: function beginDrag() {
- return this.item;
- }
- }, {
- key: 'isDragging',
- value: function isDragging(monitor, handle) {
- return handle === monitor.getSourceId();
- }
- }, {
- key: 'endDrag',
- value: function endDrag() {}
- }]);
-
- return NativeDragSource;
- }();
- }
-
- function matchNativeItemType(dataTransfer) {
- var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);
-
- return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {
- var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;
-
- return matchesTypes.some(function (t) {
- return dataTransferTypes.indexOf(t) > -1;
- });
- })[0] || null;
- }
|