@foblex/flow 1.3.5 → 1.3.6

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 (146) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +44 -1
  3. package/domain/get-connection-vector/get-connection-vector.request.d.ts +3 -3
  4. package/domain/providers.d.ts +1 -1
  5. package/esm2022/domain/get-connection-vector/get-connection-vector.handler.mjs +5 -5
  6. package/esm2022/domain/get-connection-vector/get-connection-vector.request.mjs +1 -1
  7. package/esm2022/f-backgroud/domain/i-f-background-pattern.mjs +3 -0
  8. package/esm2022/f-backgroud/domain/index.mjs +2 -0
  9. package/esm2022/f-backgroud/domain/public-api.mjs +2 -0
  10. package/esm2022/f-backgroud/f-background-base.mjs +11 -0
  11. package/esm2022/f-backgroud/f-background.component.mjs +59 -0
  12. package/esm2022/{components/f-flow/f-backgroud → f-backgroud}/f-cell-pattern/f-cell-pattern.component.mjs +1 -1
  13. package/esm2022/f-backgroud/f-cell-pattern/index.mjs +2 -0
  14. package/esm2022/f-backgroud/f-cell-pattern/public-api.mjs +2 -0
  15. package/esm2022/f-backgroud/index.mjs +5 -0
  16. package/esm2022/f-backgroud/public-api.mjs +4 -0
  17. package/esm2022/f-canvas/domain/f-canvas-change.event.mjs +7 -0
  18. package/esm2022/f-canvas/domain/index.mjs +2 -0
  19. package/esm2022/f-canvas/domain/public-api.mjs +2 -0
  20. package/esm2022/f-canvas/f-canvas-base.mjs +26 -0
  21. package/esm2022/{components/f-flow/f-canvas → f-canvas}/f-canvas.component.mjs +3 -3
  22. package/esm2022/f-canvas/f-zoom/f-zoom-base.mjs +94 -0
  23. package/esm2022/f-canvas/f-zoom/f-zoom.directive.mjs +59 -0
  24. package/esm2022/f-canvas/f-zoom/index.mjs +3 -0
  25. package/esm2022/f-canvas/f-zoom/public-api.mjs +2 -0
  26. package/esm2022/f-canvas/index.mjs +5 -0
  27. package/esm2022/f-canvas/public-api.mjs +4 -0
  28. package/esm2022/f-components-store.mjs +1 -1
  29. package/esm2022/f-connection/common/cast-to-connection-behavior.mjs +4 -4
  30. package/esm2022/f-connection/common/cast-to-connection-type.mjs +4 -4
  31. package/esm2022/f-connection/common/e-f-connection-behavior.mjs +6 -0
  32. package/esm2022/f-connection/common/e-f-connection-type.mjs +7 -0
  33. package/esm2022/f-connection/common/f-connection-base.mjs +5 -3
  34. package/esm2022/f-connection/common/index.mjs +3 -3
  35. package/esm2022/f-connection/common/path-constructor/bezier-path/bezier-path.mjs +29 -0
  36. package/esm2022/f-connection/common/path-constructor/bezier-path/index.mjs +2 -0
  37. package/esm2022/f-connection/common/path-constructor/index.mjs +2 -2
  38. package/esm2022/f-connection/common/path-constructor/path-constructor.mjs +6 -5
  39. package/esm2022/f-connection/common/public-api.mjs +3 -3
  40. package/esm2022/f-connection/f-connection/f-connection.component.mjs +5 -5
  41. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +5 -5
  42. package/esm2022/f-connection/f-marker/e-f-marker-type.mjs +3 -3
  43. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +44 -0
  44. package/esm2022/f-connection/f-marker/index.mjs +2 -2
  45. package/esm2022/f-draggable/selection-area/selection-area.prepare-drag-sequence.mjs +1 -1
  46. package/esm2022/f-flow/domain/redraw-connections/redraw-connections.handler.mjs +46 -0
  47. package/esm2022/f-flow/f-flow.component.mjs +95 -0
  48. package/esm2022/f-flow/f-parent.injection-token.mjs +3 -0
  49. package/esm2022/f-flow/i-flow-base.mjs +3 -0
  50. package/esm2022/f-flow/index.mjs +5 -0
  51. package/esm2022/f-flow/public-api.mjs +2 -0
  52. package/esm2022/f-flow.module.mjs +9 -7
  53. package/esm2022/f-node/{f-node.component.mjs → f-node.directive.mjs} +7 -7
  54. package/esm2022/f-node/index.mjs +2 -2
  55. package/esm2022/f-node/public-api.mjs +2 -2
  56. package/esm2022/public-api.mjs +4 -2
  57. package/{components/f-flow/f-backgroud → f-backgroud}/f-background.component.d.ts +3 -4
  58. package/{components/f-flow/f-canvas → f-canvas}/f-canvas-base.d.ts +3 -3
  59. package/{components/f-flow/f-canvas → f-canvas}/f-canvas.component.d.ts +3 -3
  60. package/{components/f-flow/f-canvas → f-canvas}/f-zoom/f-zoom-base.d.ts +1 -1
  61. package/{components/f-flow/f-canvas → f-canvas}/f-zoom/f-zoom.directive.d.ts +1 -1
  62. package/f-components-store.d.ts +3 -1
  63. package/f-connection/common/cast-to-connection-behavior.d.ts +2 -2
  64. package/f-connection/common/cast-to-connection-type.d.ts +2 -2
  65. package/f-connection/common/{e-connection-behavior.d.ts → e-f-connection-behavior.d.ts} +1 -1
  66. package/f-connection/common/{e-connection-type.d.ts → e-f-connection-type.d.ts} +1 -1
  67. package/f-connection/common/f-connection-base.d.ts +4 -4
  68. package/f-connection/common/index.d.ts +2 -2
  69. package/f-connection/common/path-constructor/{bezier-path.d.ts → bezier-path/bezier-path.d.ts} +3 -2
  70. package/f-connection/common/path-constructor/bezier-path/index.d.ts +1 -0
  71. package/f-connection/common/path-constructor/index.d.ts +1 -1
  72. package/f-connection/common/path-constructor/path-constructor.d.ts +2 -2
  73. package/f-connection/common/public-api.d.ts +2 -2
  74. package/f-connection/f-connection/f-connection.component.d.ts +6 -6
  75. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +5 -5
  76. package/f-connection/f-marker/e-f-marker-type.d.ts +2 -2
  77. package/f-connection/f-marker/f-marker.directive.d.ts +15 -0
  78. package/f-connection/f-marker/index.d.ts +1 -1
  79. package/f-draggable/connections/providers.d.ts +1 -1
  80. package/f-draggable/external-item/providers.d.ts +1 -1
  81. package/f-draggable/node/providers.d.ts +1 -1
  82. package/f-flow/domain/redraw-connections/redraw-connections.handler.d.ts +16 -0
  83. package/f-flow/f-flow.component.d.ts +26 -0
  84. package/{components/f-flow → f-flow}/index.d.ts +1 -2
  85. package/f-flow/public-api.d.ts +1 -0
  86. package/f-flow.module.d.ts +6 -6
  87. package/f-node/{f-node.component.d.ts → f-node.directive.d.ts} +3 -3
  88. package/f-node/index.d.ts +1 -1
  89. package/f-node/public-api.d.ts +1 -1
  90. package/fesm2022/foblex-flow.mjs +2581 -2603
  91. package/fesm2022/foblex-flow.mjs.map +1 -1
  92. package/package.json +3 -5
  93. package/public-api.d.ts +3 -1
  94. package/components/f-flow/f-flow.component.d.ts +0 -101
  95. package/components/f-flow/public-api.d.ts +0 -3
  96. package/components/index.d.ts +0 -1
  97. package/components/public-api.d.ts +0 -1
  98. package/esm2022/components/f-flow/f-backgroud/domain/i-f-background-pattern.mjs +0 -3
  99. package/esm2022/components/f-flow/f-backgroud/domain/index.mjs +0 -2
  100. package/esm2022/components/f-flow/f-backgroud/domain/public-api.mjs +0 -2
  101. package/esm2022/components/f-flow/f-backgroud/f-background-base.mjs +0 -11
  102. package/esm2022/components/f-flow/f-backgroud/f-background.component.mjs +0 -60
  103. package/esm2022/components/f-flow/f-backgroud/f-cell-pattern/index.mjs +0 -2
  104. package/esm2022/components/f-flow/f-backgroud/f-cell-pattern/public-api.mjs +0 -2
  105. package/esm2022/components/f-flow/f-backgroud/index.mjs +0 -5
  106. package/esm2022/components/f-flow/f-backgroud/public-api.mjs +0 -4
  107. package/esm2022/components/f-flow/f-canvas/domain/f-canvas-change.event.mjs +0 -7
  108. package/esm2022/components/f-flow/f-canvas/domain/index.mjs +0 -2
  109. package/esm2022/components/f-flow/f-canvas/domain/public-api.mjs +0 -2
  110. package/esm2022/components/f-flow/f-canvas/f-canvas-base.mjs +0 -26
  111. package/esm2022/components/f-flow/f-canvas/f-zoom/f-zoom-base.mjs +0 -94
  112. package/esm2022/components/f-flow/f-canvas/f-zoom/f-zoom.directive.mjs +0 -59
  113. package/esm2022/components/f-flow/f-canvas/f-zoom/index.mjs +0 -3
  114. package/esm2022/components/f-flow/f-canvas/f-zoom/public-api.mjs +0 -2
  115. package/esm2022/components/f-flow/f-canvas/index.mjs +0 -5
  116. package/esm2022/components/f-flow/f-canvas/public-api.mjs +0 -4
  117. package/esm2022/components/f-flow/f-flow.component.mjs +0 -184
  118. package/esm2022/components/f-flow/f-parent.injection-token.mjs +0 -3
  119. package/esm2022/components/f-flow/i-flow-base.mjs +0 -3
  120. package/esm2022/components/f-flow/index.mjs +0 -6
  121. package/esm2022/components/f-flow/public-api.mjs +0 -4
  122. package/esm2022/components/index.mjs +0 -2
  123. package/esm2022/components/public-api.mjs +0 -2
  124. package/esm2022/f-connection/common/e-connection-behavior.mjs +0 -6
  125. package/esm2022/f-connection/common/e-connection-type.mjs +0 -7
  126. package/esm2022/f-connection/common/path-constructor/bezier-path.mjs +0 -7
  127. package/esm2022/f-connection/f-marker/f-marker.component.mjs +0 -39
  128. package/f-connection/f-marker/f-marker.component.d.ts +0 -15
  129. /package/{components/f-flow/f-backgroud → f-backgroud}/domain/i-f-background-pattern.d.ts +0 -0
  130. /package/{components/f-flow/f-backgroud → f-backgroud}/domain/index.d.ts +0 -0
  131. /package/{components/f-flow/f-backgroud → f-backgroud}/domain/public-api.d.ts +0 -0
  132. /package/{components/f-flow/f-backgroud → f-backgroud}/f-background-base.d.ts +0 -0
  133. /package/{components/f-flow/f-backgroud → f-backgroud}/f-cell-pattern/f-cell-pattern.component.d.ts +0 -0
  134. /package/{components/f-flow/f-backgroud → f-backgroud}/f-cell-pattern/index.d.ts +0 -0
  135. /package/{components/f-flow/f-backgroud → f-backgroud}/f-cell-pattern/public-api.d.ts +0 -0
  136. /package/{components/f-flow/f-backgroud → f-backgroud}/index.d.ts +0 -0
  137. /package/{components/f-flow/f-backgroud → f-backgroud}/public-api.d.ts +0 -0
  138. /package/{components/f-flow/f-canvas → f-canvas}/domain/f-canvas-change.event.d.ts +0 -0
  139. /package/{components/f-flow/f-canvas → f-canvas}/domain/index.d.ts +0 -0
  140. /package/{components/f-flow/f-canvas → f-canvas}/domain/public-api.d.ts +0 -0
  141. /package/{components/f-flow/f-canvas → f-canvas}/f-zoom/index.d.ts +0 -0
  142. /package/{components/f-flow/f-canvas → f-canvas}/f-zoom/public-api.d.ts +0 -0
  143. /package/{components/f-flow/f-canvas → f-canvas}/index.d.ts +0 -0
  144. /package/{components/f-flow/f-canvas → f-canvas}/public-api.d.ts +0 -0
  145. /package/{components/f-flow → f-flow}/f-parent.injection-token.d.ts +0 -0
  146. /package/{components/f-flow → f-flow}/i-flow-base.d.ts +0 -0
