@tft/interact 14.0.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/{esm2020 → esm2022}/index.mjs +5 -5
  2. package/{esm2020 → esm2022}/lib/directives/account-for-scale.directive.mjs +26 -26
  3. package/{esm2020 → esm2022}/lib/directives/apply-scale.directive.mjs +28 -28
  4. package/esm2022/lib/directives/auto-scroll.directive.mjs +56 -0
  5. package/{esm2020 → esm2022}/lib/directives/drag-preview.directive.mjs +20 -20
  6. package/{esm2020 → esm2022}/lib/directives/drag-root.directive.mjs +32 -32
  7. package/{esm2020 → esm2022}/lib/directives/draggable.directive.mjs +320 -320
  8. package/{esm2020 → esm2022}/lib/directives/dropzone.directive.mjs +114 -114
  9. package/{esm2020 → esm2022}/lib/directives/gesturable.directive.mjs +82 -82
  10. package/{esm2020 → esm2022}/lib/directives/index.mjs +9 -9
  11. package/esm2022/lib/directives/resizable.directive.mjs +228 -0
  12. package/{esm2020 → esm2022}/lib/interact.module.mjs +66 -66
  13. package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
  14. package/{esm2020 → esm2022}/lib/models/interact.mjs +27 -27
  15. package/{esm2020 → esm2022}/lib/pipes/array-of-n.pipe.mjs +22 -22
  16. package/{esm2020 → esm2022}/lib/pipes/index.mjs +1 -1
  17. package/{esm2020 → esm2022}/lib/services/interact.service.mjs +197 -197
  18. package/{esm2020 → esm2022}/lib/utils/helpers.mjs +34 -34
  19. package/{esm2020 → esm2022}/lib/utils/index.mjs +1 -1
  20. package/{esm2020 → esm2022}/tft-interact.mjs +4 -4
  21. package/{fesm2020 → fesm2022}/tft-interact.mjs +1155 -1155
  22. package/{fesm2020 → fesm2022}/tft-interact.mjs.map +1 -1
  23. package/index.d.ts +5 -5
  24. package/lib/directives/account-for-scale.directive.d.ts +15 -15
  25. package/lib/directives/apply-scale.directive.d.ts +11 -11
  26. package/lib/directives/auto-scroll.directive.d.ts +34 -34
  27. package/lib/directives/drag-preview.directive.d.ts +10 -10
  28. package/lib/directives/drag-root.directive.d.ts +15 -15
  29. package/lib/directives/draggable.directive.d.ts +76 -76
  30. package/lib/directives/dropzone.directive.d.ts +40 -40
  31. package/lib/directives/gesturable.directive.d.ts +27 -27
  32. package/lib/directives/index.d.ts +9 -9
  33. package/lib/directives/resizable.directive.d.ts +61 -61
  34. package/lib/interact.module.d.ts +20 -20
  35. package/lib/models/index.d.ts +1 -1
  36. package/lib/models/interact.d.ts +140 -140
  37. package/lib/pipes/array-of-n.pipe.d.ts +12 -12
  38. package/lib/pipes/index.d.ts +1 -1
  39. package/lib/services/interact.service.d.ts +83 -83
  40. package/lib/utils/helpers.d.ts +12 -12
  41. package/lib/utils/index.d.ts +1 -1
  42. package/package.json +7 -15
  43. package/tft-interact-15.0.0.tgz +0 -0
  44. package/esm2020/lib/directives/auto-scroll.directive.mjs +0 -56
  45. package/esm2020/lib/directives/resizable.directive.mjs +0 -228
  46. package/fesm2015/tft-interact.mjs +0 -1203
  47. package/fesm2015/tft-interact.mjs.map +0 -1
  48. package/tft-interact-14.0.0.tgz +0 -0
