UNPKG

@formql/core

Version:

FormQL - A framework for building dynamic forms

78 lines 8.1 kB
import { __decorate, __metadata } from "tslib"; import { Directive, HostListener, ViewContainerRef, Input, Output, EventEmitter, Renderer2, } from '@angular/core'; import { ContainerType, FormQLMode } from '../models/type.model'; /* Directive to handle the start drag start and pass the information to the dnd-drop directive */ var DndDirective = /** @class */ (function () { function DndDirective(view, renderer) { this.view = view; this.renderer = renderer; this.synchronise = new EventEmitter(); } DndDirective.prototype.onDragStart = function ($event) { if (this.mode !== FormQLMode.View) { var draggabble = this.view.element.nativeElement.getAttribute('draggable'); if (draggabble === 'true' && $event && $event.dataTransfer && this.sourceObjectId) { $event.dataTransfer.effectAllowed = 'move'; var sourceIds = this.sourceObjectId + '#' + this.sourceWrapperId; $event.dataTransfer.setData('Text', sourceIds); // only way I found to support drag and drop in IE (try and if it fails, do the IE way) try { $event.dataTransfer.setData(this.type.toString(), ''); } catch (_a) { $event.dataTransfer.types.item[1] = this.type.toString(); } } } }; DndDirective.prototype.onDragEnd = function ($event) { if (this.mode !== FormQLMode.View) this.renderer.setAttribute(this.view.element.nativeElement, 'draggable', 'false'); }; __decorate([ Input(), __metadata("design:type", String) ], DndDirective.prototype, "sourceObjectId", void 0); __decorate([ Input(), __metadata("design:type", String) ], DndDirective.prototype, "sourceWrapperId", void 0); __decorate([ Input(), __metadata("design:type", Number) ], DndDirective.prototype, "type", void 0); __decorate([ Input(), __metadata("design:type", Number) ], DndDirective.prototype, "mode", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], DndDirective.prototype, "synchronise", void 0); __decorate([ HostListener('dragstart', ['$event']), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0) ], DndDirective.prototype, "onDragStart", null); __decorate([ HostListener('dragend', ['$event']), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0) ], DndDirective.prototype, "onDragEnd", null); DndDirective = __decorate([ Directive({ selector: '[formqlDnd]', }), __metadata("design:paramtypes", [ViewContainerRef, Renderer2]) ], DndDirective); return DndDirective; }()); export { DndDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bmb3JtcWwvY29yZS8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZXMvZG5kLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFOztFQUVFO0FBSUY7SUFDRSxzQkFBb0IsSUFBc0IsRUFBVSxRQUFtQjtRQUFuRCxTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFPN0QsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVBZLENBQUM7SUFTN0Isa0NBQVcsR0FBbEIsVUFBbUIsTUFBTTtRQUM5RCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLElBQUksRUFBRTtZQUNqQyxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUM3RCxXQUFXLENBQ1osQ0FBQztZQUNGLElBQ0UsVUFBVSxLQUFLLE1BQU07Z0JBQ3JCLE1BQU07Z0JBQ04sTUFBTSxDQUFDLFlBQVk7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLEVBQ25CO2dCQUNBLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztnQkFDM0MsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDbkUsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUUvQyx1RkFBdUY7Z0JBQ3ZGLElBQUk7b0JBQ0YsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDdkQ7Z0JBQUMsV0FBTTtvQkFDTixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDMUQ7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUUyQyxnQ0FBUyxHQUFoQixVQUFpQixNQUFNO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsSUFBSTtZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMvQixXQUFXLEVBQ1gsT0FBTyxDQUNSLENBQUM7SUFDTixDQUFDO0lBdkNRO1FBQVIsS0FBSyxFQUFFOzt3REFBK0I7SUFDOUI7UUFBUixLQUFLLEVBQUU7O3lEQUFnQztJQUMvQjtRQUFSLEtBQUssRUFBRTs7OENBQTRCO0lBQzNCO1FBQVIsS0FBSyxFQUFFOzs4Q0FBeUI7SUFFdkI7UUFBVCxNQUFNLEVBQUU7a0NBQWMsWUFBWTtxREFBMkI7SUFFdkI7UUFBdEMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzs7O21EQXVCckM7SUFFb0M7UUFBcEMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzs7O2lEQU9uQztJQTFDVSxZQUFZO1FBSHhCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxhQUFhO1NBQ3hCLENBQUM7eUNBRTBCLGdCQUFnQixFQUFvQixTQUFTO09BRDVELFlBQVksQ0EyQ3hCO0lBQUQsbUJBQUM7Q0FBQSxBQTNDRCxJQTJDQztTQTNDWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRhaW5lclR5cGUsIEZvcm1RTE1vZGUgfSBmcm9tICcuLi9tb2RlbHMvdHlwZS5tb2RlbCc7XHJcbi8qXHJcbiAgICBEaXJlY3RpdmUgdG8gaGFuZGxlIHRoZSBzdGFydCBkcmFnIHN0YXJ0IGFuZCBwYXNzIHRoZSBpbmZvcm1hdGlvbiB0byB0aGUgZG5kLWRyb3AgZGlyZWN0aXZlXHJcbiovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Zvcm1xbERuZF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG5kRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXc6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgQElucHV0KCkgcHVibGljIHNvdXJjZU9iamVjdElkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIHNvdXJjZVdyYXBwZXJJZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiBDb250YWluZXJUeXBlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtb2RlOiBGb3JtUUxNb2RlO1xyXG5cclxuICBAT3V0cHV0KCkgc3luY2hyb25pc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkcmFnc3RhcnQnLCBbJyRldmVudCddKSBwdWJsaWMgb25EcmFnU3RhcnQoJGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5tb2RlICE9PSBGb3JtUUxNb2RlLlZpZXcpIHtcclxuICAgICAgY29uc3QgZHJhZ2dhYmJsZSA9IHRoaXMudmlldy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxyXG4gICAgICAgICdkcmFnZ2FibGUnXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBkcmFnZ2FiYmxlID09PSAndHJ1ZScgJiZcclxuICAgICAgICAkZXZlbnQgJiZcclxuICAgICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyICYmXHJcbiAgICAgICAgdGhpcy5zb3VyY2VPYmplY3RJZFxyXG4gICAgICApIHtcclxuICAgICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnbW92ZSc7XHJcbiAgICAgICAgY29uc3Qgc291cmNlSWRzID0gdGhpcy5zb3VyY2VPYmplY3RJZCArICcjJyArIHRoaXMuc291cmNlV3JhcHBlcklkO1xyXG4gICAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgnVGV4dCcsIHNvdXJjZUlkcyk7XHJcblxyXG4gICAgICAgIC8vIG9ubHkgd2F5IEkgZm91bmQgdG8gc3VwcG9ydCBkcmFnIGFuZCBkcm9wIGluIElFICh0cnkgYW5kIGlmIGl0IGZhaWxzLCBkbyB0aGUgSUUgd2F5KVxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEodGhpcy50eXBlLnRvU3RyaW5nKCksICcnKTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICRldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaXRlbVsxXSA9IHRoaXMudHlwZS50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcsIFsnJGV2ZW50J10pIHB1YmxpYyBvbkRyYWdFbmQoJGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5tb2RlICE9PSBGb3JtUUxNb2RlLlZpZXcpXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgIHRoaXMudmlldy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgJ2RyYWdnYWJsZScsXHJcbiAgICAgICAgJ2ZhbHNlJ1xyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=