You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DropTarget.js 3.5 KiB

3 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = DropTarget;
  6. var _invariant = require('invariant');
  7. var _invariant2 = _interopRequireDefault(_invariant);
  8. var _isPlainObject = require('lodash/isPlainObject');
  9. var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
  10. var _checkDecoratorArguments = require('./utils/checkDecoratorArguments');
  11. var _checkDecoratorArguments2 = _interopRequireDefault(_checkDecoratorArguments);
  12. var _decorateHandler = require('./decorateHandler');
  13. var _decorateHandler2 = _interopRequireDefault(_decorateHandler);
  14. var _registerTarget = require('./registerTarget');
  15. var _registerTarget2 = _interopRequireDefault(_registerTarget);
  16. var _createTargetFactory = require('./createTargetFactory');
  17. var _createTargetFactory2 = _interopRequireDefault(_createTargetFactory);
  18. var _createTargetMonitor = require('./createTargetMonitor');
  19. var _createTargetMonitor2 = _interopRequireDefault(_createTargetMonitor);
  20. var _createTargetConnector = require('./createTargetConnector');
  21. var _createTargetConnector2 = _interopRequireDefault(_createTargetConnector);
  22. var _isValidType = require('./utils/isValidType');
  23. var _isValidType2 = _interopRequireDefault(_isValidType);
  24. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  25. function DropTarget(type, spec, collect) {
  26. var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  27. _checkDecoratorArguments2.default.apply(undefined, ['DropTarget', 'type, spec, collect[, options]'].concat(Array.prototype.slice.call(arguments)));
  28. var getType = type;
  29. if (typeof type !== 'function') {
  30. (0, _invariant2.default)((0, _isValidType2.default)(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', type);
  31. getType = function getType() {
  32. return type;
  33. };
  34. }
  35. (0, _invariant2.default)((0, _isPlainObject2.default)(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', spec);
  36. var createTarget = (0, _createTargetFactory2.default)(spec);
  37. (0, _invariant2.default)(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', collect);
  38. (0, _invariant2.default)((0, _isPlainObject2.default)(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', collect);
  39. return function decorateTarget(DecoratedComponent) {
  40. return (0, _decorateHandler2.default)({
  41. connectBackend: function connectBackend(backend, targetId) {
  42. return backend.connectDropTarget(targetId);
  43. },
  44. containerDisplayName: 'DropTarget',
  45. createHandler: createTarget,
  46. registerHandler: _registerTarget2.default,
  47. createMonitor: _createTargetMonitor2.default,
  48. createConnector: _createTargetConnector2.default,
  49. DecoratedComponent: DecoratedComponent,
  50. getType: getType,
  51. collect: collect,
  52. options: options
  53. });
  54. };
  55. }