@foblex/flow 18.2.0 → 18.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.
Files changed (56) hide show
  1. package/README.md +11 -1
  2. package/domain/f-connection/create-connection-markers/create-connection-markers.d.ts +3 -2
  3. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +2 -0
  4. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +33 -6
  5. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +46 -3
  6. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -6
  7. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +6 -7
  8. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +6 -7
  9. package/esm2022/f-connection/providers.mjs +8 -4
  10. package/esm2022/f-connection-v2/components/connection-gradient/components/index.mjs +2 -0
  11. package/esm2022/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.mjs +17 -0
  12. package/esm2022/f-connection-v2/components/connection-gradient/components/render/index.mjs +3 -0
  13. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.mjs +81 -0
  14. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/index.mjs +2 -0
  15. package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +14 -46
  16. package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +2 -1
  17. package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +2 -3
  18. package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +11 -7
  19. package/esm2022/f-connection-v2/components/f-connection-base.mjs +13 -9
  20. package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +1 -1
  21. package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +3 -3
  22. package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +3 -3
  23. package/esm2022/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker.mjs +11 -4
  24. package/esm2022/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled.mjs +3 -2
  25. package/esm2022/f-connection-worker/model/f-connection-worker.mjs +5 -1
  26. package/esm2022/f-connection-worker/worker/connection-worker-runtime.mjs +235 -0
  27. package/esm2022/f-flow/f-flow.component.mjs +8 -5
  28. package/esm2022/f-flow.module.mjs +37 -36
  29. package/esm2022/f-storage/f-components-store.mjs +17 -1
  30. package/esm2022/f-virtual/f-virtual-for.mjs +33 -3
  31. package/f-connection/f-connection/f-connection.component.d.ts +1 -1
  32. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +1 -1
  33. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +1 -1
  34. package/f-connection/providers.d.ts +3 -3
  35. package/f-connection-v2/components/connection-gradient/components/index.d.ts +1 -0
  36. package/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.d.ts +8 -0
  37. package/f-connection-v2/components/connection-gradient/components/render/index.d.ts +2 -0
  38. package/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.d.ts +25 -0
  39. package/f-connection-v2/components/connection-gradient/components/render/models/index.d.ts +1 -0
  40. package/f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts +3 -11
  41. package/f-connection-v2/components/connection-gradient/index.d.ts +1 -0
  42. package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +3 -5
  43. package/f-connection-v2/components/connection-path/f-connection-path.d.ts +3 -2
  44. package/f-connection-v2/components/f-connection-base.d.ts +7 -4
  45. package/f-connection-v2/models/f-connection-components-parent.d.ts +0 -2
  46. package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -1
  47. package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -1
  48. package/f-connection-worker/model/f-connection-worker.d.ts +1 -0
  49. package/f-connection-worker/worker/connection-worker-runtime.d.ts +11 -0
  50. package/f-flow/f-flow.component.d.ts +1 -0
  51. package/f-flow.module.d.ts +38 -37
  52. package/f-storage/f-components-store.d.ts +5 -0
  53. package/f-virtual/f-virtual-for.d.ts +8 -2
  54. package/fesm2022/foblex-flow.mjs +509 -75
  55. package/fesm2022/foblex-flow.mjs.map +1 -1
  56. package/package.json +1 -1
@@ -5,11 +5,10 @@ import { FMediator } from '@foblex/mediator';
5
5
  import { AddSnapConnectionToStoreRequest, RemoveSnapConnectionFromStoreRequest, } from '../../domain';
6
6
  import { EFConnectionBehavior, EFConnectionConnectableSide, EFConnectionType, F_CONNECTION_COMPONENTS_PARENT, FConnectionBase, } from '../../f-connection-v2';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start";
8
+ import * as i1 from "../../f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer";
9
9
  import * as i2 from "../../f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end";
10
- import * as i3 from "../../f-connection-v2/components/connection-gradient/f-connection-gradient";
11
- import * as i4 from "../../f-connection-v2/components/connection-path/f-connection-path";
12
- import * as i5 from "../../f-connection-v2/components/connection-selection/f-connection-selection";
10
+ import * as i3 from "../../f-connection-v2/components/connection-path/f-connection-path";
11
+ import * as i4 from "../../f-connection-v2/components/connection-selection/f-connection-selection";
13
12
  let uniqueId = 0;