package/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Foblex
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ NOTICE OF ACCESS TO SOURCE CODE:
24
+ Access to the full source code of this library for the purposes of study,
25
+ modification, or integration with your projects requires the purchase of a
26
+ separate license. This license will provide additional rights, as detailed
27
+ in a separate licensing agreement. For more information and to purchase
28
+ a license, please contact www.foblex.com.
package/README.md CHANGED
@@ -1,2 +1,45 @@
1
1
  # @foblex/flow
2
- > A simple flow control library for Angular 2+.
2
+ `@foblex/flow` is an Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.
3
+
4
+ [Documentation](https://foblex.com/flow/documentation/get-started)
5
+
6
+ ## Features
7
+
8
+ 1. Node and connection components.
9
+ 2. Connection and node events.
10
+ 3. Reassigning nodes and connections.
11
+ 4. Customizable node and connection templates.
12
+ 5. Drag-and-drop support.
13
+ 6. Zoom and pan support.
14
+
15
+ ## Installation
16
+
17
+ To add `@foblex/flow` to your project, run the following command:
18
+
19
+ ```bash
20
+ npm install @foblex/flow
21
+ ```
22
+ ## Usage
23
+
24
+ Example:
25
+ ```typescript
26
+ <f-flow>
27
+ <f-canvas>
28
+ <f-connection outputId="1" inputId="2"></f-connection>
29
+ <div fNode [fNodePosition]="{ x:100, y:100 }">
30
+ <div fNodeOutput fNodeOutputId="1"></div>
31
+ </div>
32
+ <div fNode [fNodePosition]="{ x:300, y:100 }">
33
+ <div fNodeInput fNodeInputId="2"></div>
34
+ </div>
35
+ </f-canvas>
36
+ </f-flow>
37
+ ```
38
+
39
+ ## License and Access to Source Code
40
+
41
+ This library is available for use under the MIT License, allowing free use, modification, and distribution of the minified version of the library in your projects.
42
+
43
+ If you are interested in accessing the full source code of the library for purposes of study, modification, or deeper integration with your projects, we offer separate licenses for the source code. Purchasing such a license will grant you the right to use, modify, and distribute the source code according to the terms set forth in the licensing agreement.
44
+
45
+ For more information and to purchase a source code license, please contact us at www.foblex.com.
@@ -1,11 +1,11 @@
1
1
  import { IRect } from '@foblex/core';
2
2
  import { EConnectorSide } from '../get-connector-side-in-node';
3
- import { EConnectionBehavior } from '../../f-connection';
3
+ import { EFConnectionBehavior } from '../../f-connection';
4
4
  export declare class GetConnectionVectorRequest {
5
5
  outputRect: IRect;
6
6
  inputRect: IRect;
7
- behavior: EConnectionBehavior | string;
7
+ behavior: EFConnectionBehavior | string;
8
8
  outputSide: EConnectorSide;
9
9
  inputSide: EConnectorSide;
10
- constructor(outputRect: IRect, inputRect: IRect, behavior: EConnectionBehavior | string, outputSide: EConnectorSide, inputSide: EConnectorSide);
10
+ constructor(outputRect: IRect, inputRect: IRect, behavior: EFConnectionBehavior | string, outputSide: EConnectorSide, inputSide: EConnectorSide);
11
11
  }
@@ -9,4 +9,4 @@ import { GetConnectionVectorHandler } from './get-connection-vector';
9
9
  import { UpdateNodeLayerHandler } from './update-node-layer.handler';
10
10
  import { SelectAllHandler } from './select-all.handler';
11
11
  import { UpdateConnectionLayerHandler } from './update-connection-layer.handler';
12
- export declare const COMMON_PROVIDERS: (typeof GetConnectionVectorHandler | typeof GetAllNodesRectHandler | typeof GetConnectionHandler | typeof GetElementRectInFlowHandler | typeof GetIncomingConnectionsHandler | typeof GetOutgoingConnectionsHandler | typeof GetInputRectInFlowHandler | typeof GetOutputRectInFlowHandler | typeof UpdateNodeLayerHandler | typeof SelectAllHandler | typeof UpdateConnectionLayerHandler)[];
12
+ export declare const COMMON_PROVIDERS: (typeof GetAllNodesRectHandler | typeof GetConnectionVectorHandler | typeof GetConnectionHandler | typeof GetElementRectInFlowHandler | typeof GetOutputRectInFlowHandler | typeof GetInputRectInFlowHandler | typeof GetIncomingConnectionsHandler | typeof GetOutgoingConnectionsHandler | typeof SelectAllHandler | typeof UpdateConnectionLayerHandler | typeof UpdateNodeLayerHandler)[];
@@ -1,14 +1,14 @@
1
1
  import { Point, RectExtensions } from '@foblex/core';
2
2
  import { Injectable } from '@angular/core';
3
3
  import { EConnectorSide } from '../get-connector-side-in-node';
4
- import { EConnectionBehavior } from '../../f-connection';
4
+ import { EFConnectionBehavior } from '../../f-connection';
5
5
  import * as i0 from "@angular/core";
6
6
  export class GetConnectionVectorHandler {
7
7
  constructor() {
8
8
  this.behaviorHandlers = {
9
- [EConnectionBehavior.FLOATING.toString()]: this.floatingBehavior,
10
- // [EConnectionBehavior.FIXED.toString()]: this.fixedBehavior,
11
- [EConnectionBehavior.FIXED.toString()]: this.fixedOutboundBehaviour,
9
+ [EFConnectionBehavior.FLOATING.toString()]: this.floatingBehavior,
10
+ // [EFConnectionBehavior.FIXED.toString()]: this.fixedBehavior,
11
+ [EFConnectionBehavior.FIXED.toString()]: this.fixedOutboundBehaviour,
12
12
  };
13
13
  }
14
14
  handle(payload) {
@@ -69,4 +69,4 @@ const positionFixedOutbound = {
69
69
  return result;
70
70
  },
71
71
  };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9nZXQtY29ubmVjdGlvbi12ZWN0b3IvZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUd6RCxNQUFNLE9BQU8sMEJBQTBCO0lBRHZDO1FBR1UscUJBQWdCLEdBQUc7WUFFekIsQ0FBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBRWxFLDhEQUE4RDtZQUU5RCxDQUFFLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBRSxFQUFFLElBQUksQ0FBQyxzQkFBc0I7U0FDdEUsQ0FBQTtLQW1DRjtJQWpDUSxNQUFNLENBQUMsT0FBbUM7UUFFL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBbUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoSixNQUFN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QUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnQsIElSZWN0LCBJVmVjdG9yLCBQb2ludCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgR2V0Q29ubmVjdGlvblZlY3RvclJlcXVlc3QgfSBmcm9tICcuL2dldC1jb25uZWN0aW9uLXZlY3Rvci5yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVDb25uZWN0b3JTaWRlIH0gZnJvbSAnLi4vZ2V0LWNvbm5lY3Rvci1zaWRlLWluLW5vZGUnO1xuaW1wb3J0IHsgRUNvbm5lY3Rpb25CZWhhdmlvciB9IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHZXRDb25uZWN0aW9uVmVjdG9ySGFuZGxlciBpbXBsZW1lbnRzIElIYW5kbGVyPEdldENvbm5lY3Rpb25WZWN0b3JSZXF1ZXN0LCBJVmVjdG9yPiB7XG5cbiAgcHJpdmF0ZSBiZWhhdmlvckhhbmRsZXJzID0ge1xuXG4gICAgWyBFQ29ubmVjdGlvbkJlaGF2aW9yLkZMT0FUSU5HLnRvU3RyaW5nKCkgXTogdGhpcy5mbG9hdGluZ0JlaGF2aW9yLFxuXG4gICAgLy8gW0VDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQudG9TdHJpbmcoKV06IHRoaXMuZml4ZWRCZWhhdmlvcixcblxuICAgIFsgRUNvbm5lY3Rpb25CZWhhdmlvci5GSVhFRC50b1N0cmluZygpIF06IHRoaXMuZml4ZWRPdXRib3VuZEJlaGF2aW91cixcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogR2V0Q29ubmVjdGlvblZlY3RvclJlcXVlc3QpOiBJVmVjdG9yIHtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuYmVoYXZpb3JIYW5kbGVyc1sgcGF5bG9hZC5iZWhhdmlvciBdKHBheWxvYWQpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZmxvYXRpbmdCZWhhdmlvcihwYXlsb2FkOiBHZXRDb25uZWN0aW9uVmVjdG9yUmVxdWVzdCk6IElWZWN0b3Ige1xuICAgIGNvbnN0IGZyb21SZXN1bHQgPSBSZWN0RXh0ZW5zaW9ucy5pbnRlcnNlY3Rpb25XaXRoVmVjdG9yKHBheWxvYWQub3V0cHV0UmVjdCwgcGF5bG9hZC5vdXRwdXRSZWN0LmdyYXZpdHlDZW50ZXIsIHBheWxvYWQuaW5wdXRSZWN0LmdyYXZpdHlDZW50ZXIpO1xuICAgIGNvbnN0IHRvUmVzdWx0ID0gUmVjdEV4dGVuc2lvbnMuaW50ZXJzZWN0aW9uV2l0aFZlY3RvcihwYXlsb2FkLmlucHV0UmVjdCwgcGF5bG9hZC5vdXRwdXRSZWN0LmdyYXZpdHlDZW50ZXIsIHBheWxvYWQuaW5wdXRSZWN0LmdyYXZpdHlDZW50ZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvaW50MTogZnJvbVJlc3VsdCA/IGZyb21SZXN1bHRbIDEgXSA6IHBheWxvYWQub3V0cHV0UmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgICAgcG9pbnQyOiB0b1Jlc3VsdCA/IHRvUmVzdWx0WyAwIF0gOiBwYXlsb2FkLmlucHV0UmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZml4ZWRCZWhhdmlvcihwYXlsb2FkOiBHZXRDb25uZWN0aW9uVmVjdG9yUmVxdWVzdCk6IElWZWN0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICBwb2ludDE6IHBheWxvYWQub3V0cHV0UmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgICAgcG9pbnQyOiBwYXlsb2FkLmlucHV0UmVjdC5ncmF2aXR5Q2VudGVyLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZml4ZWRPdXRib3VuZEJlaGF2aW91cihwYXlsb2FkOiBHZXRDb25uZWN0aW9uVmVjdG9yUmVxdWVzdCk6IElWZWN0b3Ige1xuICAgIGNvbnN0IHBvaW50MSA9IHBvc2l0aW9uRml4ZWRPdXRib3VuZFsgcGF5bG9hZC5vdXRwdXRTaWRlIF0ocGF5bG9hZC5vdXRwdXRSZWN0KTtcbiAgICBjb25zdCBwb2ludDIgPSBwb3NpdGlvbkZpeGVkT3V0Ym91bmRbIHBheWxvYWQuaW5wdXRTaWRlIF0ocGF5bG9hZC5pbnB1dFJlY3QpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvaW50MTogcG9pbnQxLFxuICAgICAgcG9pbnQyOiBwb2ludDIsXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHBvc2l0aW9uRml4ZWRPdXRib3VuZCA9IHtcbiAgWyBFQ29ubmVjdG9yU2lkZS5UT1AgXTogKHJlY3Q6IElSZWN0KTogSVBvaW50ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUG9pbnQoKTtcbiAgICByZXN1bHQueSA9IHJlY3QueTtcbiAgICByZXN1bHQueCA9IHJlY3QueCArIHJlY3Qud2lkdGggLyAyO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIFsgRUNvbm5lY3RvclNpZGUuQk9UVE9NIF06IChyZWN0OiBJUmVjdCk6IElQb2ludCA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFBvaW50KCk7XG4gICAgcmVzdWx0LnkgPSByZWN0LnkgKyByZWN0LmhlaWdodDtcbiAgICByZXN1bHQueCA9IHJlY3QueCArIHJlY3Qud2lkdGggLyAyO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIFsgRUNvbm5lY3RvclNpZGUuTEVGVCBdOiAocmVjdDogSVJlY3QpOiBJUG9pbnQgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQb2ludCgpO1xuICAgIHJlc3VsdC54ID0gcmVjdC54O1xuICAgIHJlc3VsdC55ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIFsgRUNvbm5lY3RvclNpZGUuUklHSFQgXTogKHJlY3Q6IElSZWN0KTogSVBvaW50ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUG9pbnQoKTtcbiAgICByZXN1bHQueCA9IHJlY3QueCArIHJlY3Qud2lkdGg7XG4gICAgcmVzdWx0LnkgPSByZWN0LnkgKyByZWN0LmhlaWdodCAvIDI7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSxcbn07XG5cblxuXG5cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9nZXQtY29ubmVjdGlvbi12ZWN0b3IvZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUcxRCxNQUFNLE9BQU8sMEJBQTBCO0lBRHZDO1FBR1UscUJBQWdCLEdBQUc7WUFFekIsQ0FBRSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBRW5FLCtEQUErRDtZQUUvRCxDQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBRSxFQUFFLElBQUksQ0FBQyxzQkFBc0I7U0FDdkUsQ0FBQTtLQW1DRjtJQWpDUSxNQUFNLENBQUMsT0FBbUM7UUFFL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBbUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoSixNQUFN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QUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnQsIElSZWN0LCBJVmVjdG9yLCBQb2ludCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgR2V0Q29ubmVjdGlvblZlY3RvclJlcXVlc3QgfSBmcm9tICcuL2dldC1jb25uZWN0aW9uLXZlY3Rvci5yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVDb25uZWN0b3JTaWRlIH0gZnJvbSAnLi4vZ2V0LWNvbm5lY3Rvci1zaWRlLWluLW5vZGUnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR2V0Q29ubmVjdGlvblZlY3RvckhhbmRsZXIgaW1wbGVtZW50cyBJSGFuZGxlcjxHZXRDb25uZWN0aW9uVmVjdG9yUmVxdWVzdCwgSVZlY3Rvcj4ge1xuXG4gIHByaXZhdGUgYmVoYXZpb3JIYW5kbGVycyA9IHtcblxuICAgIFsgRUZDb25uZWN0aW9uQmVoYXZpb3IuRkxPQVRJTkcudG9TdHJpbmcoKSBdOiB0aGlzLmZsb2F0aW5nQmVoYXZpb3IsXG5cbiAgICAvLyBbRUZDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQudG9TdHJpbmcoKV06IHRoaXMuZml4ZWRCZWhhdmlvcixcblxuICAgIFsgRUZDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQudG9TdHJpbmcoKSBdOiB0aGlzLmZpeGVkT3V0Ym91bmRCZWhhdmlvdXIsXG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHBheWxvYWQ6IEdldENvbm5lY3Rpb25WZWN0b3JSZXF1ZXN0KTogSVZlY3RvciB7XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmJlaGF2aW9ySGFuZGxlcnNbIHBheWxvYWQuYmVoYXZpb3IgXShwYXlsb2FkKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGZsb2F0aW5nQmVoYXZpb3IocGF5bG9hZDogR2V0Q29ubmVjdGlvblZlY3RvclJlcXVlc3QpOiBJVmVjdG9yIHtcbiAgICBjb25zdCBmcm9tUmVzdWx0ID0gUmVjdEV4dGVuc2lvbnMuaW50ZXJzZWN0aW9uV2l0aFZlY3RvcihwYXlsb2FkLm91dHB1dFJlY3QsIHBheWxvYWQub3V0cHV0UmVjdC5ncmF2aXR5Q2VudGVyLCBwYXlsb2FkLmlucHV0UmVjdC5ncmF2aXR5Q2VudGVyKTtcbiAgICBjb25zdCB0b1Jlc3VsdCA9IFJlY3RFeHRlbnNpb25zLmludGVyc2VjdGlvbldpdGhWZWN0b3IocGF5bG9hZC5pbnB1dFJlY3QsIHBheWxvYWQub3V0cHV0UmVjdC5ncmF2aXR5Q2VudGVyLCBwYXlsb2FkLmlucHV0UmVjdC5ncmF2aXR5Q2VudGVyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb2ludDE6IGZyb21SZXN1bHQgPyBmcm9tUmVzdWx0WyAxIF0gOiBwYXlsb2FkLm91dHB1dFJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgICAgIHBvaW50MjogdG9SZXN1bHQgPyB0b1Jlc3VsdFsgMCBdIDogcGF5bG9hZC5pbnB1dFJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpeGVkQmVoYXZpb3IocGF5bG9hZDogR2V0Q29ubmVjdGlvblZlY3RvclJlcXVlc3QpOiBJVmVjdG9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgcG9pbnQxOiBwYXlsb2FkLm91dHB1dFJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgICAgIHBvaW50MjogcGF5bG9hZC5pbnB1dFJlY3QuZ3Jhdml0eUNlbnRlcixcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpeGVkT3V0Ym91bmRCZWhhdmlvdXIocGF5bG9hZDogR2V0Q29ubmVjdGlvblZlY3RvclJlcXVlc3QpOiBJVmVjdG9yIHtcbiAgICBjb25zdCBwb2ludDEgPSBwb3NpdGlvbkZpeGVkT3V0Ym91bmRbIHBheWxvYWQub3V0cHV0U2lkZSBdKHBheWxvYWQub3V0cHV0UmVjdCk7XG4gICAgY29uc3QgcG9pbnQyID0gcG9zaXRpb25GaXhlZE91dGJvdW5kWyBwYXlsb2FkLmlucHV0U2lkZSBdKHBheWxvYWQuaW5wdXRSZWN0KTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb2ludDE6IHBvaW50MSxcbiAgICAgIHBvaW50MjogcG9pbnQyLFxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwb3NpdGlvbkZpeGVkT3V0Ym91bmQgPSB7XG4gIFsgRUNvbm5lY3RvclNpZGUuVE9QIF06IChyZWN0OiBJUmVjdCk6IElQb2ludCA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFBvaW50KCk7XG4gICAgcmVzdWx0LnkgPSByZWN0Lnk7XG4gICAgcmVzdWx0LnggPSByZWN0LnggKyByZWN0LndpZHRoIC8gMjtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBbIEVDb25uZWN0b3JTaWRlLkJPVFRPTSBdOiAocmVjdDogSVJlY3QpOiBJUG9pbnQgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQb2ludCgpO1xuICAgIHJlc3VsdC55ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQ7XG4gICAgcmVzdWx0LnggPSByZWN0LnggKyByZWN0LndpZHRoIC8gMjtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBbIEVDb25uZWN0b3JTaWRlLkxFRlQgXTogKHJlY3Q6IElSZWN0KTogSVBvaW50ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUG9pbnQoKTtcbiAgICByZXN1bHQueCA9IHJlY3QueDtcbiAgICByZXN1bHQueSA9IHJlY3QueSArIHJlY3QuaGVpZ2h0IC8gMjtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBbIEVDb25uZWN0b3JTaWRlLlJJR0hUIF06IChyZWN0OiBJUmVjdCk6IElQb2ludCA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFBvaW50KCk7XG4gICAgcmVzdWx0LnggPSByZWN0LnggKyByZWN0LndpZHRoO1xuICAgIHJlc3VsdC55ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG59O1xuXG5cblxuXG4iXX0=
@@ -7,4 +7,4 @@ export class GetConnectionVectorRequest {
7
7
  this.inputSide = inputSide;
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLnJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9nZXQtY29ubmVjdGlvbi12ZWN0b3IvZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLDBCQUEwQjtJQUVyQyxZQUNXLFVBQWlCLEVBQ2pCLFNBQWdCLEVBQ2hCLFFBQXNDLEVBQ3RDLFVBQTBCLEVBQzFCLFNBQXlCO1FBSnpCLGVBQVUsR0FBVixVQUFVLENBQU87UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBTztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUE4QjtRQUN0QyxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUdwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVjdCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBFQ29ubmVjdG9yU2lkZSB9IGZyb20gJy4uL2dldC1jb25uZWN0b3Itc2lkZS1pbi1ub2RlJztcbmltcG9ydCB7IEVDb25uZWN0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgR2V0Q29ubmVjdGlvblZlY3RvclJlcXVlc3Qge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHVibGljIG91dHB1dFJlY3Q6IElSZWN0LFxuICAgICAgcHVibGljIGlucHV0UmVjdDogSVJlY3QsXG4gICAgICBwdWJsaWMgYmVoYXZpb3I6IEVDb25uZWN0aW9uQmVoYXZpb3IgfCBzdHJpbmcsXG4gICAgICBwdWJsaWMgb3V0cHV0U2lkZTogRUNvbm5lY3RvclNpZGUsXG4gICAgICBwdWJsaWMgaW5wdXRTaWRlOiBFQ29ubmVjdG9yU2lkZSxcbiAgKSB7XG5cbiAgfVxufVxuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLnJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9nZXQtY29ubmVjdGlvbi12ZWN0b3IvZ2V0LWNvbm5lY3Rpb24tdmVjdG9yLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLDBCQUEwQjtJQUVyQyxZQUNXLFVBQWlCLEVBQ2pCLFNBQWdCLEVBQ2hCLFFBQXVDLEVBQ3ZDLFVBQTBCLEVBQzFCLFNBQXlCO1FBSnpCLGVBQVUsR0FBVixVQUFVLENBQU87UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBTztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUErQjtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtJQUdwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVjdCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBFQ29ubmVjdG9yU2lkZSB9IGZyb20gJy4uL2dldC1jb25uZWN0b3Itc2lkZS1pbi1ub2RlJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIEdldENvbm5lY3Rpb25WZWN0b3JSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBvdXRwdXRSZWN0OiBJUmVjdCxcbiAgICAgIHB1YmxpYyBpbnB1dFJlY3Q6IElSZWN0LFxuICAgICAgcHVibGljIGJlaGF2aW9yOiBFRkNvbm5lY3Rpb25CZWhhdmlvciB8IHN0cmluZyxcbiAgICAgIHB1YmxpYyBvdXRwdXRTaWRlOiBFQ29ubmVjdG9yU2lkZSxcbiAgICAgIHB1YmxpYyBpbnB1dFNpZGU6IEVDb25uZWN0b3JTaWRlLFxuICApIHtcblxuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const F_BACKGROUND_PATTERN = new InjectionToken('F_BACKGROUND_PATTERN');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWJhY2tncm91bmQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1iYWNrZ3JvdWQvZG9tYWluL2ktZi1iYWNrZ3JvdW5kLXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBc0Isc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRl9CQUNLR1JPVU5EX1BBVFRFUk4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SUZCYWNrZ3JvdW5kUGF0dGVybj4oJ0ZfQkFDS0dST1VORF9QQVRURVJOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZCYWNrZ3JvdW5kUGF0dGVybiB7XG5cbiAgc2V0VHJhbnNmb3JtKHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsKTogdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './i-f-background-pattern';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pLWYtYmFja2dyb3VuZC1wYXR0ZXJuJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './i-f-background-pattern';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1iYWNrZ3JvdWQvZG9tYWluL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaS1mLWJhY2tncm91bmQtcGF0dGVybic7XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Directive, InjectionToken } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const F_BACKGROUND = new InjectionToken('F_BACKGROUND');
4
+ export class FBackgroundBase {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FBackgroundBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: FBackgroundBase, ngImport: i0 }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FBackgroundBase, decorators: [{
9
+ type: Directive
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iYWNrZ3JvdW5kLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2YtYmFja2dyb3VuZC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUcxRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWtCLGNBQWMsQ0FBQyxDQUFDO0FBR2hGLE1BQU0sT0FBZ0IsZUFBZTs4R0FBZixlQUFlO2tHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQsIElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGX0JBQ0tHUk9VTkQgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkJhY2tncm91bmRCYXNlPignRl9CQUNLR1JPVU5EJyk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZCYWNrZ3JvdW5kQmFzZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgaXNCYWNrZ3JvdW5kRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBzZXRUcmFuc2Zvcm0odHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwpOiB2b2lkO1xufVxuIl19
@@ -0,0 +1,59 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild } from "@angular/core";
2
+ import { F_BACKGROUND, FBackgroundBase } from './f-background-base';
3
+ import { DomElementExtensions, TransformModelExtensions } from '@foblex/core';
4
+ import { F_BACKGROUND_PATTERN } from './domain';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../f-components-store";
7
+ let uniqueId = 0;
8
+ export class FBackgroundComponent extends FBackgroundBase {
9
+ get hostElement() {
10
+ return this.elementReference.nativeElement;
11
+ }
12
+ constructor(elementReference, fComponentsStore) {
13
+ super();
14
+ this.elementReference = elementReference;
15
+ this.fComponentsStore = fComponentsStore;
16
+ }
17
+ ngOnInit() {
18
+ this.fComponentsStore.fBackground = this;
19
+ }
20
+ ngAfterContentInit() {
21
+ const children = this.fBackgroundPattern?.hostElement.getElementsByTagName('pattern') || [];
22
+ const pattern = children.length ? children[0] : undefined;
23
+ if (pattern) {
24
+ const defs = DomElementExtensions.createSvgElement('defs');
25
+ pattern.id = 'f-background-marker-' + uniqueId++;
26
+ this.fBackgroundPattern?.hostElement.remove();
27
+ defs.appendChild(pattern);
28
+ this.hostElement?.firstChild?.appendChild(defs);
29
+ const rect = DomElementExtensions.createSvgElement('rect');
30
+ rect.setAttribute('fill', 'url(#' + pattern.id + ')');
31
+ rect.setAttribute('width', '100%');
32
+ rect.setAttribute('height', '100%');
33
+ this.hostElement.firstChild?.appendChild(rect);
34
+ const transform = this.fComponentsStore.fCanvas?.transform || TransformModelExtensions.default();
35
+ this.fBackgroundPattern?.setTransform(transform);
36
+ }
37
+ }
38
+ isBackgroundElement(element) {
39
+ return this.hostElement.contains(element);
40
+ }
41
+ setTransform(transform) {
42
+ this.fBackgroundPattern?.setTransform(transform);
43
+ }
44
+ ngOnDestroy() {
45
+ this.fComponentsStore.fBackground = undefined;
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FBackgroundComponent, deps: [{ token: i0.ElementRef }, { token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FBackgroundComponent, selector: "f-background", host: { classAttribute: "f-component f-background" }, providers: [{ provide: F_BACKGROUND, useExisting: FBackgroundComponent }], queries: [{ propertyName: "fBackgroundPattern", first: true, predicate: F_BACKGROUND_PATTERN, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<svg>\n <ng-content></ng-content>\n\n<!-- <rect width=\"100%\" height=\"100%\" fill=\"url(#background-pattern)\"></rect>-->\n</svg>\n", styles: [":host{position:absolute;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host svg{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FBackgroundComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: "f-background", host: {
53
+ 'class': 'f-component f-background'
54
+ }, providers: [{ provide: F_BACKGROUND, useExisting: FBackgroundComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg>\n <ng-content></ng-content>\n\n<!-- <rect width=\"100%\" height=\"100%\" fill=\"url(#background-pattern)\"></rect>-->\n</svg>\n", styles: [":host{position:absolute;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host svg{width:100%;height:100%}\n"] }]
55
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FComponentsStore }], propDecorators: { fBackgroundPattern: [{
56
+ type: ContentChild,
57
+ args: [F_BACKGROUND_PATTERN, { static: true }]
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iYWNrZ3JvdW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1iYWNrZ3JvdWQvZi1iYWNrZ3JvdW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1iYWNrZ3JvdWQvZi1iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFFLFlBQVksRUFHeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBR2hELElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQVl6QixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQUV2RCxJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBS0QsWUFDWSxnQkFBeUMsRUFDekMsZ0JBQWtDO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBSEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUN6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRzlDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUUsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM1RCxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sSUFBSSxHQUFHLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELE9BQU8sQ0FBQyxFQUFFLEdBQUcsc0JBQXNCLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFZSxtQkFBbUIsQ0FBQyxPQUFpQztRQUNuRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBMEI7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUNoRCxDQUFDOzhHQWpEVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw2RkFIcEIsQ0FBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLENBQUUsMEVBUzdELG9CQUFvQixxRkM5QnBDLDZJQUtBOzsyRkRtQmEsb0JBQW9CO2tCQVZoQyxTQUFTOytCQUNFLGNBQWMsUUFHbEI7d0JBQ0osT0FBTyxFQUFFLDBCQUEwQjtxQkFDcEMsYUFDVSxDQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLHNCQUFzQixFQUFFLENBQUUsbUJBQzFELHVCQUF1QixDQUFDLE1BQU07OEdBU3hDLGtCQUFrQjtzQkFEeEIsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGX0JBQ0tHUk9VTkQsIEZCYWNrZ3JvdW5kQmFzZSB9IGZyb20gJy4vZi1iYWNrZ3JvdW5kLWJhc2UnO1xuaW1wb3J0IHsgRG9tRWxlbWVudEV4dGVuc2lvbnMsIElUcmFuc2Zvcm1Nb2RlbCwgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZfQkFDS0dST1VORF9QQVRURVJOIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImYtYmFja2dyb3VuZFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2YtYmFja2dyb3VuZC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFsgXCIuL2YtYmFja2dyb3VuZC5jb21wb25lbnQuc2Nzc1wiIF0sXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1jb21wb25lbnQgZi1iYWNrZ3JvdW5kJ1xuICB9LFxuICBwcm92aWRlcnM6IFsgeyBwcm92aWRlOiBGX0JBQ0tHUk9VTkQsIHVzZUV4aXN0aW5nOiBGQmFja2dyb3VuZENvbXBvbmVudCB9IF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGQmFja2dyb3VuZENvbXBvbmVudCBleHRlbmRzIEZCYWNrZ3JvdW5kQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEZfQkFDS0dST1VORF9QQVRURVJOLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgZkJhY2tncm91bmRQYXR0ZXJuOiBGQmFja2dyb3VuZEJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZCYWNrZ3JvdW5kID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmZCYWNrZ3JvdW5kUGF0dGVybj8uaG9zdEVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3BhdHRlcm4nKSB8fCBbXTtcbiAgICBjb25zdCBwYXR0ZXJuID0gY2hpbGRyZW4ubGVuZ3RoID8gY2hpbGRyZW5bIDAgXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAocGF0dGVybikge1xuICAgICAgY29uc3QgZGVmcyA9IERvbUVsZW1lbnRFeHRlbnNpb25zLmNyZWF0ZVN2Z0VsZW1lbnQoJ2RlZnMnKTtcbiAgICAgIHBhdHRlcm4uaWQgPSAnZi1iYWNrZ3JvdW5kLW1hcmtlci0nICsgdW5pcXVlSWQrKztcbiAgICAgIHRoaXMuZkJhY2tncm91bmRQYXR0ZXJuPy5ob3N0RWxlbWVudC5yZW1vdmUoKTtcbiAgICAgIGRlZnMuYXBwZW5kQ2hpbGQocGF0dGVybik7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50Py5maXJzdENoaWxkPy5hcHBlbmRDaGlsZChkZWZzKTtcbiAgICAgIGNvbnN0IHJlY3QgPSBEb21FbGVtZW50RXh0ZW5zaW9ucy5jcmVhdGVTdmdFbGVtZW50KCdyZWN0Jyk7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZSgnZmlsbCcsICd1cmwoIycgKyBwYXR0ZXJuLmlkICsgJyknKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCd3aWR0aCcsICcxMDAlJyk7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuZmlyc3RDaGlsZD8uYXBwZW5kQ2hpbGQocmVjdCk7XG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcz8udHJhbnNmb3JtIHx8IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy5kZWZhdWx0KCk7XG4gICAgICB0aGlzLmZCYWNrZ3JvdW5kUGF0dGVybj8uc2V0VHJhbnNmb3JtKHRyYW5zZm9ybSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGlzQmFja2dyb3VuZEVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY29udGFpbnMoZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VHJhbnNmb3JtKHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5mQmFja2dyb3VuZFBhdHRlcm4/LnNldFRyYW5zZm9ybSh0cmFuc2Zvcm0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQmFja2dyb3VuZCA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPHN2Zz5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjwhLS0gICAgPHJlY3Qgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGZpbGw9XCJ1cmwoI2JhY2tncm91bmQtcGF0dGVybilcIj48L3JlY3Q+LS0+XG48L3N2Zz5cbiJdfQ==
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
87
87
  }], horizontalLineColor: [{
88
88
  type: Input
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jZWxsLXBhdHRlcm4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9jb21wb25lbnRzL2YtZmxvdy9mLWJhY2tncm91ZC9mLWNlbGwtcGF0dGVybi9mLWNlbGwtcGF0dGVybi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2NvbXBvbmVudHMvZi1mbG93L2YtYmFja2dyb3VkL2YtY2VsbC1wYXR0ZXJuL2YtY2VsbC1wYXR0ZXJuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNHLEtBQUssRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFtQix3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQXVCLE1BQU0sV0FBVyxDQUFDOztBQUV0RSxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFjekIsTUFBTSxPQUFPLHFCQUFxQjtJQVdoQyxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFnQkQsWUFDWSxnQkFBeUMsRUFDekMsaUJBQW9DO1FBRHBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTVCekMsT0FBRSxHQUFXLGFBQWMsUUFBUSxFQUFHLEVBQUUsQ0FBQztRQUd6QyxzQkFBaUIsR0FBVyxpQkFBaUIsQ0FBQztRQUc5Qyx3QkFBbUIsR0FBVyxpQkFBaUIsQ0FBQztRQU0vQyxjQUFTLEdBQW9CLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWpFLE1BQUMsR0FBVyxDQUFDLENBQUM7UUFFZCxNQUFD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QUR2QixLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLCBJbnB1dCxcbiAgT25Jbml0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEb21FbGVtZW50RXh0ZW5zaW9ucywgSVRyYW5zZm9ybU1vZGVsLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9CQUNLR1JPVU5EX1BBVFRFUk4sIElGQmFja2dyb3VuZFBhdHRlcm4gfSBmcm9tICcuLi9kb21haW4nO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWNlbGwtcGF0dGVyblwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL2YtY2VsbC1wYXR0ZXJuLmNvbXBvbmVudC5odG1sXCIsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ2lkJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfQkFDS0dST1VORF9QQVRURVJOLCB1c2VFeGlzdGluZzogRkNlbGxQYXR0ZXJuQ29tcG9uZW50IH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRkNlbGxQYXR0ZXJuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBJRkJhY2tncm91bmRQYXR0ZXJuIHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ6IHN0cmluZyA9IGBmLXBhdHRlcm4tJHsgdW5pcXVlSWQrKyB9YDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdmVydGljYWxMaW5lQ29sb3I6IHN0cmluZyA9ICdyZ2JhKDAsMCwwLDAuMSknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBob3Jpem9udGFsTGluZUNvbG9yOiBzdHJpbmcgPSAncmdiYSgwLDAsMCwwLjEpJztcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsID0gVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKTtcblxuICBwdWJsaWMgeDogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgeTogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIGRlZmF1bHRDZWxsU2l6ZTogbnVtYmVyID0gMjA7XG5cbiAgcHVibGljIGNlbGxTaXplID0gdGhpcy5kZWZhdWx0Q2VsbFNpemU7XG5cbiAgcHJpdmF0ZSBwYXR0ZXJuITogU1ZHUGF0dGVybkVsZW1lbnQ7XG4gIHByaXZhdGUgaG9yaXpvbnRhbExpbmUhOiBTVkdMaW5lRWxlbWVudDtcbiAgcHJpdmF0ZSB2ZXJ0aWNhbExpbmUhOiBTVkdMaW5lRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZVBhdHRlcm5Eb20oKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYXR0ZXJuRG9tKCk6IHZvaWQge1xuICAgIHRoaXMucGF0dGVybiA9IERvbUVsZW1lbnRFeHRlbnNpb25zLmNyZWF0ZVN2Z0VsZW1lbnQoJ3BhdHRlcm4nKTtcbiAgICB0aGlzLnBhdHRlcm4uc2V0QXR0cmlidXRlKCdwYXR0ZXJuVW5pdHMnLCAndXNlclNwYWNlT25Vc2UnKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucGF0dGVybik7XG4gICAgdGhpcy5ob3Jpem9udGFsTGluZSA9IERvbUVsZW1lbnRFeHRlbnNpb25zLmNyZWF0ZVN2Z0VsZW1lbnQoJ2xpbmUnKTtcbiAgICB0aGlzLmhvcml6b250YWxMaW5lLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgdGhpcy5ob3Jpem9udGFsTGluZUNvbG9yKTtcbiAgICB0aGlzLnBhdHRlcm4uYXBwZW5kQ2hpbGQodGhpcy5ob3Jpem9udGFsTGluZSk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUgPSBEb21FbGVtZW50RXh0ZW5zaW9ucy5jcmVhdGVTdmdFbGVtZW50KCdsaW5lJyk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUuc2V0QXR0cmlidXRlKCdzdHJva2UnLCB0aGlzLnZlcnRpY2FsTGluZUNvbG9yKTtcbiAgICB0aGlzLnBhdHRlcm4uYXBwZW5kQ2hpbGQodGhpcy52ZXJ0aWNhbExpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVQYXR0ZXJuKCk6IHZvaWQge1xuICAgIHRoaXMueCA9IHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLnggKyB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbi54O1xuICAgIHRoaXMueSA9IHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLnkgKyB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbi55O1xuICAgIHRoaXMuY2VsbFNpemUgPSB0aGlzLmRlZmF1bHRDZWxsU2l6ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGVQYXR0ZXJuKCk7XG4gICAgdGhpcy5yZWRyYXdQYXR0ZXJuKCk7XG4gICAgdGhpcy5yZWRyYXdIb3Jpem9udGFsTGluZSgpO1xuICAgIHRoaXMucmVkcmF3VmVydGljYWxMaW5lKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd1BhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5wYXR0ZXJuLnNldEF0dHJpYnV0ZSgneCcsIGAkeyB0aGlzLnggfWApO1xuICAgIHRoaXMucGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3knLCBgJHsgdGhpcy55IH1gKTtcbiAgICB0aGlzLnBhdHRlcm4uc2V0QXR0cmlidXRlKCd3aWR0aCcsIGAkeyB0aGlzLmNlbGxTaXplIH1gKTtcbiAgICB0aGlzLnBhdHRlcm4uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHsgdGhpcy5jZWxsU2l6ZSB9YCk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd0hvcml6b250YWxMaW5lKCk6IHZvaWQge1xuICAgIHRoaXMuaG9yaXpvbnRhbExpbmUuc2V0QXR0cmlidXRlKCd4MScsIGAwYCk7XG4gICAgdGhpcy5ob3Jpem9udGFsTGluZS5zZXRBdHRyaWJ1dGUoJ3gyJywgYCR7IHRoaXMuY2VsbFNpemUgfWApO1xuICAgIHRoaXMuaG9yaXpvbnRhbExpbmUuc2V0QXR0cmlidXRlKCd5MScsIGAkeyB0aGlzLmNlbGxTaXplIH1gKTtcbiAgICB0aGlzLmhvcml6b250YWxMaW5lLnNldEF0dHJpYnV0ZSgneTInLCBgJHsgdGhpcy5jZWxsU2l6ZSB9YCk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd1ZlcnRpY2FsTGluZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZlcnRpY2FsTGluZS5zZXRBdHRyaWJ1dGUoJ3gxJywgYCR7IHRoaXMuY2VsbFNpemUgfWApO1xuICAgIHRoaXMudmVydGljYWxMaW5lLnNldEF0dHJpYnV0ZSgneDInLCBgJHsgdGhpcy5jZWxsU2l6ZSB9YCk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUuc2V0QXR0cmlidXRlKCd5MScsIGAwYCk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUuc2V0QXR0cmlidXRlKCd5MicsIGAkeyB0aGlzLmNlbGxTaXplIH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUcmFuc2Zvcm0odHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jZWxsLXBhdHRlcm4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWJhY2tncm91ZC9mLWNlbGwtcGF0dGVybi9mLWNlbGwtcGF0dGVybi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2YtY2VsbC1wYXR0ZXJuL2YtY2VsbC1wYXR0ZXJuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNHLEtBQUssRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFtQix3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQXVCLE1BQU0sV0FBVyxDQUFDOztBQUV0RSxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFjekIsTUFBTSxPQUFPLHFCQUFxQjtJQVdoQyxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFnQkQsWUFDWSxnQkFBeUMsRUFDekMsaUJBQW9DO1FBRHBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTVCekMsT0FBRSxHQUFXLGFBQWMsUUFBUSxFQUFHLEVBQUUsQ0FBQztRQUd6QyxzQkFBaUIsR0FBVyxpQkFBaUIsQ0FBQztRQUc5Qyx3QkFBbUIsR0FBVyxpQkFBaUIsQ0FBQztRQU0vQyxjQUFTLEdBQW9CLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWpFLE1BQUMsR0FBVyxDQUFDLENBQUM7UUFFZCxNQUFDLEdBQVcsQ0FBQyxDQUFDO1FBRWIsb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFFOUIs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ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLCBJbnB1dCxcbiAgT25Jbml0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEb21FbGVtZW50RXh0ZW5zaW9ucywgSVRyYW5zZm9ybU1vZGVsLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRl9CQUNLR1JPVU5EX1BBVFRFUk4sIElGQmFja2dyb3VuZFBhdHRlcm4gfSBmcm9tICcuLi9kb21haW4nO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJmLWNlbGwtcGF0dGVyblwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL2YtY2VsbC1wYXR0ZXJuLmNvbXBvbmVudC5odG1sXCIsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ2lkJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfQkFDS0dST1VORF9QQVRURVJOLCB1c2VFeGlzdGluZzogRkNlbGxQYXR0ZXJuQ29tcG9uZW50IH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRkNlbGxQYXR0ZXJuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBJRkJhY2tncm91bmRQYXR0ZXJuIHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ6IHN0cmluZyA9IGBmLXBhdHRlcm4tJHsgdW5pcXVlSWQrKyB9YDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdmVydGljYWxMaW5lQ29sb3I6IHN0cmluZyA9ICdyZ2JhKDAsMCwwLDAuMSknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBob3Jpem9udGFsTGluZUNvbG9yOiBzdHJpbmcgPSAncmdiYSgwLDAsMCwwLjEpJztcblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsID0gVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKTtcblxuICBwdWJsaWMgeDogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgeTogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIGRlZmF1bHRDZWxsU2l6ZTogbnVtYmVyID0gMjA7XG5cbiAgcHVibGljIGNlbGxTaXplID0gdGhpcy5kZWZhdWx0Q2VsbFNpemU7XG5cbiAgcHJpdmF0ZSBwYXR0ZXJuITogU1ZHUGF0dGVybkVsZW1lbnQ7XG4gIHByaXZhdGUgaG9yaXpvbnRhbExpbmUhOiBTVkdMaW5lRWxlbWVudDtcbiAgcHJpdmF0ZSB2ZXJ0aWNhbExpbmUhOiBTVkdMaW5lRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZVBhdHRlcm5Eb20oKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYXR0ZXJuRG9tKCk6IHZvaWQge1xuICAgIHRoaXMucGF0dGVybiA9IERvbUVsZW1lbnRFeHRlbnNpb25zLmNyZWF0ZVN2Z0VsZW1lbnQoJ3BhdHRlcm4nKTtcbiAgICB0aGlzLnBhdHRlcm4uc2V0QXR0cmlidXRlKCdwYXR0ZXJuVW5pdHMnLCAndXNlclNwYWNlT25Vc2UnKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucGF0dGVybik7XG4gICAgdGhpcy5ob3Jpem9udGFsTGluZSA9IERvbUVsZW1lbnRFeHRlbnNpb25zLmNyZWF0ZVN2Z0VsZW1lbnQoJ2xpbmUnKTtcbiAgICB0aGlzLmhvcml6b250YWxMaW5lLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgdGhpcy5ob3Jpem9udGFsTGluZUNvbG9yKTtcbiAgICB0aGlzLnBhdHRlcm4uYXBwZW5kQ2hpbGQodGhpcy5ob3Jpem9udGFsTGluZSk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUgPSBEb21FbGVtZW50RXh0ZW5zaW9ucy5jcmVhdGVTdmdFbGVtZW50KCdsaW5lJyk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUuc2V0QXR0cmlidXRlKCdzdHJva2UnLCB0aGlzLnZlcnRpY2FsTGluZUNvbG9yKTtcbiAgICB0aGlzLnBhdHRlcm4uYXBwZW5kQ2hpbGQodGhpcy52ZXJ0aWNhbExpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVQYXR0ZXJuKCk6IHZvaWQge1xuICAgIHRoaXMueCA9IHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLnggKyB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbi54O1xuICAgIHRoaXMueSA9IHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLnkgKyB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbi55O1xuICAgIHRoaXMuY2VsbFNpemUgPSB0aGlzLmRlZmF1bHRDZWxsU2l6ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGVQYXR0ZXJuKCk7XG4gICAgdGhpcy5yZWRyYXdQYXR0ZXJuKCk7XG4gICAgdGhpcy5yZWRyYXdIb3Jpem9udGFsTGluZSgpO1xuICAgIHRoaXMucmVkcmF3VmVydGljYWxMaW5lKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd1BhdHRlcm4oKTogdm9pZCB7XG4gICAgdGhpcy5wYXR0ZXJuLnNldEF0dHJpYnV0ZSgneCcsIGAkeyB0aGlzLnggfWApO1xuICAgIHRoaXMucGF0dGVybi5zZXRBdHRyaWJ1dGUoJ3knLCBgJHsgdGhpcy55IH1gKTtcbiAgICB0aGlzLnBhdHRlcm4uc2V0QXR0cmlidXRlKCd3aWR0aCcsIGAkeyB0aGlzLmNlbGxTaXplIH1gKTtcbiAgICB0aGlzLnBhdHRlcm4uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHsgdGhpcy5jZWxsU2l6ZSB9YCk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd0hvcml6b250YWxMaW5lKCk6IHZvaWQge1xuICAgIHRoaXMuaG9yaXpvbnRhbExpbmUuc2V0QXR0cmlidXRlKCd4MScsIGAwYCk7XG4gICAgdGhpcy5ob3Jpem9udGFsTGluZS5zZXRBdHRyaWJ1dGUoJ3gyJywgYCR7IHRoaXMuY2VsbFNpemUgfWApO1xuICAgIHRoaXMuaG9yaXpvbnRhbExpbmUuc2V0QXR0cmlidXRlKCd5MScsIGAkeyB0aGlzLmNlbGxTaXplIH1gKTtcbiAgICB0aGlzLmhvcml6b250YWxMaW5lLnNldEF0dHJpYnV0ZSgneTInLCBgJHsgdGhpcy5jZWxsU2l6ZSB9YCk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd1ZlcnRpY2FsTGluZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZlcnRpY2FsTGluZS5zZXRBdHRyaWJ1dGUoJ3gxJywgYCR7IHRoaXMuY2VsbFNpemUgfWApO1xuICAgIHRoaXMudmVydGljYWxMaW5lLnNldEF0dHJpYnV0ZSgneDInLCBgJHsgdGhpcy5jZWxsU2l6ZSB9YCk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUuc2V0QXR0cmlidXRlKCd5MScsIGAwYCk7XG4gICAgdGhpcy52ZXJ0aWNhbExpbmUuc2V0QXR0cmlidXRlKCd5MicsIGAkeyB0aGlzLmNlbGxTaXplIH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUcmFuc2Zvcm0odHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './f-cell-pattern.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2YtY2VsbC1wYXR0ZXJuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2YtY2VsbC1wYXR0ZXJuLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './f-cell-pattern.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1iYWNrZ3JvdWQvZi1jZWxsLXBhdHRlcm4vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mLWNlbGwtcGF0dGVybi5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ export * from './domain';
2
+ export * from './f-cell-pattern';
3
+ export * from './f-background.component';
4
+ export * from './f-background-base';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtYmFja2dyb3VkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kb21haW4nO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY2VsbC1wYXR0ZXJuJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWJhY2tncm91bmQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWJhY2tncm91bmQtYmFzZSc7XG5cblxuXG5cblxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './domain/public-api';
2
+ export * from './f-cell-pattern/public-api';
3
+ export * from './f-background.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1iYWNrZ3JvdWQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG9tYWluL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY2VsbC1wYXR0ZXJuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtYmFja2dyb3VuZC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,7 @@
1
+ export class FCanvasChangeEvent {
2
+ constructor(position, scale) {
3
+ this.position = position;
4
+ this.scale = scale;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtY2hhbmdlLmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9kb21haW4vZi1jYW52YXMtY2hhbmdlLmV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsWUFDb0IsUUFBZ0IsRUFDaEIsS0FBYTtRQURiLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUVqQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgRkNhbnZhc0NoYW5nZUV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uOiBJUG9pbnQsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzY2FsZTogbnVtYmVyLFxuICAgICkge1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './f-canvas-change.event';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mLWNhbnZhcy1jaGFuZ2UuZXZlbnQnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './f-canvas-change.event';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZG9tYWluL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZi1jYW52YXMtY2hhbmdlLmV2ZW50JztcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { PointExtensions, TransformModelExtensions } from '@foblex/core';
2
+ import { Directive, InjectionToken } from '@angular/core';
3
+ import { mixinChangePosition, mixinChangeZoom, mixinFitToParent, mixinOneToOneCentering } from '../common-behaviours';
4
+ import { FCanvasChangeEvent } from './domain/f-canvas-change.event';
5
+ import * as i0 from "@angular/core";
6
+ export const F_CANVAS = new InjectionToken('F_CANVAS');
7
+ const MIXIN_BASE = mixinChangePosition(mixinFitToParent(mixinOneToOneCentering(mixinChangeZoom(class {
8
+ constructor(transform) {
9
+ this.transform = transform;
10
+ }
11
+ }))));
12
+ export class FCanvasBase extends MIXIN_BASE {
13
+ constructor() {
14
+ super(TransformModelExtensions.default());
15
+ }
16
+ completeDrag() {
17
+ const position = PointExtensions.sum(this.transform.position, this.transform.scaledPosition);
18
+ this.fCanvasChange.emit(new FCanvasChangeEvent(position, this.transform.scale));
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FCanvasBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: FCanvasBase, usesInheritance: true, ngImport: i0 }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FCanvasBase, decorators: [{
24
+ type: Directive
25
+ }], ctorParameters: () => [] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jYW52YXMvZi1jYW52YXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRVksZUFBZSxFQUNoQyx3QkFBd0IsRUFDekIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBNEIsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFHcEUsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFjLFVBQVUsQ0FBQyxDQUFDO0FBRXBFLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUNsQyxnQkFBZ0IsQ0FDWixzQkFBc0IsQ0FDbEIsZUFBZSxDQUNYO0lBQ0UsWUFDVyxTQUEwQjtRQUExQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtJQUVyQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR3RCLE1BQU0sT0FBZ0IsV0FDbEIsU0FBUSxVQUFVO0lBYXBCO1FBQ0UsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQU1NLFlBQVk7UUFDakIsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQzs4R0EzQm1CLFdBQVc7a0dBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEaEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElIYXNIb3N0RWxlbWVudCxcbiAgSVRyYW5zZm9ybU1vZGVsLCBQb2ludEV4dGVuc2lvbnMsXG4gIFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9uc1xufSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJQ2FuQ2hhbmdlUG9zaXRpb24sIElDYW5DaGFuZ2Vab29tLCBJQ2FuRml0VG9QYXJlbnQsIElDYW5PbmVUb09uZUNlbnRlcmluZyxcbiAgbWl4aW5DaGFuZ2VQb3NpdGlvbixcbiAgbWl4aW5DaGFuZ2Vab29tLFxuICBtaXhpbkZpdFRvUGFyZW50LFxuICBtaXhpbk9uZVRvT25lQ2VudGVyaW5nXG59IGZyb20gJy4uL2NvbW1vbi1iZWhhdmlvdXJzJztcbmltcG9ydCB7IEZDYW52YXNDaGFuZ2VFdmVudCB9IGZyb20gJy4vZG9tYWluL2YtY2FudmFzLWNoYW5nZS5ldmVudCc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi9mLW5vZGUnO1xuXG5leHBvcnQgY29uc3QgRl9DQU5WQVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkNhbnZhc0Jhc2U+KCdGX0NBTlZBUycpO1xuXG5jb25zdCBNSVhJTl9CQVNFID0gbWl4aW5DaGFuZ2VQb3NpdGlvbihcbiAgICBtaXhpbkZpdFRvUGFyZW50KFxuICAgICAgICBtaXhpbk9uZVRvT25lQ2VudGVyaW5nKFxuICAgICAgICAgICAgbWl4aW5DaGFuZ2Vab29tKFxuICAgICAgICAgICAgICAgIGNsYXNzIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB0cmFuc2Zvcm06IElUcmFuc2Zvcm1Nb2RlbFxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkpKSk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZDYW52YXNCYXNlXG4gICAgZXh0ZW5kcyBNSVhJTl9CQVNFXG4gICAgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQsIElDYW5DaGFuZ2VQb3NpdGlvbiwgSUNhbkZpdFRvUGFyZW50LCBJQ2FuT25lVG9PbmVDZW50ZXJpbmcsIElDYW5DaGFuZ2Vab29tIHtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNhbnZhc0NoYW5nZTogRXZlbnRFbWl0dGVyPEZDYW52YXNDaGFuZ2VFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZOb2RlczogRk5vZGVCYXNlW107XG5cbiAgcHVibGljIGFic3RyYWN0IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk5vZGVzQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLmRlZmF1bHQoKSk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgcmVkcmF3KCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZDtcblxuICBwdWJsaWMgY29tcGxldGVEcmFnKCk6IHZvaWQge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gUG9pbnRFeHRlbnNpb25zLnN1bSh0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiwgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pO1xuICAgIHRoaXMuZkNhbnZhc0NoYW5nZS5lbWl0KFxuICAgICAgICBuZXcgRkNhbnZhc0NoYW5nZUV2ZW50KHBvc2l0aW9uLCB0aGlzLnRyYW5zZm9ybS5zY2FsZSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -2,8 +2,8 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewCh
2
2
  import { FCanvasBase, F_CANVAS } from './f-canvas-base';
3
3
  import { Point, PointExtensions, RectExtensions, TransformModelExtensions } from '@foblex/core';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../../domain";
6
- import * as i2 from "../../../f-components-store";
5
+ import * as i1 from "../domain";
6
+ import * as i2 from "../f-components-store";
7
7
  export class FCanvasComponent extends FCanvasBase {
8
8
  set position(value) {
9
9
  if (!value) {
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
92
92
  type: ViewChild,
93
93
  args: ['fConnectionsContainer', { static: true }]
94
94
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9jb21wb25lbnRzL2YtZmxvdy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2NvbXBvbmVudHMvZi1mbG93L2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsR0FDdEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFVLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBaUJ4RyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUsvQyxJQUNXLFFBQVEsQ0FBQyxLQUF5QjtRQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBQ0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxNQUFNLEVBQUUs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RSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRkNhbnZhc0Jhc2UsIEZfQ0FOVkFTXG59IGZyb20gJy4vZi1jYW52YXMtYmFzZSc7XG5pbXBvcnQgeyBJUG9pbnQsIFBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFJlY3RFeHRlbnNpb25zLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBHZXRBbGxOb2Rlc1JlY3RIYW5kbGVyLCBTZWxlY3RBbGxIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtY2FudmFzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY2FudmFzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2YtY2FudmFzLmNvbXBvbmVudC5zY3NzJyBdLFxuICBleHBvcnRBczogJ2ZDb21wb25lbnQnLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2YtY29tcG9uZW50IGYtY2FudmFzJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogRl9DQU5WQVMsIHVzZUV4aXN0aW5nOiBGQ2FudmFzQ29tcG9uZW50IH0gXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBGQ2FudmFzQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcG9zaXRpb24odmFsdWU6IElQb2ludCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuc3VtKHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLCB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbik7XG4gICAgaWYgKCFQb2ludEV4dGVuc2lvbnMuaXNFcXVhbChwb3NpdGlvbiwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiA9IHZhbHVlO1xuICAgICAgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNjYWxlKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlID0gdmFsdWU7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZk5vZGVzKCk6IEZOb2RlQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2RlcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2ZOb2Rlc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmTm9kZXNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdmQ29ubmVjdGlvbnNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGdldEFsbE5vZGVzUmVjdEhhbmRsZXI6IEdldEFsbE5vZGVzUmVjdEhhbmRsZXIsXG4gICAgICBwcml2YXRlIHNlbGVjdEFsbEhhbmRsZXI6IFNlbGVjdEFsbEhhbmRsZXIsXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkJhY2tncm91bmQ/LnNldFRyYW5zZm9ybSh0aGlzLnRyYW5zZm9ybSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXdXaXRoQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQmFja2dyb3VuZD8uc2V0VHJhbnNmb3JtKHRoaXMudHJhbnNmb3JtKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZS1pbi1vdXQ7IHRyYW5zZm9ybTogJHsgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKSB9YCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZHJhdygpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICBwdWJsaWMgZml0VG9TY3JlZW4odG9DZW50ZXI6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGZOb2Rlc1JlY3QgPSB0aGlzLmdldEFsbE5vZGVzUmVjdEhhbmRsZXIuaGFuZGxlKCk7XG5cbiAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuYWRkUG9pbnRUb1NpemUoXG4gICAgICAgIGZOb2Rlc1JlY3QsXG4gICAgICAgIFBvaW50LmZyb21Qb2ludCh0b0NlbnRlcikubXVsdCgyKVxuICAgICk7XG4gICAgdGhpcy5maXRUb1BhcmVudChcbiAgICAgICAgcmVjdCxcbiAgICAgICAgUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93IS5ob3N0RWxlbWVudCksXG4gICAgICAgIHRoaXMuZk5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQoeC5wb3NpdGlvbikuc3ViKHRvQ2VudGVyKVxuICAgICAgICB9KVxuICAgICk7XG4gICAgYW5pbWF0ZWQgPyB0aGlzLnJlZHJhd1dpdGhBbmltYXRpb24oKSA6IHRoaXMucmVkcmF3KCk7XG4gICAgdGhpcy5jb21wbGV0ZURyYWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbmVUb09uZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmTm9kZXNSZWN0ID0gdGhpcy5nZXRBbGxOb2Rlc1JlY3RIYW5kbGVyLmhhbmRsZSgpO1xuICAgIHRoaXMub25lVG9PbmVDZW50ZXJpbmcoXG4gICAgICAgIGZOb2Rlc1JlY3QsXG4gICAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQpLFxuICAgICAgICB0aGlzLmZOb2Rlcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHgucG9zaXRpb24pLnN1YihuZXcgUG9pbnQoMCwgMCkpXG4gICAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlZHJhd1dpdGhBbmltYXRpb24oKTtcbiAgICB0aGlzLmNvbXBsZXRlRHJhZygpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEFsbEhhbmRsZXIuaGFuZGxlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gICAgPGRpdiAjZkNvbm5lY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY29ubmVjdGlvbi1mb3ItY3JlYXRlXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgI2ZOb2Rlc0NvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZOb2RlXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsR0FDdEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFBRSxRQUFRLEVBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFVLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBaUJ4RyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUsvQyxJQUNXLFFBQVEsQ0FBQyxLQUF5QjtRQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBQ0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVELElBQ1csS0FBSyxDQUFDLEtBQXlCO1FB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bXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRkNhbnZhc0Jhc2UsIEZfQ0FOVkFTXG59IGZyb20gJy4vZi1jYW52YXMtYmFzZSc7XG5pbXBvcnQgeyBJUG9pbnQsIFBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFJlY3RFeHRlbnNpb25zLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBHZXRBbGxOb2Rlc1JlY3RIYW5kbGVyLCBTZWxlY3RBbGxIYW5kbGVyIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtY2FudmFzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY2FudmFzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2YtY2FudmFzLmNvbXBvbmVudC5zY3NzJyBdLFxuICBleHBvcnRBczogJ2ZDb21wb25lbnQnLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2YtY29tcG9uZW50IGYtY2FudmFzJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogRl9DQU5WQVMsIHVzZUV4aXN0aW5nOiBGQ2FudmFzQ29tcG9uZW50IH0gXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBGQ2FudmFzQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2FudmFzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNhbnZhc0NoYW5nZUV2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcG9zaXRpb24odmFsdWU6IElQb2ludCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuc3VtKHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uLCB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbik7XG4gICAgaWYgKCFQb2ludEV4dGVuc2lvbnMuaXNFcXVhbChwb3NpdGlvbiwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybS5wb3NpdGlvbiA9IHZhbHVlO1xuICAgICAgdGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24gPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNjYWxlKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudHJhbnNmb3JtLnNjYWxlID0gdmFsdWU7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZk5vZGVzKCk6IEZOb2RlQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZOb2RlcztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2ZOb2Rlc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmTm9kZXNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdmQ29ubmVjdGlvbnNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGdldEFsbE5vZGVzUmVjdEhhbmRsZXI6IEdldEFsbE5vZGVzUmVjdEhhbmRsZXIsXG4gICAgICBwcml2YXRlIHNlbGVjdEFsbEhhbmRsZXI6IFNlbGVjdEFsbEhhbmRsZXIsXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkJhY2tncm91bmQ/LnNldFRyYW5zZm9ybSh0aGlzLnRyYW5zZm9ybSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBgdHJhbnNmb3JtOiAkeyBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pIH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXdXaXRoQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQmFja2dyb3VuZD8uc2V0VHJhbnNmb3JtKHRoaXMudHJhbnNmb3JtKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZS1pbi1vdXQ7IHRyYW5zZm9ybTogJHsgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zLnRvU3RyaW5nKHRoaXMudHJhbnNmb3JtKSB9YCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZHJhdygpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICBwdWJsaWMgZml0VG9TY3JlZW4odG9DZW50ZXI6IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGZOb2Rlc1JlY3QgPSB0aGlzLmdldEFsbE5vZGVzUmVjdEhhbmRsZXIuaGFuZGxlKCk7XG5cbiAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuYWRkUG9pbnRUb1NpemUoXG4gICAgICAgIGZOb2Rlc1JlY3QsXG4gICAgICAgIFBvaW50LmZyb21Qb2ludCh0b0NlbnRlcikubXVsdCgyKVxuICAgICk7XG4gICAgdGhpcy5maXRUb1BhcmVudChcbiAgICAgICAgcmVjdCxcbiAgICAgICAgUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93IS5ob3N0RWxlbWVudCksXG4gICAgICAgIHRoaXMuZk5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQoeC5wb3NpdGlvbikuc3ViKHRvQ2VudGVyKVxuICAgICAgICB9KVxuICAgICk7XG4gICAgYW5pbWF0ZWQgPyB0aGlzLnJlZHJhd1dpdGhBbmltYXRpb24oKSA6IHRoaXMucmVkcmF3KCk7XG4gICAgdGhpcy5jb21wbGV0ZURyYWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbmVUb09uZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmTm9kZXNSZWN0ID0gdGhpcy5nZXRBbGxOb2Rlc1JlY3RIYW5kbGVyLmhhbmRsZSgpO1xuICAgIHRoaXMub25lVG9PbmVDZW50ZXJpbmcoXG4gICAgICAgIGZOb2Rlc1JlY3QsXG4gICAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQpLFxuICAgICAgICB0aGlzLmZOb2Rlcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHgucG9zaXRpb24pLnN1YihuZXcgUG9pbnQoMCwgMCkpXG4gICAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlZHJhd1dpdGhBbmltYXRpb24oKTtcbiAgICB0aGlzLmNvbXBsZXRlRHJhZygpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEFsbEhhbmRsZXIuaGFuZGxlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gICAgPGRpdiAjZkNvbm5lY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY29ubmVjdGlvbi1mb3ItY3JlYXRlXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgI2ZOb2Rlc0NvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZOb2RlXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,94 @@
1
+ import { EventExtensions, Point, RectExtensions } from '@foblex/core';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { isNode } from '../../f-node';
4
+ export const F_ZOOM = new InjectionToken('F_ZOOM');
5
+ export class FZoomBase {
6
+ get flowHost() {
7
+ return this.fComponentsStore.flowHost;
8
+ }
9
+ get fCanvas() {
10
+ return this.fComponentsStore.fCanvas;
11
+ }
12
+ constructor(fComponentsStore) {
13
+ this.fComponentsStore = fComponentsStore;
14
+ this.isEnabled = false;
15
+ this.listeners = EventExtensions.emptyListener();
16
+ }
17
+ toggleZoom() {
18
+ if (this.isEnabled) {
19
+ this.subscribe();
20
+ }
21
+ else {
22
+ this.unsubscribe();
23
+ }
24
+ }
25
+ subscribe() {
26
+ this.listeners();
27
+ if (!this.flowHost) {
28
+ return;
29
+ }
30
+ this.flowHost.addEventListener('wheel', this.onWheel.bind(this));
31
+ this.flowHost.addEventListener('dblclick', this.onDoubleClick.bind(this));
32
+ this.listeners = () => {
33
+ this.flowHost.removeEventListener('wheel', this.onWheel.bind(this));
34
+ this.flowHost.removeEventListener('dblclick', this.onDoubleClick.bind(this));
35
+ };
36
+ }
37
+ getScale() {
38
+ return this.fCanvas.transform.scale || 1;
39
+ }
40
+ onWheel(event) {
41
+ event.preventDefault();
42
+ if (this.fComponentsStore.fDraggable?.isDragStarted) {
43
+ return;
44
+ }
45
+ let result = this.getScale();
46
+ const direction = event.deltaY > 0 ? -1 : 1;
47
+ const step = this.step;
48
+ result = result + step * direction;
49
+ result = Math.max(this.minimum, Math.min(result, this.maximum));
50
+ const pointerPositionInFlow = new Point(event.clientX, event.clientY).elementTransform(this.flowHost);
51
+ this.fCanvas.setZoom(result, pointerPositionInFlow);
52
+ this.fCanvas.redraw();
53
+ this.fCanvas.completeDrag();
54
+ }
55
+ onDoubleClick(event) {
56
+ event.preventDefault();
57
+ if (this.fComponentsStore.fDraggable?.isDragStarted || isNode(event.target)) {
58
+ return;
59
+ }
60
+ let result = this.getScale();
61
+ const direction = 1;
62
+ const step = this.dblClickStep;
63
+ result = result + step * direction;
64
+ result = Math.max(this.minimum, Math.min(result, this.maximum));
65
+ const pointerPositionInFlow = new Point(event.clientX, event.clientY).elementTransform(this.flowHost);
66
+ this.fCanvas.setZoom(result, pointerPositionInFlow);
67
+ this.fCanvas.redrawWithAnimation();
68
+ this.fCanvas.completeDrag();
69
+ }
70
+ onZoomToCenter(deltaY, position) {
71
+ const preventDefault = () => {
72
+ };
73
+ const rect = RectExtensions.fromElement(this.flowHost);
74
+ this.onWheel({
75
+ deltaY, preventDefault, clientX: position?.x || rect.gravityCenter.x, clientY: position?.y || rect.gravityCenter.y
76
+ });
77
+ }
78
+ zoomIn(position) {
79
+ this.onZoomToCenter(-1, position);
80
+ }
81
+ zoomOut(position) {
82
+ this.onZoomToCenter(1, position);
83
+ }
84
+ reset() {
85
+ this.fCanvas.resetZoom();
86
+ this.fCanvas.redraw();
87
+ this.fCanvas.completeDrag();
88
+ }
89
+ unsubscribe() {
90
+ this.listeners();
91
+ this.listeners = EventExtensions.emptyListener();
92
+ }
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi16b29tLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2Ytem9vbS9mLXpvb20tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFVLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBWSxRQUFRLENBQUMsQ0FBQztBQUU5RCxNQUFNLE9BQWdCLFNBQVM7SUFZN0IsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQXNCLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQ2MsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFuQnRDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFRN0IsY0FBUyxHQUFhLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQWE5RCxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFn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O0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RXh0ZW5zaW9ucywgSVBvaW50LCBQb2ludCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgaXNOb2RlIH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMtYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBGX1pPT00gPSBuZXcgSW5qZWN0aW9uVG9rZW48Rlpvb21CYXNlPignRl9aT09NJyk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGWm9vbUJhc2Uge1xuXG4gIHByb3RlY3RlZCBpc0VuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgbWluaW11bTogbnVtYmVyO1xuICBwdWJsaWMgYWJzdHJhY3QgbWF4aW11bTogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBzdGVwOiBudW1iZXI7XG4gIHB1YmxpYyBhYnN0cmFjdCBkYmxDbGlja1N0ZXA6IG51bWJlcjtcblxuICBwcml2YXRlIGxpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHByaXZhdGUgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZsb3dIb3N0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZkNhbnZhcygpOiBGQ2FudmFzQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIGFzIEZDYW52YXNCYXNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmVcbiAgKSB7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlWm9vbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycygpO1xuICAgIGlmICghdGhpcy5mbG93SG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmxvd0hvc3QuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLm9uV2hlZWwuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5mbG93SG9zdC5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMub25Eb3VibGVDbGljay5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmxpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgIHRoaXMuZmxvd0hvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLm9uV2hlZWwuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLmZsb3dIb3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RibGNsaWNrJywgdGhpcy5vbkRvdWJsZUNsaWNrLmJpbmQodGhpcykpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0U2NhbGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mQ2FudmFzLnRyYW5zZm9ybS5zY2FsZSB8fCAxO1xuICB9XG5cbiAgcHJpdmF0ZSBvbldoZWVsKGV2ZW50OiBXaGVlbEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZT8uaXNEcmFnU3RhcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQ6IG51bWJlciA9IHRoaXMuZ2V0U2NhbGUoKTtcblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmRlbHRhWSA+IDAgPyAtMSA6IDE7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuc3RlcDtcbiAgICByZXN1bHQgPSByZXN1bHQgKyBzdGVwICogZGlyZWN0aW9uO1xuXG4gICAgcmVzdWx0ID0gTWF0aC5tYXgodGhpcy5taW5pbXVtLCBNYXRoLm1pbihyZXN1bHQsIHRoaXMubWF4aW11bSkpO1xuXG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uSW5GbG93ID0gbmV3IFBvaW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5mbG93SG9zdCk7XG5cbiAgICB0aGlzLmZDYW52YXMuc2V0Wm9vbShyZXN1bHQsIHBvaW50ZXJQb3NpdGlvbkluRmxvdyk7XG4gICAgdGhpcy5mQ2FudmFzLnJlZHJhdygpO1xuICAgIHRoaXMuZkNhbnZhcy5jb21wbGV0ZURyYWcoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Eb3VibGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGU/LmlzRHJhZ1N0YXJ0ZWQgfHwgaXNOb2RlKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0OiBudW1iZXIgPSB0aGlzLmdldFNjYWxlKCk7XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSAxO1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmRibENsaWNrU3RlcDtcbiAgICByZXN1bHQgPSByZXN1bHQgKyBzdGVwICogZGlyZWN0aW9uO1xuXG4gICAgcmVzdWx0ID0gTWF0aC5tYXgodGhpcy5taW5pbXVtLCBNYXRoLm1pbihyZXN1bHQsIHRoaXMubWF4aW11bSkpO1xuXG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uSW5GbG93ID0gbmV3IFBvaW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5mbG93SG9zdCk7XG4gICAgdGhpcy5mQ2FudmFzLnNldFpvb20ocmVzdWx0LCBwb2ludGVyUG9zaXRpb25JbkZsb3cpO1xuICAgIHRoaXMuZkNhbnZhcy5yZWRyYXdXaXRoQW5pbWF0aW9uKCk7XG4gICAgdGhpcy5mQ2FudmFzLmNvbXBsZXRlRHJhZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblpvb21Ub0NlbnRlcihkZWx0YVk6IG51bWJlciwgcG9zaXRpb24/OiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwcmV2ZW50RGVmYXVsdCA9ICgpID0+IHtcbiAgICB9O1xuICAgIGNvbnN0IHJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5mcm9tRWxlbWVudCh0aGlzLmZsb3dIb3N0KTtcblxuICAgIHRoaXMub25XaGVlbCh7XG4gICAgICBkZWx0YVksIHByZXZlbnREZWZhdWx0LCBjbGllbnRYOiBwb3NpdGlvbj8ueCB8fCByZWN0LmdyYXZpdHlDZW50ZXIueCwgY2xpZW50WTogcG9zaXRpb24/LnkgfHwgcmVjdC5ncmF2aXR5Q2VudGVyLnlcbiAgICB9IGFzIFdoZWVsRXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHpvb21Jbihwb3NpdGlvbj86IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMub25ab29tVG9DZW50ZXIoLTEsIHBvc2l0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tT3V0KHBvc2l0aW9uPzogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5vblpvb21Ub0NlbnRlcigxLCBwb3NpdGlvbik7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ2FudmFzLnJlc2V0Wm9vbSgpO1xuICAgIHRoaXMuZkNhbnZhcy5yZWRyYXcoKTtcbiAgICB0aGlzLmZDYW52YXMuY29tcGxldGVEcmFnKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnMoKTtcbiAgICB0aGlzLmxpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gIH1cbn1cbiJdfQ==