ngx-vflow 1.0.2 → 1.0.4

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 (140) hide show
  1. package/README.md +10 -10
  2. package/esm2022/lib/vflow/components/background/background.component.mjs +6 -10
  3. package/esm2022/lib/vflow/components/connection/connection.component.mjs +8 -10
  4. package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +2 -2
  5. package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +4 -4
  6. package/esm2022/lib/vflow/components/defs/defs.component.mjs +3 -3
  7. package/esm2022/lib/vflow/components/edge/edge.component.mjs +3 -3
  8. package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +5 -7
  9. package/esm2022/lib/vflow/components/node/node.component.mjs +7 -8
  10. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +5 -8
  11. package/esm2022/lib/vflow/decorators/microtask.decorator.mjs +1 -1
  12. package/esm2022/lib/vflow/decorators/run-in-injection-context.decorator.mjs +2 -2
  13. package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +64 -22
  14. package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +6 -3
  15. package/esm2022/lib/vflow/directives/drag-handle.directive.mjs +3 -3
  16. package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +6 -4
  17. package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +2 -2
  18. package/esm2022/lib/vflow/directives/map-context.directive.mjs +16 -14
  19. package/esm2022/lib/vflow/directives/pointer.directive.mjs +2 -2
  20. package/esm2022/lib/vflow/directives/reference.directive.mjs +1 -1
  21. package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +7 -11
  22. package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +1 -1
  23. package/esm2022/lib/vflow/directives/selectable.directive.mjs +1 -1
  24. package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +2 -2
  25. package/esm2022/lib/vflow/directives/template.directive.mjs +6 -6
  26. package/esm2022/lib/vflow/interfaces/box.mjs +1 -1
  27. package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +1 -1
  28. package/esm2022/lib/vflow/interfaces/connection-settings.interface.mjs +1 -1
  29. package/esm2022/lib/vflow/interfaces/connection.interface.mjs +1 -1
  30. package/esm2022/lib/vflow/interfaces/connection.internal.interface.mjs +1 -1
  31. package/esm2022/lib/vflow/interfaces/edge-label.interface.mjs +1 -1
  32. package/esm2022/lib/vflow/interfaces/edge.interface.mjs +1 -1
  33. package/esm2022/lib/vflow/interfaces/fit-view-options.interface.mjs +1 -1
  34. package/esm2022/lib/vflow/interfaces/flow-entity.interface.mjs +1 -1
  35. package/esm2022/lib/vflow/interfaces/marker.interface.mjs +1 -1
  36. package/esm2022/lib/vflow/interfaces/node.interface.mjs +5 -5
  37. package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +1 -1
  38. package/esm2022/lib/vflow/interfaces/path-data.interface.mjs +1 -1
  39. package/esm2022/lib/vflow/interfaces/point.interface.mjs +1 -1
  40. package/esm2022/lib/vflow/interfaces/rect.mjs +1 -1
  41. package/esm2022/lib/vflow/interfaces/template-context.interface.mjs +1 -1
  42. package/esm2022/lib/vflow/interfaces/viewport.interface.mjs +1 -1
  43. package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +4 -10
  44. package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +3 -3
  45. package/esm2022/lib/vflow/math/edge-path/straigh-path.mjs +6 -6
  46. package/esm2022/lib/vflow/math/point-on-line-by-ratio.mjs +1 -1
  47. package/esm2022/lib/vflow/models/connection.model.mjs +1 -1
  48. package/esm2022/lib/vflow/models/edge-label.model.mjs +2 -2
  49. package/esm2022/lib/vflow/models/edge.model.mjs +25 -25
  50. package/esm2022/lib/vflow/models/handle.model.mjs +41 -37
  51. package/esm2022/lib/vflow/models/minimap.model.mjs +2 -2
  52. package/esm2022/lib/vflow/models/node.model.mjs +9 -14
  53. package/esm2022/lib/vflow/models/toolbar.model.mjs +6 -6
  54. package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +3 -3
  55. package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +3 -3
  56. package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +2 -2
  57. package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +8 -16
  58. package/esm2022/lib/vflow/public-components/node-toolbar/node-toolbar.component.mjs +3 -3
  59. package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +11 -17
  60. package/esm2022/lib/vflow/services/component-event-bus.service.mjs +1 -1
  61. package/esm2022/lib/vflow/services/draggable.service.mjs +10 -12
  62. package/esm2022/lib/vflow/services/edge-changes.service.mjs +14 -20
  63. package/esm2022/lib/vflow/services/flow-entities.service.mjs +7 -10
  64. package/esm2022/lib/vflow/services/flow-settings.service.mjs +1 -1
  65. package/esm2022/lib/vflow/services/flow-status.service.mjs +2 -2
  66. package/esm2022/lib/vflow/services/handle.service.mjs +3 -3
  67. package/esm2022/lib/vflow/services/keyboard.service.mjs +8 -6
  68. package/esm2022/lib/vflow/services/node-accessor.service.mjs +1 -1
  69. package/esm2022/lib/vflow/services/node-changes.service.mjs +13 -21
  70. package/esm2022/lib/vflow/services/node-rendering.service.mjs +6 -7
  71. package/esm2022/lib/vflow/services/overlays.service.mjs +2 -2
  72. package/esm2022/lib/vflow/services/selection.service.mjs +6 -4
  73. package/esm2022/lib/vflow/services/viewport.service.mjs +13 -11
  74. package/esm2022/lib/vflow/testing-utils/provide-custom-node-mocks.mjs +25 -25
  75. package/esm2022/lib/vflow/types/background.type.mjs +1 -1
  76. package/esm2022/lib/vflow/types/connection-mode.type.mjs +1 -1
  77. package/esm2022/lib/vflow/types/edge-change.type.mjs +1 -1
  78. package/esm2022/lib/vflow/types/handle-type.type.mjs +1 -1
  79. package/esm2022/lib/vflow/types/keyboard-action.type.mjs +1 -1
  80. package/esm2022/lib/vflow/types/node-change.type.mjs +1 -1
  81. package/esm2022/lib/vflow/types/position.type.mjs +1 -1
  82. package/esm2022/lib/vflow/types/using-points.type.mjs +1 -1
  83. package/esm2022/lib/vflow/types/viewport-change-type.type.mjs +1 -1
  84. package/esm2022/lib/vflow/utils/add-nodes-to-edges.mjs +2 -2
  85. package/esm2022/lib/vflow/utils/adjust-direction.mjs +1 -1
  86. package/esm2022/lib/vflow/utils/get-os.mjs +6 -6
  87. package/esm2022/lib/vflow/utils/hash.mjs +2 -2
  88. package/esm2022/lib/vflow/utils/id.mjs +1 -1
  89. package/esm2022/lib/vflow/utils/is-defined.mjs +1 -1
  90. package/esm2022/lib/vflow/utils/is-group-node.mjs +1 -1
  91. package/esm2022/lib/vflow/utils/nodes.mjs +2 -2
  92. package/esm2022/lib/vflow/utils/reference-keeper.mjs +7 -7
  93. package/esm2022/lib/vflow/utils/resizable.mjs +4 -4
  94. package/esm2022/lib/vflow/utils/round.mjs +1 -1
  95. package/esm2022/lib/vflow/utils/transform-background.mjs +2 -4
  96. package/esm2022/lib/vflow/utils/viewport.mjs +1 -1
  97. package/esm2022/lib/vflow/vflow.mjs +10 -10
  98. package/esm2022/public-api.mjs +1 -1
  99. package/fesm2022/ngx-vflow.mjs +320 -322
  100. package/fesm2022/ngx-vflow.mjs.map +1 -1
  101. package/lib/vflow/components/node/node.component.d.ts +1 -1
  102. package/lib/vflow/components/vflow/vflow.component.d.ts +1 -1
  103. package/lib/vflow/decorators/run-in-injection-context.decorator.d.ts +1 -1
  104. package/lib/vflow/directives/changes-controller.directive.d.ts +29 -29
  105. package/lib/vflow/directives/connection-controller.directive.d.ts +4 -2
  106. package/lib/vflow/directives/pointer.directive.d.ts +4 -4
  107. package/lib/vflow/interfaces/component-node-event.interface.d.ts +5 -5
  108. package/lib/vflow/interfaces/connection-settings.interface.d.ts +4 -4
  109. package/lib/vflow/interfaces/connection.internal.interface.d.ts +2 -2
  110. package/lib/vflow/interfaces/edge.interface.d.ts +3 -3
  111. package/lib/vflow/interfaces/flow-entity.interface.d.ts +1 -1
  112. package/lib/vflow/interfaces/node.interface.d.ts +4 -4
  113. package/lib/vflow/interfaces/path-data.interface.d.ts +2 -2
  114. package/lib/vflow/interfaces/template-context.interface.d.ts +2 -2
  115. package/lib/vflow/interfaces/viewport.interface.d.ts +2 -2
  116. package/lib/vflow/math/edge-path/straigh-path.d.ts +3 -3
  117. package/lib/vflow/math/point-on-line-by-ratio.d.ts +1 -1
  118. package/lib/vflow/models/connection.model.d.ts +3 -3
  119. package/lib/vflow/models/edge-label.model.d.ts +1 -1
  120. package/lib/vflow/models/edge.model.d.ts +8 -9
  121. package/lib/vflow/models/handle.model.d.ts +2 -2
  122. package/lib/vflow/models/minimap.model.d.ts +1 -1
  123. package/lib/vflow/models/toolbar.model.d.ts +3 -3
  124. package/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.d.ts +2 -2
  125. package/lib/vflow/public-components/custom-node/custom-node.component.d.ts +2 -2
  126. package/lib/vflow/public-components/handle/handle.component.d.ts +1 -1
  127. package/lib/vflow/services/flow-status.service.d.ts +1 -1
  128. package/lib/vflow/testing-utils/provide-custom-node-mocks.d.ts +1 -1
  129. package/lib/vflow/types/node-change.type.d.ts +1 -1
  130. package/lib/vflow/types/viewport-change-type.type.d.ts +1 -3
  131. package/lib/vflow/utils/add-nodes-to-edges.d.ts +2 -2
  132. package/lib/vflow/utils/adjust-direction.d.ts +1 -1
  133. package/lib/vflow/utils/is-group-node.d.ts +1 -1
  134. package/lib/vflow/utils/nodes.d.ts +2 -2
  135. package/lib/vflow/utils/reference-keeper.d.ts +3 -3
  136. package/lib/vflow/utils/resizable.d.ts +2 -2
  137. package/lib/vflow/utils/transform-background.d.ts +1 -1
  138. package/lib/vflow/utils/viewport.d.ts +2 -2
  139. package/lib/vflow/vflow.d.ts +8 -8
  140. package/package.json +2 -2
package/README.md CHANGED
@@ -13,7 +13,7 @@ npm i ngx-vflow --save
13
13
  ## Version Compatibility
14
14
 
15
15
  | ngx-vlow | Angular |
16
- |----------|-----------|
16
+ | -------- | --------- |
17
17
  | v0.x | v16.2.0+ |
18
18
  | v1.x | v17.3.12+ |
19
19
 
@@ -26,7 +26,7 @@ The following code describes 3 nodes and creates 2 edges between them.
26
26
  template: `<vflow [nodes]="nodes" [edges]="edges" />`,
27
27
  changeDetection: ChangeDetectionStrategy.OnPush,
28
28
  standalone: true,
29
- imports: [Vflow]
29
+ imports: [Vflow],
30
30
  })
31
31
  export class DefaultEdgesDemoComponent {
32
32
  public nodes: Node[] = [
@@ -34,34 +34,34 @@ export class DefaultEdgesDemoComponent {
34
34
  id: '1',
35
35
  point: { x: 10, y: 200 },
36
36
  type: 'default',
37
- text: '1'
37
+ text: '1',
38
38
  },
39
39
  {
40
40
  id: '2',
41
41
  point: { x: 200, y: 100 },
42
42
  type: 'default',
43
- text: '2'
43
+ text: '2',
44
44
  },
45
45
  {
46
46
  id: '3',
47
47
  point: { x: 200, y: 300 },
48
48
  type: 'default',
49
- text: '3'
49
+ text: '3',
50
50
  },
51
- ]
51
+ ];
52
52
 
53
53
  public edges: Edge[] = [
54
54
  {
55
55
  id: '1 -> 2',
56
56
  source: '1',
57
- target: '2'
57
+ target: '2',
58
58
  },
59
59
  {
60
60
  id: '1 -> 3',
61
61
  source: '1',
62
- target: '3'
62
+ target: '3',
63
63
  },
64
- ]
64
+ ];
65
65
  }
