@foblex/flow 1.2.9 → 1.3.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.
@@ -8,4 +8,4 @@ import { GetInputRectInFlowHandler } from './get-input-rect-in-flow.handler';
8
8
  import { GetConnectionVectorHandler } from './get-connection-vector';
9
9
  import { UpdateNodeLayerHandler } from './update-node-layer.handler';
10
10
  import { SelectAllHandler } from './select-all.handler';
11
- export declare const COMMON_PROVIDERS: (typeof SelectAllHandler | typeof GetAllNodesRectHandler | typeof GetConnectionVectorHandler | typeof GetConnectionHandler | typeof GetElementRectInFlowHandler | typeof GetOutputRectInFlowHandler | typeof GetInputRectInFlowHandler | typeof GetIncomingConnectionsHandler | typeof GetOutgoingConnectionsHandler | typeof UpdateNodeLayerHandler)[];
11
+ export declare const COMMON_PROVIDERS: (typeof GetAllNodesRectHandler | typeof GetConnectionVectorHandler | typeof GetConnectionHandler | typeof GetElementRectInFlowHandler | typeof GetOutputRectInFlowHandler | typeof GetInputRectInFlowHandler | typeof GetIncomingConnectionsHandler | typeof GetOutgoingConnectionsHandler | typeof SelectAllHandler | typeof UpdateNodeLayerHandler)[];
@@ -1,5 +1,5 @@
1
- import { IDragAndDropBase } from '@foblex/core';
2
1
  import { Directive, InjectionToken, } from '@angular/core';
2
+ import { IDragAndDropBase } from './i-drag-and-drop-base';
3
3
  import * as i0 from "@angular/core";
4
4
  export const F_DRAGGABLE = new InjectionToken('F_DRAGGABLE');