@@ -1,114 +1,114 @@
1
- import { Directive, ElementRef, Input, Output, EventEmitter, Renderer2, Optional, HostBinding } from '@angular/core';
2
- import interact from 'interactjs';
3
- import { InteractService } from '../services/interact.service';
4
- import { AccountForScaleDirective } from './account-for-scale.directive';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../services/interact.service";
7
- import * as i2 from "./account-for-scale.directive";
8
- export class DropzoneDirective {
9
- constructor(el, renderer, interactService, account_for_scale_dir) {
10
- this.el = el;
11
- this.renderer = renderer;
12
- this.interactService = interactService;
13
- this.account_for_scale_dir = account_for_scale_dir;
14
- this.dropzoneConfig = {};
15
- this.position = 'relative';
16
- // proxies to pass interact events through to consumer of directive
17
- this.dropActivate = new EventEmitter();
18
- this.dragEnter = new EventEmitter();
19
- this.dragLeave = new EventEmitter();
20
- this.dragDrop = new EventEmitter();
21
- }
22
- get scale() {
23
- return this.account_for_scale_dir?.scale;
24
- }
25
- ngOnInit() {
26
- // connects
27
- this.dropzone = this.connectDropzoneEvents(this.el.nativeElement, this.dropzoneConfig);
28
- this.dropzoneId = this.interactService.addRegistryToSystem(this.dropzoneId);
29
- }
30
- ngOnChanges(changes) {
31
- if (!changes.dropzoneConfig || !this.dropzone)
32
- return;
33
- // this.dropzone.unset();
34
- // this.dropzone = this.connectDropzoneEvents(this.el.nativeElement, this.dropzoneConfig)
35
- this.dropzone.dropzone(this.dropzoneConfig);
36
- }
37
- /**
38
- * Connects element to interacts dropzone events and returns a reference to the interactable
39
- * @param nativeElement the element to tie drop events to
40
- * @param dropzoneConfig the interact configuration to use when connecting
41
- */
42
- connectDropzoneEvents(nativeElement, dropzoneConfig) {
43
- return interact(nativeElement).dropzone(dropzoneConfig)
44
- // TODO: investigate when this fires in different scenarios
45
- .on('dropactivate', (event) => {
46
- this.dropActivate.emit(this.mapDropzoneEvent(event));
47
- })
48
- .on('dragenter', (event) => {
49
- this.renderer.setProperty(event.relatedTarget, 'dropTarget', this);
50
- this.dragEnter.emit(this.mapDropzoneEvent(event));
51
- })
52
- .on('dragleave', (event) => {
53
- if (event.relatedTarget.dropTarget === this) {
54
- this.renderer.setProperty(event.relatedTarget, 'dropTarget', null);
55
- }
56
- this.dragLeave.emit(this.mapDropzoneEvent(event));
57
- })
58
- .on('drop', (event) => {
59
- this.dragDrop.emit(this.mapDropzoneEvent(event));
60
- });
61
- }
62
- /**
63
- * Maps the drop event emitted by interact to something a little easier to use
64
- * @param event the drop event emitted by interact, extended with extra fields we added to
65
- */
66
- mapDropzoneEvent(event) {
67
- const zoneElement = event.target;
68
- const dragElement = event.relatedTarget?.dragRef?.previewRef;
69
- const scale = this.scale;
70
- const positionInDropTarget = zoneElement && dragElement
71
- ? this.interactService.calculatePositionInElement(zoneElement, dragElement, scale)
72
- : null;
73
- return {
74
- interactEvent: event,
75
- dragRef: dragElement.dragRef,
76
- dragOrigin: dragElement.dragOrigin,
77
- dropTarget: event.relatedTarget.dropTarget,
78
- positionInDropTarget
79
- };
80
- }
81
- }
82
- DropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: DropzoneDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.InteractService }, { token: i2.AccountForScaleDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
83
- DropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: DropzoneDirective, selector: "[tftDropzone]", inputs: { dropzoneId: "dropzoneId", dropzoneConfig: "dropzoneConfig", dropzoneData: "dropzoneData", position: "position" }, outputs: { dropActivate: "dropActivate", dragEnter: "dragEnter", dragLeave: "dragLeave", dragDrop: "dragDrop" }, host: { properties: { "id": "dropzoneId", "style.position": "this.position" } }, usesOnChanges: true, ngImport: i0 });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: DropzoneDirective, decorators: [{
85
- type: Directive,
86
- args: [{
87
- selector: '[tftDropzone]',
88
- host: {
89
- '[id]': 'dropzoneId'
90
- }
91
- }]
92
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.InteractService }, { type: i2.AccountForScaleDirective, decorators: [{
93
- type: Optional
94
- }] }]; }, propDecorators: { dropzoneId: [{
95
- type: Input
96
- }], dropzoneConfig: [{
97
- type: Input
98
- }], dropzoneData: [{
99
- type: Input
100
- }], position: [{
101
- type: Input
102
- }, {
103
- type: HostBinding,
104
- args: ['style.position']
105
- }], dropActivate: [{
106
- type: Output
107
- }], dragEnter: [{
108
- type: Output
109
- }], dragLeave: [{
110
- type: Output
111
- }], dragDrop: [{
112
- type: Output
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbnRlcmFjdC9zcmMvbGliL2RpcmVjdGl2ZXMvZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUE0QixTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBU3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFvQjVCLFlBQ1MsRUFBYyxFQUNiLFFBQW1CLEVBQ25CLGVBQWdDLEVBQ3BCLHFCQUFnRDtRQUg3RCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDcEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEyQjtRQXJCN0QsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBS2YsYUFBUSxHQUFtQixVQUFVLENBQUM7UUFDckUsbUVBQW1FO1FBQ3pELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDaEQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQzdDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUM3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7SUFZbEQsQ0FBQztJQVJMLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBUUQsUUFBUTtRQUNO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a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLFlBQVk7cUJBQ3JCO2lCQUNGOzswQkF5QkksUUFBUTs0Q0F0QkYsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR3lCLFFBQVE7c0JBRHRDLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUVuQixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIE9wdGlvbmFsLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGludGVyYWN0IGZyb20gJ2ludGVyYWN0anMnO1xuaW1wb3J0IHsgRHJvcHpvbmVPcHRpb25zLCBJbnRlcmFjdGFibGUgfSBmcm9tICdAaW50ZXJhY3Rqcy90eXBlcy9pbmRleCc7XG5pbXBvcnQgeyBJbnRlcmFjdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbnRlcmFjdC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nRHJvcEV2ZW50LCBUZnREcmFnRWxlbWVudCwgVGZ0RHJvcEV2ZW50IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEFjY291bnRGb3JTY2FsZURpcmVjdGl2ZSB9IGZyb20gJy4vYWNjb3VudC1mb3Itc2NhbGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgUG9zaXRpb25PcHRpb24gPSAncmVsYXRpdmUnIHwgJ2Fic29sdXRlJyB8ICdmaXhlZCcgfCAnc3RhdGljJyB8ICdzdGlja3knIHwgJ3Vuc2V0JyB8ICdpbmhlcml0JyB8ICdpbml0aWFsJyB8ICdyZXZlcnQnXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGZ0RHJvcHpvbmVdJyxcbiAgaG9zdDoge1xuICAgICdbaWRdJzogJ2Ryb3B6b25lSWQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcHpvbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgZHJvcHpvbmVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBkcm9wem9uZUNvbmZpZzogRHJvcHpvbmVPcHRpb25zID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIEBJbnB1dCgpIGRyb3B6b25lRGF0YTogYW55O1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKSBwb3NpdGlvbjogUG9zaXRpb25PcHRpb24gPSAncmVsYXRpdmUnO1xuICAvLyBwcm94aWVzIHRvIHBhc3MgaW50ZXJhY3QgZXZlbnRzIHRocm91Z2ggdG8gY29uc3VtZXIgb2YgZGlyZWN0aXZlXG4gIEBPdXRwdXQoKSBkcm9wQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPFRmdERyb3BFdmVudD4oKTtcbiAgQE91dHB1dCgpIGRyYWdFbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0RHJvcEV2ZW50PigpO1xuICBAT3V0cHV0KCkgZHJhZ0xlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxUZnREcm9wRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkcmFnRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0RHJvcEV2ZW50PigpO1xuXG4gIGRyb3B6b25lOiBJbnRlcmFjdGFibGU7XG5cbiAgZ2V0IHNjYWxlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudF9mb3Jfc2NhbGVfZGlyPy5zY2FsZTtcbiAgfVxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgaW50ZXJhY3RTZXJ2aWNlOiBJbnRlcmFjdFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhY2NvdW50X2Zvcl9zY2FsZV9kaXI/OiBBY2NvdW50Rm9yU2NhbGVEaXJlY3RpdmVcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBjb25uZWN0c1xuICAgIHRoaXMuZHJvcHpvbmUgPSB0aGlzLmNvbm5lY3REcm9wem9uZUV2ZW50cyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZHJvcHpvbmVDb25maWcpO1xuICAgIHRoaXMuZHJvcHpvbmVJZCA9IHRoaXMuaW50ZXJhY3RTZXJ2aWNlLmFkZFJlZ2lzdHJ5VG9TeXN0ZW0odGhpcy5kcm9wem9uZUlkKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZighY2hhbmdlcy5kcm9wem9uZUNvbmZpZyB8fCAhdGhpcy5kcm9wem9uZSkgcmV0dXJuO1xuICAgIC8vIHRoaXMuZHJvcHpvbmUudW5zZXQoKTtcbiAgICAvLyB0aGlzLmRyb3B6b25lID0gdGhpcy5jb25uZWN0RHJvcHpvbmVFdmVudHModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmRyb3B6b25lQ29uZmlnKVxuICAgIHRoaXMuZHJvcHpvbmUuZHJvcHpvbmUodGhpcy5kcm9wem9uZUNvbmZpZylcbiAgfVxuICAvKipcbiAgKiBDb25uZWN0cyBlbGVtZW50IHRvIGludGVyYWN0cyBkcm9wem9uZSBldmVudHMgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGludGVyYWN0YWJsZVxuICAqIEBwYXJhbSBuYXRpdmVFbGVtZW50IHRoZSBlbGVtZW50IHRvIHRpZSBkcm9wIGV2ZW50cyB0b1xuICAqIEBwYXJhbSBkcm9wem9uZUNvbmZpZyB0aGUgaW50ZXJhY3QgY29uZmlndXJhdGlvbiB0byB1c2Ugd2hlbiBjb25uZWN0aW5nXG4gICovXG4gIGNvbm5lY3REcm9wem9uZUV2ZW50cyhuYXRpdmVFbGVtZW50LCBkcm9wem9uZUNvbmZpZzogRHJvcHpvbmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIGludGVyYWN0KG5hdGl2ZUVsZW1lbnQpLmRyb3B6b25lKGRyb3B6b25lQ29uZmlnKVxuICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgd2hlbiB0aGlzIGZpcmVzIGluIGRpZmZlcmVudCBzY2VuYXJpb3NcbiAgICAgIC5vbignZHJvcGFjdGl2YXRlJywgKGV2ZW50OiBOZ0Ryb3BFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLmRyb3BBY3RpdmF0ZS5lbWl0KHRoaXMubWFwRHJvcHpvbmVFdmVudChldmVudCkpO1xuICAgICAgfSlcbiAgICAgIC5vbignZHJhZ2VudGVyJywgKGV2ZW50OiBOZ0Ryb3BFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGV2ZW50LnJlbGF0ZWRUYXJnZXQsICdkcm9wVGFyZ2V0JywgdGhpcylcbiAgICAgICAgdGhpcy5kcmFnRW50ZXIuZW1pdCh0aGlzLm1hcERyb3B6b25lRXZlbnQoZXZlbnQpKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2RyYWdsZWF2ZScsIChldmVudDogTmdEcm9wRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCBldmVudC5yZWxhdGVkVGFyZ2V0LmRyb3BUYXJnZXQgPT09IHRoaXMpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGV2ZW50LnJlbGF0ZWRUYXJnZXQsICdkcm9wVGFyZ2V0JywgbnVsbClcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyYWdMZWF2ZS5lbWl0KHRoaXMubWFwRHJvcHpvbmVFdmVudChldmVudCkpO1xuICAgICAgfSlcbiAgICAgIC5vbignZHJvcCcsICAoZXZlbnQ6IE5nRHJvcEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZHJhZ0Ryb3AuZW1pdCh0aGlzLm1hcERyb3B6b25lRXZlbnQoZXZlbnQpKTtcbiAgICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBNYXBzIHRoZSBkcm9wIGV2ZW50IGVtaXR0ZWQgYnkgaW50ZXJhY3QgdG8gc29tZXRoaW5nIGEgbGl0dGxlIGVhc2llciB0byB1c2VcbiAgICogQHBhcmFtIGV2ZW50IHRoZSBkcm9wIGV2ZW50IGVtaXR0ZWQgYnkgaW50ZXJhY3QsIGV4dGVuZGVkIHdpdGggZXh0cmEgZmllbGRzIHdlIGFkZGVkIHRvXG4gICAqL1xuICBtYXBEcm9wem9uZUV2ZW50KGV2ZW50OiBOZ0Ryb3BFdmVudCk6IFRmdERyb3BFdmVudCB7XG4gICAgY29uc3Qgem9uZUVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG4gICAgY29uc3QgZHJhZ0VsZW1lbnQgPSBldmVudC5yZWxhdGVkVGFyZ2V0Py5kcmFnUmVmPy5wcmV2aWV3UmVmIGFzIFRmdERyYWdFbGVtZW50O1xuICAgIGNvbnN0IHNjYWxlID0gdGhpcy5zY2FsZTtcbiAgICBjb25zdCBwb3NpdGlvbkluRHJvcFRhcmdldCA9IHpvbmVFbGVtZW50ICYmIGRyYWdFbGVtZW50XG4gICAgPyB0aGlzLmludGVyYWN0U2VydmljZS5jYWxjdWxhdGVQb3NpdGlvbkluRWxlbWVudCh6b25lRWxlbWVudCwgZHJhZ0VsZW1lbnQsIHNjYWxlKVxuICAgIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgaW50ZXJhY3RFdmVudDogZXZlbnQsXG4gICAgICBkcmFnUmVmOiBkcmFnRWxlbWVudC5kcmFnUmVmLFxuICAgICAgZHJhZ09yaWdpbjogZHJhZ0VsZW1lbnQuZHJhZ09yaWdpbixcbiAgICAgIGRyb3BUYXJnZXQ6IGV2ZW50LnJlbGF0ZWRUYXJnZXQuZHJvcFRhcmdldCxcbiAgICAgIHBvc2l0aW9uSW5Ecm9wVGFyZ2V0XG4gICAgfVxuICB9XG59XG4iXX0=
1
+ import { Directive, ElementRef, Input, Output, EventEmitter, Renderer2, Optional, HostBinding } from '@angular/core';
2
+ import interact from 'interactjs';
3
+ import { InteractService } from '../services/interact.service';
4
+ import { AccountForScaleDirective } from './account-for-scale.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/interact.service";
7
+ import * as i2 from "./account-for-scale.directive";
8
+ export class DropzoneDirective {
9
+ get scale() {
10
+ return this.account_for_scale_dir?.scale;
11
+ }
12
+ constructor(el, renderer, interactService, account_for_scale_dir) {
13
+ this.el = el;
14
+ this.renderer = renderer;
15
+ this.interactService = interactService;
16
+ this.account_for_scale_dir = account_for_scale_dir;
17
+ this.dropzoneConfig = {};
18
+ this.position = 'relative';
19
+ // proxies to pass interact events through to consumer of directive
20
+ this.dropActivate = new EventEmitter();
21
+ this.dragEnter = new EventEmitter();
22
+ this.dragLeave = new EventEmitter();
23
+ this.dragDrop = new EventEmitter();
24
+ }
25
+ ngOnInit() {
26
+ // connects
27
+ this.dropzone = this.connectDropzoneEvents(this.el.nativeElement, this.dropzoneConfig);
28
+ this.dropzoneId = this.interactService.addRegistryToSystem(this.dropzoneId);
29
+ }
30
+ ngOnChanges(changes) {
31
+ if (!changes.dropzoneConfig || !this.dropzone)
32
+ return;
33
+ // this.dropzone.unset();
34
+ // this.dropzone = this.connectDropzoneEvents(this.el.nativeElement, this.dropzoneConfig)
35
+ this.dropzone.dropzone(this.dropzoneConfig);
36
+ }
37
+ /**
38
+ * Connects element to interacts dropzone events and returns a reference to the interactable
39
+ * @param nativeElement the element to tie drop events to
40
+ * @param dropzoneConfig the interact configuration to use when connecting
41
+ */
42
+ connectDropzoneEvents(nativeElement, dropzoneConfig) {
43
+ return interact(nativeElement).dropzone(dropzoneConfig)
44
+ // TODO: investigate when this fires in different scenarios
45
+ .on('dropactivate', (event) => {
46
+ this.dropActivate.emit(this.mapDropzoneEvent(event));
47
+ })
48
+ .on('dragenter', (event) => {
49
+ this.renderer.setProperty(event.relatedTarget, 'dropTarget', this);
50
+ this.dragEnter.emit(this.mapDropzoneEvent(event));
51
+ })
52
+ .on('dragleave', (event) => {
53
+ if (event.relatedTarget.dropTarget === this) {
54
+ this.renderer.setProperty(event.relatedTarget, 'dropTarget', null);
55
+ }
56
+ this.dragLeave.emit(this.mapDropzoneEvent(event));
57
+ })
58
+ .on('drop', (event) => {
59
+ this.dragDrop.emit(this.mapDropzoneEvent(event));
60
+ });
61
+ }
62
+ /**
63
+ * Maps the drop event emitted by interact to something a little easier to use
64
+ * @param event the drop event emitted by interact, extended with extra fields we added to
65
+ */
66
+ mapDropzoneEvent(event) {
67
+ const zoneElement = event.target;
68
+ const dragElement = event.relatedTarget?.dragRef?.previewRef;
69
+ const scale = this.scale;
70
+ const positionInDropTarget = zoneElement && dragElement
71
+ ? this.interactService.calculatePositionInElement(zoneElement, dragElement, scale)
72
+ : null;
73
+ return {
74
+ interactEvent: event,
75
+ dragRef: dragElement.dragRef,
76
+ dragOrigin: dragElement.dragOrigin,
77
+ dropTarget: event.relatedTarget.dropTarget,
78
+ positionInDropTarget
79
+ };
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: DropzoneDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.InteractService }, { token: i2.AccountForScaleDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
82
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: DropzoneDirective, selector: "[tftDropzone]", inputs: { dropzoneId: "dropzoneId", dropzoneConfig: "dropzoneConfig", dropzoneData: "dropzoneData", position: "position" }, outputs: { dropActivate: "dropActivate", dragEnter: "dragEnter", dragLeave: "dragLeave", dragDrop: "dragDrop" }, host: { properties: { "id": "dropzoneId", "style.position": "this.position" } }, usesOnChanges: true, ngImport: i0 }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: DropzoneDirective, decorators: [{
85
+ type: Directive,
86
+ args: [{
87
+ selector: '[tftDropzone]',
88
+ host: {
89
+ '[id]': 'dropzoneId'
90
+ }
91
+ }]
92
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.InteractService }, { type: i2.AccountForScaleDirective, decorators: [{
93
+ type: Optional
94
+ }] }], propDecorators: { dropzoneId: [{
95
+ type: Input
96
+ }], dropzoneConfig: [{
97
+ type: Input
98
+ }], dropzoneData: [{
99
+ type: Input
100
+ }], position: [{
101
+ type: Input
102
+ }, {
103
+ type: HostBinding,
104
+ args: ['style.position']
105
+ }], dropActivate: [{
106
+ type: Output
107
+ }], dragEnter: [{
108
+ type: Output
109
+ }], dragLeave: [{
110
+ type: Output
111
+ }], dragDrop: [{
112
+ type: Output
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbnRlcmFjdC9zcmMvbGliL2RpcmVjdGl2ZXMvZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUE0QixTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBU3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFpQjVCLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBQ0QsWUFDUyxFQUFjLEVBQ2IsUUFBbUIsRUFDbkIsZUFBZ0MsRUFDcEIscUJBQWdEO1FBSDdELE9BQUUsR0FBRixFQUFFLENBQVk7UUFDYixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNwQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBckI3RCxtQkFBYyxHQUFvQixFQUFFLENBQUM7UUFLZixhQUFRLEdBQW1CLFVBQVUsQ0FBQztRQUNyRSxtRUFBbUU7UUFDekQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNoRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDN0MsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQzdDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQVlsRCxDQUFDO0lBRUwsUUFBUTtRQUNO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R0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLFlBQVk7cUJBQ3JCO2lCQUNGOzswQkF5QkksUUFBUTt5Q0F0QkYsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR3lCLFFBQVE7c0JBRHRDLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUVuQixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIE9wdGlvbmFsLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGludGVyYWN0IGZyb20gJ2ludGVyYWN0anMnO1xuaW1wb3J0IHsgRHJvcHpvbmVPcHRpb25zLCBJbnRlcmFjdGFibGUgfSBmcm9tICdAaW50ZXJhY3Rqcy90eXBlcy9pbmRleCc7XG5pbXBvcnQgeyBJbnRlcmFjdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbnRlcmFjdC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nRHJvcEV2ZW50LCBUZnREcmFnRWxlbWVudCwgVGZ0RHJvcEV2ZW50IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEFjY291bnRGb3JTY2FsZURpcmVjdGl2ZSB9IGZyb20gJy4vYWNjb3VudC1mb3Itc2NhbGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgUG9zaXRpb25PcHRpb24gPSAncmVsYXRpdmUnIHwgJ2Fic29sdXRlJyB8ICdmaXhlZCcgfCAnc3RhdGljJyB8ICdzdGlja3knIHwgJ3Vuc2V0JyB8ICdpbmhlcml0JyB8ICdpbml0aWFsJyB8ICdyZXZlcnQnXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGZ0RHJvcHpvbmVdJyxcbiAgaG9zdDoge1xuICAgICdbaWRdJzogJ2Ryb3B6b25lSWQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcHpvbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgZHJvcHpvbmVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBkcm9wem9uZUNvbmZpZzogRHJvcHpvbmVPcHRpb25zID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIEBJbnB1dCgpIGRyb3B6b25lRGF0YTogYW55O1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKSBwb3NpdGlvbjogUG9zaXRpb25PcHRpb24gPSAncmVsYXRpdmUnO1xuICAvLyBwcm94aWVzIHRvIHBhc3MgaW50ZXJhY3QgZXZlbnRzIHRocm91Z2ggdG8gY29uc3VtZXIgb2YgZGlyZWN0aXZlXG4gIEBPdXRwdXQoKSBkcm9wQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPFRmdERyb3BFdmVudD4oKTtcbiAgQE91dHB1dCgpIGRyYWdFbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0RHJvcEV2ZW50PigpO1xuICBAT3V0cHV0KCkgZHJhZ0xlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxUZnREcm9wRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkcmFnRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0RHJvcEV2ZW50PigpO1xuXG4gIGRyb3B6b25lOiBJbnRlcmFjdGFibGU7XG5cbiAgZ2V0IHNjYWxlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudF9mb3Jfc2NhbGVfZGlyPy5zY2FsZTtcbiAgfVxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgaW50ZXJhY3RTZXJ2aWNlOiBJbnRlcmFjdFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhY2NvdW50X2Zvcl9zY2FsZV9kaXI/OiBBY2NvdW50Rm9yU2NhbGVEaXJlY3RpdmVcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBjb25uZWN0c1xuICAgIHRoaXMuZHJvcHpvbmUgPSB0aGlzLmNvbm5lY3REcm9wem9uZUV2ZW50cyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZHJvcHpvbmVDb25maWcpO1xuICAgIHRoaXMuZHJvcHpvbmVJZCA9IHRoaXMuaW50ZXJhY3RTZXJ2aWNlLmFkZFJlZ2lzdHJ5VG9TeXN0ZW0odGhpcy5kcm9wem9uZUlkKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZighY2hhbmdlcy5kcm9wem9uZUNvbmZpZyB8fCAhdGhpcy5kcm9wem9uZSkgcmV0dXJuO1xuICAgIC8vIHRoaXMuZHJvcHpvbmUudW5zZXQoKTtcbiAgICAvLyB0aGlzLmRyb3B6b25lID0gdGhpcy5jb25uZWN0RHJvcHpvbmVFdmVudHModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmRyb3B6b25lQ29uZmlnKVxuICAgIHRoaXMuZHJvcHpvbmUuZHJvcHpvbmUodGhpcy5kcm9wem9uZUNvbmZpZylcbiAgfVxuICAvKipcbiAgKiBDb25uZWN0cyBlbGVtZW50IHRvIGludGVyYWN0cyBkcm9wem9uZSBldmVudHMgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGludGVyYWN0YWJsZVxuICAqIEBwYXJhbSBuYXRpdmVFbGVtZW50IHRoZSBlbGVtZW50IHRvIHRpZSBkcm9wIGV2ZW50cyB0b1xuICAqIEBwYXJhbSBkcm9wem9uZUNvbmZpZyB0aGUgaW50ZXJhY3QgY29uZmlndXJhdGlvbiB0byB1c2Ugd2hlbiBjb25uZWN0aW5nXG4gICovXG4gIGNvbm5lY3REcm9wem9uZUV2ZW50cyhuYXRpdmVFbGVtZW50LCBkcm9wem9uZUNvbmZpZzogRHJvcHpvbmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIGludGVyYWN0KG5hdGl2ZUVsZW1lbnQpLmRyb3B6b25lKGRyb3B6b25lQ29uZmlnKVxuICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgd2hlbiB0aGlzIGZpcmVzIGluIGRpZmZlcmVudCBzY2VuYXJpb3NcbiAgICAgIC5vbignZHJvcGFjdGl2YXRlJywgKGV2ZW50OiBOZ0Ryb3BFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLmRyb3BBY3RpdmF0ZS5lbWl0KHRoaXMubWFwRHJvcHpvbmVFdmVudChldmVudCkpO1xuICAgICAgfSlcbiAgICAgIC5vbignZHJhZ2VudGVyJywgKGV2ZW50OiBOZ0Ryb3BFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGV2ZW50LnJlbGF0ZWRUYXJnZXQsICdkcm9wVGFyZ2V0JywgdGhpcylcbiAgICAgICAgdGhpcy5kcmFnRW50ZXIuZW1pdCh0aGlzLm1hcERyb3B6b25lRXZlbnQoZXZlbnQpKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2RyYWdsZWF2ZScsIChldmVudDogTmdEcm9wRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCBldmVudC5yZWxhdGVkVGFyZ2V0LmRyb3BUYXJnZXQgPT09IHRoaXMpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGV2ZW50LnJlbGF0ZWRUYXJnZXQsICdkcm9wVGFyZ2V0JywgbnVsbClcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyYWdMZWF2ZS5lbWl0KHRoaXMubWFwRHJvcHpvbmVFdmVudChldmVudCkpO1xuICAgICAgfSlcbiAgICAgIC5vbignZHJvcCcsICAoZXZlbnQ6IE5nRHJvcEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZHJhZ0Ryb3AuZW1pdCh0aGlzLm1hcERyb3B6b25lRXZlbnQoZXZlbnQpKTtcbiAgICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBNYXBzIHRoZSBkcm9wIGV2ZW50IGVtaXR0ZWQgYnkgaW50ZXJhY3QgdG8gc29tZXRoaW5nIGEgbGl0dGxlIGVhc2llciB0byB1c2VcbiAgICogQHBhcmFtIGV2ZW50IHRoZSBkcm9wIGV2ZW50IGVtaXR0ZWQgYnkgaW50ZXJhY3QsIGV4dGVuZGVkIHdpdGggZXh0cmEgZmllbGRzIHdlIGFkZGVkIHRvXG4gICAqL1xuICBtYXBEcm9wem9uZUV2ZW50KGV2ZW50OiBOZ0Ryb3BFdmVudCk6IFRmdERyb3BFdmVudCB7XG4gICAgY29uc3Qgem9uZUVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG4gICAgY29uc3QgZHJhZ0VsZW1lbnQgPSBldmVudC5yZWxhdGVkVGFyZ2V0Py5kcmFnUmVmPy5wcmV2aWV3UmVmIGFzIFRmdERyYWdFbGVtZW50O1xuICAgIGNvbnN0IHNjYWxlID0gdGhpcy5zY2FsZTtcbiAgICBjb25zdCBwb3NpdGlvbkluRHJvcFRhcmdldCA9IHpvbmVFbGVtZW50ICYmIGRyYWdFbGVtZW50XG4gICAgPyB0aGlzLmludGVyYWN0U2VydmljZS5jYWxjdWxhdGVQb3NpdGlvbkluRWxlbWVudCh6b25lRWxlbWVudCwgZHJhZ0VsZW1lbnQsIHNjYWxlKVxuICAgIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgaW50ZXJhY3RFdmVudDogZXZlbnQsXG4gICAgICBkcmFnUmVmOiBkcmFnRWxlbWVudC5kcmFnUmVmLFxuICAgICAgZHJhZ09yaWdpbjogZHJhZ0VsZW1lbnQuZHJhZ09yaWdpbixcbiAgICAgIGRyb3BUYXJnZXQ6IGV2ZW50LnJlbGF0ZWRUYXJnZXQuZHJvcFRhcmdldCxcbiAgICAgIHBvc2l0aW9uSW5Ecm9wVGFyZ2V0XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,82 +1,82 @@
1
- import { Directive, ElementRef, Input, Output, EventEmitter, Optional } from '@angular/core';
2
- import interact from 'interactjs';
3
- import { DraggableDirective } from '../directives';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../directives";
6
- /** @dynamic */
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- export class GesturableDirective {
9
- constructor(el, draggable_dir) {
10
- this.el = el;
11
- this.draggable_dir = draggable_dir;
12
- this.gestureDisabled = false;
13
- // pipes all interact events to event emitters
14
- this.gestureStart = new EventEmitter();
15
- this.gestureMove = new EventEmitter();
16
- this.gestureEnd = new EventEmitter();
17
- }
18
- ngOnInit() {
19
- this.gesturableId = this.draggable_dir?.interactableId || 'id';
20
- this.interactable = this.initiateGestureEvents(this.gestureConfig, this.el.nativeElement);
21
- this.setGestureConfig();
22
- }
23
- // TODO: watch config here as well and update interactable
24
- ngOnChanges(changes) {
25
- // we do this here instead of using a setter on the input so that it
26
- // will only run once when there is a change to x and y
27
- if (changes.gestureConfig || changes.gestureDisabled) {
28
- if (!this.interactable)
29
- return;
30
- this.setGestureConfig();
31
- }
32
- }
33
- setGestureConfig() {
34
- const enabled = !this.gestureDisabled;
35
- const gestureConfig = { ...this.gestureConfig, enabled };
36
- this.interactable.gesturable(gestureConfig);
37
- }
38
- initiateGestureEvents(gestureConfig, nativeElement) {
39
- const defaultConfig = {
40
- enabled: !this.gestureDisabled,
41
- };
42
- const interactable = this.draggable_dir?.interactable || interact(nativeElement);
43
- return interactable.gesturable({ ...defaultConfig, ...gestureConfig })
44
- .on('gesturestart', (event) => {
45
- this.gestureStart.emit({ gestureRef: this, interactEvent: event });
46
- })
47
- .on('gesturemove', (event) => {
48
- this.gestureMove.emit({ gestureRef: this, interactEvent: event });
49
- })
50
- .on('gestureend', (event) => {
51
- this.gestureEnd.emit({ gestureRef: this, interactEvent: event });
52
- });
53
- }
54
- }
55
- GesturableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: GesturableDirective, deps: [{ token: i0.ElementRef }, { token: i1.DraggableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
56
- GesturableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: GesturableDirective, selector: "[tftGesturable]", inputs: { gesturableId: "gesturableId", gestureDisabled: "gestureDisabled", gestureConfig: "gestureConfig" }, outputs: { gestureStart: "gestureStart", gestureMove: "gestureMove", gestureEnd: "gestureEnd" }, host: { properties: { "id": "gesturableId" } }, usesOnChanges: true, ngImport: i0 });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: GesturableDirective, decorators: [{
58
- type: Directive,
59
- args: [{
60
- selector: '[tftGesturable]',
61
- // eslint-disable-next-line @angular-eslint/no-host-metadata-property
62
- host: {
63
- // '[style.touchAction]': 'this.gestureDisabled ? "auto" : "none"',
64
- '[id]': 'gesturableId',
65
- }
66
- }]
67
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DraggableDirective, decorators: [{
68
- type: Optional
69
- }] }]; }, propDecorators: { gesturableId: [{
70
- type: Input
71
- }], gestureDisabled: [{
72
- type: Input
73
- }], gestureConfig: [{
74
- type: Input
75
- }], gestureStart: [{
76
- type: Output
77
- }], gestureMove: [{
78
- type: Output
79
- }], gestureEnd: [{
80
- type: Output
81
- }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ludGVyYWN0L3NyYy9saWIvZGlyZWN0aXZlcy9nZXN0dXJhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUNsRCxZQUFZLEVBQUUsUUFBUSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFJbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFbkQsZUFBZTtBQVNmLDhEQUE4RDtBQUM5RCxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLFlBQ1MsRUFBYyxFQUNELGFBQWtDO1FBRC9DLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFaL0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFakMsOENBQThDO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUNsRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFRdkQsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQztRQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsb0VBQW9FO1FBQ3BFLHVEQUF1RDtRQUN2RCxJQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUNuRCxJQUFHLENBQUMsSUFBSSxDQUFDLFlBQVk7Z0JBQUUsT0FBTztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDdEMsTUFBTSxhQUFhLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELHFCQUFxQixDQUFDLGFBQTZELEVBQUUsYUFBMEI7UUFFN0csTUFBTSxhQUFhLEdBQXNCO1lBQ3ZDLE9BQU8sRUFBRyxDQUFDLElBQUksQ0FBQyxlQUFlO1NBQ2hDLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFakYsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUMsR0FBRyxhQUFhLEVBQUUsR0FBRyxhQUFhLEVBQUMsQ0FBQzthQUNqRSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtRQUNsRSxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtRQUNqRSxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtRQUNoRSxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7O2dIQXpEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQVQvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLHFFQUFxRTtvQkFDckUsSUFBSSxFQUFFO3dCQUNKLG1FQUFtRTt3QkFDbkUsTUFBTSxFQUFFLGNBQWM7cUJBQ3ZCO2lCQUNGOzswQkFpQkksUUFBUTs0Q0FiRixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LFxuICAgRXZlbnRFbWl0dGVyLCBPcHRpb25hbCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgaW50ZXJhY3QgZnJvbSAnaW50ZXJhY3Rqcyc7XG5pbXBvcnQgeyBEcmFnZ2FibGVPcHRpb25zLCBHZXN0dXJhYmxlT3B0aW9ucywgSW50ZXJhY3RhYmxlLCBHZXN0dXJlRXZlbnQgfSBmcm9tICdAaW50ZXJhY3Rqcy90eXBlcy9pbmRleCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZnRDb29yZHMsIFRmdEdlc3R1cmVFdmVudCB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBEcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcblxuLyoqIEBkeW5hbWljICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGZ0R2VzdHVyYWJsZV0nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIC8vICdbc3R5bGUudG91Y2hBY3Rpb25dJzogJ3RoaXMuZ2VzdHVyZURpc2FibGVkID8gXCJhdXRvXCIgOiBcIm5vbmVcIicsXG4gICAgJ1tpZF0nOiAnZ2VzdHVyYWJsZUlkJyxcbiAgfVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgR2VzdHVyYWJsZURpcmVjdGl2ZTxEID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBnZXN0dXJhYmxlSWQ6IHN0cmluZztcbiAgQElucHV0KCkgZ2VzdHVyZURpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdlc3R1cmVDb25maWc6IFBhcnRpYWw8SW50ZXJhY3QuT3JCb29sZWFuPERyYWdnYWJsZU9wdGlvbnM+PjtcbiAgLy8gcGlwZXMgYWxsIGludGVyYWN0IGV2ZW50cyB0byBldmVudCBlbWl0dGVyc1xuICBAT3V0cHV0KCkgZ2VzdHVyZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxUZnRHZXN0dXJlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBnZXN0dXJlTW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0R2VzdHVyZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgZ2VzdHVyZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0R2VzdHVyZUV2ZW50PigpO1xuXG4gIGludGVyYWN0YWJsZVN0YXRlOiBPYnNlcnZhYmxlPFRmdENvb3Jkcz47XG4gIGludGVyYWN0YWJsZTogSW50ZXJhY3RhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRyYWdnYWJsZV9kaXI/OiBEcmFnZ2FibGVEaXJlY3RpdmUsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXN0dXJhYmxlSWQgPSB0aGlzLmRyYWdnYWJsZV9kaXI/LmludGVyYWN0YWJsZUlkIHx8ICdpZCc7XG4gICAgdGhpcy5pbnRlcmFjdGFibGUgPSB0aGlzLmluaXRpYXRlR2VzdHVyZUV2ZW50cyh0aGlzLmdlc3R1cmVDb25maWcsIHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zZXRHZXN0dXJlQ29uZmlnKCk7XG4gIH1cblxuICAvLyBUT0RPOiB3YXRjaCBjb25maWcgaGVyZSBhcyB3ZWxsIGFuZCB1cGRhdGUgaW50ZXJhY3RhYmxlXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyB3ZSBkbyB0aGlzIGhlcmUgaW5zdGVhZCBvZiB1c2luZyBhIHNldHRlciBvbiB0aGUgaW5wdXQgc28gdGhhdCBpdFxuICAgIC8vIHdpbGwgb25seSBydW4gb25jZSB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlIHRvIHggYW5kIHlcbiAgICBpZihjaGFuZ2VzLmdlc3R1cmVDb25maWcgfHwgY2hhbmdlcy5nZXN0dXJlRGlzYWJsZWQpIHtcbiAgICAgIGlmKCF0aGlzLmludGVyYWN0YWJsZSkgcmV0dXJuO1xuICAgICAgdGhpcy5zZXRHZXN0dXJlQ29uZmlnKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0R2VzdHVyZUNvbmZpZygpIHtcbiAgICBjb25zdCBlbmFibGVkID0gIXRoaXMuZ2VzdHVyZURpc2FibGVkO1xuICAgIGNvbnN0IGdlc3R1cmVDb25maWcgPSB7Li4udGhpcy5nZXN0dXJlQ29uZmlnLCBlbmFibGVkfTtcbiAgICB0aGlzLmludGVyYWN0YWJsZS5nZXN0dXJhYmxlKGdlc3R1cmVDb25maWcpO1xuICB9XG5cbiAgaW5pdGlhdGVHZXN0dXJlRXZlbnRzKGdlc3R1cmVDb25maWc6IFBhcnRpYWw8SW50ZXJhY3QuT3JCb29sZWFuPEdlc3R1cmFibGVPcHRpb25zPj4sIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG5cbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnOiBHZXN0dXJhYmxlT3B0aW9ucyA9IHtcbiAgICAgIGVuYWJsZWQ6ICAhdGhpcy5nZXN0dXJlRGlzYWJsZWQsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcmFjdGFibGUgPSB0aGlzLmRyYWdnYWJsZV9kaXI/LmludGVyYWN0YWJsZSB8fCBpbnRlcmFjdChuYXRpdmVFbGVtZW50KTtcblxuICAgIHJldHVybiBpbnRlcmFjdGFibGUuZ2VzdHVyYWJsZSh7Li4uZGVmYXVsdENvbmZpZywgLi4uZ2VzdHVyZUNvbmZpZ30pXG4gICAgICAub24oJ2dlc3R1cmVzdGFydCcsIChldmVudDogR2VzdHVyZUV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZ2VzdHVyZVN0YXJ0LmVtaXQoe2dlc3R1cmVSZWY6IHRoaXMsIGludGVyYWN0RXZlbnQ6IGV2ZW50fSlcbiAgICAgIH0pXG4gICAgICAub24oJ2dlc3R1cmVtb3ZlJywgKGV2ZW50OiBHZXN0dXJlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5nZXN0dXJlTW92ZS5lbWl0KHtnZXN0dXJlUmVmOiB0aGlzLCBpbnRlcmFjdEV2ZW50OiBldmVudH0pXG4gICAgICB9KVxuICAgICAgLm9uKCdnZXN0dXJlZW5kJywgKGV2ZW50OiBHZXN0dXJlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5nZXN0dXJlRW5kLmVtaXQoe2dlc3R1cmVSZWY6IHRoaXMsIGludGVyYWN0RXZlbnQ6IGV2ZW50fSlcbiAgICAgIH0pXG4gIH1cbn1cbiJdfQ==
1
+ import { Directive, ElementRef, Input, Output, EventEmitter, Optional } from '@angular/core';
2
+ import interact from 'interactjs';
3
+ import { DraggableDirective } from '../directives';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../directives";
6
+ /** @dynamic */
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ export class GesturableDirective {
9
+ constructor(el, draggable_dir) {
10
+ this.el = el;
11
+ this.draggable_dir = draggable_dir;
12
+ this.gestureDisabled = false;
13
+ // pipes all interact events to event emitters
14
+ this.gestureStart = new EventEmitter();
15
+ this.gestureMove = new EventEmitter();
16
+ this.gestureEnd = new EventEmitter();
17
+ }
18
+ ngOnInit() {
19
+ this.gesturableId = this.draggable_dir?.interactableId || 'id';
20
+ this.interactable = this.initiateGestureEvents(this.gestureConfig, this.el.nativeElement);
21
+ this.setGestureConfig();
22
+ }
23
+ // TODO: watch config here as well and update interactable
24
+ ngOnChanges(changes) {
25
+ // we do this here instead of using a setter on the input so that it
26
+ // will only run once when there is a change to x and y
27
+ if (changes.gestureConfig || changes.gestureDisabled) {
28
+ if (!this.interactable)
29
+ return;
30
+ this.setGestureConfig();
31
+ }
32
+ }
33
+ setGestureConfig() {
34
+ const enabled = !this.gestureDisabled;
35
+ const gestureConfig = { ...this.gestureConfig, enabled };
36
+ this.interactable.gesturable(gestureConfig);
37
+ }
38
+ initiateGestureEvents(gestureConfig, nativeElement) {
39
+ const defaultConfig = {
40
+ enabled: !this.gestureDisabled,
41
+ };
42
+ const interactable = this.draggable_dir?.interactable || interact(nativeElement);
43
+ return interactable.gesturable({ ...defaultConfig, ...gestureConfig })
44
+ .on('gesturestart', (event) => {
45
+ this.gestureStart.emit({ gestureRef: this, interactEvent: event });
46
+ })
47
+ .on('gesturemove', (event) => {
48
+ this.gestureMove.emit({ gestureRef: this, interactEvent: event });
49
+ })
50
+ .on('gestureend', (event) => {
51
+ this.gestureEnd.emit({ gestureRef: this, interactEvent: event });
52
+ });
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: GesturableDirective, deps: [{ token: i0.ElementRef }, { token: i1.DraggableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: GesturableDirective, selector: "[tftGesturable]", inputs: { gesturableId: "gesturableId", gestureDisabled: "gestureDisabled", gestureConfig: "gestureConfig" }, outputs: { gestureStart: "gestureStart", gestureMove: "gestureMove", gestureEnd: "gestureEnd" }, host: { properties: { "id": "gesturableId" } }, usesOnChanges: true, ngImport: i0 }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: GesturableDirective, decorators: [{
58
+ type: Directive,
59
+ args: [{
60
+ selector: '[tftGesturable]',
61
+ // eslint-disable-next-line @angular-eslint/no-host-metadata-property
62
+ host: {
63
+ // '[style.touchAction]': 'this.gestureDisabled ? "auto" : "none"',
64
+ '[id]': 'gesturableId',
65
+ }
66
+ }]
67
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DraggableDirective, decorators: [{
68
+ type: Optional
69
+ }] }], propDecorators: { gesturableId: [{
70
+ type: Input
71
+ }], gestureDisabled: [{
72
+ type: Input
73
+ }], gestureConfig: [{
74
+ type: Input
75
+ }], gestureStart: [{
76
+ type: Output
77
+ }], gestureMove: [{
78
+ type: Output
79
+ }], gestureEnd: [{
80
+ type: Output
81
+ }] } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ludGVyYWN0L3NyYy9saWIvZGlyZWN0aXZlcy9nZXN0dXJhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUNsRCxZQUFZLEVBQUUsUUFBUSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFJbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFbkQsZUFBZTtBQVNmLDhEQUE4RDtBQUM5RCxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLFlBQ1MsRUFBYyxFQUNELGFBQWtDO1FBRC9DLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFaL0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFakMsOENBQThDO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUNsRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFRdkQsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQztRQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsb0VBQW9FO1FBQ3BFLHVEQUF1RDtRQUN2RCxJQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUNuRCxJQUFHLENBQUMsSUFBSSxDQUFDLFlBQVk7Z0JBQUUsT0FBTztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDdEMsTUFBTSxhQUFhLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELHFCQUFxQixDQUFDLGFBQTZELEVBQUUsYUFBMEI7UUFFN0csTUFBTSxhQUFhLEdBQXNCO1lBQ3ZDLE9BQU8sRUFBRyxDQUFDLElBQUksQ0FBQyxlQUFlO1NBQ2hDLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFakYsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUMsR0FBRyxhQUFhLEVBQUUsR0FBRyxhQUFhLEVBQUMsQ0FBQzthQUNqRSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtRQUNsRSxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtRQUNqRSxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtRQUNoRSxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7OEdBekRVLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQVQvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLHFFQUFxRTtvQkFDckUsSUFBSSxFQUFFO3dCQUNKLG1FQUFtRTt3QkFDbkUsTUFBTSxFQUFFLGNBQWM7cUJBQ3ZCO2lCQUNGOzswQkFpQkksUUFBUTt5Q0FiRixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LFxuICAgRXZlbnRFbWl0dGVyLCBPcHRpb25hbCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgaW50ZXJhY3QgZnJvbSAnaW50ZXJhY3Rqcyc7XG5pbXBvcnQgeyBEcmFnZ2FibGVPcHRpb25zLCBHZXN0dXJhYmxlT3B0aW9ucywgSW50ZXJhY3RhYmxlLCBHZXN0dXJlRXZlbnQgfSBmcm9tICdAaW50ZXJhY3Rqcy90eXBlcy9pbmRleCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZnRDb29yZHMsIFRmdEdlc3R1cmVFdmVudCB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBEcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcblxuLyoqIEBkeW5hbWljICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGZ0R2VzdHVyYWJsZV0nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIC8vICdbc3R5bGUudG91Y2hBY3Rpb25dJzogJ3RoaXMuZ2VzdHVyZURpc2FibGVkID8gXCJhdXRvXCIgOiBcIm5vbmVcIicsXG4gICAgJ1tpZF0nOiAnZ2VzdHVyYWJsZUlkJyxcbiAgfVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgR2VzdHVyYWJsZURpcmVjdGl2ZTxEID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBnZXN0dXJhYmxlSWQ6IHN0cmluZztcbiAgQElucHV0KCkgZ2VzdHVyZURpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdlc3R1cmVDb25maWc6IFBhcnRpYWw8SW50ZXJhY3QuT3JCb29sZWFuPERyYWdnYWJsZU9wdGlvbnM+PjtcbiAgLy8gcGlwZXMgYWxsIGludGVyYWN0IGV2ZW50cyB0byBldmVudCBlbWl0dGVyc1xuICBAT3V0cHV0KCkgZ2VzdHVyZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxUZnRHZXN0dXJlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBnZXN0dXJlTW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0R2VzdHVyZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgZ2VzdHVyZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGZ0R2VzdHVyZUV2ZW50PigpO1xuXG4gIGludGVyYWN0YWJsZVN0YXRlOiBPYnNlcnZhYmxlPFRmdENvb3Jkcz47XG4gIGludGVyYWN0YWJsZTogSW50ZXJhY3RhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRyYWdnYWJsZV9kaXI/OiBEcmFnZ2FibGVEaXJlY3RpdmUsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXN0dXJhYmxlSWQgPSB0aGlzLmRyYWdnYWJsZV9kaXI/LmludGVyYWN0YWJsZUlkIHx8ICdpZCc7XG4gICAgdGhpcy5pbnRlcmFjdGFibGUgPSB0aGlzLmluaXRpYXRlR2VzdHVyZUV2ZW50cyh0aGlzLmdlc3R1cmVDb25maWcsIHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zZXRHZXN0dXJlQ29uZmlnKCk7XG4gIH1cblxuICAvLyBUT0RPOiB3YXRjaCBjb25maWcgaGVyZSBhcyB3ZWxsIGFuZCB1cGRhdGUgaW50ZXJhY3RhYmxlXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyB3ZSBkbyB0aGlzIGhlcmUgaW5zdGVhZCBvZiB1c2luZyBhIHNldHRlciBvbiB0aGUgaW5wdXQgc28gdGhhdCBpdFxuICAgIC8vIHdpbGwgb25seSBydW4gb25jZSB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlIHRvIHggYW5kIHlcbiAgICBpZihjaGFuZ2VzLmdlc3R1cmVDb25maWcgfHwgY2hhbmdlcy5nZXN0dXJlRGlzYWJsZWQpIHtcbiAgICAgIGlmKCF0aGlzLmludGVyYWN0YWJsZSkgcmV0dXJuO1xuICAgICAgdGhpcy5zZXRHZXN0dXJlQ29uZmlnKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0R2VzdHVyZUNvbmZpZygpIHtcbiAgICBjb25zdCBlbmFibGVkID0gIXRoaXMuZ2VzdHVyZURpc2FibGVkO1xuICAgIGNvbnN0IGdlc3R1cmVDb25maWcgPSB7Li4udGhpcy5nZXN0dXJlQ29uZmlnLCBlbmFibGVkfTtcbiAgICB0aGlzLmludGVyYWN0YWJsZS5nZXN0dXJhYmxlKGdlc3R1cmVDb25maWcpO1xuICB9XG5cbiAgaW5pdGlhdGVHZXN0dXJlRXZlbnRzKGdlc3R1cmVDb25maWc6IFBhcnRpYWw8SW50ZXJhY3QuT3JCb29sZWFuPEdlc3R1cmFibGVPcHRpb25zPj4sIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG5cbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnOiBHZXN0dXJhYmxlT3B0aW9ucyA9IHtcbiAgICAgIGVuYWJsZWQ6ICAhdGhpcy5nZXN0dXJlRGlzYWJsZWQsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcmFjdGFibGUgPSB0aGlzLmRyYWdnYWJsZV9kaXI/LmludGVyYWN0YWJsZSB8fCBpbnRlcmFjdChuYXRpdmVFbGVtZW50KTtcblxuICAgIHJldHVybiBpbnRlcmFjdGFibGUuZ2VzdHVyYWJsZSh7Li4uZGVmYXVsdENvbmZpZywgLi4uZ2VzdHVyZUNvbmZpZ30pXG4gICAgICAub24oJ2dlc3R1cmVzdGFydCcsIChldmVudDogR2VzdHVyZUV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZ2VzdHVyZVN0YXJ0LmVtaXQoe2dlc3R1cmVSZWY6IHRoaXMsIGludGVyYWN0RXZlbnQ6IGV2ZW50fSlcbiAgICAgIH0pXG4gICAgICAub24oJ2dlc3R1cmVtb3ZlJywgKGV2ZW50OiBHZXN0dXJlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5nZXN0dXJlTW92ZS5lbWl0KHtnZXN0dXJlUmVmOiB0aGlzLCBpbnRlcmFjdEV2ZW50OiBldmVudH0pXG4gICAgICB9KVxuICAgICAgLm9uKCdnZXN0dXJlZW5kJywgKGV2ZW50OiBHZXN0dXJlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5nZXN0dXJlRW5kLmVtaXQoe2dlc3R1cmVSZWY6IHRoaXMsIGludGVyYWN0RXZlbnQ6IGV2ZW50fSlcbiAgICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -1,10 +1,10 @@
1
- export * from './draggable.directive';
2
- export * from './dropzone.directive';
3
- export * from './resizable.directive';
4
- export * from './drag-preview.directive';
5
- export * from './gesturable.directive';
6
- export * from './drag-root.directive';
7
- export * from './account-for-scale.directive';
8
- export * from './apply-scale.directive';
9
- export * from './auto-scroll.directive';
1
+ export * from './draggable.directive';
2
+ export * from './dropzone.directive';
3
+ export * from './resizable.directive';
4
+ export * from './drag-preview.directive';
5
+ export * from './gesturable.directive';
6
+ export * from './drag-root.directive';
7
+ export * from './account-for-scale.directive';
8
+ export * from './apply-scale.directive';
9
+ export * from './auto-scroll.directive';
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ludGVyYWN0L3NyYy9saWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJhZ2dhYmxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3B6b25lLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLXByZXZpZXcuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VzdHVyYWJsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLXJvb3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYWNjb3VudC1mb3Itc2NhbGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwbHktc2NhbGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0by1zY3JvbGwuZGlyZWN0aXZlJztcbiJdfQ==