UNPKG

@ng-dnd/core

Version:

Drag and Drop for Angular

32 lines 4.81 kB
import { Reconnector } from './Reconnector'; export class SourceConnector { constructor(backend) { this.backend = backend; this.dragSource = new Reconnector((handlerId, node, options) => { return this.backend.connectDragSource(handlerId, node, options); }); this.dragPreview = new Reconnector((handlerId, node, options) => { return this.backend.connectDragPreview(handlerId, node, options); }); this.hooks = { dragSource: this.dragSource.hook, dragPreview: this.dragPreview.hook, }; } receiveHandlerId(handlerId) { if (handlerId === this.currentHandlerId) { return; } this.currentHandlerId = handlerId; this.dragSource.reconnect(handlerId); this.dragPreview.reconnect(handlerId); } reconnect() { this.dragSource.reconnect(this.currentHandlerId); this.dragPreview.reconnect(this.currentHandlerId); } } export default function createSourceConnector(backend) { return new SourceConnector(backend); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU291cmNlQ29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ludGVybmFsL2NyZWF0ZVNvdXJjZUNvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzVDLE1BQU0sT0FBTyxlQUFlO0lBVTFCLFlBQW9CLE9BQWdCO1FBQWhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFQNUIsZUFBVSxHQUFHLElBQUksV0FBVyxDQUFvQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbkYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFDSyxnQkFBVyxHQUFHLElBQUksV0FBVyxDQUFxQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDckYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFhSSxVQUFLLEdBQXdCO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7WUFDaEMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtTQUNuQyxDQUFDO0lBZHFDLENBQUM7SUFFakMsZ0JBQWdCLENBQUMsU0FBNEI7UUFDbEQsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFPTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE9BQU8sVUFBVSxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM1RCxPQUFPLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWNrZW5kLCBJZGVudGlmaWVyIH0gZnJvbSAnZG5kLWNvcmUnO1xuaW1wb3J0IHsgRHJhZ1NvdXJjZUNvbm5lY3RvciB9IGZyb20gJy4uL2Nvbm5lY3RvcnMnO1xuaW1wb3J0IHsgUmVjb25uZWN0b3IgfSBmcm9tICcuL1JlY29ubmVjdG9yJztcbmltcG9ydCB7IERyYWdQcmV2aWV3T3B0aW9ucywgRHJhZ1NvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi9jb25uZWN0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0b3I8VENvbm5lY3Rvcj4ge1xuICBob29rczogVENvbm5lY3RvcjtcbiAgcmVjZWl2ZUhhbmRsZXJJZChoYW5kbGVySWQ6IElkZW50aWZpZXIgfCBudWxsKTogdm9pZDtcbiAgcmVjb25uZWN0KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBTb3VyY2VDb25uZWN0b3IgaW1wbGVtZW50cyBDb25uZWN0b3I8RHJhZ1NvdXJjZUNvbm5lY3Rvcj4ge1xuICBwcml2YXRlIGN1cnJlbnRIYW5kbGVySWQ6IGFueTtcblxuICBwcml2YXRlIGRyYWdTb3VyY2UgPSBuZXcgUmVjb25uZWN0b3I8RHJhZ1NvdXJjZU9wdGlvbnM+KChoYW5kbGVySWQsIG5vZGUsIG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmNvbm5lY3REcmFnU291cmNlKGhhbmRsZXJJZCwgbm9kZSwgb3B0aW9ucyk7XG4gIH0pO1xuICBwcml2YXRlIGRyYWdQcmV2aWV3ID0gbmV3IFJlY29ubmVjdG9yPERyYWdQcmV2aWV3T3B0aW9ucz4oKGhhbmRsZXJJZCwgbm9kZSwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuY29ubmVjdERyYWdQcmV2aWV3KGhhbmRsZXJJZCwgbm9kZSwgb3B0aW9ucyk7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZCkge31cblxuICBwdWJsaWMgcmVjZWl2ZUhhbmRsZXJJZChoYW5kbGVySWQ6IElkZW50aWZpZXIgfCBudWxsKSB7XG4gICAgaWYgKGhhbmRsZXJJZCA9PT0gdGhpcy5jdXJyZW50SGFuZGxlcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3VycmVudEhhbmRsZXJJZCA9IGhhbmRsZXJJZDtcbiAgICB0aGlzLmRyYWdTb3VyY2UucmVjb25uZWN0KGhhbmRsZXJJZCk7XG4gICAgdGhpcy5kcmFnUHJldmlldy5yZWNvbm5lY3QoaGFuZGxlcklkKTtcbiAgfVxuXG4gIHB1YmxpYyBob29rczogRHJhZ1NvdXJjZUNvbm5lY3RvciA9IHtcbiAgICBkcmFnU291cmNlOiB0aGlzLmRyYWdTb3VyY2UuaG9vayxcbiAgICBkcmFnUHJldmlldzogdGhpcy5kcmFnUHJldmlldy5ob29rLFxuICB9O1xuXG4gIHB1YmxpYyByZWNvbm5lY3QoKSB7XG4gICAgdGhpcy5kcmFnU291cmNlLnJlY29ubmVjdCh0aGlzLmN1cnJlbnRIYW5kbGVySWQpO1xuICAgIHRoaXMuZHJhZ1ByZXZpZXcucmVjb25uZWN0KHRoaXMuY3VycmVudEhhbmRsZXJJZCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU291cmNlQ29ubmVjdG9yKGJhY2tlbmQ6IEJhY2tlbmQpIHtcbiAgcmV0dXJuIG5ldyBTb3VyY2VDb25uZWN0b3IoYmFja2VuZCk7XG59XG4iXX0=