5
5
  export class FDraggableBase extends IDragAndDropBase {
@@ -12,4 +12,4 @@ export class FDraggableBase extends IDragAndDropBase {
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FDraggableBase, decorators: [{
13
13
  type: Directive
14
14
  }], ctorParameters: () => [{ type: i0.NgZone }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnZ2FibGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxTQUFTLEVBRVQsY0FBYyxHQUVmLE1BQU0sZUFBZSxDQUFDOztBQU12QixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWlCLGFBQWEsQ0FBQyxDQUFDO0FBRzdFLE1BQU0sT0FBZ0IsY0FBZSxTQUFRLGdCQUFnQjtJQVkzRCxZQUFzQixNQUFjO1FBQ2xDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDOzhHQWRtQixjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRG5DLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJRHJhZ0FuZERyb3BCYXNlLCBJSGFzSG9zdEVsZW1lbnRcbn0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENyZWF0ZU5vZGVFdmVudH0gZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IFJlYXNzaWduQ29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi9jb25uZWN0aW9ucy9yZWFzc2lnbi1jb25uZWN0aW9uL3JlYXNzaWduLWNvbm5lY3Rpb24uZXZlbnQnO1xuaW1wb3J0IHsgQ3JlYXRlQ29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi9jb25uZWN0aW9ucy9jcmVhdGUtY29ubmVjdGlvbi9jcmVhdGUtY29ubmVjdGlvbi5ldmVudCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5cbmV4cG9ydCBjb25zdCBGX0RSQUdHQUJMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGRHJhZ2dhYmxlQmFzZT4oJ0ZfRFJBR0dBQkxFJyk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZEcmFnZ2FibGVCYXNlIGV4dGVuZHMgSURyYWdBbmREcm9wQmFzZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNyZWF0ZU5vZGU6IEV2ZW50RW1pdHRlcjxDcmVhdGVOb2RlRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmUmVhc3NpZ25Db25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8UmVhc3NpZ25Db25uZWN0aW9uRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ3JlYXRlQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPENyZWF0ZUNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKG5nWm9uZTogTmdab25lKSB7XG4gICAgc3VwZXIobmdab25lKTtcbiAgfVxufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnZ2FibGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsU0FBUyxFQUVULGNBQWMsR0FFZixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFMUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQixhQUFhLENBQUMsQ0FBQztBQUc3RSxNQUFNLE9BQWdCLGNBQWUsU0FBUSxnQkFBZ0I7SUFZM0QsWUFBc0IsTUFBYztRQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQzs4R0FkbUIsY0FBYztrR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQURuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUhhc0hvc3RFbGVtZW50XG59IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIE5nWm9uZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVOb2RlRXZlbnR9IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4vY29ubmVjdGlvbnMvcmVhc3NpZ24tY29ubmVjdGlvbi9yZWFzc2lnbi1jb25uZWN0aW9uLmV2ZW50JztcbmltcG9ydCB7IENyZWF0ZUNvbm5lY3Rpb25FdmVudCB9IGZyb20gJy4vY29ubmVjdGlvbnMvY3JlYXRlLWNvbm5lY3Rpb24vY3JlYXRlLWNvbm5lY3Rpb24uZXZlbnQnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuL3NpbmdsZS1zZWxlY3QnO1xuaW1wb3J0IHsgSURyYWdBbmREcm9wQmFzZSB9IGZyb20gJy4vaS1kcmFnLWFuZC1kcm9wLWJhc2UnO1xuXG5leHBvcnQgY29uc3QgRl9EUkFHR0FCTEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkRyYWdnYWJsZUJhc2U+KCdGX0RSQUdHQUJMRScpO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGRHJhZ2dhYmxlQmFzZSBleHRlbmRzIElEcmFnQW5kRHJvcEJhc2UgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8Q3JlYXRlTm9kZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPFJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxDcmVhdGVDb25uZWN0aW9uRXZlbnQ+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihuZ1pvbmU6IE5nWm9uZSkge1xuICAgIHN1cGVyKG5nWm9uZSk7XG4gIH1cbn1cbiJdfQ==
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
123
123
  }], fCreateConnection: [{
124
124
  type: Output
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUVwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUcsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0IsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3QixxQ0FBcUMsRUFDdEMsTUFBTSxlQUFlLENBQUM7Ozs7QUFTdkIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFPckQsSUFBb0IsV0FBVztRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJ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WCxnQkFBZ0I7c0JBRC9CLE1BQU07Z0JBT1MsV0FBVztzQkFEMUIsTUFBTTtnQkFJUyxtQkFBbUI7c0JBRGxDLE1BQU07Z0JBSVMsaUJBQWlCO3NCQURoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZfRFJBR0dBQkxFLCBGRHJhZ2dhYmxlQmFzZSB9IGZyb20gJy4vZi1kcmFnZ2FibGUtYmFzZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3JlYXRlTm9kZUV2ZW50LCBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcCwgRXh0ZXJuYWxJdGVtUHJlcGFyZURyYWdTZXF1ZW5jZSB9IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2VFdmVudCwgU2luZ2xlU2VsZWN0T25Qb2ludGVyRG93biB9IGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25BcmVhT25Qb2ludGVyVXAsIFNlbGVjdGlvbkFyZWFQcmVwYXJlRHJhZ1NlcXVlbmNlIH0gZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5pbXBvcnQgeyBOb2RlT25Qb2ludGVyVXAsIE5vZGVQcmVwYXJlRHJhZ1NlcXVlbmNlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IENhbnZhc09uUG9pbnRlclVwLCBDYW52YXNQcmVwYXJlRHJhZ1NlcXVlbmNlIH0gZnJvbSAnLi9jYW52YXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlLCBSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCxcbiAgUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2Vcbn0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJmLWZsb3dbZkRyYWdnYWJsZV1cIixcbiAgZXhwb3J0QXM6ICdmRHJhZ2dhYmxlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0RSQUdHQUJMRSwgdXNlRXhpc3Rpbmc6IEZEcmFnZ2FibGVEaXJlY3RpdmUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmUgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCdmRHJhZ2dhYmxlRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xuXG4gIC8vIEBPdXRwdXQoKVxuICAvLyBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25JbnRlcnNlY3ROb2RlOiBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25JbnRlcnNlY3ROb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlTm9kZTogRXZlbnRFbWl0dGVyPENyZWF0ZU5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENyZWF0ZU5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZSZWFzc2lnbkNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxDcmVhdGVDb25uZWN0aW9uRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDcmVhdGVDb25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKG5nWm9uZSk7XG4gICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50IGFzIERvY3VtZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuc3Vic2NyaWJlKHRoaXMuZG9jdW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBib29sZWFuIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBldmVudC5pc01vdXNlTGVmdEJ1dHRvbigpO1xuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNpbmdsZVNlbGVjdE9uUG9pbnRlckRvd24pLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQ3JlYXRlQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChTZWxlY3Rpb25BcmVhUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE5vZGVQcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQ2FudmFzUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KEV4dGVybmFsSXRlbVByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmluaXRpYWxpemU/LigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZi1kcmFnZ2luZycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uSW5DYW52YXMgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmhvc3RFbGVtZW50KTtcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gcG9pbnRlclBvc2l0aW9uSW5DYW52YXMuZGl2KHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSkuc3ViKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbik7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5tb3ZlKGRpZmZlcmVuY2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlclVwKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNlbGVjdGlvbkFyZWFPblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE5vZGVPblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENhbnZhc09uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoRXh0ZXJuYWxJdGVtT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2YtZHJhZ2dpbmcnKTtcblxuICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgbGV0IHNlbGVjdGVkTm9kZXM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IHNlbGVjdGVkQ29ubmVjdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBpZiAoeC5ob3N0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2Ytbm9kZScpKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZXMucHVzaCh4Lmhvc3RFbGVtZW50LmlkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdGVkQ29ubmVjdGlvbnMucHVzaCh4Lmhvc3RFbGVtZW50LmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZTZWxlY3Rpb25DaGFuZ2UuZW1pdChuZXcgU2VsZWN0aW9uQ2hhbmdlRXZlbnQoc2VsZWN0ZWROb2Rlcywgc2VsZWN0ZWRDb25uZWN0aW9ucykpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG5cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUVwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUcsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0IsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3QixxQ0FBcUMsRUFDdEMsTUFBTSxlQUFlLENBQUM7Ozs7QUFTdkIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFPckQsSUFBb0IsV0FBVztRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQW1CRCxZQUNZLGdCQUF5QyxFQUN6QyxxQkFBNEMsRUFDcEQsTUFBYyxFQUNOLFFBQWtCLEVBQ2xCLGdCQUFrQyxFQUN4QixRQUFhO1FBRWpDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVBKLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUU1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvQnRDLG1CQUFjLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHMUMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU8xQixxQkFBZ0IsR0FBdUMsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFaEgsWUFBWTtRQUNaLDJJQUEySTtRQUczSCxnQkFBVyxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUdqRix3QkFBbUIsR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFHekcsc0JBQWlCLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO1FBYWpILElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBb0IsQ0FBQztJQUN2QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFZSxhQUFhLENBQUMsS0FBb0I7UUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRWhELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFa0IsbUJBQW1CLENBQUMsS0FBb0I7UUFFekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFZSxhQUFhLENBQUMsS0FBb0I7UUFDaEQsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RyxNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BKLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFZSxXQUFXLENBQUMsS0FBb0I7UUFFOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLGFBQWEsR0FBYSxFQUFFLENBQUM7UUFDakMsSUFBSSxtQkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNMLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU0sV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzhHQS9IVSxtQkFBbUIsK0pBa0NsQixRQUFRO2tHQWxDVCxtQkFBbUIsMFFBSm5CO1lBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtTQUMzRDs7MkZBRVUsbUJBQW1CO2tCQVAvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUJBQXFCLEVBQUU7cUJBQzNEO2lCQUNGOzswQkFtQ00sTUFBTTsyQkFBQyxRQUFRO3lDQTdCSixRQUFRO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFRWCxnQkFBZ0I7c0JBRC9CLE1BQU07Z0JBT1MsV0FBVztzQkFEMUIsTUFBTTtnQkFJUyxtQkFBbUI7c0JBRGxDLE1BQU07Z0JBSVMsaUJBQWlCO3NCQURoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZfRFJBR0dBQkxFLCBGRHJhZ2dhYmxlQmFzZSB9IGZyb20gJy4vZi1kcmFnZ2FibGUtYmFzZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3JlYXRlTm9kZUV2ZW50LCBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcCwgRXh0ZXJuYWxJdGVtUHJlcGFyZURyYWdTZXF1ZW5jZSB9IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2VFdmVudCwgU2luZ2xlU2VsZWN0T25Qb2ludGVyRG93biB9IGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25BcmVhT25Qb2ludGVyVXAsIFNlbGVjdGlvbkFyZWFQcmVwYXJlRHJhZ1NlcXVlbmNlIH0gZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5pbXBvcnQgeyBOb2RlT25Qb2ludGVyVXAsIE5vZGVQcmVwYXJlRHJhZ1NlcXVlbmNlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IENhbnZhc09uUG9pbnRlclVwLCBDYW52YXNQcmVwYXJlRHJhZ1NlcXVlbmNlIH0gZnJvbSAnLi9jYW52YXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlLCBSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCxcbiAgUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2Vcbn0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJmLWZsb3dbZkRyYWdnYWJsZV1cIixcbiAgZXhwb3J0QXM6ICdmRHJhZ2dhYmxlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0RSQUdHQUJMRSwgdXNlRXhpc3Rpbmc6IEZEcmFnZ2FibGVEaXJlY3RpdmUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmUgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCdmRHJhZ2dhYmxlRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xuXG4gIC8vIEBPdXRwdXQoKVxuICAvLyBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25JbnRlcnNlY3ROb2RlOiBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25JbnRlcnNlY3ROb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlTm9kZTogRXZlbnRFbWl0dGVyPENyZWF0ZU5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENyZWF0ZU5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZSZWFzc2lnbkNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxDcmVhdGVDb25uZWN0aW9uRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDcmVhdGVDb25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKG5nWm9uZSk7XG4gICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50IGFzIERvY3VtZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuc3Vic2NyaWJlKHRoaXMuZG9jdW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBib29sZWFuIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBldmVudC5pc01vdXNlTGVmdEJ1dHRvbigpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoU2luZ2xlU2VsZWN0T25Qb2ludGVyRG93bikuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDcmVhdGVDb25uZWN0aW9uUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoZXZlbnQ6IElQb2ludGVyRXZlbnQpIHtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNlbGVjdGlvbkFyZWFQcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoTm9kZVByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDYW52YXNQcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoRXh0ZXJuYWxJdGVtUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uaW5pdGlhbGl6ZT8uKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdmLWRyYWdnaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlck1vdmUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkNhbnZhcyA9IFBvaW50LmZyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBwb2ludGVyUG9zaXRpb25JbkNhbnZhcy5kaXYodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlKS5zdWIodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLm1vdmUoZGlmZmVyZW5jZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyVXAoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQ3JlYXRlQ29ubmVjdGlvbk9uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoU2VsZWN0aW9uQXJlYU9uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoTm9kZU9uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQ2FudmFzT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZi1kcmFnZ2luZycpO1xuXG4gICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcblxuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnJlc2V0KCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBsZXQgc2VsZWN0ZWROb2Rlczogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgc2VsZWN0ZWRDb25uZWN0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgIGlmICh4Lmhvc3RFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnZi1ub2RlJykpIHtcbiAgICAgICAgc2VsZWN0ZWROb2Rlcy5wdXNoKHguaG9zdEVsZW1lbnQuaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0aW9ucy5wdXNoKHguaG9zdEVsZW1lbnQuaWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZlNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyBTZWxlY3Rpb25DaGFuZ2VFdmVudChzZWxlY3RlZE5vZGVzLCBzZWxlY3RlZENvbm5lY3Rpb25zKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,147 @@
1
+ import { EventExtensions, IMouseEvent, ITouchDownEvent, ITouchMoveEvent, ITouchUpEvent, PointExtensions } from '@foblex/core';
2
+ export const MOUSE_EVENT_IGNORE_TIME = 800;
3
+ export class IDragAndDropBase {
4
+ isSyntheticEvent(event) {
5
+ const isSyntheticEvent = !!this.lastTouchEventTime &&
6
+ (this.lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now());
7
+ return isSyntheticEvent;
8
+ }
9
+ constructor(ngZone) {
10
+ this.ngZone = ngZone;
11
+ this.mouseListeners = EventExtensions.emptyListener();
12
+ this.touchListeners = EventExtensions.emptyListener();
13
+ this.startListeners = EventExtensions.emptyListener();
14
+ this.lastTouchEventTime = 0;
15
+ this.isDragStarted = false;
16
+ this.dragStartThreshold = 5;
17
+ this.dragStartDelay = 0;
18
+ this.dragStartTime = 0;
19
+ this.dragStartPosition = PointExtensions.initialize();
20
+ this.moveHandler = this.checkDragSequenceToStart;
21
+ this.onMouseDown = (event) => {
22
+ const isSyntheticEvent = this.isSyntheticEvent(event);
23
+ const isFakeEvent = isFakeMousedownFromScreenReader(event);
24
+ const mouseEvent = new IMouseEvent(event);
25
+ if (isSyntheticEvent || isFakeEvent || this.disabled) {
26
+ return;
27
+ }
28
+ let result = this.onPointerDown(mouseEvent);
29
+ if (result) {
30
+ this.dragStartTime = Date.now();
31
+ this.dragStartPosition = mouseEvent.getPosition();
32
+ this.ngZone.runOutsideAngular(() => {
33
+ this.element.addEventListener('mousemove', this.onMouseMove);
34
+ this.element.addEventListener('mouseup', this.onMouseUp);
35
+ });
36
+ this.mouseListeners = () => {
37
+ this.element.removeEventListener('mousemove', this.onMouseMove);
38
+ this.element.removeEventListener('mouseup', this.onMouseUp);
39
+ };
40
+ }
41
+ };
42
+ this.onTouchDown = (event) => {
43
+ const isFakeEvent = isFakeTouchstartFromScreenReader(event);
44
+ const touchEvent = new ITouchDownEvent(event);
45
+ if (isFakeEvent || this.disabled) {
46
+ return;
47
+ }
48
+ let result = this.onPointerDown(new ITouchDownEvent(event));
49
+ if (result) {
50
+ this.dragStartTime = Date.now();
51
+ this.dragStartPosition = touchEvent.getPosition();
52
+ this.ngZone.runOutsideAngular(() => {
53
+ this.element.addEventListener('touchmove', this.onTouchMove);
54
+ this.element.addEventListener('touchend', this.onTouchUp);
55
+ });
56
+ this.touchListeners = () => {
57
+ this.element.removeEventListener('touchmove', this.onTouchMove);
58
+ this.element.removeEventListener('touchend', this.onTouchUp);
59
+ };
60
+ }
61
+ };
62
+ this.onMouseMove = (event) => {
63
+ this.moveHandler(new IMouseEvent(event));
64
+ };
65
+ this.onTouchMove = (event) => {
66
+ this.moveHandler(new ITouchMoveEvent(event));
67
+ };
68
+ this.onMouseUp = (event) => {
69
+ if (this.isDragStarted) {
70
+ this.onPointerUp(new IMouseEvent(event));
71
+ }
72
+ this.endDragSequence();
73
+ };
74
+ this.onTouchUp = (event) => {
75
+ if (this.isDragStarted) {
76
+ this.onPointerUp(new ITouchUpEvent(event));
77
+ }
78
+ this.endDragSequence();
79
+ };
80
+ }
81
+ checkDragSequenceToStart(event) {
82
+ const pointerPosition = event.getPosition();
83
+ if (!this.isDragStarted) {
84
+ const distanceX = Math.abs(pointerPosition.x - this.dragStartPosition.x);
85
+ const distanceY = Math.abs(pointerPosition.y - this.dragStartPosition.y);
86
+ const isOverThreshold = distanceX + distanceY >= this.dragStartThreshold;
87
+ if (isOverThreshold) {
88
+ const isDelayElapsed = Date.now() >= this.dragStartTime + this.dragStartDelay;
89
+ if (!isDelayElapsed) {
90
+ this.endDragSequence();
91
+ return;
92
+ }
93
+ event.preventDefault();
94
+ this.prepareDragSequence(event);
95
+ this.isDragStarted = true;
96
+ this.moveHandler = this.onPointerMove;
97
+ if (isTouchEvent(event.originalEvent)) {
98
+ this.lastTouchEventTime = Date.now();
99
+ }
100
+ }
101
+ }
102
+ }
103
+ endDragSequence() {
104
+ this.isDragStarted = false;
105
+ this.moveHandler = this.checkDragSequenceToStart;
106
+ this.mouseListeners();
107
+ this.mouseListeners = EventExtensions.emptyListener();
108
+ this.touchListeners();
109
+ this.touchListeners = EventExtensions.emptyListener();
110
+ }
111
+ subscribe(elementToSubscribe) {
112
+ if (this.element) {
113
+ this.unsubscribe();
114
+ }
115
+ this.element = elementToSubscribe;
116
+ this.ngZone.runOutsideAngular(() => {
117
+ this.element.addEventListener('mousedown', this.onMouseDown, EventExtensions.activeListener());
118
+ this.element.addEventListener('touchstart', this.onTouchDown, EventExtensions.passiveListener());
119
+ });
120
+ this.startListeners = () => {
121
+ this.element.removeEventListener('mousedown', this.onMouseDown, EventExtensions.activeListener());
122
+ this.element.removeEventListener('touchstart', this.onTouchDown, EventExtensions.passiveListener());
123
+ };
124
+ }
125
+ unsubscribe() {
126
+ this.startListeners();
127
+ this.startListeners = EventExtensions.emptyListener();
128
+ this.touchListeners();
129
+ this.touchListeners = EventExtensions.emptyListener();
130
+ this.mouseListeners();
131
+ this.mouseListeners = EventExtensions.emptyListener();
132
+ }
133
+ }
134
+ function isTouchEvent(event) {
135
+ return event.type[0] === 't';
136
+ }
137
+ function isFakeMousedownFromScreenReader(event) {
138
+ return event.buttons === 0 || (event.offsetX === 0 && event.offsetY === 0);
139
+ }
140
+ function isFakeTouchstartFromScreenReader(event) {
141
+ const touch = (event.touches && event.touches[0]) || (event.changedTouches && event.changedTouches[0]);
142
+ return (!!touch &&
143
+ touch.identifier === -1 &&
144
+ (touch.radiusX == null || touch.radiusX === 1) &&
145
+ (touch.radiusY == null || touch.radiusY === 1));
146
+ }
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1kcmFnLWFuZC1kcm9wLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2ktZHJhZy1hbmQtZHJvcC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsV0FBVyxFQUdYLGVBQWUsRUFDZixlQUFlLEVBQUUsYUFBYSxFQUM5QixlQUFlLEVBQ2hCLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUUzQyxNQUFNLE9BQWdCLGdCQUFnQjtJQVM3QixnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN2QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCO1lBQzlDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHVCQUF1QixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQWVELFlBQ2MsTUFBNkI7UUFBN0IsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUF6Qm5DLG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBUTNELHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUVoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUM5Qix1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFDL0IsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFM0Isa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsc0JBQWlCLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBSXpELGdCQUFXLEdBQWEsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FB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QUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELFNBQVMsZ0NBQWdDLENBQUMsS0FBaUI7SUFDekQsTUFBTSxLQUFLLEdBQ1AsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBRSxDQUFDLENBQUUsQ0FBQyxDQUFDO0lBQ2pHLE9BQU8sQ0FDSCxDQUFDLENBQUMsS0FBSztRQUNQLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV2ZW50RXh0ZW5zaW9ucyxcbiAgSU1vdXNlRXZlbnQsXG4gIElQb2ludCxcbiAgSVBvaW50ZXJFdmVudCxcbiAgSVRvdWNoRG93bkV2ZW50LFxuICBJVG91Y2hNb3ZlRXZlbnQsIElUb3VjaFVwRXZlbnQsXG4gIFBvaW50RXh0ZW5zaW9uc1xufSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSUNhblJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnQGZvYmxleC9jb3JlL2RyYWctYW5kLWRyb3AvaS1jYW4tcnVuLW91dHNpZGUtYW5ndWxhcic7XG5cbmV4cG9ydCBjb25zdCBNT1VTRV9FVkVOVF9JR05PUkVfVElNRSA9IDgwMDtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIElEcmFnQW5kRHJvcEJhc2Uge1xuXG4gIHByaXZhdGUgZWxlbWVudCE6IERvY3VtZW50O1xuXG4gIHByaXZhdGUgbW91c2VMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgcHJpdmF0ZSB0b3VjaExpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHByaXZhdGUgc3RhcnRMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcblxuICBwdWJsaWMgaXNTeW50aGV0aWNFdmVudChldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzU3ludGhldGljRXZlbnQgPSAhIXRoaXMubGFzdFRvdWNoRXZlbnRUaW1lICYmXG4gICAgICAgICh0aGlzLmxhc3RUb3VjaEV2ZW50VGltZSArIE1PVVNFX0VWRU5UX0lHTk9SRV9USU1FID4gRGF0ZS5ub3coKSk7XG4gICAgcmV0dXJuIGlzU3ludGhldGljRXZlbnQ7XG4gIH1cblxuICBwcml2YXRlIGxhc3RUb3VjaEV2ZW50VGltZTogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgaXNEcmFnU3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGRyYWdTdGFydFRocmVzaG9sZDogbnVtYmVyID0gNTtcbiAgcHJpdmF0ZSBkcmFnU3RhcnREZWxheTogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIGRyYWdTdGFydFRpbWU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0UG9zaXRpb246IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIGFic3RyYWN0IGRpc2FibGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgbW92ZUhhbmRsZXI6IEZ1bmN0aW9uID0gdGhpcy5jaGVja0RyYWdTZXF1ZW5jZVRvU3RhcnQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIG5nWm9uZTogSUNhblJ1bk91dHNpZGVBbmd1bGFyXG4gICkge1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlRG93biA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzU3ludGhldGljRXZlbnQgPSB0aGlzLmlzU3ludGhldGljRXZlbnQoZXZlbnQpO1xuICAgIGNvbnN0IGlzRmFrZUV2ZW50ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCk7XG4gICAgY29uc3QgbW91c2VFdmVudCA9IG5ldyBJTW91c2VFdmVudChldmVudCk7XG5cbiAgICBpZiAoaXNTeW50aGV0aWNFdmVudCB8fCBpc0Zha2VFdmVudCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSB0aGlzLm9uUG9pbnRlckRvd24obW91c2VFdmVudCk7XG4gICAgaWYgKHJlc3VsdCkge1xuXG4gICAgICB0aGlzLmRyYWdTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5kcmFnU3RhcnRQb3NpdGlvbiA9IG1vdXNlRXZlbnQuZ2V0UG9zaXRpb24oKTtcblxuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubW91c2VMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlKTtcbiAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcCk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaERvd24gPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc0Zha2VFdmVudCA9IGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyKGV2ZW50IGFzIFRvdWNoRXZlbnQpXG4gICAgY29uc3QgdG91Y2hFdmVudCA9IG5ldyBJVG91Y2hEb3duRXZlbnQoZXZlbnQpO1xuXG4gICAgaWYgKGlzRmFrZUV2ZW50IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub25Qb2ludGVyRG93bihuZXcgSVRvdWNoRG93bkV2ZW50KGV2ZW50KSk7XG4gICAgaWYgKHJlc3VsdCkge1xuXG4gICAgICB0aGlzLmRyYWdTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5kcmFnU3RhcnRQb3NpdGlvbiA9IHRvdWNoRXZlbnQuZ2V0UG9zaXRpb24oKTtcblxuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMub25Ub3VjaFVwKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMub25Ub3VjaFVwKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlTW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIHRoaXMubW92ZUhhbmRsZXIobmV3IElNb3VzZUV2ZW50KGV2ZW50KSk7XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hNb3ZlID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgdGhpcy5tb3ZlSGFuZGxlcihuZXcgSVRvdWNoTW92ZUV2ZW50KGV2ZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRHJhZ1NlcXVlbmNlVG9TdGFydChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IGV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNEcmFnU3RhcnRlZCkge1xuICAgICAgY29uc3QgZGlzdGFuY2VYID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnggLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLngpO1xuICAgICAgY29uc3QgZGlzdGFuY2VZID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnkgLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLnkpO1xuICAgICAgY29uc3QgaXNPdmVyVGhyZXNob2xkID0gZGlzdGFuY2VYICsgZGlzdGFuY2VZID49IHRoaXMuZHJhZ1N0YXJ0VGhyZXNob2xkO1xuXG4gICAgICBpZiAoaXNPdmVyVGhyZXNob2xkKSB7XG4gICAgICAgIGNvbnN0IGlzRGVsYXlFbGFwc2VkID0gRGF0ZS5ub3coKSA+PSB0aGlzLmRyYWdTdGFydFRpbWUgKyB0aGlzLmRyYWdTdGFydERlbGF5O1xuXG4gICAgICAgIGlmICghaXNEZWxheUVsYXBzZWQpIHtcbiAgICAgICAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucHJlcGFyZURyYWdTZXF1ZW5jZShldmVudCk7XG4gICAgICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubW92ZUhhbmRsZXIgPSB0aGlzLm9uUG9pbnRlck1vdmU7XG4gICAgICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQub3JpZ2luYWxFdmVudCkpIHtcbiAgICAgICAgICB0aGlzLmxhc3RUb3VjaEV2ZW50VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJlcGFyZURyYWdTZXF1ZW5jZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBvbk1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlclVwKG5ldyBJTW91c2VFdmVudChldmVudCkpO1xuICAgIH1cbiAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoVXAgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlclVwKG5ldyBJVG91Y2hVcEV2ZW50KGV2ZW50KSk7XG4gICAgfVxuICAgIHRoaXMuZW5kRHJhZ1NlcXVlbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGVuZERyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRHJhZ1N0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLm1vdmVIYW5kbGVyID0gdGhpcy5jaGVja0RyYWdTZXF1ZW5jZVRvU3RhcnQ7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycygpO1xuICAgIHRoaXMubW91c2VMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IG9uUG9pbnRlclVwKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZDtcblxuICBwdWJsaWMgc3Vic2NyaWJlKGVsZW1lbnRUb1N1YnNjcmliZTogRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbGVtZW50KSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnRUb1N1YnNjcmliZTtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25Ub3VjaERvd24sIEV2ZW50RXh0ZW5zaW9ucy5wYXNzaXZlTGlzdGVuZXIoKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXJ0TGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd24sIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoRG93biwgRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVMaXN0ZW5lcigpKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydExpc3RlbmVycygpO1xuICAgIHRoaXMuc3RhcnRMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNUb3VjaEV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQge1xuICByZXR1cm4gZXZlbnQudHlwZVsgMCBdID09PSAndCc7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LmJ1dHRvbnMgPT09IDAgfHwgKGV2ZW50Lm9mZnNldFggPT09IDAgJiYgZXZlbnQub2Zmc2V0WSA9PT0gMCk7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyKGV2ZW50OiBUb3VjaEV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHRvdWNoOiBUb3VjaCB8IHVuZGVmaW5lZCA9XG4gICAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWyAwIF0pIHx8IChldmVudC5jaGFuZ2VkVG91Y2hlcyAmJiBldmVudC5jaGFuZ2VkVG91Y2hlc1sgMCBdKTtcbiAgcmV0dXJuIChcbiAgICAgICEhdG91Y2ggJiZcbiAgICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgICAodG91Y2gucmFkaXVzWCA9PSBudWxsIHx8IHRvdWNoLnJhZGl1c1ggPT09IDEpICYmXG4gICAgICAodG91Y2gucmFkaXVzWSA9PSBudWxsIHx8IHRvdWNoLnJhZGl1c1kgPT09IDEpXG4gICk7XG59XG4iXX0=
@@ -9,5 +9,6 @@ export * from './e-draggable-type';
9
9
  export * from './f-draggable.directive';
10
10
  export * from './f-draggable-base';
11
11
  export * from './f-draggable-data-context';
12
+ export * from './i-drag-and-drop-base';
12
13
  export * from './i-draggable-item';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsY0FBYyxDQUFDO0FBRTdCLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxRQUFRLENBQUM7QUFFdkIsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FudmFzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbm9kZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aW9uLWFyZWEnO1xuXG5leHBvcnQgKiBmcm9tICcuL2UtZHJhZ2dhYmxlLXR5cGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnZ2FibGUtYmFzZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWRyYWdnYWJsZS1pdGVtJztcblxuXG5cblxuXG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsY0FBYyxDQUFDO0FBRTdCLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxRQUFRLENBQUM7QUFFdkIsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYW52YXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb25zJztcblxuZXhwb3J0ICogZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9ub2RlJztcblxuZXhwb3J0ICogZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZS1kcmFnZ2FibGUtdHlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnZ2FibGUuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWRyYWdnYWJsZS1iYXNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktZHJhZy1hbmQtZHJvcC1iYXNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWRyYWdnYWJsZS1pdGVtJztcblxuXG5cblxuXG4iXX0=
@@ -12,6 +12,9 @@ export class SingleSelectOnPointerDown {
12
12
  this.getConnectionHandler = getConnectionHandler;
13
13
  }
14
14
  handle(event) {
15
+ if (!this.fComponentsStore.fFlow?.hostElement.contains(event.targetElement)) {
16
+ return;
17
+ }
15
18
  const node = this.fComponentsStore.findNode(event.targetElement);
16
19
  const connection = this.getConnectionHandler.handle(event.targetElement);
17
20
  this.deselectAll(node, event);
@@ -61,4 +64,4 @@ export class SingleSelectOnPointerDown {
61
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SingleSelectOnPointerDown, decorators: [{
62
65
  type: Injectable
63
66
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetConnectionHandler }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBYSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUdyRSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxvQkFBMEM7UUFGMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFFdEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0MsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzVHO1NBQ0Y7YUFBTSxJQUFJLFVBQVUsRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2xIO1NBQ0Y7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQTJCLEVBQUUsS0FBb0I7UUFDbkUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVGLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sOEJBQThCLENBQUMsS0FBb0I7UUFDekQsTUFBTSxhQUFhLEdBQ2Ysb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDekQsb0JBQW9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNaO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXZEVSx5QkFBeUI7a0hBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBNb3VzZUV2ZW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0aW9uSGFuZGxlciB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGTm9kZUJhc2UsIGlzTm9kZU91dGxldCwgaXNOb2RlT3V0cHV0IH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdE9uUG9pbnRlckRvd24gaW1wbGVtZW50cyBJSGFuZGxlcjxJUG9pbnRlckV2ZW50LCB2b2lkPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBnZXRDb25uZWN0aW9uSGFuZGxlcjogR2V0Q29ubmVjdGlvbkhhbmRsZXJcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5maW5kTm9kZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5nZXRDb25uZWN0aW9uSGFuZGxlci5oYW5kbGUoZXZlbnQudGFyZ2V0RWxlbWVudCk7XG4gICAgdGhpcy5kZXNlbGVjdEFsbChub2RlLCBldmVudCk7XG5cbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uSWZOb3RNdWx0aXNlbGVjdChldmVudCk7XG5cbiAgICBpZiAobm9kZSkge1xuICAgICAgaWYgKCF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMucHVzaChub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuc3BsaWNlKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5kZXhPZihub2RlKSwgMSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb25uZWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoY29ubmVjdGlvbikpIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5wdXNoKGNvbm5lY3Rpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGNvbm5lY3Rpb24pLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3RJZk5vdFNlbGVjdGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGRlc2VsZWN0QWxsKG5vZGU6IEZOb2RlQmFzZSB8IHVuZGVmaW5lZCwgZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgIGlmICh4ICE9PSBub2RlIHx8ICghaXNOb2RlT3V0bGV0KGV2ZW50LnRhcmdldEVsZW1lbnQpICYmICFpc05vZGVPdXRwdXQoZXZlbnQudGFyZ2V0RWxlbWVudCkpKSB7XG4gICAgICAgIHguZGVzZWxlY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTZWxlY3Rpb25JZk5vdE11bHRpc2VsZWN0KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaXNNdWx0aXNlbGVjdCA9XG4gICAgICAgIE1vdXNlRXZlbnRFeHRlbnNpb25zLmlzQ29tbWFuZEJ1dHRvbihldmVudC5vcmlnaW5hbEV2ZW50KSB8fFxuICAgICAgICBNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc1NoaWZ0UHJlc3NlZChldmVudC5vcmlnaW5hbEV2ZW50KTtcbiAgICBpZiAoIWlzTXVsdGlzZWxlY3QpIHtcbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdElmTm90U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBpZiAoIXguaXNTZWxlY3RlZCgpKSB7XG4gICAgICAgIHguc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBYSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUdyRSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxvQkFBMEM7UUFGMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFFdEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUVoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMzRSxPQUFPO1NBQ1I7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0MsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzVHO1NBQ0Y7YUFBTSxJQUFJLFVBQVUsRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2xIO1NBQ0Y7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQTJCLEVBQUUsS0FBb0I7UUFDbkUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVGLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sOEJBQThCLENBQUMsS0FBb0I7UUFDekQsTUFBTSxhQUFhLEdBQ2Ysb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDekQsb0JBQW9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNaO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTNEVSx5QkFBeUI7a0hBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBNb3VzZUV2ZW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0aW9uSGFuZGxlciB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGTm9kZUJhc2UsIGlzTm9kZU91dGxldCwgaXNOb2RlT3V0cHV0IH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdE9uUG9pbnRlckRvd24gaW1wbGVtZW50cyBJSGFuZGxlcjxJUG9pbnRlckV2ZW50LCB2b2lkPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBnZXRDb25uZWN0aW9uSGFuZGxlcjogR2V0Q29ubmVjdGlvbkhhbmRsZXJcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdz8uaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5maW5kTm9kZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5nZXRDb25uZWN0aW9uSGFuZGxlci5oYW5kbGUoZXZlbnQudGFyZ2V0RWxlbWVudCk7XG4gICAgdGhpcy5kZXNlbGVjdEFsbChub2RlLCBldmVudCk7XG5cbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uSWZOb3RNdWx0aXNlbGVjdChldmVudCk7XG5cbiAgICBpZiAobm9kZSkge1xuICAgICAgaWYgKCF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMucHVzaChub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuc3BsaWNlKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5kZXhPZihub2RlKSwgMSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb25uZWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoY29ubmVjdGlvbikpIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5wdXNoKGNvbm5lY3Rpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGNvbm5lY3Rpb24pLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3RJZk5vdFNlbGVjdGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGRlc2VsZWN0QWxsKG5vZGU6IEZOb2RlQmFzZSB8IHVuZGVmaW5lZCwgZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgIGlmICh4ICE9PSBub2RlIHx8ICghaXNOb2RlT3V0bGV0KGV2ZW50LnRhcmdldEVsZW1lbnQpICYmICFpc05vZGVPdXRwdXQoZXZlbnQudGFyZ2V0RWxlbWVudCkpKSB7XG4gICAgICAgIHguZGVzZWxlY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTZWxlY3Rpb25JZk5vdE11bHRpc2VsZWN0KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaXNNdWx0aXNlbGVjdCA9XG4gICAgICAgIE1vdXNlRXZlbnRFeHRlbnNpb25zLmlzQ29tbWFuZEJ1dHRvbihldmVudC5vcmlnaW5hbEV2ZW50KSB8fFxuICAgICAgICBNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc1NoaWZ0UHJlc3NlZChldmVudC5vcmlnaW5hbEV2ZW50KTtcbiAgICBpZiAoIWlzTXVsdGlzZWxlY3QpIHtcbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdElmTm90U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBpZiAoIXguaXNTZWxlY3RlZCgpKSB7XG4gICAgICAgIHguc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  import { CanvasOnPointerUp } from './canvas.on-pointer-up';
2
2
  import { CanvasPrepareDragSequence } from './canvas.prepare-drag-sequence';
3
- export declare const CANVAS_PROVIDERS: (typeof CanvasPrepareDragSequence | typeof CanvasOnPointerUp)[];
3
+ export declare const CANVAS_PROVIDERS: (typeof CanvasOnPointerUp | typeof CanvasPrepareDragSequence)[];
@@ -1,4 +1,4 @@
1
1
  import { CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, FindFirstCanBeConnectedOutputByOutletHandler } from './create-connection';
2
2
  import { FindInputsUnderPointerHandler, FirstNotConnectedInputOfNodeUnderPointerHandler, InputsUnderPointerHandler } from './find-inputs-under-pointer';
3
3
  import { ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence } from './reassign-connection';
4
- export declare const CONNECTIONS_PROVIDERS: (typeof ReassignConnectionPrepareDragSequence | typeof CreateConnectionPrepareDragSequence | typeof ReassignConnectionOnPointerUp | typeof CreateConnectionOnPointerUp | typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof FirstNotConnectedInputOfNodeUnderPointerHandler | typeof InputsUnderPointerHandler | typeof FindInputsUnderPointerHandler)[];
4
+ export declare const CONNECTIONS_PROVIDERS: (typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof CreateConnectionOnPointerUp | typeof CreateConnectionPrepareDragSequence | typeof FirstNotConnectedInputOfNodeUnderPointerHandler | typeof InputsUnderPointerHandler | typeof FindInputsUnderPointerHandler | typeof ReassignConnectionOnPointerUp | typeof ReassignConnectionPrepareDragSequence)[];
@@ -1,3 +1,3 @@
1
1
  import { ExternalItemOnPointerUp } from './external-item.on-pointer-up';
2
2
  import { ExternalItemPrepareDragSequence } from './external-item.prepare-drag-sequence';
3
- export declare const EXTERNAL_ITEM_PROVIDERS: (typeof ExternalItemPrepareDragSequence | typeof ExternalItemOnPointerUp)[];
3
+ export declare const EXTERNAL_ITEM_PROVIDERS: (typeof ExternalItemOnPointerUp | typeof ExternalItemPrepareDragSequence)[];
@@ -1,9 +1,10 @@
1
- import { IDragAndDropBase, IHasHostElement } from '@foblex/core';
1
+ import { IHasHostElement } from '@foblex/core';
2
2
  import { EventEmitter, InjectionToken, NgZone } from '@angular/core';
3
3
  import { CreateNodeEvent } from './external-item';
4
4
  import { ReassignConnectionEvent } from './connections/reassign-connection/reassign-connection.event';
5
5
  import { CreateConnectionEvent } from './connections/create-connection/create-connection.event';
6
6
  import { SelectionChangeEvent } from './single-select';
7
+ import { IDragAndDropBase } from './i-drag-and-drop-base';
7
8
  import * as i0 from "@angular/core";
8
9
  export declare const F_DRAGGABLE: InjectionToken<FDraggableBase>;
9
10
  export declare abstract class FDraggableBase extends IDragAndDropBase implements IHasHostElement {
@@ -0,0 +1,34 @@
1
+ import { IPointerEvent } from '@foblex/core';
2
+ import { ICanRunOutsideAngular } from '@foblex/core/drag-and-drop/i-can-run-outside-angular';
3
+ export declare const MOUSE_EVENT_IGNORE_TIME = 800;
4
+ export declare abstract class IDragAndDropBase {
5
+ protected ngZone: ICanRunOutsideAngular;
6
+ private element;
7
+ private mouseListeners;
8
+ private touchListeners;
9
+ private startListeners;
10
+ isSyntheticEvent(event: MouseEvent): boolean;
11
+ private lastTouchEventTime;
12
+ isDragStarted: boolean;
13
+ private dragStartThreshold;
14
+ private dragStartDelay;
15
+ private dragStartTime;
16
+ private dragStartPosition;
17
+ abstract disabled: boolean;
18
+ private moveHandler;
19
+ protected constructor(ngZone: ICanRunOutsideAngular);
20
+ private onMouseDown;
21
+ private onTouchDown;
22
+ private onMouseMove;
23
+ private onTouchMove;
24
+ private checkDragSequenceToStart;
25
+ protected abstract prepareDragSequence(event: IPointerEvent): void;
26
+ private onMouseUp;
27
+ private onTouchUp;
28
+ private endDragSequence;
29
+ abstract onPointerDown(event: IPointerEvent): boolean;
30
+ abstract onPointerMove(event: IPointerEvent): void;
31
+ abstract onPointerUp(event: IPointerEvent): void;
32
+ subscribe(elementToSubscribe: Document): void;
33
+ unsubscribe(): void;
34
+ }
@@ -9,4 +9,5 @@ export * from './e-draggable-type';
9
9
  export * from './f-draggable.directive';
10
10
  export * from './f-draggable-base';
11
11
  export * from './f-draggable-data-context';
12
+ export * from './i-drag-and-drop-base';
12
13
  export * from './i-draggable-item';
@@ -1,4 +1,4 @@
1
1
  import { NodeOnPointerUp } from './node.on-pointer-up';
2
2
  import { NodePrepareDragSequence } from './node.prepare-drag-sequence';
3
3
  import { IsConnectionUnderNodeHandler } from './domain/is-connection-under-node';
4
- export declare const NODE_PROVIDERS: (typeof NodePrepareDragSequence | typeof NodeOnPointerUp | typeof IsConnectionUnderNodeHandler)[];
4
+ export declare const NODE_PROVIDERS: (typeof NodeOnPointerUp | typeof NodePrepareDragSequence | typeof IsConnectionUnderNodeHandler)[];
@@ -1,4 +1,4 @@
1
1
  import { SelectionAreaPrepareDragSequence } from './selection-area.prepare-drag-sequence';
2
2
  import { SelectionAreaOnPointerUp } from './selection-area.on-pointer-up';
3
3
  import { GetCanBeSelectedItemsHandler } from './get-can-be-selected-items';
4
- export declare const SELECTION_AREA_PROVIDERS: (typeof SelectionAreaPrepareDragSequence | typeof SelectionAreaOnPointerUp | typeof GetCanBeSelectedItemsHandler)[];
4
+ export declare const SELECTION_AREA_PROVIDERS: (typeof GetCanBeSelectedItemsHandler | typeof SelectionAreaPrepareDragSequence | typeof SelectionAreaOnPointerUp)[];
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Component, ChangeDetectionStrategy, Input, Directive, Injectable, ContentChild, Inject, ViewChild, ContentChildren, EventEmitter, Output, Optional, SkipSelf, HostBinding, NgModule } from '@angular/core';
3
- import { TransformModelExtensions, DomElementExtensions, RectExtensions, sanitizeElementId, PointExtensions, Point, GuidExtensions, VectorExtensions, SizeExtensions, MouseEventExtensions, IDragAndDropBase, BooleanExtensions, EventExtensions } from '@foblex/core';
3
+ import { TransformModelExtensions, DomElementExtensions, RectExtensions, sanitizeElementId, PointExtensions, Point, GuidExtensions, VectorExtensions, SizeExtensions, MouseEventExtensions, EventExtensions, IMouseEvent, ITouchDownEvent, ITouchMoveEvent, ITouchUpEvent, BooleanExtensions } from '@foblex/core';
4
4
  import { Subject, Subscription, Observable, startWith, debounceTime } from 'rxjs';
5
5
  import { DOCUMENT, CommonModule } from '@angular/common';
6
6
 
@@ -2683,6 +2683,9 @@ class SingleSelectOnPointerDown {
2683
2683
  this.getConnectionHandler = getConnectionHandler;
2684
2684
  }
2685
2685
  handle(event) {
2686
+ if (!this.fComponentsStore.fFlow?.hostElement.contains(event.targetElement)) {
2687
+ return;
2688
+ }
2686
2689
  const node = this.fComponentsStore.findNode(event.targetElement);
2687
2690
  const connection = this.getConnectionHandler.handle(event.targetElement);
2688
2691
  this.deselectAll(node, event);
@@ -2889,6 +2892,152 @@ const SELECTION_AREA_PROVIDERS = [
2889
2892
  SelectionAreaOnPointerUp,
2890
2893
  ];
2891
2894
 
2895
+ const MOUSE_EVENT_IGNORE_TIME = 800;
2896
+ class IDragAndDropBase {
2897
+ isSyntheticEvent(event) {
2898
+ const isSyntheticEvent = !!this.lastTouchEventTime &&
2899
+ (this.lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now());
2900
+ return isSyntheticEvent;
2901
+ }
2902
+ constructor(ngZone) {
2903
+ this.ngZone = ngZone;
2904
+ this.mouseListeners = EventExtensions.emptyListener();
2905
+ this.touchListeners = EventExtensions.emptyListener();
2906
+ this.startListeners = EventExtensions.emptyListener();
2907
+ this.lastTouchEventTime = 0;
2908
+ this.isDragStarted = false;
2909
+ this.dragStartThreshold = 5;
2910
+ this.dragStartDelay = 0;
2911
+ this.dragStartTime = 0;
2912
+ this.dragStartPosition = PointExtensions.initialize();
2913
+ this.moveHandler = this.checkDragSequenceToStart;
2914
+ this.onMouseDown = (event) => {
2915
+ const isSyntheticEvent = this.isSyntheticEvent(event);
2916
+ const isFakeEvent = isFakeMousedownFromScreenReader(event);
2917
+ const mouseEvent = new IMouseEvent(event);
2918
+ if (isSyntheticEvent || isFakeEvent || this.disabled) {
2919
+ return;
2920
+ }
2921
+ let result = this.onPointerDown(mouseEvent);
2922
+ if (result) {
2923
+ this.dragStartTime = Date.now();
2924
+ this.dragStartPosition = mouseEvent.getPosition();
2925
+ this.ngZone.runOutsideAngular(() => {
2926
+ this.element.addEventListener('mousemove', this.onMouseMove);
2927
+ this.element.addEventListener('mouseup', this.onMouseUp);
2928
+ });
2929
+ this.mouseListeners = () => {
2930
+ this.element.removeEventListener('mousemove', this.onMouseMove);
2931
+ this.element.removeEventListener('mouseup', this.onMouseUp);
2932
+ };
2933
+ }
2934
+ };
2935
+ this.onTouchDown = (event) => {
2936
+ const isFakeEvent = isFakeTouchstartFromScreenReader(event);
2937
+ const touchEvent = new ITouchDownEvent(event);
2938
+ if (isFakeEvent || this.disabled) {
2939
+ return;
2940
+ }
2941
+ let result = this.onPointerDown(new ITouchDownEvent(event));
2942
+ if (result) {
2943
+ this.dragStartTime = Date.now();
2944
+ this.dragStartPosition = touchEvent.getPosition();
2945
+ this.ngZone.runOutsideAngular(() => {
2946
+ this.element.addEventListener('touchmove', this.onTouchMove);
2947
+ this.element.addEventListener('touchend', this.onTouchUp);
2948
+ });
2949
+ this.touchListeners = () => {
2950
+ this.element.removeEventListener('touchmove', this.onTouchMove);
2951
+ this.element.removeEventListener('touchend', this.onTouchUp);
2952
+ };
2953
+ }
2954
+ };
2955
+ this.onMouseMove = (event) => {
2956
+ this.moveHandler(new IMouseEvent(event));
2957
+ };
2958
+ this.onTouchMove = (event) => {
2959
+ this.moveHandler(new ITouchMoveEvent(event));
2960
+ };
2961
+ this.onMouseUp = (event) => {
2962
+ if (this.isDragStarted) {
2963
+ this.onPointerUp(new IMouseEvent(event));
2964
+ }
2965
+ this.endDragSequence();
2966
+ };
2967
+ this.onTouchUp = (event) => {
2968
+ if (this.isDragStarted) {
2969
+ this.onPointerUp(new ITouchUpEvent(event));
2970
+ }
2971
+ this.endDragSequence();
2972
+ };
2973
+ }
2974
+ checkDragSequenceToStart(event) {
2975
+ const pointerPosition = event.getPosition();
2976
+ if (!this.isDragStarted) {
2977
+ const distanceX = Math.abs(pointerPosition.x - this.dragStartPosition.x);
2978
+ const distanceY = Math.abs(pointerPosition.y - this.dragStartPosition.y);
2979
+ const isOverThreshold = distanceX + distanceY >= this.dragStartThreshold;
2980
+ if (isOverThreshold) {
2981
+ const isDelayElapsed = Date.now() >= this.dragStartTime + this.dragStartDelay;
2982
+ if (!isDelayElapsed) {
2983
+ this.endDragSequence();
2984
+ return;
2985
+ }
2986
+ event.preventDefault();
2987
+ this.prepareDragSequence(event);
2988
+ this.isDragStarted = true;
2989
+ this.moveHandler = this.onPointerMove;
2990
+ if (isTouchEvent(event.originalEvent)) {
2991
+ this.lastTouchEventTime = Date.now();
2992
+ }
2993
+ }
2994
+ }
2995
+ }
2996
+ endDragSequence() {
2997
+ this.isDragStarted = false;
2998
+ this.moveHandler = this.checkDragSequenceToStart;
2999
+ this.mouseListeners();
3000
+ this.mouseListeners = EventExtensions.emptyListener();
3001
+ this.touchListeners();
3002
+ this.touchListeners = EventExtensions.emptyListener();
3003
+ }
3004
+ subscribe(elementToSubscribe) {
3005
+ if (this.element) {
3006
+ this.unsubscribe();
3007
+ }
3008
+ this.element = elementToSubscribe;
3009
+ this.ngZone.runOutsideAngular(() => {
3010
+ this.element.addEventListener('mousedown', this.onMouseDown, EventExtensions.activeListener());
3011
+ this.element.addEventListener('touchstart', this.onTouchDown, EventExtensions.passiveListener());
3012
+ });
3013
+ this.startListeners = () => {
3014
+ this.element.removeEventListener('mousedown', this.onMouseDown, EventExtensions.activeListener());
3015
+ this.element.removeEventListener('touchstart', this.onTouchDown, EventExtensions.passiveListener());
3016
+ };
3017
+ }
3018
+ unsubscribe() {
3019
+ this.startListeners();
3020
+ this.startListeners = EventExtensions.emptyListener();
3021
+ this.touchListeners();
3022
+ this.touchListeners = EventExtensions.emptyListener();
3023
+ this.mouseListeners();
3024
+ this.mouseListeners = EventExtensions.emptyListener();
3025
+ }
3026
+ }
3027
+ function isTouchEvent(event) {
3028
+ return event.type[0] === 't';
3029
+ }
3030
+ function isFakeMousedownFromScreenReader(event) {
3031
+ return event.buttons === 0 || (event.offsetX === 0 && event.offsetY === 0);
3032
+ }
3033
+ function isFakeTouchstartFromScreenReader(event) {
3034
+ const touch = (event.touches && event.touches[0]) || (event.changedTouches && event.changedTouches[0]);
3035
+ return (!!touch &&
3036
+ touch.identifier === -1 &&
3037
+ (touch.radiusX == null || touch.radiusX === 1) &&
3038
+ (touch.radiusY == null || touch.radiusY === 1));
3039
+ }
3040
+
2892
3041
  const F_DRAGGABLE = new InjectionToken('F_DRAGGABLE');
2893
3042
  class FDraggableBase extends IDragAndDropBase {
2894
3043
  constructor(ngZone) {