66
66
  ```
67
67
 
@@ -80,6 +80,6 @@ Host directives for `vflow` that you may find helpful:
80
80
  - https://www.ngx-vflow.org/api/ngx-vflow/classes/ConnectionControllerDirective
81
81
  - https://www.ngx-vflow.org/api/ngx-vflow/classes/ChangesControllerDirective
82
82
 
83
- ## License
83
+ ## License
84
84
 
85
85
  MIT
@@ -71,9 +71,7 @@ export class BackgroundComponent {
71
71
  if (!background.repeat) {
72
72
  return background.fixed ? 0 : this.viewportService.readableViewport().x;
73
73
  }
74
- return background.fixed
75
- ? 0
76
- : this.viewportService.readableViewport().x % this.scaledImageWidth();
74
+ return background.fixed ? 0 : this.viewportService.readableViewport().x % this.scaledImageWidth();
77
75
  }
78
76
  return 0;
79
77
  });
@@ -83,9 +81,7 @@ export class BackgroundComponent {
83
81
  if (!background.repeat) {
84
82
  return background.fixed ? 0 : this.viewportService.readableViewport().y;
85
83
  }
86
- return background.fixed
87
- ? 0
88
- : this.viewportService.readableViewport().y % this.scaledImageHeight();
84
+ return background.fixed ? 0 : this.viewportService.readableViewport().y % this.scaledImageHeight();
89
85
  }
90
86
  return 0;
91
87
  });
@@ -108,17 +104,17 @@ export class BackgroundComponent {
108
104
  });
109
105
  }
110
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BackgroundComponent, isStandalone: true, selector: "g[background]", ngImport: i0, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\"\n patternUnits=\"userSpaceOnUse\"\n >\n <svg:circle\n [attr.cx]=\"patternSize()\"\n [attr.cy]=\"patternSize()\"\n [attr.r]=\"patternSize()\"\n [attr.fill]=\"patternColor()\"\n />\n </svg:pattern>\n\n <svg:rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n [attr.fill]=\"patternUrl\"\n />\n}\n\n@if (backgroundSignal().type === 'image') {\n @if (repeated()) {\n <svg:pattern\n [attr.id]=\"patternId\"\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n patternUnits=\"userSpaceOnUse\"\n >\n <svg:image\n [attr.href]=\"bgImageSrc()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n />\n </svg:pattern>\n\n <svg:rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n [attr.fill]=\"patternUrl\"\n />\n }\n\n @if (!repeated()) {\n <svg:image\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n [attr.href]=\"bgImageSrc()\"\n />\n }\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BackgroundComponent, isStandalone: true, selector: "g[background]", ngImport: i0, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\">\n <svg:circle\n [attr.cx]=\"patternSize()\"\n [attr.cy]=\"patternSize()\"\n [attr.r]=\"patternSize()\"\n [attr.fill]=\"patternColor()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n}\n\n@if (backgroundSignal().type === 'image') {\n @if (repeated()) {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\">\n <svg:image [attr.href]=\"bgImageSrc()\" [attr.width]=\"scaledImageWidth()\" [attr.height]=\"scaledImageHeight()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n }\n\n @if (!repeated()) {\n <svg:image\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n [attr.href]=\"bgImageSrc()\" />\n }\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
108
  }
113
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BackgroundComponent, decorators: [{
114
110
  type: Component,
115
- args: [{ standalone: true, selector: 'g[background]', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\"\n patternUnits=\"userSpaceOnUse\"\n >\n <svg:circle\n [attr.cx]=\"patternSize()\"\n [attr.cy]=\"patternSize()\"\n [attr.r]=\"patternSize()\"\n [attr.fill]=\"patternColor()\"\n />\n </svg:pattern>\n\n <svg:rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n [attr.fill]=\"patternUrl\"\n />\n}\n\n@if (backgroundSignal().type === 'image') {\n @if (repeated()) {\n <svg:pattern\n [attr.id]=\"patternId\"\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n patternUnits=\"userSpaceOnUse\"\n >\n <svg:image\n [attr.href]=\"bgImageSrc()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n />\n </svg:pattern>\n\n <svg:rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n [attr.fill]=\"patternUrl\"\n />\n }\n\n @if (!repeated()) {\n <svg:image\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n [attr.href]=\"bgImageSrc()\"\n />\n }\n}\n" }]
111
+ args: [{ standalone: true, selector: 'g[background]', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\">\n <svg:circle\n [attr.cx]=\"patternSize()\"\n [attr.cy]=\"patternSize()\"\n [attr.r]=\"patternSize()\"\n [attr.fill]=\"patternColor()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n}\n\n@if (backgroundSignal().type === 'image') {\n @if (repeated()) {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\">\n <svg:image [attr.href]=\"bgImageSrc()\" [attr.width]=\"scaledImageWidth()\" [attr.height]=\"scaledImageHeight()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n }\n\n @if (!repeated()) {\n <svg:image\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n [attr.href]=\"bgImageSrc()\" />\n }\n}\n" }]
116
112
  }], ctorParameters: () => [] });
117
113
  function createImage(url) {
118
114
  const image = new Image();
119
115
  image.src = url;
120
- return new Promise(resolve => {
116
+ return new Promise((resolve) => {
121
117
  image.onload = () => resolve(image);
122
118
  });
123
119
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9iYWNrZ3JvdW5kL2JhY2tncm91bmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvYmFja2dyb3VuZC9iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUV0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUE7QUFDeEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ3JCLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQTtBQUN4QixNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQTtBQUM1QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTtBQUM3QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUE7QUFRNUIsTUFBTSxPQUFPLG1CQUFtQjtJQThIOUI7UUE3SFEs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QUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmVmZXJlbmNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpZCB9IGZyb20gJy4uLy4uL3V0aWxzL2lkJztcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IGRlZmF1bHRCZyA9ICcjZmZmJ1xuY29uc3QgZGVmYXVsdEdhcCA9IDIwXG5jb25zdCBkZWZhdWx0RG90U2l6ZSA9IDJcbmNvbnN0IGRlZmF1bHREb3RDb2xvciA9ICdyZ2IoMTc3LCAxNzcsIDE4MyknXG5jb25zdCBkZWZhdWx0SW1hZ2VTY2FsZSA9IDAuMVxuY29uc3QgZGVmYXVsdFJlcGVhdGVkID0gdHJ1ZVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdnW2JhY2tncm91bmRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2tncm91bmQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFja2dyb3VuZENvbXBvbmVudCB7XG4gIHByaXZhdGUgdmlld3BvcnRTZXJ2aWNlID0gaW5qZWN0KFZpZXdwb3J0U2VydmljZSlcbiAgcHJpdmF0ZSByb290U3ZnID0gaW5qZWN0KFJvb3RTdmdSZWZlcmVuY2VEaXJlY3RpdmUpLmVsZW1lbnRcbiAgcHJpdmF0ZSBzZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGJhY2tncm91bmRTaWduYWwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5iYWNrZ3JvdW5kXG5cbiAgLy8gRE9UUyBQQVRURVJOXG4gIHByb3RlY3RlZCBzY2FsZWRHYXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnZG90cycpIHtcbiAgICAgIGNvbnN0IHpvb20gPSB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbVxuXG4gICAgICByZXR1cm4gem9vbSAqIChiYWNrZ3JvdW5kLmdhcCA/PyBkZWZhdWx0R2FwKVxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH0pXG5cbiAgcHJvdGVjdGVkIHggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueCAlIHRoaXMuc2NhbGVkR2FwKCkpXG5cbiAgcHJvdGVjdGVkIHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueSAlIHRoaXMuc2NhbGVkR2FwKCkpXG5cbiAgcHJvdGVjdGVkIHBhdHRlcm5Db2xvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiZyA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmcudHlwZSA9PT0gJ2RvdHMnKSB7XG4gICAgICByZXR1cm4gYmcuY29sb3IgPz8gZGVmYXVsdERvdENvbG9yXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHREb3RDb2xvclxuICB9KVxuXG4gIHByb3RlY3RlZCBwYXR0ZXJuU2l6ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kU2lnbmFsKClcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdkb3RzJykge1xuICAgICAgcmV0dXJuICh0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbSAqIChiYWNrZ3JvdW5kLnNpemUgPz8gZGVmYXVsdERvdFNpemUpKSAvIDJcbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9KVxuXG4gIC8vIElNQUdFIFBBVFRFUk5cbiAgcHJvdGVjdGVkIGJnSW1hZ2VTcmMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICByZXR1cm4gYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnID8gYmFja2dyb3VuZC5zcmMgOiAnJ1xuICB9KVxuXG4gIHByb3RlY3RlZCBpbWFnZVNpemUgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5iYWNrZ3JvdW5kU2lnbmFsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGNyZWF0ZUltYWdlKHRoaXMuYmdJbWFnZVNyYygpKSksXG4gICAgICBtYXAoKGltYWdlKSA9PiAoeyB3aWR0aDogaW1hZ2UubmF0dXJhbFdpZHRoLCBoZWlnaHQ6IGltYWdlLm5hdHVyYWxIZWlnaHQgfSkpLFxuICAgICksXG4gICAgeyBpbml0aWFsVmFsdWU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9IH1cbiAgKVxuXG4gIHByb3RlY3RlZCBzY2FsZWRJbWFnZVdpZHRoID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKVxuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgY29uc3Qgem9vbSA9IGJhY2tncm91bmQuZml4ZWQgPyAxIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnpvb21cblxuICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VTaXplKCkud2lkdGggKiB6b29tICogKGJhY2tncm91bmQuc2NhbGUgPz8gZGVmYXVsdEltYWdlU2NhbGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfSlcblxuICBwcm90ZWN0ZWQgc2NhbGVkSW1hZ2VIZWlnaHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICBjb25zdCB6b29tID0gYmFja2dyb3VuZC5maXhlZCA/IDEgOiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbVxuXG4gICAgICByZXR1cm4gdGhpcy5pbWFnZVNpemUoKS5oZWlnaHQgKiB6b29tICogKGJhY2tncm91bmQuc2NhbGUgPz8gZGVmYXVsdEltYWdlU2NhbGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGltYWdlWCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kU2lnbmFsKClcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIGlmICghYmFja2dyb3VuZC5yZXBlYXQpIHtcbiAgICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWQgPyAwIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnhcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWRcbiAgICAgICAgPyAwXG4gICAgICAgIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnggJSB0aGlzLnNjYWxlZEltYWdlV2lkdGgoKVxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH0pO1xuXG4gIHByb3RlY3RlZCBpbWFnZVkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICBpZiAoIWJhY2tncm91bmQucmVwZWF0KSB7XG4gICAgICAgIHJldHVybiBiYWNrZ3JvdW5kLmZpeGVkID8gMCA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS55XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBiYWNrZ3JvdW5kLmZpeGVkXG4gICAgICAgID8gMFxuICAgICAgICA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS55ICUgdGhpcy5zY2FsZWRJbWFnZUhlaWdodCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlcGVhdGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKVxuXG4gICAgcmV0dXJuIGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJyAmJiAoYmFja2dyb3VuZC5yZXBlYXQgPz8gZGVmYXVsdFJlcGVhdGVkKVxuICB9KVxuXG4gIC8vIFdpdGhvdXQgSUQgdGhlcmUgd2lsbCBiZSBwYXR0ZXJuIGNvbGxpc2lvbiBmb3Igc2V2ZXJhbCBmbG93cyBvbiB0aGUgcGFnZVxuICAvLyBMYXRlciBwYXR0ZXJuIElEIG1heSBiZSBleHBvc2VkIHRvIEFQSVxuICBwcm90ZWN0ZWQgcGF0dGVybklkID0gaWQoKTtcbiAgcHJvdGVjdGVkIHBhdHRlcm5VcmwgPSBgdXJsKCMke3RoaXMucGF0dGVybklkfSlgXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKVxuXG4gICAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnZG90cycpIHtcbiAgICAgICAgdGhpcy5yb290U3ZnLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yID8/IGRlZmF1bHRCZ1xuICAgICAgfVxuXG4gICAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnc29saWQnKSB7XG4gICAgICAgIHRoaXMucm9vdFN2Zy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3JvdW5kLmNvbG9yXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVJbWFnZSh1cmw6IHN0cmluZykge1xuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXG5cbiAgaW1hZ2Uuc3JjID0gdXJsXG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+KHJlc29sdmUgPT4ge1xuICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2UpXG4gIH0pXG59XG4iLCJAaWYgKGJhY2tncm91bmRTaWduYWwoKS50eXBlID09PSAnZG90cycpIHtcbiAgPHN2ZzpwYXR0ZXJuXG4gICAgW2F0dHIuaWRdPVwicGF0dGVybklkXCJcbiAgICBbYXR0ci54XT1cIngoKVwiXG4gICAgW2F0dHIueV09XCJ5KClcIlxuICAgIFthdHRyLndpZHRoXT1cInNjYWxlZEdhcCgpXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwic2NhbGVkR2FwKClcIlxuICAgIHBhdHRlcm5Vbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICA+XG4gICAgPHN2ZzpjaXJjbGVcbiAgICAgIFthdHRyLmN4XT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuY3ldPVwicGF0dGVyblNpemUoKVwiXG4gICAgICBbYXR0ci5yXT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuZmlsbF09XCJwYXR0ZXJuQ29sb3IoKVwiXG4gICAgICAvPlxuICA8L3N2ZzpwYXR0ZXJuPlxuXG4gIDxzdmc6cmVjdFxuICAgIHg9XCIwXCJcbiAgICB5PVwiMFwiXG4gICAgd2lkdGg9XCIxMDAlXCJcbiAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICBbYXR0ci5maWxsXT1cInBhdHRlcm5VcmxcIlxuICAgIC8+XG59XG5cbkBpZiAoYmFja2dyb3VuZFNpZ25hbCgpLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgQGlmIChyZXBlYXRlZCgpKSB7XG4gICAgPHN2ZzpwYXR0ZXJuXG4gICAgICBbYXR0ci5pZF09XCJwYXR0ZXJuSWRcIlxuICAgICAgW2F0dHIueF09XCJpbWFnZVgoKVwiXG4gICAgICBbYXR0ci55XT1cImltYWdlWSgpXCJcbiAgICAgIFthdHRyLndpZHRoXT1cInNjYWxlZEltYWdlV2lkdGgoKVwiXG4gICAgICBbYXR0ci5oZWlnaHRdPVwic2NhbGVkSW1hZ2VIZWlnaHQoKVwiXG4gICAgICBwYXR0ZXJuVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICA+XG4gICAgICA8c3ZnOmltYWdlXG4gICAgICAgIFthdHRyLmhyZWZdPVwiYmdJbWFnZVNyYygpXCJcbiAgICAgICAgW2F0dHIud2lkdGhdPVwic2NhbGVkSW1hZ2VXaWR0aCgpXCJcbiAgICAgICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIlxuICAgICAgICAvPlxuICAgIDwvc3ZnOnBhdHRlcm4+XG5cbiAgICA8c3ZnOnJlY3RcbiAgICAgIHg9XCIwXCJcbiAgICAgIHk9XCIwXCJcbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICAgIFthdHRyLmZpbGxdPVwicGF0dGVyblVybFwiXG4gICAgICAvPlxuICB9XG5cbiAgQGlmICghcmVwZWF0ZWQoKSkge1xuICAgIDxzdmc6aW1hZ2VcbiAgICAgIFthdHRyLnhdPVwiaW1hZ2VYKClcIlxuICAgICAgW2F0dHIueV09XCJpbWFnZVkoKVwiXG4gICAgICBbYXR0ci53aWR0aF09XCJzY2FsZWRJbWFnZVdpZHRoKClcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIlxuICAgICAgW2F0dHIuaHJlZl09XCJiZ0ltYWdlU3JjKClcIlxuICAgICAgLz5cbiAgfVxufVxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9iYWNrZ3JvdW5kL2JhY2tncm91bmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvYmFja2dyb3VuZC9iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUV0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQUN6QixNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQztBQUM3QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFRN0IsTUFBTSxPQUFPLG1CQUFtQjtJQTBIOUI7UUF6SFEs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QUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmVmZXJlbmNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpZCB9IGZyb20gJy4uLy4uL3V0aWxzL2lkJztcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IGRlZmF1bHRCZyA9ICcjZmZmJztcbmNvbnN0IGRlZmF1bHRHYXAgPSAyMDtcbmNvbnN0IGRlZmF1bHREb3RTaXplID0gMjtcbmNvbnN0IGRlZmF1bHREb3RDb2xvciA9ICdyZ2IoMTc3LCAxNzcsIDE4MyknO1xuY29uc3QgZGVmYXVsdEltYWdlU2NhbGUgPSAwLjE7XG5jb25zdCBkZWZhdWx0UmVwZWF0ZWQgPSB0cnVlO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdnW2JhY2tncm91bmRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2tncm91bmQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFja2dyb3VuZENvbXBvbmVudCB7XG4gIHByaXZhdGUgdmlld3BvcnRTZXJ2aWNlID0gaW5qZWN0KFZpZXdwb3J0U2VydmljZSk7XG4gIHByaXZhdGUgcm9vdFN2ZyA9IGluamVjdChSb290U3ZnUmVmZXJlbmNlRGlyZWN0aXZlKS5lbGVtZW50O1xuICBwcml2YXRlIHNldHRpbmdzU2VydmljZSA9IGluamVjdChGbG93U2V0dGluZ3NTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgYmFja2dyb3VuZFNpZ25hbCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmJhY2tncm91bmQ7XG5cbiAgLy8gRE9UUyBQQVRURVJOXG4gIHByb3RlY3RlZCBzY2FsZWRHYXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2RvdHMnKSB7XG4gICAgICBjb25zdCB6b29tID0gdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnpvb207XG5cbiAgICAgIHJldHVybiB6b29tICogKGJhY2tncm91bmQuZ2FwID8/IGRlZmF1bHRHYXApO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgeCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS54ICUgdGhpcy5zY2FsZWRHYXAoKSk7XG5cbiAgcHJvdGVjdGVkIHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueSAlIHRoaXMuc2NhbGVkR2FwKCkpO1xuXG4gIHByb3RlY3RlZCBwYXR0ZXJuQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmcgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiZy50eXBlID09PSAnZG90cycpIHtcbiAgICAgIHJldHVybiBiZy5jb2xvciA/PyBkZWZhdWx0RG90Q29sb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHREb3RDb2xvcjtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHBhdHRlcm5TaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdkb3RzJykge1xuICAgICAgcmV0dXJuICh0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbSAqIChiYWNrZ3JvdW5kLnNpemUgPz8gZGVmYXVsdERvdFNpemUpKSAvIDI7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIC8vIElNQUdFIFBBVFRFUk5cbiAgcHJvdGVjdGVkIGJnSW1hZ2VTcmMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgcmV0dXJuIGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJyA/IGJhY2tncm91bmQuc3JjIDogJyc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBpbWFnZVNpemUgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5iYWNrZ3JvdW5kU2lnbmFsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGNyZWF0ZUltYWdlKHRoaXMuYmdJbWFnZVNyYygpKSksXG4gICAgICBtYXAoKGltYWdlKSA9PiAoeyB3aWR0aDogaW1hZ2UubmF0dXJhbFdpZHRoLCBoZWlnaHQ6IGltYWdlLm5hdHVyYWxIZWlnaHQgfSkpLFxuICAgICksXG4gICAgeyBpbml0aWFsVmFsdWU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9IH0sXG4gICk7XG5cbiAgcHJvdGVjdGVkIHNjYWxlZEltYWdlV2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgY29uc3Qgem9vbSA9IGJhY2tncm91bmQuZml4ZWQgPyAxIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnpvb207XG5cbiAgICAgIHJldHVybiB0aGlzLmltYWdlU2l6ZSgpLndpZHRoICogem9vbSAqIChiYWNrZ3JvdW5kLnNjYWxlID8/IGRlZmF1bHRJbWFnZVNjYWxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHNjYWxlZEltYWdlSGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIGNvbnN0IHpvb20gPSBiYWNrZ3JvdW5kLmZpeGVkID8gMSA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS56b29tO1xuXG4gICAgICByZXR1cm4gdGhpcy5pbWFnZVNpemUoKS5oZWlnaHQgKiB6b29tICogKGJhY2tncm91bmQuc2NhbGUgPz8gZGVmYXVsdEltYWdlU2NhbGUpO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaW1hZ2VYID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIGlmICghYmFja2dyb3VuZC5yZXBlYXQpIHtcbiAgICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWQgPyAwIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLng7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBiYWNrZ3JvdW5kLmZpeGVkID8gMCA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS54ICUgdGhpcy5zY2FsZWRJbWFnZVdpZHRoKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBpbWFnZVkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgaWYgKCFiYWNrZ3JvdW5kLnJlcGVhdCkge1xuICAgICAgICByZXR1cm4gYmFja2dyb3VuZC5maXhlZCA/IDAgOiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWQgPyAwIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnkgJSB0aGlzLnNjYWxlZEltYWdlSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZXBlYXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kU2lnbmFsKCk7XG5cbiAgICByZXR1cm4gYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnICYmIChiYWNrZ3JvdW5kLnJlcGVhdCA/PyBkZWZhdWx0UmVwZWF0ZWQpO1xuICB9KTtcblxuICAvLyBXaXRob3V0IElEIHRoZXJlIHdpbGwgYmUgcGF0dGVybiBjb2xsaXNpb24gZm9yIHNldmVyYWwgZmxvd3Mgb24gdGhlIHBhZ2VcbiAgLy8gTGF0ZXIgcGF0dGVybiBJRCBtYXkgYmUgZXhwb3NlZCB0byBBUElcbiAgcHJvdGVjdGVkIHBhdHRlcm5JZCA9IGlkKCk7XG4gIHByb3RlY3RlZCBwYXR0ZXJuVXJsID0gYHVybCgjJHt0aGlzLnBhdHRlcm5JZH0pYDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnZG90cycpIHtcbiAgICAgICAgdGhpcy5yb290U3ZnLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yID8/IGRlZmF1bHRCZztcbiAgICAgIH1cblxuICAgICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ3NvbGlkJykge1xuICAgICAgICB0aGlzLnJvb3RTdmcuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZC5jb2xvcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVJbWFnZSh1cmw6IHN0cmluZykge1xuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuXG4gIGltYWdlLnNyYyA9IHVybDtcblxuICByZXR1cm4gbmV3IFByb21pc2U8SFRNTEltYWdlRWxlbWVudD4oKHJlc29sdmUpID0+IHtcbiAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGltYWdlKTtcbiAgfSk7XG59XG4iLCJAaWYgKGJhY2tncm91bmRTaWduYWwoKS50eXBlID09PSAnZG90cycpIHtcbiAgPHN2ZzpwYXR0ZXJuXG4gICAgcGF0dGVyblVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgIFthdHRyLmlkXT1cInBhdHRlcm5JZFwiXG4gICAgW2F0dHIueF09XCJ4KClcIlxuICAgIFthdHRyLnldPVwieSgpXCJcbiAgICBbYXR0ci53aWR0aF09XCJzY2FsZWRHYXAoKVwiXG4gICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEdhcCgpXCI+XG4gICAgPHN2ZzpjaXJjbGVcbiAgICAgIFthdHRyLmN4XT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuY3ldPVwicGF0dGVyblNpemUoKVwiXG4gICAgICBbYXR0ci5yXT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuZmlsbF09XCJwYXR0ZXJuQ29sb3IoKVwiIC8+XG4gIDwvc3ZnOnBhdHRlcm4+XG5cbiAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgW2F0dHIuZmlsbF09XCJwYXR0ZXJuVXJsXCIgLz5cbn1cblxuQGlmIChiYWNrZ3JvdW5kU2lnbmFsKCkudHlwZSA9PT0gJ2ltYWdlJykge1xuICBAaWYgKHJlcGVhdGVkKCkpIHtcbiAgICA8c3ZnOnBhdHRlcm5cbiAgICAgIHBhdHRlcm5Vbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgIFthdHRyLmlkXT1cInBhdHRlcm5JZFwiXG4gICAgICBbYXR0ci54XT1cImltYWdlWCgpXCJcbiAgICAgIFthdHRyLnldPVwiaW1hZ2VZKClcIlxuICAgICAgW2F0dHIud2lkdGhdPVwic2NhbGVkSW1hZ2VXaWR0aCgpXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJzY2FsZWRJbWFnZUhlaWdodCgpXCI+XG4gICAgICA8c3ZnOmltYWdlIFthdHRyLmhyZWZdPVwiYmdJbWFnZVNyYygpXCIgW2F0dHIud2lkdGhdPVwic2NhbGVkSW1hZ2VXaWR0aCgpXCIgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIiAvPlxuICAgIDwvc3ZnOnBhdHRlcm4+XG5cbiAgICA8c3ZnOnJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBbYXR0ci5maWxsXT1cInBhdHRlcm5VcmxcIiAvPlxuICB9XG5cbiAgQGlmICghcmVwZWF0ZWQoKSkge1xuICAgIDxzdmc6aW1hZ2VcbiAgICAgIFthdHRyLnhdPVwiaW1hZ2VYKClcIlxuICAgICAgW2F0dHIueV09XCJpbWFnZVkoKVwiXG4gICAgICBbYXR0ci53aWR0aF09XCJzY2FsZWRJbWFnZVdpZHRoKClcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIlxuICAgICAgW2F0dHIuaHJlZl09XCJiZ0ltYWdlU3JjKClcIiAvPlxuICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, computed, inject, input, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
2
2
  import { FlowStatusService } from '../../services/flow-status.service';
3
3
  import { straightPath } from '../../math/edge-path/straigh-path';
4
4
  import { SpacePointContextDirective } from '../../directives/space-point-context.directive';
@@ -79,12 +79,11 @@ export class ConnectionComponent {
79
79
  @if (model().type === 'default') {
80
80
  @if (path(); as path) {
81
81
  <svg:path
82
- [attr.d]="path"
83
- [attr.marker-end]="markerUrl()"
84
- [attr.stroke]="defaultColor"
85
82
  fill="none"
86
83
  stroke-width="2"
87
- />
84
+ [attr.d]="path"
85
+ [attr.marker-end]="markerUrl()"
86
+ [attr.stroke]="defaultColor" />
88
87
  }
89
88
  }
90
89
 
@@ -104,12 +103,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
104
103
  @if (model().type === 'default') {
105
104
  @if (path(); as path) {
106
105
  <svg:path
107
- [attr.d]="path"
108
- [attr.marker-end]="markerUrl()"
109
- [attr.stroke]="defaultColor"
110
106
  fill="none"
111
107
  stroke-width="2"
112
- />
108
+ [attr.d]="path"
109
+ [attr.marker-end]="markerUrl()"
110
+ [attr.stroke]="defaultColor" />
113
111
  }
114
112
  }
115
113
 
@@ -135,4 +133,4 @@ function getOppositePostion(position) {
135
133
  return 'left';
136
134
  }
137
135
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUEyQm5ELE1BQU0sT0FBTyxtQkFBbUI7SUF6QmhDO1FBMEJTLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBRTFDLGFBQVEsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFFcEMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFckQsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRS9DLElBQUksTUFBTSxD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XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFRlbXBsYXRlUmVmLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93U3RhdHVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgc3RyYWlnaHRQYXRoIH0gZnJvbSAnLi4vLi4vbWF0aC9lZGdlLXBhdGgvc3RyYWlnaC1wYXRoJztcbmltcG9ydCB7IFNwYWNlUG9pbnRDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zcGFjZS1wb2ludC1jb250ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBiZXppZXJQYXRoIH0gZnJvbSAnLi4vLi4vbWF0aC9lZGdlLXBhdGgvYmV6aWVyLXBhdGgnO1xuaW1wb3J0IHsgaGFzaENvZGUgfSBmcm9tICcuLi8uLi91dGlscy9oYXNoJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBzbW9vdGhTdGVwUGF0aCB9IGZyb20gJy4uLy4uL21hdGgvZWRnZS1wYXRoL3Ntb290aC1zdGVwLXBhdGgnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2dbY29ubmVjdGlvbl0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobW9kZWwoKS50eXBlID09PSAnZGVmYXVsdCcpIHtcbiAgICAgIEBpZiAocGF0aCgpOyBhcyBwYXRoKSB7XG4gICAgICAgIDxzdmc6cGF0aFxuICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICAgICAgW2F0dHIubWFya2VyLWVuZF09XCJtYXJrZXJVcmwoKVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImRlZmF1bHRDb2xvclwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAobW9kZWwoKS50eXBlID09PSAndGVtcGxhdGUnKSB7XG4gICAgICBAaWYgKHRlbXBsYXRlKCk7IGFzIHRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogZ2V0Q29udGV4dCgpXCIgLz5cbiAgICAgIH1cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25Db21wb25lbnQge1xuICBwdWJsaWMgbW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxDb25uZWN0aW9uTW9kZWw+KCk7XG5cbiAgcHVibGljIHRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcblxuICBwcml2YXRlIGZsb3dTdGF0dXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dTdGF0dXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzcGFjZVBvaW50Q29udGV4dCA9IGluamVjdChTcGFjZVBvaW50Q29udGV4dERpcmVjdGl2ZSk7XG5cbiAgcHJvdGVjdGVkIHBhdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5mbG93U3RhdHVzU2VydmljZS5zdGF0dXMoKTtcblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXN0YXJ0Jykge1xuICAgICAgY29uc3Qgc291cmNlSGFuZGxlID0gc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlO1xuICAgICAgY29uc3Qgc291cmNlUG9pbnQgPSBzb3VyY2VIYW5kbGUucG9pbnRBYnNvbHV0ZSgpO1xuICAgICAgY29uc3Qgc291cmNlUG9zaXRpb24gPSBzb3VyY2VIYW5kbGUucmF3SGFuZGxlLnBvc2l0aW9uO1xuXG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHRoaXMuc3BhY2VQb2ludENvbnRleHQuc3ZnQ3VycmVudFNwYWNlUG9pbnQoKTtcbiAgICAgIGNvbnN0IHRhcmdldFBvc2l0aW9uID0gZ2V0T3Bwb3NpdGVQb3N0aW9uKFxuICAgICAgICBzb3VyY2VIYW5kbGUucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgKTtcblxuICAgICAgc3dpdGNoICh0aGlzLm1vZGVsKCkuY3VydmUpIHtcbiAgICAgICAgY2FzZSAnc3RyYWlnaHQnOlxuICAgICAgICAgIHJldHVybiBzdHJhaWdodFBhdGgoc291cmNlUG9pbnQsIHRhcmdldFBvaW50KS5wYXRoO1xuICAgICAgICBjYXNlICdiZXppZXInOlxuICAgICAgICAgIHJldHVybiBiZXppZXJQYXRoKFxuICAgICAgICAgICAgc291cmNlUG9pbnQsXG4gICAgICAgICAgICB0YXJnZXRQb2ludCxcbiAgICAgICAgICAgIHNvdXJjZVBvc2l0aW9uLFxuICAgICAgICAgICAgdGFyZ2V0UG9zaXRpb24sXG4gICAgICAgICAgKS5wYXRoO1xuICAgICAgICBjYXNlICdzbW9vdGgtc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgICAgc291cmNlUG9pbnQsXG4gICAgICAgICAgICB0YXJnZXRQb2ludCxcbiAgICAgICAgICAgIHNvdXJjZVBvc2l0aW9uLFxuICAgICAgICAgICAgdGFyZ2V0UG9zaXRpb24sXG4gICAgICAgICAgKS5wYXRoO1xuICAgICAgICBjYXNlICdzdGVwJzpcbiAgICAgICAgICByZXR1cm4gc21vb3RoU3RlcFBhdGgoXG4gICAgICAgICAgICBzb3VyY2VQb2ludCxcbiAgICAgICAgICAgIHRhcmdldFBvaW50LFxuICAgICAgICAgICAgc291cmNlUG9zaXRpb24sXG4gICAgICAgICAgICB0YXJnZXRQb3NpdGlvbixcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgKS5wYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBzb3VyY2VIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGU7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZUhhbmRsZS5wb2ludEFic29sdXRlKCk7XG4gICAgICBjb25zdCBzb3VyY2VQb3NpdGlvbiA9IHNvdXJjZUhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb247XG5cbiAgICAgIGNvbnN0IHRhcmdldEhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZTtcbiAgICAgIC8vIGlnbm9yZSBtYWduZXQgaWYgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gc3RhdHVzLnBheWxvYWQudmFsaWRcbiAgICAgICAgPyB0YXJnZXRIYW5kbGUucG9pbnRBYnNvbHV0ZSgpXG4gICAgICAgIDogdGhpcy5zcGFjZVBvaW50Q29udGV4dC5zdmdDdXJyZW50U3BhY2VQb2ludCgpO1xuICAgICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSBzdGF0dXMucGF5bG9hZC52YWxpZFxuICAgICAgICA/IHRhcmdldEhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb25cbiAgICAgICAgOiBnZXRPcHBvc2l0ZVBvc3Rpb24oc291cmNlSGFuZGxlLnJhd0hhbmRsZS5wb3NpdGlvbik7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlbCgpLmN1cnZlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCkucGF0aDtcbiAgICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChcbiAgICAgICAgICAgIHNvdXJjZVBvaW50LFxuICAgICAgICAgICAgdGFyZ2V0UG9pbnQsXG4gICAgICAgICAgICBzb3VyY2VQb3NpdGlvbixcbiAgICAgICAgICAgIHRhcmdldFBvc2l0aW9uLFxuICAgICAgICAgICkucGF0aDtcbiAgICAgICAgY2FzZSAnc21vb3RoLXN0ZXAnOlxuICAgICAgICAgIHJldHVybiBzbW9vdGhTdGVwUGF0aChcbiAgICAgICAgICAgIHNvdXJjZVBvaW50LFxuICAgICAgICAgICAgdGFyZ2V0UG9pbnQsXG4gICAgICAgICAgICBzb3VyY2VQb3NpdGlvbixcbiAgICAgICAgICAgIHRhcmdldFBvc2l0aW9uLFxuICAgICAgICAgICkucGF0aDtcbiAgICAgICAgY2FzZSAnc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgICAgc291cmNlUG9pbnQsXG4gICAgICAgICAgICB0YXJnZXRQb2ludCxcbiAgICAgICAgICAgIHNvdXJjZVBvc2l0aW9uLFxuICAgICAgICAgICAgdGFyZ2V0UG9zaXRpb24sXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICkucGF0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG1hcmtlclVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXJrZXIgPSB0aGlzLm1vZGVsKCkuc2V0dGluZ3MubWFya2VyO1xuXG4gICAgaWYgKG1hcmtlcikge1xuICAgICAgcmV0dXJuIGB1cmwoIyR7aGFzaENvZGUoSlNPTi5zdHJpbmdpZnkobWFya2VyKSl9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJ3JnYigxNzcsIDE3NywgMTgzKSc7XG5cbiAgcHJvdGVjdGVkIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIG1hcmtlcjogdGhpcy5tYXJrZXJVcmwsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVQb3N0aW9uKHBvc2l0aW9uOiBQb3NpdGlvbik6IFBvc2l0aW9uIHtcbiAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICByZXR1cm4gJ2JvdHRvbSc7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHJldHVybiAndG9wJztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIHJldHVybiAncmlnaHQnO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiAnbGVmdCc7XG4gIH1cbn1cbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQTBCbkQsTUFBTSxPQUFPLG1CQUFtQjtJQXhCaEM7UUF5QlMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQW1CLENBQUM7UUFFMUMsYUFBUSxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUVwQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUVyRCxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFL0MsSUFBSSxNQUFNLENB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aGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsb3dTdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBzdHJhaWdodFBhdGggfSBmcm9tICcuLi8uLi9tYXRoL2VkZ2UtcGF0aC9zdHJhaWdoLXBhdGgnO1xuaW1wb3J0IHsgU3BhY2VQb2ludENvbnRleHREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3NwYWNlLXBvaW50LWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbm5lY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jb25uZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IGJlemllclBhdGggfSBmcm9tICcuLi8uLi9tYXRoL2VkZ2UtcGF0aC9iZXppZXItcGF0aCc7XG5pbXBvcnQgeyBoYXNoQ29kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2hhc2gnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9wb3NpdGlvbi50eXBlJztcbmltcG9ydCB7IHNtb290aFN0ZXBQYXRoIH0gZnJvbSAnLi4vLi4vbWF0aC9lZGdlLXBhdGgvc21vb3RoLXN0ZXAtcGF0aCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnZ1tjb25uZWN0aW9uXScsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChtb2RlbCgpLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgQGlmIChwYXRoKCk7IGFzIHBhdGgpIHtcbiAgICAgICAgPHN2ZzpwYXRoXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICAgICAgW2F0dHIubWFya2VyLWVuZF09XCJtYXJrZXJVcmwoKVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImRlZmF1bHRDb2xvclwiIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChtb2RlbCgpLnR5cGUgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgIEBpZiAodGVtcGxhdGUoKTsgYXMgdGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiBnZXRDb250ZXh0KClcIiAvPlxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkNvbXBvbmVudCB7XG4gIHB1YmxpYyBtb2RlbCA9IGlucHV0LnJlcXVpcmVkPENvbm5lY3Rpb25Nb2RlbD4oKTtcblxuICBwdWJsaWMgdGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIHByaXZhdGUgZmxvd1N0YXR1c1NlcnZpY2UgPSBpbmplY3QoRmxvd1N0YXR1c1NlcnZpY2UpO1xuICBwcml2YXRlIHNwYWNlUG9pbnRDb250ZXh0ID0gaW5qZWN0KFNwYWNlUG9pbnRDb250ZXh0RGlyZWN0aXZlKTtcblxuICBwcm90ZWN0ZWQgcGF0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tc3RhcnQnKSB7XG4gICAgICBjb25zdCBzb3VyY2VIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGU7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZUhhbmRsZS5wb2ludEFic29sdXRlKCk7XG4gICAgICBjb25zdCBzb3VyY2VQb3NpdGlvbiA9IHNvdXJjZUhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb247XG5cbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gdGhpcy5zcGFjZVBvaW50Q29udGV4dC5zdmdDdXJyZW50U3BhY2VQb2ludCgpO1xuICAgICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSBnZXRPcHBvc2l0ZVBvc3Rpb24oc291cmNlSGFuZGxlLnJhd0hhbmRsZS5wb3NpdGlvbik7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlbCgpLmN1cnZlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCkucGF0aDtcbiAgICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc21vb3RoLXN0ZXAnOlxuICAgICAgICAgIHJldHVybiBzbW9vdGhTdGVwUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCwgc291cmNlUG9zaXRpb24sIHRhcmdldFBvc2l0aW9uLCAwKS5wYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBzb3VyY2VIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGU7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZUhhbmRsZS5wb2ludEFic29sdXRlKCk7XG4gICAgICBjb25zdCBzb3VyY2VQb3NpdGlvbiA9IHNvdXJjZUhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb247XG5cbiAgICAgIGNvbnN0IHRhcmdldEhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZTtcbiAgICAgIC8vIGlnbm9yZSBtYWduZXQgaWYgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gc3RhdHVzLnBheWxvYWQudmFsaWRcbiAgICAgICAgPyB0YXJnZXRIYW5kbGUucG9pbnRBYnNvbHV0ZSgpXG4gICAgICAgIDogdGhpcy5zcGFjZVBvaW50Q29udGV4dC5zdmdDdXJyZW50U3BhY2VQb2ludCgpO1xuICAgICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSBzdGF0dXMucGF5bG9hZC52YWxpZFxuICAgICAgICA/IHRhcmdldEhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb25cbiAgICAgICAgOiBnZXRPcHBvc2l0ZVBvc3Rpb24oc291cmNlSGFuZGxlLnJhd0hhbmRsZS5wb3NpdGlvbik7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlbCgpLmN1cnZlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCkucGF0aDtcbiAgICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc21vb3RoLXN0ZXAnOlxuICAgICAgICAgIHJldHVybiBzbW9vdGhTdGVwUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCwgc291cmNlUG9zaXRpb24sIHRhcmdldFBvc2l0aW9uLCAwKS5wYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgbWFya2VyVXJsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtlciA9IHRoaXMubW9kZWwoKS5zZXR0aW5ncy5tYXJrZXI7XG5cbiAgICBpZiAobWFya2VyKSB7XG4gICAgICByZXR1cm4gYHVybCgjJHtoYXNoQ29kZShKU09OLnN0cmluZ2lmeShtYXJrZXIpKX0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0Q29sb3IgPSAncmdiKDE3NywgMTc3LCAxODMpJztcblxuICBwcm90ZWN0ZWQgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgbWFya2VyOiB0aGlzLm1hcmtlclVybCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRPcHBvc2l0ZVBvc3Rpb24ocG9zaXRpb246IFBvc2l0aW9uKTogUG9zaXRpb24ge1xuICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgcmV0dXJuICd0b3AnO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgcmV0dXJuICdyaWdodCc7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgcmV0dXJuICdsZWZ0JztcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { DestroyRef, Directive, EventEmitter, inject, signal, OutputEmitterRef, } from '@angular/core';
1
+ import { DestroyRef, Directive, EventEmitter, inject, signal, OutputEmitterRef } from '@angular/core';
2
2
  import { merge, Observable, tap } from 'rxjs';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { ComponentEventBusService } from '../../services/component-event-bus.service';
@@ -54,4 +54,4 @@ function outputRefToObservable(ref) {
54
54
  };
55
55
  });
56
56
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW5vZGUtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9jdXN0b20tbm9kZS1iYXNlL2N1c3RvbS1ub2RlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFHWixNQUFNLEVBQ04sTUFBTSxFQUVOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRzNFLE1BQU0sT0FBZ0IsdUJBQXVCO0lBRDdDO1FBRVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFdkMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQzs7V0FFRztRQUNJLGFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRyxDQUFDLFFBQVEsQ0FBQztRQUU5QyxTQUFJLEdBQUcsTUFBTSxDQUFnQixTQUFTLENBQUMsQ0FBQztLQW9DaEQ7SUFsQ1EsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVPLFdBQVc7UUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9DLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO1FBQzlELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUksSUFBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV0RCxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUUsQ0FBQztnQkFDbEMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUVELElBQUksS0FBSyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3RDLGNBQWMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FDVixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDbkQsT0FBTyxDQUFDLElBQUksQ0FDVixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUU7Z0JBQy9DLFNBQVMsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRTtnQkFDdkMsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDOytHQTlDbUIsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRDVDLFNBQVM7O0FBa0RWLFNBQVMscUJBQXFCLENBQUMsR0FBOEI7SUFDM0QsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ25DLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLEVBQUU7WUFDVixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICBpbnB1dCxcbiAgT3V0cHV0RW1pdHRlclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb21wb25lbnRFdmVudEJ1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21wb25lbnQtZXZlbnQtYnVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZUFjY2Vzc29yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vZGUtYWNjZXNzb3Iuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbU5vZGVCYXNlQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBldmVudEJ1cyA9IGluamVjdChDb21wb25lbnRFdmVudEJ1c1NlcnZpY2UpO1xuICBwcml2YXRlIG5vZGVTZXJ2aWNlID0gaW5qZWN0KE5vZGVBY2Nlc3NvclNlcnZpY2UpXG5cbiAgcHJvdGVjdGVkIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgLyoqXG4gICAqIFNpZ25hbCB3aXRoIHNlbGVjdGVkIHN0YXRlIG9mIG5vZGVcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RlZCA9IHRoaXMubm9kZVNlcnZpY2UubW9kZWwoKSEuc2VsZWN0ZWQ7XG5cbiAgcHVibGljIGRhdGEgPSBzaWduYWw8VCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50cmFja0V2ZW50cygpLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFja0V2ZW50cygpIHtcbiAgICBjb25zdCBwcm9wcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpO1xuXG4gICAgY29uc3QgZW1pdHRlcnNPclJlZnMgPSBuZXcgTWFwPE9ic2VydmFibGU8dW5rbm93bj4sIHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gKHRoaXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW3Byb3BdO1xuXG4gICAgICBpZiAoZmllbGQgaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXIpIHtcbiAgICAgICAgZW1pdHRlcnNPclJlZnMuc2V0KGZpZWxkLCBwcm9wKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkIGluc3RhbmNlb2YgT3V0cHV0RW1pdHRlclJlZikge1xuICAgICAgICBlbWl0dGVyc09yUmVmcy5zZXQob3V0cHV0UmVmVG9PYnNlcnZhYmxlKGZpZWxkKSwgcHJvcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlKFxuICAgICAgLi4uQXJyYXkuZnJvbShlbWl0dGVyc09yUmVmcy5rZXlzKCkpLm1hcCgoZW1pdHRlcikgPT5cbiAgICAgICAgZW1pdHRlci5waXBlKFxuICAgICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRCdXMucHVzaEV2ZW50KHtcbiAgICAgICAgICAgICAgbm9kZUlkOiB0aGlzLm5vZGVTZXJ2aWNlLm1vZGVsKCk/Lm5vZGUuaWQgPz8gJycsXG4gICAgICAgICAgICAgIGV2ZW50TmFtZTogZW1pdHRlcnNPclJlZnMuZ2V0KGVtaXR0ZXIpISxcbiAgICAgICAgICAgICAgZXZlbnRQYXlsb2FkOiBldmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIG91dHB1dFJlZlRvT2JzZXJ2YWJsZShyZWY6IE91dHB1dEVtaXR0ZXJSZWY8dW5rbm93bj4pIHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gcmVmLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW5vZGUtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9jdXN0b20tbm9kZS1iYXNlL2N1c3RvbS1ub2RlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFHM0UsTUFBTSxPQUFnQix1QkFBdUI7SUFEN0M7UUFFVSxhQUFRLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFDOztXQUVHO1FBQ0ksYUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFHLENBQUMsUUFBUSxDQUFDO1FBRTlDLFNBQUksR0FBRyxNQUFNLENBQWdCLFNBQVMsQ0FBQyxDQUFDO0tBb0NoRDtJQWxDUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7UUFDOUQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBSSxJQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXRELElBQUksS0FBSyxZQUFZLFlBQVksRUFBRSxDQUFDO2dCQUNsQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBRUQsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdEMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUNWLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNuRCxPQUFPLENBQUMsSUFBSSxDQUNWLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRTtnQkFDL0MsU0FBUyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFFO2dCQUN2QyxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7K0dBOUNtQix1QkFBdUI7bUdBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFENUMsU0FBUzs7QUFrRFYsU0FBUyxxQkFBcUIsQ0FBQyxHQUE4QjtJQUMzRCxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRTtZQUNWLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBpbmplY3QsIHNpZ25hbCwgT3V0cHV0RW1pdHRlclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXZlbnRCdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tcG9uZW50LWV2ZW50LWJ1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVBY2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub2RlLWFjY2Vzc29yLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21Ob2RlQmFzZUNvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgZXZlbnRCdXMgPSBpbmplY3QoQ29tcG9uZW50RXZlbnRCdXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBub2RlU2VydmljZSA9IGluamVjdChOb2RlQWNjZXNzb3JTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAvKipcbiAgICogU2lnbmFsIHdpdGggc2VsZWN0ZWQgc3RhdGUgb2Ygbm9kZVxuICAgKi9cbiAgcHVibGljIHNlbGVjdGVkID0gdGhpcy5ub2RlU2VydmljZS5tb2RlbCgpIS5zZWxlY3RlZDtcblxuICBwdWJsaWMgZGF0YSA9IHNpZ25hbDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYWNrRXZlbnRzKCkucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrRXZlbnRzKCkge1xuICAgIGNvbnN0IHByb3BzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcyk7XG5cbiAgICBjb25zdCBlbWl0dGVyc09yUmVmcyA9IG5ldyBNYXA8T2JzZXJ2YWJsZTx1bmtub3duPiwgc3RyaW5nPigpO1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykge1xuICAgICAgY29uc3QgZmllbGQgPSAodGhpcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbcHJvcF07XG5cbiAgICAgIGlmIChmaWVsZCBpbnN0YW5jZW9mIEV2ZW50RW1pdHRlcikge1xuICAgICAgICBlbWl0dGVyc09yUmVmcy5zZXQoZmllbGQsIHByb3ApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQgaW5zdGFuY2VvZiBPdXRwdXRFbWl0dGVyUmVmKSB7XG4gICAgICAgIGVtaXR0ZXJzT3JSZWZzLnNldChvdXRwdXRSZWZUb09ic2VydmFibGUoZmllbGQpLCBwcm9wKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAuLi5BcnJheS5mcm9tKGVtaXR0ZXJzT3JSZWZzLmtleXMoKSkubWFwKChlbWl0dGVyKSA9PlxuICAgICAgICBlbWl0dGVyLnBpcGUoXG4gICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5wdXNoRXZlbnQoe1xuICAgICAgICAgICAgICBub2RlSWQ6IHRoaXMubm9kZVNlcnZpY2UubW9kZWwoKT8ubm9kZS5pZCA/PyAnJyxcbiAgICAgICAgICAgICAgZXZlbnROYW1lOiBlbWl0dGVyc09yUmVmcy5nZXQoZW1pdHRlcikhLFxuICAgICAgICAgICAgICBldmVudFBheWxvYWQ6IGV2ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gb3V0cHV0UmVmVG9PYnNlcnZhYmxlKHJlZjogT3V0cHV0RW1pdHRlclJlZjx1bmtub3duPikge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSByZWYuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuICB9KTtcbn1cbiJdfQ==
@@ -1,16 +1,16 @@
1
- import { Component, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class DefaultNodeComponent {
4
4
  constructor() {
5
5
  this.selected = input(false);
6
6
  }
7
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: DefaultNodeComponent, isStandalone: true, selector: "default-node", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.selected": "selected()" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"] }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: DefaultNodeComponent, isStandalone: true, selector: "default-node", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.selected": "selected()" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
9
  }
10
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultNodeComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ standalone: true, selector: 'default-node', host: {
13
13
  '[class.selected]': 'selected()',
14
- }, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"] }]
14
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"] }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9jb21wb25lbnRzL2RlZmF1bHQtbm9kZS9kZWZhdWx0LW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZGVmYXVsdC1ub2RlL2RlZmF1bHQtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXakQsTUFBTSxPQUFPLG9CQUFvQjtJQVRqQztRQVVTLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEM7K0dBRlksb0JBQW9CO21HQUFwQixvQkFBb0IsK1FDWGpDLGtCQUNBOzs0RkRVYSxvQkFBb0I7a0JBVGhDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsUUFHbEI7d0JBQ0osa0JBQWtCLEVBQUUsWUFBWTtxQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2RlZmF1bHQtbm9kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtgLi9kZWZhdWx0LW5vZGUuY29tcG9uZW50LnNjc3NgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muc2VsZWN0ZWRdJzogJ3NlbGVjdGVkKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0Tm9kZUNvbXBvbmVudCB7XG4gIHB1YmxpYyBzZWxlY3RlZCA9IGlucHV0KGZhbHNlKTtcbn1cbiIsIjxuZy1jb250ZW50IC8+XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9jb21wb25lbnRzL2RlZmF1bHQtbm9kZS9kZWZhdWx0LW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZGVmYXVsdC1ub2RlL2RlZmF1bHQtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZMUUsTUFBTSxPQUFPLG9CQUFvQjtJQVZqQztRQVdTLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEM7K0dBRlksb0JBQW9CO21HQUFwQixvQkFBb0IsK1FDWmpDLGtCQUNBOzs0RkRXYSxvQkFBb0I7a0JBVmhDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsUUFHbEI7d0JBQ0osa0JBQWtCLEVBQUUsWUFBWTtxQkFDakMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdkZWZhdWx0LW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbYC4vZGVmYXVsdC1ub2RlLmNvbXBvbmVudC5zY3NzYF0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnNlbGVjdGVkXSc6ICdzZWxlY3RlZCgpJyxcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHROb2RlQ29tcG9uZW50IHtcbiAgcHVibGljIHNlbGVjdGVkID0gaW5wdXQoZmFsc2UpO1xufVxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==
@@ -7,10 +7,10 @@ export class DefsComponent {
7
7
  this.defaultColor = 'rgb(177, 177, 183)';
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DefsComponent, isStandalone: true, selector: "defs[flowDefs]", inputs: { markers: { classPropertyName: "markers", publicName: "markers", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n viewBox=\"-10 -10 20 20\"\n [attr.markerUnits]=\"marker.value.markerUnits ?? 'userSpaceOnUse'\"\n refX=\"0\"\n refY=\"0\"\n >\n @if (marker.value.type === \"arrow-closed\" || !marker.value.type) {\n <polyline\n class=\"marker__arrow_closed\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n [style.fill]=\"marker.value.color ?? defaultColor\"\n points=\"-5,-4 1,0 -5,4 -5,-4\"\n />\n }\n\n @if (marker.value.type === \"arrow\") {\n <polyline\n class=\"marker__arrow_default\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n points=\"-5,-4 0,0 -5,4\"\n />\n }\n </svg:marker>\n}\n", styles: [".marker__arrow_default{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;fill:none}.marker__arrow_closed{stroke-linecap:round;stroke-linejoin:round}\n"], dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DefsComponent, isStandalone: true, selector: "defs[flowDefs]", inputs: { markers: { classPropertyName: "markers", publicName: "markers", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n viewBox=\"-10 -10 20 20\"\n refX=\"0\"\n refY=\"0\"\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n [attr.markerUnits]=\"marker.value.markerUnits ?? 'userSpaceOnUse'\">\n @if (marker.value.type === 'arrow-closed' || !marker.value.type) {\n <polyline\n class=\"marker__arrow_closed\"\n points=\"-5,-4 1,0 -5,4 -5,-4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n [style.fill]=\"marker.value.color ?? defaultColor\" />\n }\n\n @if (marker.value.type === 'arrow') {\n <polyline\n class=\"marker__arrow_default\"\n points=\"-5,-4 0,0 -5,4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\" />\n }\n </svg:marker>\n}\n", styles: [".marker__arrow_default{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;fill:none}.marker__arrow_closed{stroke-linecap:round;stroke-linejoin:round}\n"], dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefsComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ standalone: true, selector: 'defs[flowDefs]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [KeyValuePipe], template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n viewBox=\"-10 -10 20 20\"\n [attr.markerUnits]=\"marker.value.markerUnits ?? 'userSpaceOnUse'\"\n refX=\"0\"\n refY=\"0\"\n >\n @if (marker.value.type === \"arrow-closed\" || !marker.value.type) {\n <polyline\n class=\"marker__arrow_closed\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n [style.fill]=\"marker.value.color ?? defaultColor\"\n points=\"-5,-4 1,0 -5,4 -5,-4\"\n />\n }\n\n @if (marker.value.type === \"arrow\") {\n <polyline\n class=\"marker__arrow_default\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n points=\"-5,-4 0,0 -5,4\"\n />\n }\n </svg:marker>\n}\n", styles: [".marker__arrow_default{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;fill:none}.marker__arrow_closed{stroke-linecap:round;stroke-linejoin:round}\n"] }]
14
+ args: [{ standalone: true, selector: 'defs[flowDefs]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [KeyValuePipe], template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n viewBox=\"-10 -10 20 20\"\n refX=\"0\"\n refY=\"0\"\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n [attr.markerUnits]=\"marker.value.markerUnits ?? 'userSpaceOnUse'\">\n @if (marker.value.type === 'arrow-closed' || !marker.value.type) {\n <polyline\n class=\"marker__arrow_closed\"\n points=\"-5,-4 1,0 -5,4 -5,-4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n [style.fill]=\"marker.value.color ?? defaultColor\" />\n }\n\n @if (marker.value.type === 'arrow') {\n <polyline\n class=\"marker__arrow_default\"\n points=\"-5,-4 0,0 -5,4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\" />\n }\n </svg:marker>\n}\n", styles: [".marker__arrow_default{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;fill:none}.marker__arrow_closed{stroke-linecap:round;stroke-linejoin:round}\n"] }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9kZWZzL2RlZnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZGVmcy9kZWZzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVL0MsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFTUyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztRQUVwQyxpQkFBWSxHQUFHLG9CQUFvQixDQUFDO0tBQ3hEOytHQUpZLGFBQWE7bUdBQWIsYUFBYSxtTkNaMUIsK2tDQStCQSxxTkRyQlksWUFBWTs7NEZBRVgsYUFBYTtrQkFSekIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9tYXJrZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2RlZnNbZmxvd0RlZnNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZWZzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbS2V5VmFsdWVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVmc0NvbXBvbmVudCB7XG4gIHB1YmxpYyBtYXJrZXJzID0gaW5wdXQucmVxdWlyZWQ8TWFwPG51bWJlciwgTWFya2VyPj4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJ3JnYigxNzcsIDE3NywgMTgzKSc7XG59XG4iLCJAZm9yIChtYXJrZXIgb2YgbWFya2VycygpIHwga2V5dmFsdWU7IHRyYWNrIG1hcmtlcikge1xuICA8c3ZnOm1hcmtlclxuICAgIFthdHRyLmlkXT1cIm1hcmtlci5rZXlcIlxuICAgIFthdHRyLm1hcmtlcldpZHRoXT1cIm1hcmtlci52YWx1ZS53aWR0aCA/PyAxNi41XCJcbiAgICBbYXR0ci5tYXJrZXJIZWlnaHRdPVwibWFya2VyLnZhbHVlLmhlaWdodCA/PyAxNi41XCJcbiAgICBbYXR0ci5vcmllbnRdPVwibWFya2VyLnZhbHVlLm9yaWVudCA/PyAnYXV0by1zdGFydC1yZXZlcnNlJ1wiXG4gICAgdmlld0JveD1cIi0xMCAtMTAgMjAgMjBcIlxuICAgIFthdHRyLm1hcmtlclVuaXRzXT1cIm1hcmtlci52YWx1ZS5tYXJrZXJVbml0cyA/PyAndXNlclNwYWNlT25Vc2UnXCJcbiAgICByZWZYPVwiMFwiXG4gICAgcmVmWT1cIjBcIlxuICA+XG4gICAgQGlmIChtYXJrZXIudmFsdWUudHlwZSA9PT0gXCJhcnJvdy1jbG9zZWRcIiB8fCAhbWFya2VyLnZhbHVlLnR5cGUpIHtcbiAgICAgIDxwb2x5bGluZVxuICAgICAgICBjbGFzcz1cIm1hcmtlcl9fYXJyb3dfY2xvc2VkXCJcbiAgICAgICAgW3N0eWxlLnN0cm9rZV09XCJtYXJrZXIudmFsdWUuY29sb3IgPz8gZGVmYXVsdENvbG9yXCJcbiAgICAgICAgW3N0eWxlLnN0cm9rZS13aWR0aF09XCJtYXJrZXIudmFsdWUuc3Ryb2tlV2lkdGggPz8gMlwiXG4gICAgICAgIFtzdHlsZS5maWxsXT1cIm1hcmtlci52YWx1ZS5jb2xvciA/PyBkZWZhdWx0Q29sb3JcIlxuICAgICAgICBwb2ludHM9XCItNSwtNCAxLDAgLTUsNCAtNSwtNFwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAobWFya2VyLnZhbHVlLnR5cGUgPT09IFwiYXJyb3dcIikge1xuICAgICAgPHBvbHlsaW5lXG4gICAgICAgIGNsYXNzPVwibWFya2VyX19hcnJvd19kZWZhdWx0XCJcbiAgICAgICAgW3N0eWxlLnN0cm9rZV09XCJtYXJrZXIudmFsdWUuY29sb3IgPz8gZGVmYXVsdENvbG9yXCJcbiAgICAgICAgW3N0eWxlLnN0cm9rZS13aWR0aF09XCJtYXJrZXIudmFsdWUuc3Ryb2tlV2lkdGggPz8gMlwiXG4gICAgICAgIHBvaW50cz1cIi01LC00IDAsMCAtNSw0XCJcbiAgICAgIC8+XG4gICAgfVxuICA8L3N2ZzptYXJrZXI+XG59XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9kZWZzL2RlZnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZGVmcy9kZWZzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVL0MsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFTUyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztRQUVwQyxpQkFBWSxHQUFHLG9CQUFvQixDQUFDO0tBQ3hEOytHQUpZLGFBQWE7bUdBQWIsYUFBYSxtTkNaMUIseWpDQTRCQSxxTkRsQlksWUFBWTs7NEZBRVgsYUFBYTtrQkFSekIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9tYXJrZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2RlZnNbZmxvd0RlZnNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZWZzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbS2V5VmFsdWVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVmc0NvbXBvbmVudCB7XG4gIHB1YmxpYyBtYXJrZXJzID0gaW5wdXQucmVxdWlyZWQ8TWFwPG51bWJlciwgTWFya2VyPj4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJ3JnYigxNzcsIDE3NywgMTgzKSc7XG59XG4iLCJAZm9yIChtYXJrZXIgb2YgbWFya2VycygpIHwga2V5dmFsdWU7IHRyYWNrIG1hcmtlcikge1xuICA8c3ZnOm1hcmtlclxuICAgIHZpZXdCb3g9XCItMTAgLTEwIDIwIDIwXCJcbiAgICByZWZYPVwiMFwiXG4gICAgcmVmWT1cIjBcIlxuICAgIFthdHRyLmlkXT1cIm1hcmtlci5rZXlcIlxuICAgIFthdHRyLm1hcmtlcldpZHRoXT1cIm1hcmtlci52YWx1ZS53aWR0aCA/PyAxNi41XCJcbiAgICBbYXR0ci5tYXJrZXJIZWlnaHRdPVwibWFya2VyLnZhbHVlLmhlaWdodCA/PyAxNi41XCJcbiAgICBbYXR0ci5vcmllbnRdPVwibWFya2VyLnZhbHVlLm9yaWVudCA/PyAnYXV0by1zdGFydC1yZXZlcnNlJ1wiXG4gICAgW2F0dHIubWFya2VyVW5pdHNdPVwibWFya2VyLnZhbHVlLm1hcmtlclVuaXRzID8/ICd1c2VyU3BhY2VPblVzZSdcIj5cbiAgICBAaWYgKG1hcmtlci52YWx1ZS50eXBlID09PSAnYXJyb3ctY2xvc2VkJyB8fCAhbWFya2VyLnZhbHVlLnR5cGUpIHtcbiAgICAgIDxwb2x5bGluZVxuICAgICAgICBjbGFzcz1cIm1hcmtlcl9fYXJyb3dfY2xvc2VkXCJcbiAgICAgICAgcG9pbnRzPVwiLTUsLTQgMSwwIC01LDQgLTUsLTRcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlXT1cIm1hcmtlci52YWx1ZS5jb2xvciA/PyBkZWZhdWx0Q29sb3JcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoXT1cIm1hcmtlci52YWx1ZS5zdHJva2VXaWR0aCA/PyAyXCJcbiAgICAgICAgW3N0eWxlLmZpbGxdPVwibWFya2VyLnZhbHVlLmNvbG9yID8/IGRlZmF1bHRDb2xvclwiIC8+XG4gICAgfVxuXG4gICAgQGlmIChtYXJrZXIudmFsdWUudHlwZSA9PT0gJ2Fycm93Jykge1xuICAgICAgPHBvbHlsaW5lXG4gICAgICAgIGNsYXNzPVwibWFya2VyX19hcnJvd19kZWZhdWx0XCJcbiAgICAgICAgcG9pbnRzPVwiLTUsLTQgMCwwIC01LDRcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlXT1cIm1hcmtlci52YWx1ZS5jb2xvciA/PyBkZWZhdWx0Q29sb3JcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoXT1cIm1hcmtlci52YWx1ZS5zdHJva2VXaWR0aCA/PyAyXCIgLz5cbiAgICB9XG4gIDwvc3ZnOm1hcmtlcj5cbn1cbiJdfQ==
@@ -40,12 +40,12 @@ export class EdgeComponent {
40
40
  }
41
41
  }
42
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeComponent, isStandalone: true, selector: "g[edge]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeTemplate: { classPropertyName: "edgeTemplate", publicName: "edgeTemplate", isSignal: true, isRequired: false, transformFunction: null }, edgeLabelHtmlTemplate: { classPropertyName: "edgeLabelHtmlTemplate", publicName: "edgeLabelHtmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "selectable" }, ngImport: i0, template: "@if (model().type === \"default\") {\n <svg:path\n (mousedown)=\"onEdgeMouseDown()\"\n [attr.d]=\"model().path().path\"\n [attr.marker-start]=\"markerStartUrl()\"\n [attr.marker-end]=\"markerEndUrl()\"\n class=\"edge\"\n [class.edge_selected]=\"model().selected()\"\n />\n}\n\n@if (model().type === \"template\" && edgeTemplate()) {\n @if (edgeTemplate(); as edgeTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"edgeTemplate\"\n [ngTemplateOutletContext]=\"edgeContext\"\n [ngTemplateOutletInjector]=\"injector\"\n />\n }\n}\n\n@if (model().edgeLabels.start; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.start\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\"\n />\n}\n\n@if (model().edgeLabels.center; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.center\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\"\n />\n}\n\n@if (model().edgeLabels.end; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.end\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\"\n />\n}\n", styles: [".edge{fill:none;stroke-width:2;stroke:#b1b1b7}.edge_selected{stroke-width:2.5;stroke:#0f4c75}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EdgeLabelComponent, selector: "g[edgeLabel]", inputs: ["model", "edgeModel", "point", "htmlTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeComponent, isStandalone: true, selector: "g[edge]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeTemplate: { classPropertyName: "edgeTemplate", publicName: "edgeTemplate", isSignal: true, isRequired: false, transformFunction: null }, edgeLabelHtmlTemplate: { classPropertyName: "edgeLabelHtmlTemplate", publicName: "edgeLabelHtmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "selectable" }, ngImport: i0, template: "@if (model().type === 'default') {\n <svg:path\n class=\"edge\"\n [attr.d]=\"model().path().path\"\n [attr.marker-start]=\"markerStartUrl()\"\n [attr.marker-end]=\"markerEndUrl()\"\n [class.edge_selected]=\"model().selected()\"\n (mousedown)=\"onEdgeMouseDown()\" />\n}\n\n@if (model().type === 'template' && edgeTemplate()) {\n @if (edgeTemplate(); as edgeTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"edgeTemplate\"\n [ngTemplateOutletContext]=\"edgeContext\"\n [ngTemplateOutletInjector]=\"injector\" />\n }\n}\n\n@if (model().edgeLabels.start; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.start\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.center; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.center\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.end; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.end\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n", styles: [".edge{fill:none;stroke-width:2;stroke:#b1b1b7}.edge_selected{stroke-width:2.5;stroke:#0f4c75}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EdgeLabelComponent, selector: "g[edgeLabel]", inputs: ["model", "edgeModel", "point", "htmlTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
44
  }
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{ standalone: true, selector: 'g[edge]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
48
48
  class: 'selectable',
49
- }, imports: [NgTemplateOutlet, EdgeLabelComponent], template: "@if (model().type === \"default\") {\n <svg:path\n (mousedown)=\"onEdgeMouseDown()\"\n [attr.d]=\"model().path().path\"\n [attr.marker-start]=\"markerStartUrl()\"\n [attr.marker-end]=\"markerEndUrl()\"\n class=\"edge\"\n [class.edge_selected]=\"model().selected()\"\n />\n}\n\n@if (model().type === \"template\" && edgeTemplate()) {\n @if (edgeTemplate(); as edgeTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"edgeTemplate\"\n [ngTemplateOutletContext]=\"edgeContext\"\n [ngTemplateOutletInjector]=\"injector\"\n />\n }\n}\n\n@if (model().edgeLabels.start; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.start\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\"\n />\n}\n\n@if (model().edgeLabels.center; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.center\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\"\n />\n}\n\n@if (model().edgeLabels.end; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.end\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\"\n />\n}\n", styles: [".edge{fill:none;stroke-width:2;stroke:#b1b1b7}.edge_selected{stroke-width:2.5;stroke:#0f4c75}\n"] }]
49
+ }, imports: [NgTemplateOutlet, EdgeLabelComponent], template: "@if (model().type === 'default') {\n <svg:path\n class=\"edge\"\n [attr.d]=\"model().path().path\"\n [attr.marker-start]=\"markerStartUrl()\"\n [attr.marker-end]=\"markerEndUrl()\"\n [class.edge_selected]=\"model().selected()\"\n (mousedown)=\"onEdgeMouseDown()\" />\n}\n\n@if (model().type === 'template' && edgeTemplate()) {\n @if (edgeTemplate(); as edgeTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"edgeTemplate\"\n [ngTemplateOutletContext]=\"edgeContext\"\n [ngTemplateOutletInjector]=\"injector\" />\n }\n}\n\n@if (model().edgeLabels.start; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.start\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.center; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.center\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.end; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.end\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n", styles: [".edge{fill:none;stroke-width:2;stroke:#b1b1b7}.edge_selected{stroke-width:2.5;stroke:#0f4c75}\n"] }]
50
50
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9lZGdlL2VkZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZWRnZS9lZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFHUixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYW5ELE1BQU0sT0FBTyxhQUFhO0lBWDFCO1FBWVksYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVuRCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO1FBRXBDLGlCQUFZLEdBQUcsS0FBSyxFQUE0QixDQUFDO1FBRWpELDBCQUFxQixHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUUvQyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBRWhELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRU8saUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUU5QyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztLQXNCSjtJQWxCUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixTQUFTLEVBQUU7Z0JBQ1QsbUNBQW1DO2dCQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUk7Z0JBQ3ZCLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDOUMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTthQUM3QztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQzsrR0ExQ1UsYUFBYTttR0FBYixhQUFhLG1pQkM3QjFCLDh0Q0FrREEseUpEdkJZLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQUVuQyxhQUFhO2tCQVh6QixTQUFTO2lDQUNJLElBQUksWUFDTixTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLFlBQVk7cUJBQ3BCLFdBQ1EsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdG9yLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBoYXNoQ29kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2hhc2gnO1xuaW1wb3J0IHsgRWRnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RlbXBsYXRlLWNvbnRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEVkZ2VMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL2VkZ2UtbGFiZWwvZWRnZS1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2dbZWRnZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NlbGVjdGFibGUnLFxuICB9LFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgRWRnZUxhYmVsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRWRnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgc2VsZWN0aW9uU2VydmljZSA9IGluamVjdChTZWxlY3Rpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBtb2RlbCA9IGlucHV0LnJlcXVpcmVkPEVkZ2VNb2RlbD4oKTtcblxuICBwdWJsaWMgZWRnZVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8RWRnZUNvbnRleHQ+PigpO1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxIdG1sVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIHByb3RlY3RlZCBtYXJrZXJTdGFydFVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXJrZXIgPSB0aGlzLm1vZGVsKCkuZWRnZS5tYXJrZXJzPy5zdGFydDtcblxuICAgIHJldHVybiBtYXJrZXIgPyBgdXJsKCMke2hhc2hDb2RlKEpTT04uc3RyaW5naWZ5KG1hcmtlcikpfSlgIDogJyc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBtYXJrZXJFbmRVcmwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFya2VyID0gdGhpcy5tb2RlbCgpLmVkZ2UubWFya2Vycz8uZW5kO1xuXG4gICAgcmV0dXJuIG1hcmtlciA/IGB1cmwoIyR7aGFzaENvZGUoSlNPTi5zdHJpbmdpZnkobWFya2VyKSl9KWAgOiAnJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGVkZ2VDb250ZXh0ITogRWRnZUNvbnRleHQ7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWRnZUNvbnRleHQgPSB7XG4gICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgLy8gVE9ETzogY2hlY2sgaWYgZWRnZSBjb3VsZCBjaGFuZ2VcbiAgICAgICAgZWRnZTogdGhpcy5tb2RlbCgpLmVkZ2UsXG4gICAgICAgIHBhdGg6IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWwoKS5wYXRoKCkucGF0aCksXG4gICAgICAgIG1hcmtlclN0YXJ0OiB0aGlzLm1hcmtlclN0YXJ0VXJsLFxuICAgICAgICBtYXJrZXJFbmQ6IHRoaXMubWFya2VyRW5kVXJsLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5tb2RlbCgpLnNlbGVjdGVkLmFzUmVhZG9ubHkoKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVkZ2VNb3VzZURvd24oKSB7XG4gICAgaWYgKHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5lbnRpdGllc1NlbGVjdGFibGUoKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdCh0aGlzLm1vZGVsKCkpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChtb2RlbCgpLnR5cGUgPT09IFwiZGVmYXVsdFwiKSB7XG4gIDxzdmc6cGF0aFxuICAgIChtb3VzZWRvd24pPVwib25FZGdlTW91c2VEb3duKClcIlxuICAgIFthdHRyLmRdPVwibW9kZWwoKS5wYXRoKCkucGF0aFwiXG4gICAgW2F0dHIubWFya2VyLXN0YXJ0XT1cIm1hcmtlclN0YXJ0VXJsKClcIlxuICAgIFthdHRyLm1hcmtlci1lbmRdPVwibWFya2VyRW5kVXJsKClcIlxuICAgIGNsYXNzPVwiZWRnZVwiXG4gICAgW2NsYXNzLmVkZ2Vfc2VsZWN0ZWRdPVwibW9kZWwoKS5zZWxlY3RlZCgpXCJcbiAgLz5cbn1cblxuQGlmIChtb2RlbCgpLnR5cGUgPT09IFwidGVtcGxhdGVcIiAmJiBlZGdlVGVtcGxhdGUoKSkge1xuICBAaWYgKGVkZ2VUZW1wbGF0ZSgpOyBhcyBlZGdlVGVtcGxhdGUpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlZGdlVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImVkZ2VDb250ZXh0XCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3JdPVwiaW5qZWN0b3JcIlxuICAgIC8+XG4gIH1cbn1cblxuQGlmIChtb2RlbCgpLmVkZ2VMYWJlbHMuc3RhcnQ7IGFzIGxhYmVsKSB7XG4gIDxzdmc6Z1xuICAgIGVkZ2VMYWJlbFxuICAgIFttb2RlbF09XCJsYWJlbFwiXG4gICAgW3BvaW50XT1cIm1vZGVsKCkucGF0aCgpLnBvaW50cy5zdGFydFwiXG4gICAgW2VkZ2VNb2RlbF09XCJtb2RlbCgpXCJcbiAgICBbaHRtbFRlbXBsYXRlXT1cImVkZ2VMYWJlbEh0bWxUZW1wbGF0ZSgpXCJcbiAgLz5cbn1cblxuQGlmIChtb2RlbCgpLmVkZ2VMYWJlbHMuY2VudGVyOyBhcyBsYWJlbCkge1xuICA8c3ZnOmdcbiAgICBlZGdlTGFiZWxcbiAgICBbbW9kZWxdPVwibGFiZWxcIlxuICAgIFtwb2ludF09XCJtb2RlbCgpLnBhdGgoKS5wb2ludHMuY2VudGVyXCJcbiAgICBbZWRnZU1vZGVsXT1cIm1vZGVsKClcIlxuICAgIFtodG1sVGVtcGxhdGVdPVwiZWRnZUxhYmVsSHRtbFRlbXBsYXRlKClcIlxuICAvPlxufVxuXG5AaWYgKG1vZGVsKCkuZWRnZUxhYmVscy5lbmQ7IGFzIGxhYmVsKSB7XG4gIDxzdmc6Z1xuICAgIGVkZ2VMYWJlbFxuICAgIFttb2RlbF09XCJsYWJlbFwiXG4gICAgW3BvaW50XT1cIm1vZGVsKCkucGF0aCgpLnBvaW50cy5lbmRcIlxuICAgIFtlZGdlTW9kZWxdPVwibW9kZWwoKVwiXG4gICAgW2h0bWxUZW1wbGF0ZV09XCJlZGdlTGFiZWxIdG1sVGVtcGxhdGUoKVwiXG4gIC8+XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9lZGdlL2VkZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZWRnZS9lZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFHUixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYW5ELE1BQU0sT0FBTyxhQUFhO0lBWDFCO1FBWVksYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVuRCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO1FBRXBDLGlCQUFZLEdBQUcsS0FBSyxFQUE0QixDQUFDO1FBRWpELDBCQUFxQixHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUUvQyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBRWhELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRU8saUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUU5QyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztLQXNCSjtJQWxCUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixTQUFTLEVBQUU7Z0JBQ1QsbUNBQW1DO2dCQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUk7Z0JBQ3ZCLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDOUMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTthQUM3QztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQzsrR0ExQ1UsYUFBYTttR0FBYixhQUFhLG1pQkM3QjFCLHlzQ0E2Q0EseUpEbEJZLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQUVuQyxhQUFhO2tCQVh6QixTQUFTO2lDQUNJLElBQUksWUFDTixTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLFlBQVk7cUJBQ3BCLFdBQ1EsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdG9yLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBoYXNoQ29kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2hhc2gnO1xuaW1wb3J0IHsgRWRnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RlbXBsYXRlLWNvbnRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEVkZ2VMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL2VkZ2UtbGFiZWwvZWRnZS1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2dbZWRnZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NlbGVjdGFibGUnLFxuICB9LFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgRWRnZUxhYmVsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRWRnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgc2VsZWN0aW9uU2VydmljZSA9IGluamVjdChTZWxlY3Rpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBtb2RlbCA9IGlucHV0LnJlcXVpcmVkPEVkZ2VNb2RlbD4oKTtcblxuICBwdWJsaWMgZWRnZVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8RWRnZUNvbnRleHQ+PigpO1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxIdG1sVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIHByb3RlY3RlZCBtYXJrZXJTdGFydFVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXJrZXIgPSB0aGlzLm1vZGVsKCkuZWRnZS5tYXJrZXJzPy5zdGFydDtcblxuICAgIHJldHVybiBtYXJrZXIgPyBgdXJsKCMke2hhc2hDb2RlKEpTT04uc3RyaW5naWZ5KG1hcmtlcikpfSlgIDogJyc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBtYXJrZXJFbmRVcmwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFya2VyID0gdGhpcy5tb2RlbCgpLmVkZ2UubWFya2Vycz8uZW5kO1xuXG4gICAgcmV0dXJuIG1hcmtlciA/IGB1cmwoIyR7aGFzaENvZGUoSlNPTi5zdHJpbmdpZnkobWFya2VyKSl9KWAgOiAnJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGVkZ2VDb250ZXh0ITogRWRnZUNvbnRleHQ7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWRnZUNvbnRleHQgPSB7XG4gICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgLy8gVE9ETzogY2hlY2sgaWYgZWRnZSBjb3VsZCBjaGFuZ2VcbiAgICAgICAgZWRnZTogdGhpcy5tb2RlbCgpLmVkZ2UsXG4gICAgICAgIHBhdGg6IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWwoKS5wYXRoKCkucGF0aCksXG4gICAgICAgIG1hcmtlclN0YXJ0OiB0aGlzLm1hcmtlclN0YXJ0VXJsLFxuICAgICAgICBtYXJrZXJFbmQ6IHRoaXMubWFya2VyRW5kVXJsLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5tb2RlbCgpLnNlbGVjdGVkLmFzUmVhZG9ubHkoKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVkZ2VNb3VzZURvd24oKSB7XG4gICAgaWYgKHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5lbnRpdGllc1NlbGVjdGFibGUoKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdCh0aGlzLm1vZGVsKCkpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChtb2RlbCgpLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICA8c3ZnOnBhdGhcbiAgICBjbGFzcz1cImVkZ2VcIlxuICAgIFthdHRyLmRdPVwibW9kZWwoKS5wYXRoKCkucGF0aFwiXG4gICAgW2F0dHIubWFya2VyLXN0YXJ0XT1cIm1hcmtlclN0YXJ0VXJsKClcIlxuICAgIFthdHRyLm1hcmtlci1lbmRdPVwibWFya2VyRW5kVXJsKClcIlxuICAgIFtjbGFzcy5lZGdlX3NlbGVjdGVkXT1cIm1vZGVsKCkuc2VsZWN0ZWQoKVwiXG4gICAgKG1vdXNlZG93bik9XCJvbkVkZ2VNb3VzZURvd24oKVwiIC8+XG59XG5cbkBpZiAobW9kZWwoKS50eXBlID09PSAndGVtcGxhdGUnICYmIGVkZ2VUZW1wbGF0ZSgpKSB7XG4gIEBpZiAoZWRnZVRlbXBsYXRlKCk7IGFzIGVkZ2VUZW1wbGF0ZSkge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkZ2VUZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZWRnZUNvbnRleHRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCJpbmplY3RvclwiIC8+XG4gIH1cbn1cblxuQGlmIChtb2RlbCgpLmVkZ2VMYWJlbHMuc3RhcnQ7IGFzIGxhYmVsKSB7XG4gIDxzdmc6Z1xuICAgIGVkZ2VMYWJlbFxuICAgIFttb2RlbF09XCJsYWJlbFwiXG4gICAgW3BvaW50XT1cIm1vZGVsKCkucGF0aCgpLnBvaW50cy5zdGFydFwiXG4gICAgW2VkZ2VNb2RlbF09XCJtb2RlbCgpXCJcbiAgICBbaHRtbFRlbXBsYXRlXT1cImVkZ2VMYWJlbEh0bWxUZW1wbGF0ZSgpXCIgLz5cbn1cblxuQGlmIChtb2RlbCgpLmVkZ2VMYWJlbHMuY2VudGVyOyBhcyBsYWJlbCkge1xuICA8c3ZnOmdcbiAgICBlZGdlTGFiZWxcbiAgICBbbW9kZWxdPVwibGFiZWxcIlxuICAgIFtwb2ludF09XCJtb2RlbCgpLnBhdGgoKS5wb2ludHMuY2VudGVyXCJcbiAgICBbZWRnZU1vZGVsXT1cIm1vZGVsKClcIlxuICAgIFtodG1sVGVtcGxhdGVdPVwiZWRnZUxhYmVsSHRtbFRlbXBsYXRlKClcIiAvPlxufVxuXG5AaWYgKG1vZGVsKCkuZWRnZUxhYmVscy5lbmQ7IGFzIGxhYmVsKSB7XG4gIDxzdmc6Z1xuICAgIGVkZ2VMYWJlbFxuICAgIFttb2RlbF09XCJsYWJlbFwiXG4gICAgW3BvaW50XT1cIm1vZGVsKCkucGF0aCgpLnBvaW50cy5lbmRcIlxuICAgIFtlZGdlTW9kZWxdPVwibW9kZWwoKVwiXG4gICAgW2h0bWxUZW1wbGF0ZV09XCJlZGdlTGFiZWxIdG1sVGVtcGxhdGUoKVwiIC8+XG59XG4iXX0=
@@ -29,10 +29,8 @@ export class EdgeLabelComponent {
29
29
  // this is a fix for visual artifact in chrome that for some reason adresses only for edge label.
30
30
  // the bug reproduces if edgeLabelWrapperRef size fully matched the size of parent foreignObject
31
31
  const MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME = 2;
32
- const width = this.edgeLabelWrapperRef().nativeElement.clientWidth +
33
- MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME;
34
- const height = this.edgeLabelWrapperRef().nativeElement.clientHeight +
35
- MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME;
32
+ const width = this.edgeLabelWrapperRef().nativeElement.clientWidth + MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME;
33
+ const height = this.edgeLabelWrapperRef().nativeElement.clientHeight + MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME;
36
34
  this.model().size.set({ width, height });
37
35
  }
38
36
  getLabelContext() {
@@ -44,13 +42,13 @@ export class EdgeLabelComponent {
44
42
  };
45
43
  }
46
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeLabelComponent, isStandalone: true, selector: "g[edgeLabel]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeModel: { classPropertyName: "edgeModel", publicName: "edgeModel", isSignal: true, isRequired: true, transformFunction: null }, point: { classPropertyName: "point", publicName: "point", isSignal: true, isRequired: false, transformFunction: null }, htmlTemplate: { classPropertyName: "htmlTemplate", publicName: "htmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "edgeLabelWrapperRef", first: true, predicate: ["edgeLabelWrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (model().edgeLabel.type === \"html-template\" && htmlTemplate()) {\n @if (htmlTemplate(); as htmlTemplate) {\n <svg:foreignObject\n [attr.x]=\"edgeLabelPoint().x\"\n [attr.y]=\"edgeLabelPoint().y\"\n [attr.width]=\"model().size().width\"\n [attr.height]=\"model().size().height\"\n >\n <div #edgeLabelWrapper class=\"edge-label-wrapper\">\n <ng-container\n *ngTemplateOutlet=\"htmlTemplate; context: getLabelContext()\"\n />\n </div>\n </svg:foreignObject>\n }\n}\n", styles: [".edge-label-wrapper{width:max-content;margin-top:1px;margin-left:1px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeLabelComponent, isStandalone: true, selector: "g[edgeLabel]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeModel: { classPropertyName: "edgeModel", publicName: "edgeModel", isSignal: true, isRequired: true, transformFunction: null }, point: { classPropertyName: "point", publicName: "point", isSignal: true, isRequired: false, transformFunction: null }, htmlTemplate: { classPropertyName: "htmlTemplate", publicName: "htmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "edgeLabelWrapperRef", first: true, predicate: ["edgeLabelWrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (model().edgeLabel.type === 'html-template' && htmlTemplate()) {\n @if (htmlTemplate(); as htmlTemplate) {\n <svg:foreignObject\n [attr.x]=\"edgeLabelPoint().x\"\n [attr.y]=\"edgeLabelPoint().y\"\n [attr.width]=\"model().size().width\"\n [attr.height]=\"model().size().height\">\n <div #edgeLabelWrapper class=\"edge-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"htmlTemplate; context: getLabelContext()\" />\n </div>\n </svg:foreignObject>\n }\n}\n", styles: [".edge-label-wrapper{width:max-content;margin-top:1px;margin-left:1px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
46
  }
49
47
  __decorate([
50
48
  Microtask
51
49
  ], EdgeLabelComponent.prototype, "ngAfterViewInit", null);
52
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeLabelComponent, decorators: [{
53
51
  type: Component,
54
- args: [{ standalone: true, selector: 'g[edgeLabel]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet], template: "@if (model().edgeLabel.type === \"html-template\" && htmlTemplate()) {\n @if (htmlTemplate(); as htmlTemplate) {\n <svg:foreignObject\n [attr.x]=\"edgeLabelPoint().x\"\n [attr.y]=\"edgeLabelPoint().y\"\n [attr.width]=\"model().size().width\"\n [attr.height]=\"model().size().height\"\n >\n <div #edgeLabelWrapper class=\"edge-label-wrapper\">\n <ng-container\n *ngTemplateOutlet=\"htmlTemplate; context: getLabelContext()\"\n />\n </div>\n </svg:foreignObject>\n }\n}\n", styles: [".edge-label-wrapper{width:max-content;margin-top:1px;margin-left:1px}\n"] }]
52
+ args: [{ standalone: true, selector: 'g[edgeLabel]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet], template: "@if (model().edgeLabel.type === 'html-template' && htmlTemplate()) {\n @if (htmlTemplate(); as htmlTemplate) {\n <svg:foreignObject\n [attr.x]=\"edgeLabelPoint().x\"\n [attr.y]=\"edgeLabelPoint().y\"\n [attr.width]=\"model().size().width\"\n [attr.height]=\"model().size().height\">\n <div #edgeLabelWrapper class=\"edge-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"htmlTemplate; context: getLabelContext()\" />\n </div>\n </svg:foreignObject>\n }\n}\n", styles: [".edge-label-wrapper{width:max-content;margin-top:1px;margin-left:1px}\n"] }]
55
53
  }], propDecorators: { ngAfterViewInit: [] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9lZGdlLWxhYmVsL2VkZ2UtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZWRnZS1sYWJlbC9lZGdlLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBdUJuRCxNQUFNLE9BQU8sa0JBQWtCO0lBckIvQjtRQXNCRSx3QkFBd0I7UUFDakIsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFFekMsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztRQUV4QyxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5QixpQkFBWSxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUV6Qyx3QkFBbUIsR0FDeEIsU0FBUyxDQUFDLFFBQVEsQ0FBNkIsa0JBQWtCLENBQUMsQ0FBQztRQUVyRTs7OztXQUlHO1FBQ08sbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUUzQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUU5QyxPQUFPO2dCQUNMLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDO2dCQUN0QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQzthQUN4QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7S0EwQko7SUF2QlEsZUFBZTtRQUNwQixpR0FBaUc7UUFDakcsZ0dBQWdHO1FBQ2hHLE1BQU0sbUNBQW1DLEdBQUcsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sS0FBSyxHQUNULElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXO1lBQ3BELG1DQUFtQyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUNWLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZO1lBQ3JELG1DQUFtQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVTLGVBQWU7UUFDdkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUk7Z0JBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUzthQUM5QjtTQUNGLENBQUM7SUFDSixDQUFDOytHQXBEVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0dEJDcEMvQix1aEJBZ0JBLGlJRGtCWSxnQkFBZ0I7O0FBZ0NuQjtJQUROLFNBQVM7eURBY1Q7NEZBM0NVLGtCQUFrQjtrQkFyQjlCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsbUJBZ0JQLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxnQkFBZ0IsQ0FBQzs4QkFnQ3BCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRnZUxhYmVsTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRnZS1sYWJlbC5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBNaWNyb3Rhc2sgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21pY3JvdGFzay5kZWNvcmF0b3InO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2dbZWRnZUxhYmVsXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGdlLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmVkZ2UtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcblxuICAgICAgICAvKlxuICAgICAgICB0aGlzIGlzIGEgZml4IGZvciBidWcgaW4gY2hyb21lLCBmb3Igc29tZSByZWFzb24gaWYgdGhlIGRpdiBmdWxseSBtYXRjaGVzIHRoZSBzaXplXG4gICAgICAgIG9mIGZvcmVpZ25PYmplY3QgdGhlcmUgYXJlIG9jY3VycyBzb21lIHZpc3VhbCBhcnRpZmFjdHMgYXJvdW5kIHRoaXMgZGl2XG4gICAgICAgKi9cbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIEVkZ2VMYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAvLyBUT0RPOiB0b28gbWFueSBpbnB1dHNcbiAgcHVibGljIG1vZGVsID0gaW5wdXQucmVxdWlyZWQ8RWRnZUxhYmVsTW9kZWw+KCk7XG5cbiAgcHVibGljIGVkZ2VNb2RlbCA9IGlucHV0LnJlcXVpcmVkPEVkZ2VNb2RlbD4oKTtcblxuICBwdWJsaWMgcG9pbnQgPSBpbnB1dCh7IHg6IDAsIHk6IDAgfSk7XG5cbiAgcHVibGljIGh0bWxUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG5cbiAgcHVibGljIGVkZ2VMYWJlbFdyYXBwZXJSZWYgPVxuICAgIHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ2VkZ2VMYWJlbFdyYXBwZXInKTtcblxuICAvKipcbiAgICogQ2VudGVyZWQgcG9pbnQgb2YgbGFiZWxcbiAgICpcbiAgICogVE9ETzogbWF5YmUgcHV0IGl0IGludG8gRWRnZUxhYmVsTW9kZWxcbiAgICovXG4gIHByb3RlY3RlZCBlZGdlTGFiZWxQb2ludCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwb2ludCA9IHRoaXMucG9pbnQoKTtcblxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5tb2RlbCgpLnNpemUoKTtcblxuICAgIHJldHVybiB7XG4gICAgICB4OiBwb2ludC54IC0gd2lkdGggLyAyLFxuICAgICAgeTogcG9pbnQueSAtIGhlaWdodCAvIDIsXG4gICAgfTtcbiAgfSk7XG5cbiAgQE1pY3JvdGFza1xuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMgaXMgYSBmaXggZm9yIHZpc3VhbCBhcnRpZmFjdCBpbiBjaHJvbWUgdGhhdCBmb3Igc29tZSByZWFzb24gYWRyZXNzZXMgb25seSBmb3IgZWRnZSBsYWJlbC5cbiAgICAvLyB0aGUgYnVnIHJlcHJvZHVjZXMgaWYgZWRnZUxhYmVsV3JhcHBlclJlZiBzaXplIGZ1bGx5IG1hdGNoZWQgdGhlIHNpemUgb2YgcGFyZW50IGZvcmVpZ25PYmplY3RcbiAgICBjb25zdCBNQUdJQ19WQUxVRV9UT19GSVhfR0xJVENIX0lOX0NIUk9NRSA9IDI7XG5cbiAgICBjb25zdCB3aWR0aCA9XG4gICAgICB0aGlzLmVkZ2VMYWJlbFdyYXBwZXJSZWYoKS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICtcbiAgICAgIE1BR0lDX1ZBTFVFX1RPX0ZJWF9HTElUQ0hfSU5fQ0hST01FO1xuICAgIGNvbnN0IGhlaWdodCA9XG4gICAgICB0aGlzLmVkZ2VMYWJlbFdyYXBwZXJSZWYoKS5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCArXG4gICAgICBNQUdJQ19WQUxVRV9UT19GSVhfR0xJVENIX0lOX0NIUk9NRTtcblxuICAgIHRoaXMubW9kZWwoKS5zaXplLnNldCh7IHdpZHRoLCBoZWlnaHQgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGFiZWxDb250ZXh0KCkge1xuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgZWRnZTogdGhpcy5lZGdlTW9kZWwoKS5lZGdlLFxuICAgICAgICBsYWJlbDogdGhpcy5tb2RlbCgpLmVkZ2VMYWJlbCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIiwiQGlmIChtb2RlbCgpLmVkZ2VMYWJlbC50eXBlID09PSBcImh0bWwtdGVtcGxhdGVcIiAmJiBodG1sVGVtcGxhdGUoKSkge1xuICBAaWYgKGh0bWxUZW1wbGF0ZSgpOyBhcyBodG1sVGVtcGxhdGUpIHtcbiAgICA8c3ZnOmZvcmVpZ25PYmplY3RcbiAgICAgIFthdHRyLnhdPVwiZWRnZUxhYmVsUG9pbnQoKS54XCJcbiAgICAgIFthdHRyLnldPVwiZWRnZUxhYmVsUG9pbnQoKS55XCJcbiAgICAgIFthdHRyLndpZHRoXT1cIm1vZGVsKCkuc2l6ZSgpLndpZHRoXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJtb2RlbCgpLnNpemUoKS5oZWlnaHRcIlxuICAgID5cbiAgICAgIDxkaXYgI2VkZ2VMYWJlbFdyYXBwZXIgY2xhc3M9XCJlZGdlLWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaHRtbFRlbXBsYXRlOyBjb250ZXh0OiBnZXRMYWJlbENvbnRleHQoKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L3N2Zzpmb3JlaWduT2JqZWN0PlxuICB9XG59XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9lZGdlLWxhYmVsL2VkZ2UtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZWRnZS1sYWJlbC9lZGdlLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBdUJuRCxNQUFNLE9BQU8sa0JBQWtCO0lBckIvQjtRQXNCRSx3QkFBd0I7UUFDakIsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFFekMsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztRQUV4QyxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5QixpQkFBWSxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUV6Qyx3QkFBbUIsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUE2QixrQkFBa0IsQ0FBQyxDQUFDO1FBRWhHOzs7O1dBSUc7UUFDTyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRTNCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRTlDLE9BQU87Z0JBQ0wsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUM7Z0JBQ3RCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDO2FBQ3hCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztLQXNCSjtJQW5CUSxlQUFlO1FBQ3BCLGlHQUFpRztRQUNqRyxnR0FBZ0c7UUFDaEcsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLENBQUM7UUFFOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztRQUN6RyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLG1DQUFtQyxDQUFDO1FBRTNHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVTLGVBQWU7UUFDdkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUk7Z0JBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUzthQUM5QjtTQUNGLENBQUM7SUFDSixDQUFDOytHQS9DVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0dEJDcEMvQiwyZkFhQSxpSURxQlksZ0JBQWdCOztBQStCbkI7SUFETixTQUFTO3lEQVVUOzRGQXRDVSxrQkFBa0I7a0JBckI5QixTQUFTO2lDQUNJLElBQUksWUFDTixjQUFjLG1CQWdCUCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLENBQUM7OEJBK0JwQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkZ2VMYWJlbE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VkZ2UtbGFiZWwubW9kZWwnO1xuaW1wb3J0IHsgRWRnZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VkZ2UubW9kZWwnO1xuaW1wb3J0IHsgTWljcm90YXNrIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9taWNyb3Rhc2suZGVjb3JhdG9yJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdnW2VkZ2VMYWJlbF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRnZS1sYWJlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5lZGdlLWxhYmVsLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG5cbiAgICAgICAgLypcbiAgICAgICAgdGhpcyBpcyBhIGZpeCBmb3IgYnVnIGluIGNocm9tZSwgZm9yIHNvbWUgcmVhc29uIGlmIHRoZSBkaXYgZnVsbHkgbWF0Y2hlcyB0aGUgc2l6ZVxuICAgICAgICBvZiBmb3JlaWduT2JqZWN0IHRoZXJlIGFyZSBvY2N1cnMgc29tZSB2aXN1YWwgYXJ0aWZhY3RzIGFyb3VuZCB0aGlzIGRpdlxuICAgICAgICovXG4gICAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBFZGdlTGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLy8gVE9ETzogdG9vIG1hbnkgaW5wdXRzXG4gIHB1YmxpYyBtb2RlbCA9IGlucHV0LnJlcXVpcmVkPEVkZ2VMYWJlbE1vZGVsPigpO1xuXG4gIHB1YmxpYyBlZGdlTW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxFZGdlTW9kZWw+KCk7XG5cbiAgcHVibGljIHBvaW50ID0gaW5wdXQoeyB4OiAwLCB5OiAwIH0pO1xuXG4gIHB1YmxpYyBodG1sVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxXcmFwcGVyUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignZWRnZUxhYmVsV3JhcHBlcicpO1xuXG4gIC8qKlxuICAgKiBDZW50ZXJlZCBwb2ludCBvZiBsYWJlbFxuICAgKlxuICAgKiBUT0RPOiBtYXliZSBwdXQgaXQgaW50byBFZGdlTGFiZWxNb2RlbFxuICAgKi9cbiAgcHJvdGVjdGVkIGVkZ2VMYWJlbFBvaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50ID0gdGhpcy5wb2ludCgpO1xuXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSB0aGlzLm1vZGVsKCkuc2l6ZSgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHBvaW50LnggLSB3aWR0aCAvIDIsXG4gICAgICB5OiBwb2ludC55IC0gaGVpZ2h0IC8gMixcbiAgICB9O1xuICB9KTtcblxuICBATWljcm90YXNrXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcyBpcyBhIGZpeCBmb3IgdmlzdWFsIGFydGlmYWN0IGluIGNocm9tZSB0aGF0IGZvciBzb21lIHJlYXNvbiBhZHJlc3NlcyBvbmx5IGZvciBlZGdlIGxhYmVsLlxuICAgIC8vIHRoZSBidWcgcmVwcm9kdWNlcyBpZiBlZGdlTGFiZWxXcmFwcGVyUmVmIHNpemUgZnVsbHkgbWF0Y2hlZCB0aGUgc2l6ZSBvZiBwYXJlbnQgZm9yZWlnbk9iamVjdFxuICAgIGNvbnN0IE1BR0lDX1ZBTFVFX1RPX0ZJWF9HTElUQ0hfSU5fQ0hST01FID0gMjtcblxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5lZGdlTGFiZWxXcmFwcGVyUmVmKCkubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCArIE1BR0lDX1ZBTFVFX1RPX0ZJWF9HTElUQ0hfSU5fQ0hST01FO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuZWRnZUxhYmVsV3JhcHBlclJlZigpLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgTUFHSUNfVkFMVUVfVE9fRklYX0dMSVRDSF9JTl9DSFJPTUU7XG5cbiAgICB0aGlzLm1vZGVsKCkuc2l6ZS5zZXQoeyB3aWR0aCwgaGVpZ2h0IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldExhYmVsQ29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgIGVkZ2U6IHRoaXMuZWRnZU1vZGVsKCkuZWRnZSxcbiAgICAgICAgbGFiZWw6IHRoaXMubW9kZWwoKS5lZGdlTGFiZWwsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIkBpZiAobW9kZWwoKS5lZGdlTGFiZWwudHlwZSA9PT0gJ2h0bWwtdGVtcGxhdGUnICYmIGh0bWxUZW1wbGF0ZSgpKSB7XG4gIEBpZiAoaHRtbFRlbXBsYXRlKCk7IGFzIGh0bWxUZW1wbGF0ZSkge1xuICAgIDxzdmc6Zm9yZWlnbk9iamVjdFxuICAgICAgW2F0dHIueF09XCJlZGdlTGFiZWxQb2ludCgpLnhcIlxuICAgICAgW2F0dHIueV09XCJlZGdlTGFiZWxQb2ludCgpLnlcIlxuICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwoKS5zaXplKCkud2lkdGhcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cIm1vZGVsKCkuc2l6ZSgpLmhlaWdodFwiPlxuICAgICAgPGRpdiAjZWRnZUxhYmVsV3JhcHBlciBjbGFzcz1cImVkZ2UtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaHRtbFRlbXBsYXRlOyBjb250ZXh0OiBnZXRMYWJlbENvbnRleHQoKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L3N2Zzpmb3JlaWduT2JqZWN0PlxuICB9XG59XG4iXX0=