14
13
  export class FSnapConnectionComponent extends FConnectionBase {
15
14
  fId = signal(`f-snap-connection-${uniqueId++}`);
@@ -47,13 +46,13 @@ export class FSnapConnectionComponent extends FConnectionBase {
47
46
  this._mediator.execute(new RemoveSnapConnectionFromStoreRequest());
48
47
  }
49
48
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fSnapThreshold: { classPropertyName: "fSnapThreshold", publicName: "fSnapThreshold", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionDragHandleStart, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: i2.FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i3.FConnectionGradient, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i4.FConnectionPath, selector: "path[f-connection-path]" }, { kind: "component", type: i5.FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fSnapThreshold: { classPropertyName: "fSnapThreshold", publicName: "fSnapThreshold", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionGradientRenderer, selector: "linearGradient[fConnectionGradientRenderer]", inputs: ["fConnectionGradientRendererFor"] }, { kind: "component", type: i2.FConnectionDragHandleEnd, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i3.FConnectionPath, selector: "path[f-connection-path]", inputs: ["useGradient"] }, { kind: "component", type: i4.FConnectionSelection, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
50
  }
52
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, decorators: [{
53
52
  type: Component,
54
53
  args: [{ selector: 'f-snap-connection', changeDetection: ChangeDetectionStrategy.OnPush, host: {
55
54
  class: 'f-component f-connection f-snap-connection',
56
- }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content />\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
55
+ }, providers: [{ provide: F_CONNECTION_COMPONENTS_PARENT, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <ng-content select=\"svg[fMarker]\" />\n <g class=\"f-connection-group\">\n @if (fGradient(); as gradient) {\n <linearGradient\n fConnectionGradientRenderer\n [fConnectionGradientRendererFor]=\"gradient\"\n ></linearGradient>\n }\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [useGradient]=\"!!fGradient()\" [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n </g>\n</svg>\n<ng-content select=\"f-connection-gradient\" />\n\n@if (fContents().length) {\n <ng-content select=\"[fConnectionContent]\" />\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-content{pointer-events:all}\n"] }]
57
56
  }], propDecorators: { fSnapThreshold: [{
58
57
  type: Input,
59
58
  args: [{ transform: numberAttribute }]
@@ -69,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
69
68
  }], fType: [{
70
69
  type: Input
71
70
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsZUFBZSxFQUlmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLG9DQUFvQyxHQUNyQyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUUvQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFZakIsTUFBTSxPQUFPLHdCQUNYLFNBQVEsZUFBZTtJQUdQLEdBQUcsR0FBRyxNQUFNLENBQVMscUJBQXFCLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUdqRSxjQUFjLEdBQVcsRUFBRSxDQUFDO0lBRW5CLFNBQVMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdkIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUd0QixPQUFPLEdBQVcsQ0FBQyxDQUFDO0lBR3BCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFHckIsU0FBUyxHQUF5QixvQkFBb0IsQ0FBQyxLQUFLLENBQUM7SUFHN0QsS0FBSyxHQUE4QixnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7SUFFN0QsVUFBVSxHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLEVBQUU7UUFDdEUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPLFVBQVUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDbEUsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVhLFdBQVcsR0FBRyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxFQUFFO1FBQ3ZFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsT0FBTyxVQUFVLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFvQixlQUFlO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRWdCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsUUFBUTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLG9DQUFvQyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO3dHQXpEVSx3QkFBd0I7NEZBQXhCLHdCQUF3Qix1TEFNZixlQUFlLDJIQU9mLGVBQWUsMkhBR2YsZUFBZSxpSUFHZixDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsb0JBQW9CLENBQUMsbWVBckJqRixDQUFDLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLHNFQ3RDakcsd2lCQWlCQTs7NEZEdUJhLHdCQUF3QjtrQkFWcEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsNENBQTRDO3FCQUNwRCxhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxDQUFDOzhCQVN4RixjQUFjO3NCQURwQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFRckIsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLE9BQU87c0JBRHRCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUlyQixTQUFTO3NCQUR4QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2dCQUk5RSxLQUFLO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVtaXRDb25uZWN0aW9uc0NoYW5nZXNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkU25hcENvbm5lY3Rpb25Ub1N0b3JlUmVxdWVzdCxcbiAgUmVtb3ZlU25hcENvbm5lY3Rpb25Gcm9tU3RvcmVSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHtcbiAgRUZDb25uZWN0aW9uQmVoYXZpb3IsXG4gIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZSxcbiAgRUZDb25uZWN0aW9uVHlwZSxcbiAgRl9DT05ORUNUSU9OX0NPTVBPTkVOVFNfUEFSRU5ULFxuICBGQ29ubmVjdGlvbkJhc2UsXG59IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbi12Mic7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ytc25hcC1jb25uZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ytc25hcC1jb25uZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2YtY29tcG9uZW50IGYtY29ubmVjdGlvbiBmLXNuYXAtY29ubmVjdGlvbicsXG4gIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRl9DT05ORUNUSU9OX0NPTVBPTkVOVFNfUEFSRU5ULCB1c2VFeGlzdGluZzogRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBGU25hcENvbm5lY3Rpb25Db21wb25lbnRcbiAgZXh0ZW5kcyBGQ29ubmVjdGlvbkJhc2VcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIHB1YmxpYyBvdmVycmlkZSBmSWQgPSBzaWduYWw8c3RyaW5nPihgZi1zbmFwLWNvbm5lY3Rpb24tJHt1bmlxdWVJZCsrfWApO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBmU25hcFRocmVzaG9sZDogbnVtYmVyID0gMjA7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRJZCA9IHNpZ25hbCgnJyk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZJbnB1dElkID0gc2lnbmFsKCcnKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlJhZGl1czogbnVtYmVyID0gODtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk9mZnNldDogbnVtYmVyID0gMTI7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IHVua25vd24pID0+IGNhc3RUb0VudW0odmFsdWUsICdmQmVoYXZpb3InLCBFRkNvbm5lY3Rpb25CZWhhdmlvcikgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZCZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3IgPSBFRkNvbm5lY3Rpb25CZWhhdmlvci5GSVhFRDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlR5cGU6IEVGQ29ubmVjdGlvblR5cGUgfCBzdHJpbmcgPSBFRkNvbm5lY3Rpb25UeXBlLlNUUkFJR0hUO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5wdXRTaWRlID0gaW5wdXQoRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLkRFRkFVTFQsIHtcbiAgICB0cmFuc2Zvcm06ICh4KSA9PiB7XG4gICAgICByZXR1cm4gY2FzdFRvRW51bSh4LCAnZklucHV0U2lkZScsIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRTaWRlID0gaW5wdXQoRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLkRFRkFVTFQsIHtcbiAgICB0cmFuc2Zvcm06ICh4KSA9PiB7XG4gICAgICByZXR1cm4gY2FzdFRvRW51bSh4LCAnZk91dHB1dFNpZGUnLCBFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgYm91bmRpbmdFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZlBhdGgoKS5ob3N0RWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEFkZFNuYXBDb25uZWN0aW9uVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBFbWl0Q29ubmVjdGlvbnNDaGFuZ2VzUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBSZW1vdmVTbmFwQ29ubmVjdGlvbkZyb21TdG9yZVJlcXVlc3QoKSk7XG4gIH1cbn1cbiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8ZGVmcyAjZGVmcz48L2RlZnM+XG4gIDxuZy1jb250ZW50IC8+XG4gIDxnIGNsYXNzPVwiZi1jb25uZWN0aW9uLWdyb3VwXCI+XG4gICAgPGxpbmVhckdyYWRpZW50IGZDb25uZWN0aW9uR3JhZGllbnQ+PC9saW5lYXJHcmFkaWVudD5cbiAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgPGc+XG4gICAgICA8cGF0aCBmLWNvbm5lY3Rpb24tcGF0aCBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgICA8Y2lyY2xlIGYtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1zdGFydCByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgPGNpcmNsZSBmLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtZW5kIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuICA8L2c+XG48L3N2Zz5cblxuQGlmIChmQ29udGVudHMoKS5sZW5ndGgpIHtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG59XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsZUFBZSxFQUlmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLG9DQUFvQyxHQUNyQyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBRS9CLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQVlqQixNQUFNLE9BQU8sd0JBQ1gsU0FBUSxlQUFlO0lBR1AsR0FBRyxHQUFHLE1BQU0sQ0FBUyxxQkFBcUIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBR2pFLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFFbkIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV2QixRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBR3RCLE9BQU8sR0FBVyxDQUFDLENBQUM7SUFHcEIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUdyQixTQUFTLEdBQXlCLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUc3RCxLQUFLLEdBQThCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUU3RCxVQUFVLEdBQUcsS0FBSyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sRUFBRTtRQUN0RSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLE9BQU8sVUFBVSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUNsRSxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBRWEsV0FBVyxHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLEVBQUU7UUFDdkUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPLFVBQVUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDbkUsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILElBQW9CLGVBQWU7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFZ0IsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV4QyxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksNkJBQTZCLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7d0dBekRVLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLHVMQU1mLGVBQWUsMkhBT2YsZUFBZSwySEFHZixlQUFlLGlJQUdmLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxtZUFyQmpGLENBQUMsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLENBQUMsc0VDdENqRyxxc0JBc0JBOzs0RkRrQmEsd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSw0Q0FBNEM7cUJBQ3BELGFBQ1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxXQUFXLDBCQUEwQixFQUFFLENBQUM7OEJBU3hGLGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVFyQixPQUFPO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJckIsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLFNBQVM7c0JBRHhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7Z0JBSTlFLEtBQUs7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW1pdENvbm5lY3Rpb25zQ2hhbmdlc1JlcXVlc3QgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgY2FzdFRvRW51bSB9IGZyb20gJ0Bmb2JsZXgvdXRpbHMnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBBZGRTbmFwQ29ubmVjdGlvblRvU3RvcmVSZXF1ZXN0LFxuICBSZW1vdmVTbmFwQ29ubmVjdGlvbkZyb21TdG9yZVJlcXVlc3QsXG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICBFRkNvbm5lY3Rpb25CZWhhdmlvcixcbiAgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLFxuICBFRkNvbm5lY3Rpb25UeXBlLFxuICBGX0NPTk5FQ1RJT05fQ09NUE9ORU5UU19QQVJFTlQsXG4gIEZDb25uZWN0aW9uQmFzZSxcbn0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uLXYyJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZi1zbmFwLWNvbm5lY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mLXNuYXAtY29ubmVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZi1jb21wb25lbnQgZi1jb25uZWN0aW9uIGYtc25hcC1jb25uZWN0aW9uJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX0NPTk5FQ1RJT05fQ09NUE9ORU5UU19QQVJFTlQsIHVzZUV4aXN0aW5nOiBGU25hcENvbm5lY3Rpb25Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudFxuICBleHRlbmRzIEZDb25uZWN0aW9uQmFzZVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcHVibGljIG92ZXJyaWRlIGZJZCA9IHNpZ25hbDxzdHJpbmc+KGBmLXNuYXAtY29ubmVjdGlvbi0ke3VuaXF1ZUlkKyt9YCk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIGZTbmFwVGhyZXNob2xkOiBudW1iZXIgPSAyMDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZk91dHB1dElkID0gc2lnbmFsKCcnKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZklucHV0SWQgPSBzaWduYWwoJycpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmUmFkaXVzOiBudW1iZXIgPSA4O1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmT2Zmc2V0OiBudW1iZXIgPSAxMjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogdW5rbm93bikgPT4gY2FzdFRvRW51bSh2YWx1ZSwgJ2ZCZWhhdmlvcicsIEVGQ29ubmVjdGlvbkJlaGF2aW9yKSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkJlaGF2aW9yOiBFRkNvbm5lY3Rpb25CZWhhdmlvciA9IEVGQ29ubmVjdGlvbkJlaGF2aW9yLkZJWEVEO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmVHlwZTogRUZDb25uZWN0aW9uVHlwZSB8IHN0cmluZyA9IEVGQ29ubmVjdGlvblR5cGUuU1RSQUlHSFQ7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZJbnB1dFNpZGUgPSBpbnB1dChFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUuREVGQVVMVCwge1xuICAgIHRyYW5zZm9ybTogKHgpID0+IHtcbiAgICAgIHJldHVybiBjYXN0VG9FbnVtKHgsICdmSW5wdXRTaWRlJywgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlKTtcbiAgICB9LFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZk91dHB1dFNpZGUgPSBpbnB1dChFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUuREVGQVVMVCwge1xuICAgIHRyYW5zZm9ybTogKHgpID0+IHtcbiAgICAgIHJldHVybiBjYXN0VG9FbnVtKHgsICdmT3V0cHV0U2lkZScsIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBib3VuZGluZ0VsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mUGF0aCgpLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgQWRkU25hcENvbm5lY3Rpb25Ub1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEVtaXRDb25uZWN0aW9uc0NoYW5nZXNSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFJlbW92ZVNuYXBDb25uZWN0aW9uRnJvbVN0b3JlUmVxdWVzdCgpKTtcbiAgfVxufVxuIiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxkZWZzICNkZWZzPjwvZGVmcz5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3ZnW2ZNYXJrZXJdXCIgLz5cbiAgPGcgY2xhc3M9XCJmLWNvbm5lY3Rpb24tZ3JvdXBcIj5cbiAgICBAaWYgKGZHcmFkaWVudCgpOyBhcyBncmFkaWVudCkge1xuICAgICAgPGxpbmVhckdyYWRpZW50XG4gICAgICAgIGZDb25uZWN0aW9uR3JhZGllbnRSZW5kZXJlclxuICAgICAgICBbZkNvbm5lY3Rpb25HcmFkaWVudFJlbmRlcmVyRm9yXT1cImdyYWRpZW50XCJcbiAgICAgID48L2xpbmVhckdyYWRpZW50PlxuICAgIH1cbiAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgPGc+XG4gICAgICA8cGF0aCBmLWNvbm5lY3Rpb24tcGF0aCBbdXNlR3JhZGllbnRdPVwiISFmR3JhZGllbnQoKVwiIFthdHRyLmRdPVwicGF0aFwiPjwvcGF0aD5cbiAgICAgIDxjaXJjbGUgZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLWVuZCByPVwiOFwiPjwvY2lyY2xlPlxuICAgIDwvZz5cbiAgPC9nPlxuPC9zdmc+XG48bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb24tZ3JhZGllbnRcIiAvPlxuXG5AaWYgKGZDb250ZW50cygpLmxlbmd0aCkge1xuICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkNvbm5lY3Rpb25Db250ZW50XVwiIC8+XG59XG4iXX0=
@@ -1,11 +1,10 @@
1
1
  import { FConnectionComponent } from './f-connection';
2
2
  import { FConnectionForCreateComponent } from './f-connection-for-create';
3
3
  import { FSnapConnectionComponent } from './f-snap-connection';
4
- import { FConnectionContent, FConnectionWaypoints, FConnectionDragHandleEnd, FConnectionDragHandleStart, FConnectionGradient, FConnectionMarker, FConnectionPath, FConnectionSelection, } from '../f-connection-v2';
4
+ import { FConnectionContent, FConnectionDragHandleEnd, FConnectionDragHandleStart, FConnectionGradient, FConnectionGradientRenderer, FConnectionMarker, FConnectionPath, FConnectionSelection, FConnectionWaypoints, } from '../f-connection-v2';
5
5
  export const F_CONNECTION_PROVIDERS = [
6
6
  FConnectionDragHandleStart,
7
7
  FConnectionDragHandleEnd,
8
- FConnectionGradient,
9
8
  FConnectionPath,
10
9
  FConnectionSelection,
11
10
  FConnectionMarker,
@@ -13,5 +12,10 @@ export const F_CONNECTION_PROVIDERS = [
13
12
  FConnectionForCreateComponent,
14
13
  FSnapConnectionComponent,
15
14
  ];
16
- export const F_CONNECTION_IMPORTS_EXPORTS = [FConnectionContent, FConnectionWaypoints];
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixlQUFlLEVBQ2Ysb0JBQW9CLEdBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsMEJBQTBCO0lBQzFCLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFFakIsb0JBQW9CO0lBQ3BCLDZCQUE2QjtJQUM3Qix3QkFBd0I7Q0FDekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25Gb3JDcmVhdGVDb21wb25lbnQgfSBmcm9tICcuL2YtY29ubmVjdGlvbi1mb3ItY3JlYXRlJztcbmltcG9ydCB7IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZi1zbmFwLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3Rpb25Db250ZW50LFxuICBGQ29ubmVjdGlvbldheXBvaW50cyxcbiAgRkNvbm5lY3Rpb25EcmFnSGFuZGxlRW5kLFxuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVTdGFydCxcbiAgRkNvbm5lY3Rpb25HcmFkaWVudCxcbiAgRkNvbm5lY3Rpb25NYXJrZXIsXG4gIEZDb25uZWN0aW9uUGF0aCxcbiAgRkNvbm5lY3Rpb25TZWxlY3Rpb24sXG59IGZyb20gJy4uL2YtY29ubmVjdGlvbi12Mic7XG5cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RJT05fUFJPVklERVJTID0gW1xuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVTdGFydCxcbiAgRkNvbm5lY3Rpb25EcmFnSGFuZGxlRW5kLFxuICBGQ29ubmVjdGlvbkdyYWRpZW50LFxuICBGQ29ubmVjdGlvblBhdGgsXG4gIEZDb25uZWN0aW9uU2VsZWN0aW9uLFxuICBGQ29ubmVjdGlvbk1hcmtlcixcblxuICBGQ29ubmVjdGlvbkNvbXBvbmVudCxcbiAgRkNvbm5lY3Rpb25Gb3JDcmVhdGVDb21wb25lbnQsXG4gIEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCxcbl07XG5cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RJT05fSU1QT1JUU19FWFBPUlRTID0gW0ZDb25uZWN0aW9uQ29udGVudCwgRkNvbm5lY3Rpb25XYXlwb2ludHNdO1xuIl19
15
+ export const F_CONNECTION_IMPORTS_EXPORTS = [
16
+ FConnectionContent,
17
+ FConnectionGradient,
18
+ FConnectionGradientRenderer,
19
+ FConnectionWaypoints,
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzNCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG9CQUFvQixHQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIsZUFBZTtJQUNmLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFFakIsb0JBQW9CO0lBQ3BCLDZCQUE2QjtJQUM3Qix3QkFBd0I7Q0FDekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLG9CQUFvQjtDQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkNvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkZvckNyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUnO1xuaW1wb3J0IHsgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mLXNuYXAtY29ubmVjdGlvbic7XG5pbXBvcnQge1xuICBGQ29ubmVjdGlvbkNvbnRlbnQsXG4gIEZDb25uZWN0aW9uRHJhZ0hhbmRsZUVuZCxcbiAgRkNvbm5lY3Rpb25EcmFnSGFuZGxlU3RhcnQsXG4gIEZDb25uZWN0aW9uR3JhZGllbnQsXG4gIEZDb25uZWN0aW9uR3JhZGllbnRSZW5kZXJlcixcbiAgRkNvbm5lY3Rpb25NYXJrZXIsXG4gIEZDb25uZWN0aW9uUGF0aCxcbiAgRkNvbm5lY3Rpb25TZWxlY3Rpb24sXG4gIEZDb25uZWN0aW9uV2F5cG9pbnRzLFxufSBmcm9tICcuLi9mLWNvbm5lY3Rpb24tdjInO1xuXG5leHBvcnQgY29uc3QgRl9DT05ORUNUSU9OX1BST1ZJREVSUyA9IFtcbiAgRkNvbm5lY3Rpb25EcmFnSGFuZGxlU3RhcnQsXG4gIEZDb25uZWN0aW9uRHJhZ0hhbmRsZUVuZCxcbiAgRkNvbm5lY3Rpb25QYXRoLFxuICBGQ29ubmVjdGlvblNlbGVjdGlvbixcbiAgRkNvbm5lY3Rpb25NYXJrZXIsXG5cbiAgRkNvbm5lY3Rpb25Db21wb25lbnQsXG4gIEZDb25uZWN0aW9uRm9yQ3JlYXRlQ29tcG9uZW50LFxuICBGU25hcENvbm5lY3Rpb25Db21wb25lbnQsXG5dO1xuXG5leHBvcnQgY29uc3QgRl9DT05ORUNUSU9OX0lNUE9SVFNfRVhQT1JUUyA9IFtcbiAgRkNvbm5lY3Rpb25Db250ZW50LFxuICBGQ29ubmVjdGlvbkdyYWRpZW50LFxuICBGQ29ubmVjdGlvbkdyYWRpZW50UmVuZGVyZXIsXG4gIEZDb25uZWN0aW9uV2F5cG9pbnRzLFxuXTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './render';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmVuZGVyJztcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
+ import { FConnectionGradientRendererBase } from './models';
3
+ import * as i0 from "@angular/core";
4
+ export class FConnectionGradientRenderer extends FConnectionGradientRendererBase {
5
+ gradient = input.required({
6
+ alias: 'fConnectionGradientRendererFor',
7
+ });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRenderer, deps: null, target: i0.ɵɵFactoryTarget.Component });
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FConnectionGradientRenderer, isStandalone: true, selector: "linearGradient[fConnectionGradientRenderer]", inputs: { gradient: { classPropertyName: "gradient", publicName: "fConnectionGradientRendererFor", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.id": "gradientId()" } }, usesInheritance: true, ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop offset=\"0%\" />\n <svg:stop offset=\"100%\" />\n</ng-container>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRenderer, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'linearGradient[fConnectionGradientRenderer]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
14
+ '[attr.id]': 'gradientId()',
15
+ }, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop offset=\"0%\" />\n <svg:stop offset=\"100%\" />\n</ng-container>\n" }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLWdyYWRpZW50L2NvbXBvbmVudHMvcmVuZGVyL2YtY29ubmVjdGlvbi1ncmFkaWVudC1yZW5kZXJlci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1ncmFkaWVudC9jb21wb25lbnRzL3JlbmRlci9mLWNvbm5lY3Rpb24tZ3JhZGllbnQtcmVuZGVyZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBWTNELE1BQU0sT0FBTywyQkFBNEIsU0FBUSwrQkFBK0I7SUFDckQsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQTBCO1FBQzFFLEtBQUssRUFBRSxnQ0FBZ0M7S0FDeEMsQ0FBQyxDQUFDO3dHQUhRLDJCQUEyQjs0RkFBM0IsMkJBQTJCLHFWQ2J4QywwSUFJQTs7NEZEU2EsMkJBQTJCO2tCQVR2QyxTQUFTOytCQUNFLDZDQUE2QyxjQUUzQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osV0FBVyxFQUFFLGNBQWM7cUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uR3JhZGllbnRSZW5kZXJlckJhc2UgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkdyYWRpZW50QmFzZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpbmVhckdyYWRpZW50W2ZDb25uZWN0aW9uR3JhZGllbnRSZW5kZXJlcl0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1jb25uZWN0aW9uLWdyYWRpZW50LXJlbmRlcmVyLmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnZ3JhZGllbnRJZCgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25HcmFkaWVudFJlbmRlcmVyIGV4dGVuZHMgRkNvbm5lY3Rpb25HcmFkaWVudFJlbmRlcmVyQmFzZSB7XG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBncmFkaWVudCA9IGlucHV0LnJlcXVpcmVkPEZDb25uZWN0aW9uR3JhZGllbnRCYXNlPih7XG4gICAgYWxpYXM6ICdmQ29ubmVjdGlvbkdyYWRpZW50UmVuZGVyZXJGb3InLFxuICB9KTtcbn1cbiIsIjxuZy1jb250YWluZXIgeG1sbnM6c3ZnPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHN2ZzpzdG9wIG9mZnNldD1cIjAlXCIgLz5cbiAgPHN2ZzpzdG9wIG9mZnNldD1cIjEwMCVcIiAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './models';
2
+ export * from './f-connection-gradient-renderer';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvY29tcG9uZW50cy9yZW5kZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uLWdyYWRpZW50LXJlbmRlcmVyJztcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { computed, Directive, effect, ElementRef, inject, Injector, untracked, } from '@angular/core';
2
+ import { Point } from '@foblex/2d';
3
+ import { F_CONNECTION_COMPONENTS_PARENT } from '../../../../../models';
4
+ import { createGradientDomIdentifier } from '../../../../../utils';
5
+ import * as i0 from "@angular/core";
6
+ export class FConnectionGradientRendererBase {
7
+ _connection = inject(F_CONNECTION_COMPONENTS_PARENT);
8
+ _hostElement = inject((ElementRef)).nativeElement;
9
+ _injector = inject(Injector);
10
+ _hostAttributes = new Map();
11
+ _startColor;
12
+ _endColor;
13
+ gradientId = computed(() => createGradientDomIdentifier(this._connection.fId()));
14
+ ngOnInit() {
15
+ this._listenColorChanges();
16
+ }
17
+ _listenColorChanges() {
18
+ effect(() => {
19
+ this.gradient().fStartColor();
20
+ this.gradient().fEndColor();
21
+ untracked(() => {
22
+ this._updateGradient();
23
+ });
24
+ }, { injector: this._injector });
25
+ }
26
+ get stop1Element() {
27
+ return this._hostElement.children.item(0);
28
+ }
29
+ get stop2Element() {
30
+ return this._hostElement.children.item(1);
31
+ }
32
+ redraw(line) {
33
+ const x = line.point2.x - line.point1.x;
34
+ const y = line.point2.y - line.point1.y;
35
+ const distance = Math.sqrt(x * x + y * y) || 0.01;
36
+ const from = new Point(0.5 - (0.5 * x) / distance, 0.5 - (0.5 * y) / distance);
37
+ this._setHostAttribute('x1', from.x.toString());
38
+ this._setHostAttribute('y1', from.y.toString());
39
+ const to = new Point(0.5 + (0.5 * x) / distance, 0.5 + (0.5 * y) / distance);
40
+ this._setHostAttribute('x2', to.x.toString());
41
+ this._setHostAttribute('y2', to.y.toString());
42
+ this._updateGradient();
43
+ }
44
+ _updateGradient() {
45
+ const gradient = this.gradient();
46
+ this._setFromColor(gradient.fStartColor());
47
+ this._setToColor(gradient.fEndColor());
48
+ }
49
+ _setFromColor(color) {
50
+ const nextColor = color || 'transparent';
51
+ if (this._startColor === nextColor) {
52
+ return;
53
+ }
54
+ this._startColor = nextColor;
55
+ this.stop1Element.setAttribute('stop-color', nextColor);
56
+ this.stop1Element.style.setProperty('stop-color', nextColor);
57
+ }
58
+ _setToColor(color) {
59
+ const nextColor = color || 'transparent';
60
+ if (this._endColor === nextColor) {
61
+ return;
62
+ }
63
+ this._endColor = nextColor;
64
+ this.stop2Element.setAttribute('stop-color', nextColor);
65
+ this.stop2Element.style.setProperty('stop-color', nextColor);
66
+ }
67
+ _setHostAttribute(name, value) {
68
+ if (this._hostAttributes.get(name) === value) {
69
+ return;
70
+ }
71
+ this._hostAttributes.set(name, value);
72
+ this._hostElement.setAttribute(name, value);
73
+ }
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRendererBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
75
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionGradientRendererBase, ngImport: i0 });
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradientRendererBase, decorators: [{
78
+ type: Directive,
79
+ args: [{}]
80
+ }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LXJlbmRlcmVyLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvY29tcG9uZW50cy9yZW5kZXIvbW9kZWxzL2YtY29ubmVjdGlvbi1ncmFkaWVudC1yZW5kZXJlci1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFHUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFTLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJbkUsTUFBTSxPQUFnQiwrQkFBK0I7SUFDbEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3JELFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUFvQyxDQUFBLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDMUUsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDckQsV0FBVyxDQUFVO0lBQ3JCLFNBQVMsQ0FBVTtJQUlYLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFMUYsUUFBUTtRQUNiLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxt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QyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQXlCO1FBQzNDLE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxhQUFhLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVksRUFBRSxLQUFhO1FBQ25ELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7d0dBckZtQiwrQkFBK0I7NEZBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEcEQsU0FBUzttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29tcHV0ZWQsXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dFNpZ25hbCxcbiAgT25Jbml0LFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUxpbmUsIFBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fQ09NUE9ORU5UU19QQVJFTlQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlR3JhZGllbnREb21JZGVudGlmaWVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25HcmFkaWVudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHt9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZDb25uZWN0aW9uR3JhZGllbnRSZW5kZXJlckJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25uZWN0aW9uID0gaW5qZWN0KEZfQ09OTkVDVElPTl9DT01QT05FTlRTX1BBUkVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PikubmF0aXZlRWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0QXR0cmlidXRlcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIHByaXZhdGUgX3N0YXJ0Q29sb3I/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2VuZENvbG9yPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBncmFkaWVudDogSW5wdXRTaWduYWw8RkNvbm5lY3Rpb25HcmFkaWVudEJhc2U+O1xuXG4gIHB1YmxpYyByZWFkb25seSBncmFkaWVudElkID0gY29tcHV0ZWQoKCkgPT4gY3JlYXRlR3JhZGllbnREb21JZGVudGlmaWVyKHRoaXMuX2Nvbm5lY3Rpb24uZklkKCkpKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdGVuQ29sb3JDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Db2xvckNoYW5nZXMoKTogdm9pZCB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmdyYWRpZW50KCkuZlN0YXJ0Q29sb3IoKTtcbiAgICAgICAgdGhpcy5ncmFkaWVudCgpLmZFbmRDb2xvcigpO1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3VwZGF0ZUdyYWRpZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RvcDFFbGVtZW50KCk6IFNWR1N0b3BFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5faG9zdEVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKSBhcyBTVkdTdG9wRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RvcDJFbGVtZW50KCk6IFNWR1N0b3BFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5faG9zdEVsZW1lbnQuY2hpbGRyZW4uaXRlbSgxKSBhcyBTVkdTdG9wRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcobGluZTogSUxpbmUpOiB2b2lkIHtcbiAgICBjb25zdCB4OiBudW1iZXIgPSBsaW5lLnBvaW50Mi54IC0gbGluZS5wb2ludDEueDtcbiAgICBjb25zdCB5OiBudW1iZXIgPSBsaW5lLnBvaW50Mi55IC0gbGluZS5wb2ludDEueTtcbiAgICBjb25zdCBkaXN0YW5jZTogbnVtYmVyID0gTWF0aC5zcXJ0KHggKiB4ICsgeSAqIHkpIHx8IDAuMDE7XG5cbiAgICBjb25zdCBmcm9tID0gbmV3IFBvaW50KDAuNSAtICgwLjUgKiB4KSAvIGRpc3RhbmNlLCAwLjUgLSAoMC41ICogeSkgLyBkaXN0YW5jZSk7XG5cbiAgICB0aGlzLl9zZXRIb3N0QXR0cmlidXRlKCd4MScsIGZyb20ueC50b1N0cmluZygpKTtcbiAgICB0aGlzLl9zZXRIb3N0QXR0cmlidXRlKCd5MScsIGZyb20ueS50b1N0cmluZygpKTtcblxuICAgIGNvbnN0IHRvID0gbmV3IFBvaW50KDAuNSArICgwLjUgKiB4KSAvIGRpc3RhbmNlLCAwLjUgKyAoMC41ICogeSkgLyBkaXN0YW5jZSk7XG4gICAgdGhpcy5fc2V0SG9zdEF0dHJpYnV0ZSgneDInLCB0by54LnRvU3RyaW5nKCkpO1xuICAgIHRoaXMuX3NldEhvc3RBdHRyaWJ1dGUoJ3kyJywgdG8ueS50b1N0cmluZygpKTtcbiAgICB0aGlzLl91cGRhdGVHcmFkaWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlR3JhZGllbnQoKTogdm9pZCB7XG4gICAgY29uc3QgZ3JhZGllbnQgPSB0aGlzLmdyYWRpZW50KCk7XG4gICAgdGhpcy5fc2V0RnJvbUNvbG9yKGdyYWRpZW50LmZTdGFydENvbG9yKCkpO1xuICAgIHRoaXMuX3NldFRvQ29sb3IoZ3JhZGllbnQuZkVuZENvbG9yKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RnJvbUNvbG9yKGNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0Q29sb3IgPSBjb2xvciB8fCAndHJhbnNwYXJlbnQnO1xuICAgIGlmICh0aGlzLl9zdGFydENvbG9yID09PSBuZXh0Q29sb3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc3RhcnRDb2xvciA9IG5leHRDb2xvcjtcbiAgICB0aGlzLnN0b3AxRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0b3AtY29sb3InLCBuZXh0Q29sb3IpO1xuICAgIHRoaXMuc3RvcDFFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdzdG9wLWNvbG9yJywgbmV4dENvbG9yKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFRvQ29sb3IoY29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRDb2xvciA9IGNvbG9yIHx8ICd0cmFuc3BhcmVudCc7XG4gICAgaWYgKHRoaXMuX2VuZENvbG9yID09PSBuZXh0Q29sb3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZW5kQ29sb3IgPSBuZXh0Q29sb3I7XG4gICAgdGhpcy5zdG9wMkVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdG9wLWNvbG9yJywgbmV4dENvbG9yKTtcbiAgICB0aGlzLnN0b3AyRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnc3RvcC1jb2xvcicsIG5leHRDb2xvcik7XG4gIH1cblxuICBwcml2YXRlIF9zZXRIb3N0QXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9ob3N0QXR0cmlidXRlcy5nZXQobmFtZSkgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2hvc3RBdHRyaWJ1dGVzLnNldChuYW1lLCB2YWx1ZSk7XG4gICAgdGhpcy5faG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './f-connection-gradient-renderer-base';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvY29tcG9uZW50cy9yZW5kZXIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2YtY29ubmVjdGlvbi1ncmFkaWVudC1yZW5kZXJlci1iYXNlJztcbiJdfQ==
@@ -1,54 +1,22 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
- import { Point } from '@foblex/2d';
1
+ import { Component, input } from '@angular/core';
3
2
  import { F_CONNECTION_GRADIENT, FConnectionGradientBase } from './models';
4
- import { F_CONNECTION_COMPONENTS_PARENT } from '../../models';
5
- import { createGradientDomIdentifier } from '../../utils';
6
3
  import * as i0 from "@angular/core";
7
4
  export class FConnectionGradient extends FConnectionGradientBase {
8
- _connection = inject(F_CONNECTION_COMPONENTS_PARENT);
9
- get gradientId() {
10
- return createGradientDomIdentifier(this._connection.fId(), this._connection.fOutputId(), this._connection.fInputId());
11
- }
12
- get stop1Element() {
13
- return this.hostElement.children.item(0);
14
- }
15
- get stop2Element() {
16
- return this.hostElement.children.item(1);
17
- }
18
- initialize() {
19
- this.stop1Element.setAttribute('offset', '0%');
20
- this.stop2Element.setAttribute('offset', '100%');
21
- }
22
- _updateGradient() {
23
- this._setFromColor(this._connection.fStartColor());
24
- this._setToColor(this._connection.fEndColor());
25
- }
26
- _setFromColor(color) {
27
- this.stop1Element.setAttribute('stop-color', color || 'transparent');
28
- }
29
- _setToColor(color) {
30
- this.stop2Element.setAttribute('stop-color', color || 'transparent');
31
- }
32
- redraw(line) {
33
- const x = line.point2.x - line.point1.x;
34
- const y = line.point2.y - line.point1.y;
35
- const distance = Math.sqrt(x * x + y * y) || 0.01;
36
- const from = new Point(0.5 - (0.5 * x) / distance, 0.5 - (0.5 * y) / distance);
37
- this.hostElement.setAttribute('x1', from.x.toString());
38
- this.hostElement.setAttribute('y1', from.y.toString());
39
- const to = new Point(0.5 + (0.5 * x) / distance, 0.5 + (0.5 * y) / distance);
40
- this.hostElement.setAttribute('x2', to.x.toString());
41
- this.hostElement.setAttribute('y2', to.y.toString());
42
- this._updateGradient();
43
- }
5
+ fStartColor = input.required();
6
+ fEndColor = input.required();
44
7
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradient, deps: null, target: i0.ɵɵFactoryTarget.Component });
45
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionGradient, selector: "linearGradient[fConnectionGradient]", host: { properties: { "attr.id": "gradientId" }, classAttribute: "f-component f-connection-gradient" }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], usesInheritance: true, ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop />\n <svg:stop />\n</ng-container>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FConnectionGradient, isStandalone: true, selector: "f-connection-gradient", inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: true, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: true, transformFunction: null } }, host: { styleAttribute: "display: none;" }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
46
9
  }
47
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionGradient, decorators: [{
48
11
  type: Component,
49
- args: [{ selector: 'linearGradient[fConnectionGradient]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
50
- class: 'f-component f-connection-gradient',
51
- '[attr.id]': 'gradientId',
52
- }, providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }], template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:stop />\n <svg:stop />\n</ng-container>\n" }]
12
+ args: [{
13
+ selector: 'f-connection-gradient',
14
+ template: '',
15
+ standalone: true,
16
+ host: {
17
+ style: 'display: none;',
18
+ },
19
+ providers: [{ provide: F_CONNECTION_GRADIENT, useExisting: FConnectionGradient }],
20
+ }]
53
21
  }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLWdyYWRpZW50L2YtY29ubmVjdGlvbi1ncmFkaWVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXYyL2NvbXBvbmVudHMvY29ubmVjdGlvbi1ncmFkaWVudC9mLWNvbm5lY3Rpb24tZ3JhZGllbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQVMsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVkxRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBQzdDLFdBQVcsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUV0RSxJQUFXLFVBQVU7UUFDbkIsT0FBTywyQkFBMkIsQ0FDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsRUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFtQixDQUFDO0lBQzdELENB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cUIsRUFBRSxXQUFXLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0dSQURJRU5ULCBGQ29ubmVjdGlvbkdyYWRpZW50QmFzZSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9DT01QT05FTlRTX1BBUkVOVCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmVhdGVHcmFkaWVudERvbUlkZW50aWZpZXIgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpbmVhckdyYWRpZW50W2ZDb25uZWN0aW9uR3JhZGllbnRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY29ubmVjdGlvbi1ncmFkaWVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2YtY29tcG9uZW50IGYtY29ubmVjdGlvbi1ncmFkaWVudCcsXG4gICAgJ1thdHRyLmlkXSc6ICdncmFkaWVudElkJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX0NPTk5FQ1RJT05fR1JBRElFTlQsIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkdyYWRpZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbkdyYWRpZW50IGV4dGVuZHMgRkNvbm5lY3Rpb25HcmFkaWVudEJhc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25uZWN0aW9uID0gaW5qZWN0KEZfQ09OTkVDVElPTl9DT01QT05FTlRTX1BBUkVOVCk7XG5cbiAgcHVibGljIGdldCBncmFkaWVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNyZWF0ZUdyYWRpZW50RG9tSWRlbnRpZmllcihcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb24uZklkKCksXG4gICAgICB0aGlzLl9jb25uZWN0aW9uLmZPdXRwdXRJZCgpLFxuICAgICAgdGhpcy5fY29ubmVjdGlvbi5mSW5wdXRJZCgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0b3AxRWxlbWVudCgpOiBTVkdTdG9wRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKSBhcyBTVkdTdG9wRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RvcDJFbGVtZW50KCk6IFNWR1N0b3BFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RWxlbWVudC5jaGlsZHJlbi5pdGVtKDEpIGFzIFNWR1N0b3BFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wMUVsZW1lbnQuc2V0QXR0cmlidXRlKCdvZmZzZXQnLCAnMCUnKTtcbiAgICB0aGlzLnN0b3AyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ29mZnNldCcsICcxMDAlJyk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVHcmFkaWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRGcm9tQ29sb3IodGhpcy5fY29ubmVjdGlvbi5mU3RhcnRDb2xvcigpKTtcbiAgICB0aGlzLl9zZXRUb0NvbG9yKHRoaXMuX2Nvbm5lY3Rpb24uZkVuZENvbG9yKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RnJvbUNvbG9yKGNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3AxRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0b3AtY29sb3InLCBjb2xvciB8fCAndHJhbnNwYXJlbnQnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFRvQ29sb3IoY29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcDJFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3RvcC1jb2xvcicsIGNvbG9yIHx8ICd0cmFuc3BhcmVudCcpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdyhsaW5lOiBJTGluZSk6IHZvaWQge1xuICAgIGNvbnN0IHg6IG51bWJlciA9IGxpbmUucG9pbnQyLnggLSBsaW5lLnBvaW50MS54O1xuICAgIGNvbnN0IHk6IG51bWJlciA9IGxpbmUucG9pbnQyLnkgLSBsaW5lLnBvaW50MS55O1xuICAgIGNvbnN0IGRpc3RhbmNlOiBudW1iZXIgPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSkgfHwgMC4wMTtcblxuICAgIGNvbnN0IGZyb20gPSBuZXcgUG9pbnQoMC41IC0gKDAuNSAqIHgpIC8gZGlzdGFuY2UsIDAuNSAtICgwLjUgKiB5KSAvIGRpc3RhbmNlKTtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd4MScsIGZyb20ueC50b1N0cmluZygpKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgneTEnLCBmcm9tLnkudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCB0byA9IG5ldyBQb2ludCgwLjUgKyAoMC41ICogeCkgLyBkaXN0YW5jZSwgMC41ICsgKDAuNSAqIHkpIC8gZGlzdGFuY2UpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd4MicsIHRvLngudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3kyJywgdG8ueS50b1N0cmluZygpKTtcbiAgICB0aGlzLl91cGRhdGVHcmFkaWVudCgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIHhtbG5zOnN2Zz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxzdmc6c3RvcCAvPlxuICA8c3ZnOnN0b3AgLz5cbjwvbmctY29udGFpbmVyPlxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24tdjIvY29tcG9uZW50cy9jb25uZWN0aW9uLWdyYWRpZW50L2YtY29ubmVjdGlvbi1ncmFkaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBVzFFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFDckMsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN2QyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO3dHQUZuRCxtQkFBbUI7NEZBQW5CLG1CQUFtQix3WUFGbkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxpREFMdkUsRUFBRTs7NEZBT0QsbUJBQW1CO2tCQVQvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGdCQUFnQjtxQkFDeEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxxQkFBcUIsRUFBRSxDQUFDO2lCQUNsRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9HUkFESUVOVCwgRkNvbm5lY3Rpb25HcmFkaWVudEJhc2UgfSBmcm9tICcuL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtY29ubmVjdGlvbi1ncmFkaWVudCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgIHN0eWxlOiAnZGlzcGxheTogbm9uZTsnLFxuICB9LFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZfQ09OTkVDVElPTl9HUkFESUVOVCwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uR3JhZGllbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uR3JhZGllbnQgZXh0ZW5kcyBGQ29ubmVjdGlvbkdyYWRpZW50QmFzZSB7XG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmU3RhcnRDb2xvciA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZFbmRDb2xvciA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ export * from './components';
1
2
  export * from './models';
2
3
  export * from './f-connection-gradient';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uLWdyYWRpZW50JztcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2YtY29ubmVjdGlvbi1ncmFkaWVudCc7XG4iXX0=
@@ -1,6 +1,5 @@
1
- import { ElementRef, inject, InjectionToken } from '@angular/core';
1
+ import { InjectionToken } from '@angular/core';
2
2
  export const F_CONNECTION_GRADIENT = new InjectionToken('F_CONNECTION_GRADIENT');
3
3
  export class FConnectionGradientBase {
4
- hostElement = inject((ElementRef)).nativeElement;
5
4
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvbW9kZWxzL2YtY29ubmVjdGlvbi1ncmFkaWVudC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUM7QUFFRixNQUFNLE9BQWdCLHVCQUF1QjtJQUMzQixXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBb0MsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO0NBSzFGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpbmUgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEZfQ09OTkVDVElPTl9HUkFESUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGQ29ubmVjdGlvbkdyYWRpZW50QmFzZT4oXG4gICdGX0NPTk5FQ1RJT05fR1JBRElFTlQnLFxuKTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZDb25uZWN0aW9uR3JhZGllbnRCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PikubmF0aXZlRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgaW5pdGlhbGl6ZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWRyYXcobGluZTogSUxpbmUpOiB2b2lkO1xufVxuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWdyYWRpZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tZ3JhZGllbnQvbW9kZWxzL2YtY29ubmVjdGlvbi1ncmFkaWVudC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFDO0FBRUYsTUFBTSxPQUFnQix1QkFBdUI7Q0FHNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGX0NPTk5FQ1RJT05fR1JBRElFTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkNvbm5lY3Rpb25HcmFkaWVudEJhc2U+KFxuICAnRl9DT05ORUNUSU9OX0dSQURJRU5UJyxcbik7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGQ29ubmVjdGlvbkdyYWRpZW50QmFzZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCBmU3RhcnRDb2xvcjogU2lnbmFsPHN0cmluZz47XG4gIHB1YmxpYyBhYnN0cmFjdCBmRW5kQ29sb3I6IFNpZ25hbDxzdHJpbmc+O1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
2
2
  import { normalizeDomElementId } from '@foblex/utils';
3
3
  import { F_CONNECTION_PATH, FConnectionPathBase } from './models';
4
4
  import { createConnectionDomIdentifier, createGradientDomUrl } from '../../utils';
@@ -6,12 +6,16 @@ import { F_CONNECTION_COMPONENTS_PARENT } from '../../models';
6
6
  import * as i0 from "@angular/core";
7
7
  export class FConnectionPath extends FConnectionPathBase {
8
8
  _connection = inject(F_CONNECTION_COMPONENTS_PARENT);
9
+ useGradient = input(false);
10
+ linkToGradient = computed(() => {
11
+ if (!this.useGradient()) {
12
+ return null;
13
+ }
14
+ return createGradientDomUrl(this._connection.fId());
15
+ });
9
16
  get fPathId() {
10
17
  return this._connection.fId();
11
18
  }
12
- get linkToGradient() {
13
- return createGradientDomUrl(this._connection.fId(), this._connection.fOutputId(), this._connection.fInputId());
14
- }
15
19
  get attrConnectionId() {
16
20
  return createConnectionDomIdentifier(this._connection.fId(), this._connection.fOutputId(), this._connection.fInputId());
17
21
  }
@@ -30,7 +34,7 @@ export class FConnectionPath extends FConnectionPathBase {
30
34
  this.hostElement.setAttribute('marker-end', `url(#${getMarkerEndId(this._connection.fId())})`);
31
35
  }
32
36
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionPath, deps: null, target: i0.ɵɵFactoryTarget.Component });
33
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionPath, selector: "path[f-connection-path]", host: { properties: { "attr.id": "attrConnectionId", "attr.data-f-path-id": "fPathId", "attr.stroke": "linkToGradient" }, classAttribute: "f-component f-connection-path" }, providers: [
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: FConnectionPath, selector: "path[f-connection-path]", inputs: { useGradient: { classPropertyName: "useGradient", publicName: "useGradient", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "attrConnectionId", "attr.data-f-path-id": "fPathId", "style.stroke": "linkToGradient()" }, classAttribute: "f-component f-connection-path" }, providers: [
34
38
  {
35
39
  provide: F_CONNECTION_PATH,
36
40
  useExisting: FConnectionPath,
@@ -43,7 +47,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
43
47
  class: 'f-component f-connection-path',
44
48
  '[attr.id]': 'attrConnectionId',
45
49
  '[attr.data-f-path-id]': 'fPathId',
46
- '[attr.stroke]': 'linkToGradient',
50
+ '[style.stroke]': 'linkToGradient()',
47
51
  }, providers: [
48
52
  {
49
53
  provide: F_CONNECTION_PATH,
@@ -63,4 +67,4 @@ function getMarkerSelectedStartId(fConnectionId) {
63
67
  function getMarkerSelectedEndId(fConnectionId) {
64
68
  return normalizeDomElementId(`f-connection-selected-marker-end-${fConnectionId}`);
65
69
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tcGF0aC9mLWNvbm5lY3Rpb24tcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBb0I5RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxtQkFBbUI7SUFDckMsV0FBVyxHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBRXRFLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLG9CQUFvQixDQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxFQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sNkJBQTZCLENBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRWUsVUFBVTtRQUN4QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVlLE9BQU8sQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVlLE1BQU07UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQzNCLGNBQWMsRUFDZCxRQUFRLHdCQUF3QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUM1RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQzNCLFlBQVksRUFDWixRQUFRLHNCQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVlLFFBQVE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQzNCLGNBQWMsRUFDZCxRQUFRLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFFBQVEsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakcsQ0FBQzt3R0FoRFUsZUFBZTs0RkFBZixlQUFlLCtOQVBmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLGVBQWU7YUFDN0I7U0FDRixpREFkUyxFQUFFOzs0RkFnQkQsZUFBZTtrQkFsQjNCLFNBQVM7K0JBQ0UseUJBQXlCLFlBQ3pCLEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsK0JBQStCO3dCQUN0QyxXQUFXLEVBQUUsa0JBQWtCO3dCQUMvQix1QkFBdUIsRUFBRSxTQUFTO3dCQUNsQyxlQUFlLEVBQUUsZ0JBQWdCO3FCQUNsQyxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsaUJBQWlCO3lCQUM3QjtxQkFDRjs7QUFxREgsU0FBUyxnQkFBZ0IsQ0FBQyxhQUFxQjtJQUM3QyxPQUFPLHFCQUFxQixDQUFDLDZCQUE2QixhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxhQUFxQjtJQUMzQyxPQUFPLHFCQUFxQixDQUFDLDJCQUEyQixhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLGFBQXFCO0lBQ3JELE9BQU8scUJBQXFCLENBQUMsc0NBQXNDLGFBQWEsRUFBRSxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsYUFBcUI7SUFDbkQsT0FBTyxxQkFBcUIsQ0FBQyxvQ0FBb0MsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBub3JtYWxpemVEb21FbGVtZW50SWQgfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9QQVRILCBGQ29ubmVjdGlvblBhdGhCYXNlIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlQ29ubmVjdGlvbkRvbUlkZW50aWZpZXIsIGNyZWF0ZUdyYWRpZW50RG9tVXJsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0NPTVBPTkVOVFNfUEFSRU5UIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGF0aFtmLWNvbm5lY3Rpb24tcGF0aF0nLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogWycuL2YtY29ubmVjdGlvbi1wYXRoLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2YtY29tcG9uZW50IGYtY29ubmVjdGlvbi1wYXRoJyxcbiAgICAnW2F0dHIuaWRdJzogJ2F0dHJDb25uZWN0aW9uSWQnLFxuICAgICdbYXR0ci5kYXRhLWYtcGF0aC1pZF0nOiAnZlBhdGhJZCcsXG4gICAgJ1thdHRyLnN0cm9rZV0nOiAnbGlua1RvR3JhZGllbnQnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGX0NPTk5FQ1RJT05fUEFUSCxcbiAgICAgIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvblBhdGgsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25QYXRoIGV4dGVuZHMgRkNvbm5lY3Rpb25QYXRoQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb24gPSBpbmplY3QoRl9DT05ORUNUSU9OX0NPTVBPTkVOVFNfUEFSRU5UKTtcblxuICBwdWJsaWMgZ2V0IGZQYXRoSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbi5mSWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlua1RvR3JhZGllbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY3JlYXRlR3JhZGllbnREb21VcmwoXG4gICAgICB0aGlzLl9jb25uZWN0aW9uLmZJZCgpLFxuICAgICAgdGhpcy5fY29ubmVjdGlvbi5mT3V0cHV0SWQoKSxcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb24uZklucHV0SWQoKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRyQ29ubmVjdGlvbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvbm5lY3Rpb25Eb21JZGVudGlmaWVyKFxuICAgICAgdGhpcy5fY29ubmVjdGlvbi5mSWQoKSxcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb24uZk91dHB1dElkKCksXG4gICAgICB0aGlzLl9jb25uZWN0aW9uLmZJbnB1dElkKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuZGVzZWxlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRQYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkJywgYCR7cGF0aH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAnbWFya2VyLXN0YXJ0JyxcbiAgICAgIGB1cmwoIyR7Z2V0TWFya2VyU2VsZWN0ZWRTdGFydElkKHRoaXMuX2Nvbm5lY3Rpb24uZklkKCkpfSlgLFxuICAgICk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAnbWFya2VyLWVuZCcsXG4gICAgICBgdXJsKCMke2dldE1hcmtlclNlbGVjdGVkRW5kSWQodGhpcy5fY29ubmVjdGlvbi5mSWQoKSl9KWAsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICdtYXJrZXItc3RhcnQnLFxuICAgICAgYHVybCgjJHtnZXRNYXJrZXJTdGFydElkKHRoaXMuX2Nvbm5lY3Rpb24uZklkKCkpfSlgLFxuICAgICk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlci1lbmQnLCBgdXJsKCMke2dldE1hcmtlckVuZElkKHRoaXMuX2Nvbm5lY3Rpb24uZklkKCkpfSlgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRNYXJrZXJTdGFydElkKGZDb25uZWN0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBub3JtYWxpemVEb21FbGVtZW50SWQoYGYtY29ubmVjdGlvbi1tYXJrZXItc3RhcnQtJHtmQ29ubmVjdGlvbklkfWApO1xufVxuXG5mdW5jdGlvbiBnZXRNYXJrZXJFbmRJZChmQ29ubmVjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKGBmLWNvbm5lY3Rpb24tbWFya2VyLWVuZC0ke2ZDb25uZWN0aW9uSWR9YCk7XG59XG5cbmZ1bmN0aW9uIGdldE1hcmtlclNlbGVjdGVkU3RhcnRJZChmQ29ubmVjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKGBmLWNvbm5lY3Rpb24tc2VsZWN0ZWQtbWFya2VyLXN0YXJ0LSR7ZkNvbm5lY3Rpb25JZH1gKTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFya2VyU2VsZWN0ZWRFbmRJZChmQ29ubmVjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKGBmLWNvbm5lY3Rpb24tc2VsZWN0ZWQtbWFya2VyLWVuZC0ke2ZDb25uZWN0aW9uSWR9YCk7XG59XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2Nvbm5lY3Rpb24tcGF0aC9mLWNvbm5lY3Rpb24tcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFvQjlELE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUNyQyxXQUFXLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFFdEQsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixjQUFjLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUU7UUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyw2QkFBNkIsQ0FDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsRUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFZSxVQUFVO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRWUsT0FBTyxDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRWUsTUFBTTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FDM0IsY0FBYyxFQUNkLFFBQVEsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQzVELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FDM0IsWUFBWSxFQUNaLFFBQVEsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQzFELENBQUM7SUFDSixDQUFDO0lBRWUsUUFBUTtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FDM0IsY0FBYyxFQUNkLFFBQVEsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQ3BELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUSxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRyxDQUFDO3dHQWpEVSxlQUFlOzRGQUFmLGVBQWUsd1hBUGY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsZUFBZTthQUM3QjtTQUNGLGlEQWRTLEVBQUU7OzRGQWdCRCxlQUFlO2tCQWxCM0IsU0FBUzsrQkFDRSx5QkFBeUIsWUFDekIsRUFBRSxtQkFFSyx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSwrQkFBK0I7d0JBQ3RDLFdBQVcsRUFBRSxrQkFBa0I7d0JBQy9CLHVCQUF1QixFQUFFLFNBQVM7d0JBQ2xDLGdCQUFnQixFQUFFLGtCQUFrQjtxQkFDckMsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0Y7O0FBc0RILFNBQVMsZ0JBQWdCLENBQUMsYUFBcUI7SUFDN0MsT0FBTyxxQkFBcUIsQ0FBQyw2QkFBNkIsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsYUFBcUI7SUFDM0MsT0FBTyxxQkFBcUIsQ0FBQywyQkFBMkIsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxhQUFxQjtJQUNyRCxPQUFPLHFCQUFxQixDQUFDLHNDQUFzQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLGFBQXFCO0lBQ25ELE9BQU8scUJBQXFCLENBQUMsb0NBQW9DLGFBQWEsRUFBRSxDQUFDLENBQUM7QUFDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBub3JtYWxpemVEb21FbGVtZW50SWQgfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9QQVRILCBGQ29ubmVjdGlvblBhdGhCYXNlIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlQ29ubmVjdGlvbkRvbUlkZW50aWZpZXIsIGNyZWF0ZUdyYWRpZW50RG9tVXJsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0NPTVBPTkVOVFNfUEFSRU5UIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGF0aFtmLWNvbm5lY3Rpb24tcGF0aF0nLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogWycuL2YtY29ubmVjdGlvbi1wYXRoLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2YtY29tcG9uZW50IGYtY29ubmVjdGlvbi1wYXRoJyxcbiAgICAnW2F0dHIuaWRdJzogJ2F0dHJDb25uZWN0aW9uSWQnLFxuICAgICdbYXR0ci5kYXRhLWYtcGF0aC1pZF0nOiAnZlBhdGhJZCcsXG4gICAgJ1tzdHlsZS5zdHJva2VdJzogJ2xpbmtUb0dyYWRpZW50KCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGX0NPTk5FQ1RJT05fUEFUSCxcbiAgICAgIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvblBhdGgsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25QYXRoIGV4dGVuZHMgRkNvbm5lY3Rpb25QYXRoQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb24gPSBpbmplY3QoRl9DT05ORUNUSU9OX0NPTVBPTkVOVFNfUEFSRU5UKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdXNlR3JhZGllbnQgPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBsaW5rVG9HcmFkaWVudCA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIXRoaXMudXNlR3JhZGllbnQoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyZWF0ZUdyYWRpZW50RG9tVXJsKHRoaXMuX2Nvbm5lY3Rpb24uZklkKCkpO1xuICB9KTtcblxuICBwdWJsaWMgZ2V0IGZQYXRoSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbi5mSWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXR0ckNvbm5lY3Rpb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBjcmVhdGVDb25uZWN0aW9uRG9tSWRlbnRpZmllcihcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb24uZklkKCksXG4gICAgICB0aGlzLl9jb25uZWN0aW9uLmZPdXRwdXRJZCgpLFxuICAgICAgdGhpcy5fY29ubmVjdGlvbi5mSW5wdXRJZCgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0UGF0aChwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnZCcsIGAke3BhdGh9YCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ21hcmtlci1zdGFydCcsXG4gICAgICBgdXJsKCMke2dldE1hcmtlclNlbGVjdGVkU3RhcnRJZCh0aGlzLl9jb25uZWN0aW9uLmZJZCgpKX0pYCxcbiAgICApO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ21hcmtlci1lbmQnLFxuICAgICAgYHVybCgjJHtnZXRNYXJrZXJTZWxlY3RlZEVuZElkKHRoaXMuX2Nvbm5lY3Rpb24uZklkKCkpfSlgLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAnbWFya2VyLXN0YXJ0JyxcbiAgICAgIGB1cmwoIyR7Z2V0TWFya2VyU3RhcnRJZCh0aGlzLl9jb25uZWN0aW9uLmZJZCgpKX0pYCxcbiAgICApO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdtYXJrZXItZW5kJywgYHVybCgjJHtnZXRNYXJrZXJFbmRJZCh0aGlzLl9jb25uZWN0aW9uLmZJZCgpKX0pYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TWFya2VyU3RhcnRJZChmQ29ubmVjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplRG9tRWxlbWVudElkKGBmLWNvbm5lY3Rpb24tbWFya2VyLXN0YXJ0LSR7ZkNvbm5lY3Rpb25JZH1gKTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFya2VyRW5kSWQoZkNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZURvbUVsZW1lbnRJZChgZi1jb25uZWN0aW9uLW1hcmtlci1lbmQtJHtmQ29ubmVjdGlvbklkfWApO1xufVxuXG5mdW5jdGlvbiBnZXRNYXJrZXJTZWxlY3RlZFN0YXJ0SWQoZkNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZURvbUVsZW1lbnRJZChgZi1jb25uZWN0aW9uLXNlbGVjdGVkLW1hcmtlci1zdGFydC0ke2ZDb25uZWN0aW9uSWR9YCk7XG59XG5cbmZ1bmN0aW9uIGdldE1hcmtlclNlbGVjdGVkRW5kSWQoZkNvbm5lY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZURvbUVsZW1lbnRJZChgZi1jb25uZWN0aW9uLXNlbGVjdGVkLW1hcmtlci1lbmQtJHtmQ29ubmVjdGlvbklkfWApO1xufVxuIl19
@@ -1,14 +1,14 @@
1
- import { contentChild, contentChildren, Directive, ElementRef, inject, input, signal, viewChild, } from '@angular/core';
1
+ import { contentChild, contentChildren, Directive, ElementRef, inject, signal, viewChild, } from '@angular/core';
2
2
  import { LineExtensions, PointExtensions } from '@foblex/2d';
3
3
  import { mixinChangeSelection, mixinChangeVisibility, } from '../../mixins';
4
4
  import { ConnectionLineBuilder, EFConnectionConnectableSide } from '../utils';
5
5
  import { EFConnectableSide } from '../enums';
6
6
  import { F_CONNECTION_PATH } from './connection-path';
7
- import { F_CONNECTION_GRADIENT } from './connection-gradient';
8
7
  import { F_CONNECTION_DRAG_HANDLE_END, F_CONNECTION_DRAG_HANDLE_START, } from './connection-drag-handles';
9
8
  import { F_CONNECTION_SELECTION } from './connection-selection';
10
9
  import { ConnectionContentLayoutEngine, F_CONNECTION_CONTENT, } from './connection-content';
11
10
  import { F_CONNECTION_WAYPOINTS } from './connection-waypoints';
11
+ import { F_CONNECTION_GRADIENT, FConnectionGradientRenderer } from './connection-gradient';
12
12
  import * as i0 from "@angular/core";
13
13
  const MIXIN_BASE = mixinChangeSelection(mixinChangeVisibility(class {
14
14
  hostElement;
@@ -18,8 +18,6 @@ const MIXIN_BASE = mixinChangeSelection(mixinChangeVisibility(class {
18
18
  }));
19
19
  export class FConnectionBase extends MIXIN_BASE {
20
20
  _fConnectionBuilder = inject(ConnectionLineBuilder);
21
- fStartColor = input('black');
22
- fEndColor = input('black');
23
21
  path = '';
24
22
  line = LineExtensions.initialize();
25
23
  fReassignableStart = signal(false);
@@ -27,13 +25,14 @@ export class FConnectionBase extends MIXIN_BASE {
27
25
  fSelectionDisabled = signal(false);
28
26
  fDefs = viewChild.required('defs');
29
27
  fPath = viewChild.required(F_CONNECTION_PATH);
30
- fGradient = viewChild.required(F_CONNECTION_GRADIENT);
31
28
  fDragHandleStart = viewChild(F_CONNECTION_DRAG_HANDLE_START);
32
29
  fDragHandleEnd = viewChild.required(F_CONNECTION_DRAG_HANDLE_END);
33
30
  fSelection = viewChild.required(F_CONNECTION_SELECTION);
34
31
  fContents = contentChildren(F_CONNECTION_CONTENT, {
35
32
  descendants: true,
36
33
  });
34
+ fGradient = contentChild(F_CONNECTION_GRADIENT);
35
+ _fGradientRenderer = viewChild(FConnectionGradientRenderer);
37
36
  fWaypoints = contentChild(F_CONNECTION_WAYPOINTS);
38
37
  fInputSide = signal(EFConnectionConnectableSide.DEFAULT);
39
38
  _sourceSide = EFConnectableSide.AUTO;
@@ -46,7 +45,6 @@ export class FConnectionBase extends MIXIN_BASE {
46
45
  }
47
46
  initialize() {
48
47
  this.fPath().initialize();
49
- this.fGradient().initialize();
50
48
  this.redraw();
51
49
  }
52
50
  isContains(element) {
@@ -89,9 +87,15 @@ export class FConnectionBase extends MIXIN_BASE {
89
87
  redraw() {
90
88
  this.fPath().setPath(this.path);
91
89
  this.fSelection().setPath(this.path);
92
- this.fGradient().redraw(this.line);
93
90
  this.fDragHandleEnd().redraw(this._penultimatePoint, this.line.point2);
94
91
  this.fDragHandleStart()?.redraw(this._secondPoint, this.line.point1);
92
+ this._fGradientRenderer()?.redraw(this.line);
93
+ }
94
+ getResolvedSides() {
95
+ return {
96
+ sourceSide: this._sourceSide,
97
+ targetSide: this._targetSide,
98
+ };
95
99
  }
96
100
  /**
97
101
  * Applies the resolved sides to the connection. Don't call this method directly; it's used internally.
@@ -104,9 +108,9 @@ export class FConnectionBase extends MIXIN_BASE {
104
108
  this._targetSide = targetSide;
105
109
  }
106
110
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
107
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: FConnectionBase, inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: false, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "fContents", predicate: F_CONNECTION_CONTENT, descendants: true, isSignal: true }, { propertyName: "fWaypoints", first: true, predicate: F_CONNECTION_WAYPOINTS, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: F_CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: F_CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: F_CONNECTION_DRAG_HANDLE_START, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: F_CONNECTION_DRAG_HANDLE_END, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: F_CONNECTION_SELECTION, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
111
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: FConnectionBase, queries: [{ propertyName: "fContents", predicate: F_CONNECTION_CONTENT, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: F_CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fWaypoints", first: true, predicate: F_CONNECTION_WAYPOINTS, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: F_CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: F_CONNECTION_DRAG_HANDLE_START, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: F_CONNECTION_DRAG_HANDLE_END, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: F_CONNECTION_SELECTION, descendants: true, isSignal: true }, { propertyName: "_fGradientRenderer", first: true, predicate: FConnectionGradientRenderer, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
108
112
  }
109
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, decorators: [{
110
114
  type: Directive
111
115
  }], ctorParameters: () => [] });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2YtY29ubmVjdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBaUIsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RSxPQUFPLEVBR0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQXdCLDJCQUEyQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSxVQUFVLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qiw4QkFBOEIsR0FDL0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLG9CQUFvQixHQUVyQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUVoRSxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FDckMscUJBQXFCLENBQ25CO0lBQ3FCO0lBQW5CLFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcs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QUMsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVlLHdCQUF3QjtRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksK0JBQStCLENBQ3BDLFVBQTZCLEVBQzdCLFVBQTZCO1FBRTdCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLENBQUM7d0dBdEptQixlQUFlOzRGQUFmLGVBQWUsOFVBZ0RTLG9CQUFvQiw2RkFJdEIsc0JBQXNCLHVNQWRyQixpQkFBaUIsNEZBRWIscUJBQXFCLG1HQUV2Qiw4QkFBOEIsaUdBRXZCLDRCQUE0Qiw2RkFFaEMsc0JBQXNCOzs0RkE5Q2xELGVBQWU7a0JBRHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb250ZW50Q2hpbGQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIFNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIExpbmVFeHRlbnNpb25zLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7XG4gIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICBJU2VsZWN0YWJsZSxcbiAgbWl4aW5DaGFuZ2VTZWxlY3Rpb24sXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eSxcbn0gZnJvbSAnLi4vLi4vbWl4aW5zJztcbmltcG9ydCB7IENvbm5lY3Rpb25MaW5lQnVpbGRlciwgRUZDb25uZWN0aW9uQmVoYXZpb3IsIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlLCBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX1BBVEggfSBmcm9tICcuL2Nvbm5lY3Rpb24tcGF0aCc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fR1JBRElFTlQgfSBmcm9tICcuL2Nvbm5lY3Rpb24tZ3JhZGllbnQnO1xuaW1wb3J0IHtcbiAgRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX0VORCxcbiAgRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX1NUQVJULFxufSBmcm9tICcuL2Nvbm5lY3Rpb24tZHJhZy1oYW5kbGVzJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9TRUxFQ1RJT04gfSBmcm9tICcuL2Nvbm5lY3Rpb24tc2VsZWN0aW9uJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25Db250ZW50TGF5b3V0RW5naW5lLFxuICBGX0NPTk5FQ1RJT05fQ09OVEVOVCxcbiAgRkNvbm5lY3Rpb25Db250ZW50QmFzZSxcbn0gZnJvbSAnLi9jb25uZWN0aW9uLWNvbnRlbnQnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX1dBWVBPSU5UUyB9IGZyb20gJy4vY29ubmVjdGlvbi13YXlwb2ludHMnO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VTZWxlY3Rpb24oXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eShcbiAgICBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7fVxuICAgIH0sXG4gICksXG4pO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGQ29ubmVjdGlvbkJhc2VcbiAgZXh0ZW5kcyBNSVhJTl9CQVNFXG4gIGltcGxlbWVudHMgSVNlbGVjdGFibGUsIElDYW5DaGFuZ2VWaXNpYmlsaXR5XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb25uZWN0aW9uQnVpbGRlciA9IGluamVjdChDb25uZWN0aW9uTGluZUJ1aWxkZXIpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmSWQ6IFNpZ25hbDxzdHJpbmc+O1xuXG4gIHB1YmxpYyByZWFkb25seSBmU3RhcnRDb2xvciA9IGlucHV0PHN0cmluZz4oJ2JsYWNrJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZFbmRDb2xvciA9IGlucHV0PHN0cmluZz4oJ2JsYWNrJyk7XG5cbiAgcHVibGljIGFic3RyYWN0IGZPdXRwdXRJZDogU2lnbmFsPHN0cmluZz47XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbnB1dElkOiBTaWduYWw8c3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlJhZGl1czogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIHBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBsaW5lID0gTGluZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmUmVhc3NpZ25hYmxlU3RhcnQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZEcmFnZ2luZ0Rpc2FibGVkOiBTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmU2VsZWN0aW9uRGlzYWJsZWQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIGFic3RyYWN0IGJvdW5kaW5nRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVHlwZTogRUZDb25uZWN0aW9uVHlwZSB8IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRlZnMgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxTVkdEZWZzRWxlbWVudD4+KCdkZWZzJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZQYXRoID0gdmlld0NoaWxkLnJlcXVpcmVkKEZfQ09OTkVDVElPTl9QQVRIKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkdyYWRpZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkKEZfQ09OTkVDVElPTl9HUkFESUVOVCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZEcmFnSGFuZGxlU3RhcnQgPSB2aWV3Q2hpbGQoRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX1NUQVJUKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRyYWdIYW5kbGVFbmQgPSB2aWV3Q2hpbGQucmVxdWlyZWQoRl9DT05ORUNUSU9OX0RSQUdfSEFORExFX0VORCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZTZWxlY3Rpb24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoRl9DT05ORUNUSU9OX1NFTEVDVElPTik7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZDb250ZW50cyA9IGNvbnRlbnRDaGlsZHJlbihGX0NPTk5FQ1RJT05fQ09OVEVOVCwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZldheXBvaW50cyA9IGNvbnRlbnRDaGlsZChGX0NPTk5FQ1RJT05fV0FZUE9JTlRTKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZklucHV0U2lkZTogU2lnbmFsPEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZT4gPSBzaWduYWwoXG4gICAgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLkRFRkFVTFQsXG4gICk7XG5cbiAgcHJpdmF0ZSBfc291cmNlU2lkZSA9IEVGQ29ubmVjdGFibGVTaWRlLkFVVE87XG5cbiAgcHVibGljIHJlYWRvbmx5IGZPdXRwdXRTaWRlOiBTaWduYWw8RUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlPiA9IHNpZ25hbChcbiAgICBFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUuREVGQVVMVCxcbiAgKTtcblxuICBwcml2YXRlIF90YXJnZXRTaWRlID0gRUZDb25uZWN0YWJsZVNpZGUuQVVUTztcblxuICBwcml2YXRlIF9wZW51bHRpbWF0ZVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSBfc2Vjb25kUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aCgpLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmZHcmFkaWVudCgpLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIGlzQ29udGFpbnMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQ/Lmxhc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZWxlbWVudCkgfHxcbiAgICAgIEFycmF5LmZyb20odGhpcy5mQ29udGVudHMoKT8udmFsdWVzKCkgPz8gW10pLnNvbWUoKHgpID0+IHguaG9zdEVsZW1lbnQ/LmNvbnRhaW5zKGVsZW1lbnQpKSB8fFxuICAgICAgdGhpcy5mV2F5cG9pbnRzKCk/Lmhvc3RFbGVtZW50Py5jb250YWlucyhlbGVtZW50KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGluZSh7IHBvaW50MSwgcG9pbnQyIH06IElMaW5lKTogdm9pZCB7XG4gICAgdGhpcy5saW5lID0gTGluZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZShwb2ludDEsIHBvaW50Mik7XG5cbiAgICBjb25zdCB7IHBhdGgsIHBvaW50cywgcGVudWx0aW1hdGVQb2ludCwgc2Vjb25kUG9pbnQsIGNhbmRpZGF0ZXMgfSA9IHRoaXMuX2dldFBhdGhSZXN1bHQoXG4gICAgICBwb2ludDEsXG4gICAgICBwb2ludDIsXG4gICAgKTtcblxuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgdGhpcy5fcGVudWx0aW1hdGVQb2ludCA9IHBlbnVsdGltYXRlUG9pbnQgfHwgcG9pbnQxO1xuICAgIHRoaXMuX3NlY29uZFBvaW50ID0gc2Vjb25kUG9pbnQgfHwgcG9pbnQyO1xuICAgIHRoaXMuZldheXBvaW50cygpPy5jYW5kaWRhdGVzLnNldChjYW5kaWRhdGVzIHx8IFtdKTtcblxuICAgIG5ldyBDb25uZWN0aW9uQ29udGVudExheW91dEVuZ2luZSgpLmxheW91dChwb2ludHMgfHwgW10sIHRoaXMuX2NvbnRlbnRzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29udGVudHMoKTogRkNvbm5lY3Rpb25Db250ZW50QmFzZVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZDb250ZW50cygpPy52YWx1ZXMoKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQYXRoUmVzdWx0KHNvdXJjZTogSVBvaW50LCB0YXJnZXQ6IElQb2ludCkge1xuICAgIHJldHVybiB0aGlzLl9mQ29ubmVjdGlvbkJ1aWxkZXIuaGFuZGxlKHtcbiAgICAgIHR5cGU6IHRoaXMuZlR5cGUsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgc291cmNlU2lkZTogdGhpcy5fc291cmNlU2lkZSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICB0YXJnZXRTaWRlOiB0aGlzLl90YXJnZXRTaWRlLFxuICAgICAgICByYWRpdXM6IHRoaXMuZlJhZGl1cyxcbiAgICAgICAgb2Zmc2V0OiB0aGlzLmZPZmZzZXQsXG4gICAgICAgIHdheXBvaW50czogdGhpcy5mV2F5cG9pbnRzKCk/LndheXBvaW50cygpIHx8IFtdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBtYXJrQ2hpbGRyZW5Bc1NlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGgoKS5zZWxlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB1bm1hcmtDaGlsZHJlbkFzU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aCgpLmRlc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGgoKS5zZXRQYXRoKHRoaXMucGF0aCk7XG4gICAgdGhpcy5mU2VsZWN0aW9uKCkuc2V0UGF0aCh0aGlzLnBhdGgpO1xuICAgIHRoaXMuZkdyYWRpZW50KCkucmVkcmF3KHRoaXMubGluZSk7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZUVuZCgpLnJlZHJhdyh0aGlzLl9wZW51bHRpbWF0ZVBvaW50LCB0aGlzLmxpbmUucG9pbnQyKTtcbiAgICB0aGlzLmZEcmFnSGFuZGxlU3RhcnQoKT8ucmVkcmF3KHRoaXMuX3NlY29uZFBvaW50LCB0aGlzLmxpbmUucG9pbnQxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSByZXNvbHZlZCBzaWRlcyB0byB0aGUgY29ubmVjdGlvbi4gRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseTsgaXQncyB1c2VkIGludGVybmFsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VTaWRlIFRoZSByZXNvbHZlZCBzaWRlIGZvciB0aGUgc291cmNlIGVsZW1lbnQuXG4gICAqIEBwYXJhbSB0YXJnZXRTaWRlIFRoZSByZXNvbHZlZCBzaWRlIGZvciB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgX2FwcGx5UmVzb2x2ZWRTaWRlc1RvQ29ubmVjdGlvbihcbiAgICBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fc291cmNlU2lkZSA9IHNvdXJjZVNpZGU7XG4gICAgdGhpcy5fdGFyZ2V0U2lkZSA9IHRhcmdldFNpZGU7XG4gIH1cbn1cbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi12Mi9jb21wb25lbnRzL2YtY29ubmVjdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQixjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFHTCxvQkFBb0IsRUFDcEIscUJBQXFCLEdBQ3RCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBd0IsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLFVBQVUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDhCQUE4QixHQUMvQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0Isb0JBQW9CLEdBRXJCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNGLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUNyQyxxQkFBcUIsQ0FDbkI7SUFDcUI7SUFBbkIsWUFBbUIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFB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QixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLCtCQUErQixDQUNwQyxVQUE2QixFQUM3QixVQUE2QjtRQUU3QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO3dHQTFKbUIsZUFBZTs0RkFBZixlQUFlLG9EQTBDUyxvQkFBb0IsNEZBSXZCLHFCQUFxQiw2RkFJcEIsc0JBQXNCLHVNQWhCckIsaUJBQWlCLG1HQUVmLDhCQUE4QixpR0FFdkIsNEJBQTRCLDZGQUVoQyxzQkFBc0IscUdBUXRCLDJCQUEyQjs7NEZBaER2RCxlQUFlO2tCQURwQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29udGVudENoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIFNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIExpbmVFeHRlbnNpb25zLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7XG4gIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICBJU2VsZWN0YWJsZSxcbiAgbWl4aW5DaGFuZ2VTZWxlY3Rpb24sXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eSxcbn0gZnJvbSAnLi4vLi4vbWl4aW5zJztcbmltcG9ydCB7IENvbm5lY3Rpb25MaW5lQnVpbGRlciwgRUZDb25uZWN0aW9uQmVoYXZpb3IsIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlLCBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX1BBVEggfSBmcm9tICcuL2Nvbm5lY3Rpb24tcGF0aCc7XG5pbXBvcnQge1xuICBGX0NPTk5FQ1RJT05fRFJBR19IQU5ETEVfRU5ELFxuICBGX0NPTk5FQ1RJT05fRFJBR19IQU5ETEVfU1RBUlQsXG59IGZyb20gJy4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXMnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX1NFTEVDVElPTiB9IGZyb20gJy4vY29ubmVjdGlvbi1zZWxlY3Rpb24nO1xuaW1wb3J0IHtcbiAgQ29ubmVjdGlvbkNvbnRlbnRMYXlvdXRFbmdpbmUsXG4gIEZfQ09OTkVDVElPTl9DT05URU5ULFxuICBGQ29ubmVjdGlvbkNvbnRlbnRCYXNlLFxufSBmcm9tICcuL2Nvbm5lY3Rpb24tY29udGVudCc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fV0FZUE9JTlRTIH0gZnJvbSAnLi9jb25uZWN0aW9uLXdheXBvaW50cyc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fR1JBRElFTlQsIEZDb25uZWN0aW9uR3JhZGllbnRSZW5kZXJlciB9IGZyb20gJy4vY29ubmVjdGlvbi1ncmFkaWVudCc7XG5cbmNvbnN0IE1JWElOX0JBU0UgPSBtaXhpbkNoYW5nZVNlbGVjdGlvbihcbiAgbWl4aW5DaGFuZ2VWaXNpYmlsaXR5KFxuICAgIGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQpIHt9XG4gICAgfSxcbiAgKSxcbik7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZDb25uZWN0aW9uQmFzZVxuICBleHRlbmRzIE1JWElOX0JBU0VcbiAgaW1wbGVtZW50cyBJU2VsZWN0YWJsZSwgSUNhbkNoYW5nZVZpc2liaWxpdHlcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfZkNvbm5lY3Rpb25CdWlsZGVyID0gaW5qZWN0KENvbm5lY3Rpb25MaW5lQnVpbGRlcik7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogU2lnbmFsPHN0cmluZz47XG5cbiAgcHVibGljIGFic3RyYWN0IGZPdXRwdXRJZDogU2lnbmFsPHN0cmluZz47XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbnB1dElkOiBTaWduYWw8c3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlJhZGl1czogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIHBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBsaW5lID0gTGluZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmUmVhc3NpZ25hYmxlU3RhcnQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZEcmFnZ2luZ0Rpc2FibGVkOiBTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmU2VsZWN0aW9uRGlzYWJsZWQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIGFic3RyYWN0IGJvdW5kaW5nRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVHlwZTogRUZDb25uZWN0aW9uVHlwZSB8IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRlZnMgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxTVkdEZWZzRWxlbWVudD4+KCdkZWZzJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZQYXRoID0gdmlld0NoaWxkLnJlcXVpcmVkKEZfQ09OTkVDVElPTl9QQVRIKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRyYWdIYW5kbGVTdGFydCA9IHZpZXdDaGlsZChGX0NPTk5FQ1RJT05fRFJBR19IQU5ETEVfU1RBUlQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmRHJhZ0hhbmRsZUVuZCA9IHZpZXdDaGlsZC5yZXF1aXJlZChGX0NPTk5FQ1RJT05fRFJBR19IQU5ETEVfRU5EKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZlNlbGVjdGlvbiA9IHZpZXdDaGlsZC5yZXF1aXJlZChGX0NPTk5FQ1RJT05fU0VMRUNUSU9OKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkNvbnRlbnRzID0gY29udGVudENoaWxkcmVuKEZfQ09OTkVDVElPTl9DT05URU5ULCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBmR3JhZGllbnQgPSBjb250ZW50Q2hpbGQoRl9DT05ORUNUSU9OX0dSQURJRU5UKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mR3JhZGllbnRSZW5kZXJlciA9IHZpZXdDaGlsZChGQ29ubmVjdGlvbkdyYWRpZW50UmVuZGVyZXIpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmV2F5cG9pbnRzID0gY29udGVudENoaWxkKEZfQ09OTkVDVElPTl9XQVlQT0lOVFMpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmSW5wdXRTaWRlOiBTaWduYWw8RUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlPiA9IHNpZ25hbChcbiAgICBFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUuREVGQVVMVCxcbiAgKTtcblxuICBwcml2YXRlIF9zb3VyY2VTaWRlID0gRUZDb25uZWN0YWJsZVNpZGUuQVVUTztcblxuICBwdWJsaWMgcmVhZG9ubHkgZk91dHB1dFNpZGU6IFNpZ25hbDxFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGU+ID0gc2lnbmFsKFxuICAgIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZS5ERUZBVUxULFxuICApO1xuXG4gIHByaXZhdGUgX3RhcmdldFNpZGUgPSBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPO1xuXG4gIHByaXZhdGUgX3BlbnVsdGltYXRlUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICBwcml2YXRlIF9zZWNvbmRQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50PikubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cblxuICBwdWJsaWMgaXNDb250YWlucyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuaG9zdEVsZW1lbnQuZmlyc3RDaGlsZD8ubGFzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5jb250YWlucyhlbGVtZW50KSB8fFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLmZDb250ZW50cygpPy52YWx1ZXMoKSA/PyBbXSkuc29tZSgoeCkgPT4geC5ob3N0RWxlbWVudD8uY29udGFpbnMoZWxlbWVudCkpIHx8XG4gICAgICB0aGlzLmZXYXlwb2ludHMoKT8uaG9zdEVsZW1lbnQ/LmNvbnRhaW5zKGVsZW1lbnQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW5lKHsgcG9pbnQxLCBwb2ludDIgfTogSUxpbmUpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKHBvaW50MSwgcG9pbnQyKTtcblxuICAgIGNvbnN0IHsgcGF0aCwgcG9pbnRzLCBwZW51bHRpbWF0ZVBvaW50LCBzZWNvbmRQb2ludCwgY2FuZGlkYXRlcyB9ID0gdGhpcy5fZ2V0UGF0aFJlc3VsdChcbiAgICAgIHBvaW50MSxcbiAgICAgIHBvaW50MixcbiAgICApO1xuXG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB0aGlzLl9wZW51bHRpbWF0ZVBvaW50ID0gcGVudWx0aW1hdGVQb2ludCB8fCBwb2ludDE7XG4gICAgdGhpcy5fc2Vjb25kUG9pbnQgPSBzZWNvbmRQb2ludCB8fCBwb2ludDI7XG4gICAgdGhpcy5mV2F5cG9pbnRzKCk/LmNhbmRpZGF0ZXMuc2V0KGNhbmRpZGF0ZXMgfHwgW10pO1xuXG4gICAgbmV3IENvbm5lY3Rpb25Db250ZW50TGF5b3V0RW5naW5lKCkubGF5b3V0KHBvaW50cyB8fCBbXSwgdGhpcy5fY29udGVudHMoKSk7XG4gIH1cblxuICBwcml2YXRlIF9jb250ZW50cygpOiBGQ29ubmVjdGlvbkNvbnRlbnRCYXNlW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZkNvbnRlbnRzKCk/LnZhbHVlcygpID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBhdGhSZXN1bHQoc291cmNlOiBJUG9pbnQsIHRhcmdldDogSVBvaW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb25uZWN0aW9uQnVpbGRlci5oYW5kbGUoe1xuICAgICAgdHlwZTogdGhpcy5mVHlwZSxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzb3VyY2VTaWRlOiB0aGlzLl9zb3VyY2VTaWRlLFxuICAgICAgICB0YXJnZXQsXG4gICAgICAgIHRhcmdldFNpZGU6IHRoaXMuX3RhcmdldFNpZGUsXG4gICAgICAgIHJhZGl1czogdGhpcy5mUmFkaXVzLFxuICAgICAgICBvZmZzZXQ6IHRoaXMuZk9mZnNldCxcbiAgICAgICAgd2F5cG9pbnRzOiB0aGlzLmZXYXlwb2ludHMoKT8ud2F5cG9pbnRzKCkgfHwgW10sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG1hcmtDaGlsZHJlbkFzU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aCgpLnNlbGVjdCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHVubWFya0NoaWxkcmVuQXNTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuZGVzZWxlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aCgpLnNldFBhdGgodGhpcy5wYXRoKTtcbiAgICB0aGlzLmZTZWxlY3Rpb24oKS5zZXRQYXRoKHRoaXMucGF0aCk7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZUVuZCgpLnJlZHJhdyh0aGlzLl9wZW51bHRpbWF0ZVBvaW50LCB0aGlzLmxpbmUucG9pbnQyKTtcbiAgICB0aGlzLmZEcmFnSGFuZGxlU3RhcnQoKT8ucmVkcmF3KHRoaXMuX3NlY29uZFBvaW50LCB0aGlzLmxpbmUucG9pbnQxKTtcbiAgICB0aGlzLl9mR3JhZGllbnRSZW5kZXJlcigpPy5yZWRyYXcodGhpcy5saW5lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXNvbHZlZFNpZGVzKCk6IHsgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGU7IHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2VTaWRlOiB0aGlzLl9zb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0U2lkZTogdGhpcy5fdGFyZ2V0U2lkZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIHJlc29sdmVkIHNpZGVzIHRvIHRoZSBjb25uZWN0aW9uLiBEb24ndCBjYWxsIHRoaXMgbWV0aG9kIGRpcmVjdGx5OyBpdCdzIHVzZWQgaW50ZXJuYWxseS5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVNpZGUgVGhlIHJlc29sdmVkIHNpZGUgZm9yIHRoZSBzb3VyY2UgZWxlbWVudC5cbiAgICogQHBhcmFtIHRhcmdldFNpZGUgVGhlIHJlc29sdmVkIHNpZGUgZm9yIHRoZSB0YXJnZXQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBfYXBwbHlSZXNvbHZlZFNpZGVzVG9Db25uZWN0aW9uKFxuICAgIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICAgIHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9zb3VyY2VTaWRlID0gc291cmNlU2lkZTtcbiAgICB0aGlzLl90YXJnZXRTaWRlID0gdGFyZ2V0U2lkZTtcbiAgfVxufVxuIl19