|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = createSourceConnector;
-
- var _wrapConnectorHooks = require('./wrapConnectorHooks');
-
- var _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks);
-
- var _areOptionsEqual = require('./areOptionsEqual');
-
- var _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- function createSourceConnector(backend) {
- var currentHandlerId = void 0;
-
- var currentDragSourceNode = void 0;
- var currentDragSourceOptions = void 0;
- var disconnectCurrentDragSource = void 0;
-
- var currentDragPreviewNode = void 0;
- var currentDragPreviewOptions = void 0;
- var disconnectCurrentDragPreview = void 0;
-
- function reconnectDragSource() {
- if (disconnectCurrentDragSource) {
- disconnectCurrentDragSource();
- disconnectCurrentDragSource = null;
- }
-
- if (currentHandlerId && currentDragSourceNode) {
- disconnectCurrentDragSource = backend.connectDragSource(currentHandlerId, currentDragSourceNode, currentDragSourceOptions);
- }
- }
-
- function reconnectDragPreview() {
- if (disconnectCurrentDragPreview) {
- disconnectCurrentDragPreview();
- disconnectCurrentDragPreview = null;
- }
-
- if (currentHandlerId && currentDragPreviewNode) {
- disconnectCurrentDragPreview = backend.connectDragPreview(currentHandlerId, currentDragPreviewNode, currentDragPreviewOptions);
- }
- }
-
- function receiveHandlerId(handlerId) {
- if (handlerId === currentHandlerId) {
- return;
- }
-
- currentHandlerId = handlerId;
- reconnectDragSource();
- reconnectDragPreview();
- }
-
- var hooks = (0, _wrapConnectorHooks2.default)({
- dragSource: function connectDragSource(node, options) {
- if (node === currentDragSourceNode && (0, _areOptionsEqual2.default)(options, currentDragSourceOptions)) {
- return;
- }
-
- currentDragSourceNode = node;
- currentDragSourceOptions = options;
-
- reconnectDragSource();
- },
-
- dragPreview: function connectDragPreview(node, options) {
- if (node === currentDragPreviewNode && (0, _areOptionsEqual2.default)(options, currentDragPreviewOptions)) {
- return;
- }
-
- currentDragPreviewNode = node;
- currentDragPreviewOptions = options;
-
- reconnectDragPreview();
- }
- });
-
- return {
- receiveHandlerId: receiveHandlerId,
- hooks: hooks
- };
- }
|