@vertexvis/viewer 0.10.2-canary.7 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/cjs/{browser.esm-ae55f058.js → browser.esm-17419694.js} +25 -25
  2. package/dist/cjs/{bundle.esm-c457ad4d.js → bundle.esm-b79513ef.js} +231 -207
  3. package/dist/cjs/{constants-4277684a.js → constants-1d65ed39.js} +1 -1
  4. package/dist/cjs/{cursors-b93b43ef.js → cursors-8aaf500f.js} +1 -1
  5. package/dist/cjs/{dom-cdb50ebc.js → dom-40804039.js} +1 -1
  6. package/dist/cjs/index.cjs.js +8 -7
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{markup-3dac4cef.js → markup-e84a143f.js} +11 -2
  9. package/dist/cjs/{measurement-b494bf55.js → measurement-4579193b.js} +2 -2
  10. package/dist/cjs/{orientation-42cc9e8d.js → orientation-09d0f3ef.js} +14 -7
  11. package/dist/cjs/{png-decoder-2add73dd.js → png-decoder-97ea96ba.js} +3 -3
  12. package/dist/cjs/{scene-23a0a330.js → scene-4397373a.js} +28524 -2446
  13. package/dist/cjs/{utils-6933381f.js → utils-414e6cfe.js} +2 -2
  14. package/dist/cjs/utils-440f0f7d.js +61 -0
  15. package/dist/cjs/vertex-scene-tree.cjs.entry.js +6 -5
  16. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
  17. package/dist/cjs/{vertex-viewer-markup-arrow_2.cjs.entry.js → vertex-viewer-markup-arrow_3.cjs.entry.js} +267 -4
  18. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +43 -9
  19. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +25 -5
  20. package/dist/cjs/vertex-viewer-measurement-distance_2.cjs.entry.js +8 -8
  21. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +5 -5
  22. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +5 -5
  23. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +3 -3
  24. package/dist/cjs/vertex-viewer.cjs.entry.js +141 -48
  25. package/dist/cjs/viewer.cjs.js +1 -1
  26. package/dist/cjs/{viewport-e69f8223.js → viewport-fc405a48.js} +31 -7
  27. package/dist/collection/collection-manifest.json +1 -0
  28. package/dist/collection/components/scene-tree/scene-tree.js +3 -2
  29. package/dist/collection/components/viewer/viewer.js +28 -3
  30. package/dist/collection/components/viewer-markup/utils.js +65 -1
  31. package/dist/collection/components/viewer-markup/viewer-markup.js +72 -16
  32. package/dist/collection/components/viewer-markup-circle/utils.js +2 -55
  33. package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js +4 -4
  34. package/dist/collection/components/viewer-markup-freeform.tsx/utils.js +10 -0
  35. package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.css +157 -0
  36. package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.js +413 -0
  37. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js +63 -9
  38. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance-components.js +1 -1
  39. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +2 -2
  40. package/dist/collection/lib/cursors.js +1 -1
  41. package/dist/collection/lib/interactions/baseInteractionHandler.js +5 -4
  42. package/dist/collection/lib/interactions/flyToPartKeyInteraction.js +1 -1
  43. package/dist/collection/lib/interactions/interactionApi.js +101 -22
  44. package/dist/collection/lib/interactions/mouseInteractions.js +17 -15
  45. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +2 -2
  46. package/dist/collection/lib/mappers.js +4 -3
  47. package/dist/collection/lib/scenes/camera.js +8 -2
  48. package/dist/collection/lib/scenes/operations.js +1 -1
  49. package/dist/collection/lib/scenes/scene.js +5 -2
  50. package/dist/collection/lib/types/frame.js +8 -2
  51. package/dist/collection/lib/types/markup.js +9 -1
  52. package/dist/collection/lib/types/stencilBuffer.js +2 -2
  53. package/dist/collection/lib/types/viewport.js +32 -8
  54. package/dist/collection/testing/fixtures.js +2 -1
  55. package/dist/esm/{browser.esm-7dbdf78a.js → browser.esm-e4fb17dc.js} +25 -25
  56. package/dist/esm/{bundle.esm-590d2273.js → bundle.esm-d891316f.js} +232 -208
  57. package/dist/esm/{constants-083f6b2c.js → constants-037e417f.js} +1 -1
  58. package/dist/esm/{cursors-39294365.js → cursors-00835249.js} +1 -1
  59. package/dist/esm/{dom-43682375.js → dom-d0877f90.js} +1 -1
  60. package/dist/esm/index.js +7 -7
  61. package/dist/esm/index.mjs +7 -7
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm/loader.mjs +1 -1
  64. package/dist/esm/{markup-3ce3dccd.js → markup-9b29aa94.js} +11 -3
  65. package/dist/esm/{measurement-78bd27fc.js → measurement-8430d5d6.js} +2 -2
  66. package/dist/esm/{orientation-c3e2af18.js → orientation-bb34b652.js} +14 -7
  67. package/dist/esm/{png-decoder-dfb97536.js → png-decoder-c4745070.js} +3 -3
  68. package/dist/esm/{scene-30ac6229.js → scene-72760305.js} +28532 -2454
  69. package/dist/esm/utils-5fe43b8a.js +52 -0
  70. package/dist/esm/{utils-b857bd7c.js → utils-f8e0baf7.js} +2 -2
  71. package/dist/esm/vertex-scene-tree.entry.js +6 -5
  72. package/dist/esm/vertex-viewer-dom-element_3.entry.js +4 -4
  73. package/dist/esm/{vertex-viewer-markup-arrow_2.entry.js → vertex-viewer-markup-arrow_3.entry.js} +267 -5
  74. package/dist/esm/vertex-viewer-markup-tool.entry.js +43 -9
  75. package/dist/esm/vertex-viewer-markup.entry.js +25 -5
  76. package/dist/esm/vertex-viewer-measurement-distance_2.entry.js +8 -8
  77. package/dist/esm/vertex-viewer-measurement-tool.entry.js +5 -5
  78. package/dist/esm/vertex-viewer-measurements.entry.js +5 -5
  79. package/dist/esm/vertex-viewer-view-cube.entry.js +3 -3
  80. package/dist/esm/vertex-viewer.entry.js +141 -48
  81. package/dist/esm/viewer.js +1 -1
  82. package/dist/esm/{viewport-8fea0743.js → viewport-d6f5cd7b.js} +31 -7
  83. package/dist/types/components/viewer/viewer.d.ts +4 -0
  84. package/dist/types/components/viewer-markup/utils.d.ts +8 -0
  85. package/dist/types/components/viewer-markup/viewer-markup.d.ts +13 -6
  86. package/dist/types/components/viewer-markup-circle/utils.d.ts +1 -4
  87. package/dist/types/components/viewer-markup-freeform.tsx/utils.d.ts +3 -0
  88. package/dist/types/components/viewer-markup-freeform.tsx/viewer-markup-freeform.d.ts +116 -0
  89. package/dist/types/components/viewer-markup-tool/viewer-markup-tool.d.ts +13 -1
  90. package/dist/types/components.d.ts +107 -10
  91. package/dist/types/lib/interactions/interactionApi.d.ts +22 -6
  92. package/dist/types/lib/interactions/mouseInteractions.d.ts +7 -6
  93. package/dist/types/lib/scenes/camera.d.ts +5 -1
  94. package/dist/types/lib/scenes/scene.d.ts +1 -1
  95. package/dist/types/lib/types/frame.d.ts +4 -1
  96. package/dist/types/lib/types/markup.d.ts +12 -1
  97. package/dist/types/lib/types/viewport.d.ts +17 -0
  98. package/dist/viewer/index.esm.js +1 -1
  99. package/dist/viewer/p-012fb54f.js +4 -0
  100. package/dist/viewer/{p-3dc15d99.entry.js → p-117324c0.entry.js} +1 -1
  101. package/dist/viewer/{p-1ee75110.entry.js → p-1c772ec1.entry.js} +1 -1
  102. package/dist/viewer/p-1f8a238b.js +4 -0
  103. package/dist/viewer/p-21e8510d.js +4 -0
  104. package/dist/viewer/{p-e3105f9a.entry.js → p-3c2aff67.entry.js} +1 -1
  105. package/dist/viewer/p-5389e9d4.js +4 -0
  106. package/dist/viewer/p-59d075d4.js +17 -0
  107. package/dist/viewer/{p-5b078339.js → p-62c6f482.js} +1 -1
  108. package/dist/viewer/p-640cb5f8.js +18 -0
  109. package/dist/viewer/p-68aaf1f8.entry.js +4 -0
  110. package/dist/viewer/{p-05b2444e.js → p-75682963.js} +1 -1
  111. package/dist/viewer/{p-4183c421.entry.js → p-79c45c02.entry.js} +1 -1
  112. package/dist/viewer/p-835e158e.js +4 -0
  113. package/dist/viewer/p-8c255868.entry.js +4 -0
  114. package/dist/viewer/{p-f4a492e1.js → p-9faabd97.js} +1 -1
  115. package/dist/viewer/p-b122ee39.js +4 -0
  116. package/dist/viewer/p-b36b3d1a.js +4 -0
  117. package/dist/viewer/{p-7c71db57.entry.js → p-bc9e6919.entry.js} +1 -1
  118. package/dist/viewer/{p-f090a3f3.entry.js → p-c818c80e.entry.js} +1 -1
  119. package/dist/viewer/{p-e96bc9a2.js → p-d42a482c.js} +1 -1
  120. package/dist/viewer/p-f43e8cc2.entry.js +4 -0
  121. package/dist/viewer/p-f75436be.entry.js +4 -0
  122. package/dist/viewer/viewer.esm.js +1 -1
  123. package/package.json +18 -16
  124. package/readme.md +6 -6
  125. package/dist/cjs/utils-96f244e1.js +0 -104
  126. package/dist/esm/utils-a550c58f.js +0 -96
  127. package/dist/viewer/p-11bdd2c4.js +0 -4
  128. package/dist/viewer/p-14182324.entry.js +0 -4
  129. package/dist/viewer/p-2768474e.js +0 -4
  130. package/dist/viewer/p-2e11803d.js +0 -4
  131. package/dist/viewer/p-6d4ab5fc.js +0 -17
  132. package/dist/viewer/p-964642c6.js +0 -4
  133. package/dist/viewer/p-9e856d0a.entry.js +0 -4
  134. package/dist/viewer/p-a717d9ff.js +0 -4
  135. package/dist/viewer/p-a9434d8e.entry.js +0 -4
  136. package/dist/viewer/p-af806858.js +0 -4
  137. package/dist/viewer/p-b5c350a7.js +0 -4
  138. package/dist/viewer/p-d912dd24.js +0 -18
  139. package/dist/viewer/p-f6d75616.entry.js +0 -4
@@ -0,0 +1,413 @@
1
+ import { Component, Host, h, Element, Prop, Watch, Event, State, Method, } from '@stencil/core';
2
+ import { Point, Rectangle } from '@vertexvis/geometry';
3
+ import { getMouseClientPosition } from '../../lib/dom';
4
+ import { translateRectToScreen, translatePointToRelative, translatePointToScreen, translatePointsToBounds, transformRectangle, } from '../viewer-markup/utils';
5
+ import { SvgShadow } from '../viewer-markup/viewer-markup-components';
6
+ import { getMarkupBoundingClientRect } from '../viewer-markup/dom';
7
+ import { parsePoints } from './utils';
8
+ import { BoundingBox2d } from '../viewer-markup-circle/viewer-markup-circle-components';
9
+ import { parseBounds } from '../viewer-markup-circle/utils';
10
+ export class ViewerMarkupFreeform {
11
+ constructor() {
12
+ /**
13
+ * A mode that specifies how the markup component should behave. When
14
+ * unset, the component will not respond to interactions with the handles.
15
+ * When `edit`, the markup anchors are interactive and the user is able
16
+ * to reposition them. When `create`, anytime the user clicks on the canvas,
17
+ * a new markup will be performed.
18
+ */
19
+ this.mode = '';
20
+ this.editAnchor = 'bottom-right';
21
+ this.screenPoints = [];
22
+ this.updateEditAnchor = (event, anchor) => {
23
+ if (this.elementBounds != null) {
24
+ this.resizeBounds = this.bounds;
25
+ this.resizePoints = this.points;
26
+ this.editAnchor = anchor;
27
+ this.resizeStartPosition = translatePointToRelative(getMouseClientPosition(event, this.elementBounds), this.elementBounds);
28
+ this.addEditingInteractionListeners();
29
+ }
30
+ };
31
+ this.updateBounds = (event) => {
32
+ var _a;
33
+ if (this.resizeStartPosition != null &&
34
+ this.elementBounds != null &&
35
+ this.resizeBounds != null &&
36
+ this.resizePoints != null) {
37
+ const position = translatePointToRelative(getMouseClientPosition(event, this.elementBounds), this.elementBounds);
38
+ const updatedBounds = transformRectangle(this.resizeBounds, this.resizeStartPosition, position, this.editAnchor, event.shiftKey);
39
+ this.points = translatePointsToBounds(this.resizePoints, this.resizeBounds, updatedBounds);
40
+ this.screenPoints = (_a = this.convertPointsToScreen()) !== null && _a !== void 0 ? _a : this.screenPoints;
41
+ this.bounds = updatedBounds;
42
+ }
43
+ };
44
+ this.updatePoints = (event) => {
45
+ if (this.points != null && this.elementBounds != null) {
46
+ const screenPosition = getMouseClientPosition(event, this.elementBounds);
47
+ const position = translatePointToRelative(screenPosition, this.elementBounds);
48
+ this.updateMinAndMax(position);
49
+ this.points = [...this.points, position];
50
+ this.screenPoints = [...this.screenPoints, screenPosition];
51
+ }
52
+ };
53
+ this.startMarkup = (event) => {
54
+ var _a, _b;
55
+ if (this.mode !== '' && this.elementBounds != null) {
56
+ const screenPosition = getMouseClientPosition(event, this.elementBounds);
57
+ const position = translatePointToRelative(screenPosition, this.elementBounds);
58
+ this.updateMinAndMax(position);
59
+ this.points = (_a = this.points) !== null && _a !== void 0 ? _a : [position];
60
+ this.screenPoints = (_b = this.screenPoints) !== null && _b !== void 0 ? _b : [screenPosition];
61
+ this.editBegin.emit();
62
+ this.addDrawingInteractionListeners();
63
+ }
64
+ };
65
+ this.endMarkup = (event) => {
66
+ if (this.mode !== '' &&
67
+ this.points != null &&
68
+ this.points.length > 1 &&
69
+ this.elementBounds != null) {
70
+ const screenPosition = getMouseClientPosition(event, this.elementBounds);
71
+ const position = translatePointToRelative(screenPosition, this.elementBounds);
72
+ this.updateMinAndMax(position);
73
+ this.points = [...this.points, position];
74
+ this.screenPoints = [...this.screenPoints, screenPosition];
75
+ this.editEnd.emit();
76
+ }
77
+ else {
78
+ this.points = undefined;
79
+ this.editCancel.emit();
80
+ }
81
+ this.min = undefined;
82
+ this.max = undefined;
83
+ this.removeDrawingInteractionListeners();
84
+ };
85
+ this.endEdit = () => {
86
+ this.resizeBounds = undefined;
87
+ this.removeEditingInteractionListeners();
88
+ this.editEnd.emit();
89
+ };
90
+ }
91
+ /**
92
+ * @ignore
93
+ */
94
+ componentWillLoad() {
95
+ this.updateViewport();
96
+ this.handleViewerChanged(this.viewer);
97
+ this.updatePointsFromProps();
98
+ }
99
+ componentDidLoad() {
100
+ this.updatePointsFromProps();
101
+ const resize = new ResizeObserver(() => this.updateViewport());
102
+ resize.observe(this.hostEl);
103
+ }
104
+ async dispose() {
105
+ if (this.viewer != null) {
106
+ this.removeInteractionListeners(this.viewer);
107
+ }
108
+ this.removeDrawingInteractionListeners();
109
+ }
110
+ /**
111
+ * @ignore
112
+ */
113
+ handleViewerChanged(newViewer, oldViewer) {
114
+ if (oldViewer != null) {
115
+ this.removeInteractionListeners(oldViewer);
116
+ }
117
+ if (newViewer != null) {
118
+ this.addInteractionListeners(newViewer);
119
+ }
120
+ }
121
+ handlePointsJsonChange() {
122
+ this.updatePointsFromProps();
123
+ }
124
+ handleBoundsJsonChange() {
125
+ this.updatePointsFromProps();
126
+ }
127
+ updateViewport() {
128
+ var _a;
129
+ const rect = getMarkupBoundingClientRect(this.hostEl);
130
+ this.elementBounds = rect;
131
+ this.screenPoints = (_a = this.convertPointsToScreen()) !== null && _a !== void 0 ? _a : this.screenPoints;
132
+ }
133
+ updatePointsFromProps() {
134
+ var _a, _b, _c;
135
+ this.points = (_a = this.points) !== null && _a !== void 0 ? _a : parsePoints(this.pointsJson);
136
+ this.screenPoints = (_b = this.convertPointsToScreen()) !== null && _b !== void 0 ? _b : [];
137
+ this.bounds = (_c = this.bounds) !== null && _c !== void 0 ? _c : parseBounds(this.boundsJson);
138
+ }
139
+ render() {
140
+ if (this.screenPoints.length > 0 && this.elementBounds != null) {
141
+ return (h(Host, null,
142
+ h("svg", { class: "svg" },
143
+ h("defs", null,
144
+ h(SvgShadow, { id: "freeform-markup-shadow" })),
145
+ h("g", { filter: "url(#freeform-markup-shadow)" },
146
+ h("path", { class: "path", d: this.screenPoints.reduce((d, pt) => `${d}L${pt.x},${pt.y}`, `M${this.screenPoints[0].x},${this.screenPoints[0].y}`), fill: "none" }))),
147
+ this.mode === 'edit' && this.bounds != null && (h(BoundingBox2d, { bounds: translateRectToScreen(this.bounds, this.elementBounds), onTopLeftAnchorPointerDown: (e) => this.updateEditAnchor(e, 'top-left'), onTopRightAnchorPointerDown: (e) => this.updateEditAnchor(e, 'top-right'), onTopAnchorPointerDown: (e) => this.updateEditAnchor(e, 'top'), onBottomLeftAnchorPointerDown: (e) => this.updateEditAnchor(e, 'bottom-left'), onBottomRightAnchorPointerDown: (e) => this.updateEditAnchor(e, 'bottom-right'), onBottomAnchorPointerDown: (e) => this.updateEditAnchor(e, 'bottom'), onLeftAnchorPointerDown: (e) => this.updateEditAnchor(e, 'left'), onRightAnchorPointerDown: (e) => this.updateEditAnchor(e, 'right'), onCenterAnchorPointerDown: (e) => this.updateEditAnchor(e, 'center') }))));
148
+ }
149
+ else {
150
+ return (h(Host, null,
151
+ h("div", { class: "create-overlay", onPointerDown: (event) => this.startMarkup(event) })));
152
+ }
153
+ }
154
+ async addInteractionListeners(viewer) {
155
+ const interactionTarget = await viewer.getInteractionTarget();
156
+ if (this.mode === 'create') {
157
+ interactionTarget.addEventListener('pointerdown', this.startMarkup);
158
+ }
159
+ }
160
+ async addDrawingInteractionListeners() {
161
+ if (this.mode !== '') {
162
+ window.addEventListener('pointermove', this.updatePoints);
163
+ window.addEventListener('pointerup', this.endMarkup);
164
+ }
165
+ }
166
+ async addEditingInteractionListeners() {
167
+ if (this.mode === 'edit') {
168
+ window.addEventListener('pointermove', this.updateBounds);
169
+ window.addEventListener('pointerup', this.endEdit);
170
+ }
171
+ }
172
+ async removeInteractionListeners(viewer) {
173
+ const interactionTarget = await viewer.getInteractionTarget();
174
+ interactionTarget.removeEventListener('pointerdown', this.startMarkup);
175
+ }
176
+ async removeDrawingInteractionListeners() {
177
+ window.removeEventListener('pointermove', this.updatePoints);
178
+ window.removeEventListener('pointerup', this.endMarkup);
179
+ }
180
+ async removeEditingInteractionListeners() {
181
+ if (this.mode === 'edit') {
182
+ window.removeEventListener('pointermove', this.updateBounds);
183
+ window.removeEventListener('pointerup', this.endEdit);
184
+ }
185
+ }
186
+ updateMinAndMax(position) {
187
+ this.min =
188
+ this.min != null
189
+ ? Point.create(Math.min(this.min.x, position.x), Math.min(this.min.y, position.y))
190
+ : position;
191
+ this.max =
192
+ this.max != null
193
+ ? Point.create(Math.max(this.max.x, position.x), Math.max(this.max.y, position.y))
194
+ : position;
195
+ this.bounds = Rectangle.create(this.min.x, this.min.y, this.max.x - this.min.x, this.max.y - this.min.y);
196
+ }
197
+ convertPointsToScreen() {
198
+ var _a;
199
+ const elementBounds = this.elementBounds;
200
+ if (elementBounds != null) {
201
+ return (_a = this.points) === null || _a === void 0 ? void 0 : _a.map((pt) => translatePointToScreen(pt, elementBounds));
202
+ }
203
+ }
204
+ static get is() { return "vertex-viewer-markup-freeform"; }
205
+ static get encapsulation() { return "shadow"; }
206
+ static get originalStyleUrls() { return {
207
+ "$": ["viewer-markup-freeform.css"]
208
+ }; }
209
+ static get styleUrls() { return {
210
+ "$": ["viewer-markup-freeform.css"]
211
+ }; }
212
+ static get properties() { return {
213
+ "points": {
214
+ "type": "unknown",
215
+ "mutable": true,
216
+ "complexType": {
217
+ "original": "Point.Point[]",
218
+ "resolved": "Point[] | undefined",
219
+ "references": {
220
+ "Point": {
221
+ "location": "import",
222
+ "path": "@vertexvis/geometry"
223
+ }
224
+ }
225
+ },
226
+ "required": false,
227
+ "optional": true,
228
+ "docs": {
229
+ "tags": [],
230
+ "text": "The positions of the various points of this freeform markup. Can either be an array of\n`Point`s or a JSON string representation in the format of `[[x1, y1], [x2, y2]]` or\n`[{\"x\": 0, \"y\": 0}, {\"x\": 0, \"y\": 0}]`.\n\nPoints are expected to be relative coordinates from `[-0.5, 0.5]`,\ne.g. `[0, 0]` corresponds to a point in the center of the viewport."
231
+ }
232
+ },
233
+ "pointsJson": {
234
+ "type": "string",
235
+ "mutable": false,
236
+ "complexType": {
237
+ "original": "string",
238
+ "resolved": "string | undefined",
239
+ "references": {}
240
+ },
241
+ "required": false,
242
+ "optional": true,
243
+ "docs": {
244
+ "tags": [],
245
+ "text": "The positions of the various points of this freeform markup. Can either be an array of\n`Point`s or a JSON string representation in the format of `[[x1, y1], [x2, y2]]` or\n`[{\"x\": 0, \"y\": 0}, {\"x\": 0, \"y\": 0}]`.\n\nPoints are expected to be relative coordinates from `[-0.5, 0.5]`,\ne.g. `[0, 0]` corresponds to a point in the center of the viewport."
246
+ },
247
+ "attribute": "points",
248
+ "reflect": false
249
+ },
250
+ "bounds": {
251
+ "type": "unknown",
252
+ "mutable": true,
253
+ "complexType": {
254
+ "original": "Rectangle.Rectangle",
255
+ "resolved": "Rectangle | undefined",
256
+ "references": {
257
+ "Rectangle": {
258
+ "location": "import",
259
+ "path": "@vertexvis/geometry"
260
+ }
261
+ }
262
+ },
263
+ "required": false,
264
+ "optional": true,
265
+ "docs": {
266
+ "tags": [],
267
+ "text": "The bounds of the freeform. Can either be an instance of a `Rectangle` or\na JSON string representation in the format of `[x, y, width, height]` or\n`{\"x\": 0, \"y\": 0, \"width\": 10, \"height\": 10}`.\n\nBounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]`\nand `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a freeform\nwith a diameter of one fourth the viewport's smallest size in the center of the viewport."
268
+ }
269
+ },
270
+ "boundsJson": {
271
+ "type": "string",
272
+ "mutable": false,
273
+ "complexType": {
274
+ "original": "string",
275
+ "resolved": "string | undefined",
276
+ "references": {}
277
+ },
278
+ "required": false,
279
+ "optional": true,
280
+ "docs": {
281
+ "tags": [],
282
+ "text": "The bounds of the freeform. Can either be an instance of a `Rectangle` or\na JSON string representation in the format of `[x, y, width, height]` or\n`{\"x\": 0, \"y\": 0, \"width\": 0.1, \"height\": 0.1}`.\n\nBounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]`\nand `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a freeform\nwith a diameter of one fourth the viewport's smallest size in the center of the viewport."
283
+ },
284
+ "attribute": "bounds",
285
+ "reflect": false
286
+ },
287
+ "mode": {
288
+ "type": "string",
289
+ "mutable": false,
290
+ "complexType": {
291
+ "original": "ViewerMarkupFreeformMode",
292
+ "resolved": "\"\" | \"create\" | \"edit\"",
293
+ "references": {
294
+ "ViewerMarkupFreeformMode": {
295
+ "location": "local"
296
+ }
297
+ }
298
+ },
299
+ "required": false,
300
+ "optional": false,
301
+ "docs": {
302
+ "tags": [],
303
+ "text": "A mode that specifies how the markup component should behave. When\nunset, the component will not respond to interactions with the handles.\nWhen `edit`, the markup anchors are interactive and the user is able\nto reposition them. When `create`, anytime the user clicks on the canvas,\na new markup will be performed."
304
+ },
305
+ "attribute": "mode",
306
+ "reflect": true,
307
+ "defaultValue": "''"
308
+ },
309
+ "viewer": {
310
+ "type": "unknown",
311
+ "mutable": false,
312
+ "complexType": {
313
+ "original": "HTMLVertexViewerElement",
314
+ "resolved": "HTMLVertexViewerElement | undefined",
315
+ "references": {
316
+ "HTMLVertexViewerElement": {
317
+ "location": "global"
318
+ }
319
+ }
320
+ },
321
+ "required": false,
322
+ "optional": true,
323
+ "docs": {
324
+ "tags": [],
325
+ "text": "The viewer to connect to markups.\n\nThis property will automatically be set when a child of a\n`<vertex-viewer-markup>` or `<vertex-viewer>` element."
326
+ }
327
+ }
328
+ }; }
329
+ static get states() { return {
330
+ "elementBounds": {},
331
+ "resizeStartPosition": {},
332
+ "editAnchor": {},
333
+ "resizeBounds": {},
334
+ "resizePoints": {},
335
+ "screenPoints": {}
336
+ }; }
337
+ static get events() { return [{
338
+ "method": "editBegin",
339
+ "name": "editBegin",
340
+ "bubbles": true,
341
+ "cancelable": true,
342
+ "composed": true,
343
+ "docs": {
344
+ "tags": [],
345
+ "text": "An event that is dispatched anytime the user begins editing the\nmarkup."
346
+ },
347
+ "complexType": {
348
+ "original": "void",
349
+ "resolved": "void",
350
+ "references": {}
351
+ }
352
+ }, {
353
+ "method": "editEnd",
354
+ "name": "editEnd",
355
+ "bubbles": true,
356
+ "cancelable": true,
357
+ "composed": true,
358
+ "docs": {
359
+ "tags": [],
360
+ "text": "An event that is dispatched when the user has finished editing the\nmarkup."
361
+ },
362
+ "complexType": {
363
+ "original": "void",
364
+ "resolved": "void",
365
+ "references": {}
366
+ }
367
+ }, {
368
+ "method": "editCancel",
369
+ "name": "editCancel",
370
+ "bubbles": true,
371
+ "cancelable": true,
372
+ "composed": true,
373
+ "docs": {
374
+ "tags": [],
375
+ "text": "An event that is dispatched when the user cancels editing of the\nmarkup."
376
+ },
377
+ "complexType": {
378
+ "original": "void",
379
+ "resolved": "void",
380
+ "references": {}
381
+ }
382
+ }]; }
383
+ static get methods() { return {
384
+ "dispose": {
385
+ "complexType": {
386
+ "signature": "() => Promise<void>",
387
+ "parameters": [],
388
+ "references": {
389
+ "Promise": {
390
+ "location": "global"
391
+ }
392
+ },
393
+ "return": "Promise<void>"
394
+ },
395
+ "docs": {
396
+ "text": "",
397
+ "tags": []
398
+ }
399
+ }
400
+ }; }
401
+ static get elementRef() { return "hostEl"; }
402
+ static get watchers() { return [{
403
+ "propName": "viewer",
404
+ "methodName": "handleViewerChanged"
405
+ }, {
406
+ "propName": "points",
407
+ "methodName": "handlePointsJsonChange"
408
+ }, {
409
+ "propName": "bounds",
410
+ "methodName": "handleBoundsJsonChange"
411
+ }]; }
412
+ }
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1hcmt1cC1mcmVlZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlci1tYXJrdXAtZnJlZWZvcm0udHN4L3ZpZXdlci1tYXJrdXAtZnJlZWZvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUNKLENBQUMsRUFDRCxPQUFPLEVBQ1AsSUFBSSxFQUNKLEtBQUssRUFFTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFFdEIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFjNUQsTUFBTSxPQUFPLG9CQUFvQjtFQUxqQztJQW9ERTs7Ozs7O09BTUc7SUFFSSxTQUFJLEdBQTZCLEVBQUUsQ0FBQztJQTBDbkMsZUFBVSxHQUFnQyxjQUFjLENBQUM7SUFTekQsaUJBQVksR0FBa0IsRUFBRSxDQUFDO0lBNktqQyxxQkFBZ0IsR0FBRyxDQUN6QixLQUFtQixFQUNuQixNQUFtQyxFQUM3QixFQUFFO01BQ1IsSUFBSSxJ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
@@ -1,8 +1,9 @@
1
1
  import { Component, Element, Event, h, Host, Prop, State, Watch, } from '@stencil/core';
2
2
  import { stampTemplateWithId } from '../../lib/templates';
3
3
  import { isVertexViewerArrowMarkup } from '../viewer-markup-arrow/utils';
4
- import { ArrowMarkup, CircleMarkup } from '../../lib/types/markup';
4
+ import { ArrowMarkup, CircleMarkup, FreeformMarkup, } from '../../lib/types/markup';
5
5
  import { isVertexViewerCircleMarkup } from '../viewer-markup-circle/utils';
6
+ import { isVertexViewerFreeformMarkup } from '../viewer-markup-freeform.tsx/utils';
6
7
  export class ViewerMarkupTool {
7
8
  constructor() {
8
9
  /**
@@ -29,7 +30,15 @@ export class ViewerMarkupTool {
29
30
  };
30
31
  this.handleMarkupEditEnd = () => {
31
32
  const { markupElement } = this.stateMap;
32
- if (isVertexViewerCircleMarkup(markupElement)) {
33
+ if (isVertexViewerFreeformMarkup(markupElement)) {
34
+ const { points, bounds } = markupElement;
35
+ markupElement.points = undefined;
36
+ markupElement.bounds = undefined;
37
+ if (points != null && points.length > 0 && bounds != null) {
38
+ this.markupEnd.emit(new FreeformMarkup({ points, bounds }));
39
+ }
40
+ }
41
+ else if (isVertexViewerCircleMarkup(markupElement)) {
33
42
  const { bounds } = markupElement;
34
43
  markupElement.bounds = undefined;
35
44
  if (bounds != null) {
@@ -73,6 +82,12 @@ export class ViewerMarkupTool {
73
82
  handleCircleTemplateIdChanged() {
74
83
  this.updateMarkupElement();
75
84
  }
85
+ /**
86
+ * @ignore
87
+ */
88
+ handleFreeformTemplateIdChanged() {
89
+ this.updateMarkupElement();
90
+ }
76
91
  /**
77
92
  * @ignore
78
93
  */
@@ -90,7 +105,9 @@ export class ViewerMarkupTool {
90
105
  */
91
106
  render() {
92
107
  if (!this.disabled) {
93
- if (this.tool === 'arrow' || this.tool === 'circle') {
108
+ if (this.tool === 'arrow' ||
109
+ this.tool === 'circle' ||
110
+ this.tool === 'freeform') {
94
111
  return (h(Host, null,
95
112
  h("slot", null)));
96
113
  }
@@ -120,6 +137,25 @@ export class ViewerMarkupTool {
120
137
  }
121
138
  return document.createElement('vertex-viewer-markup-circle');
122
139
  }
140
+ createFreeformMarkupElement() {
141
+ if (this.freeformTemplateId != null) {
142
+ const element = stampTemplateWithId(window.document.body, this.freeformTemplateId, isVertexViewerFreeformMarkup, () => console.warn(`Freeform template with ID ${this.freeformTemplateId} not found. Using default freeform element.`), () => console.warn(`Freeform template does not contain a vertex-viewer-markup-freeform. Using default freeform element.`));
143
+ if (element != null) {
144
+ return element;
145
+ }
146
+ }
147
+ return document.createElement('vertex-viewer-markup-freeform');
148
+ }
149
+ createNewMarkupElement() {
150
+ switch (this.tool) {
151
+ case 'arrow':
152
+ return this.createArrowMarkupElement();
153
+ case 'circle':
154
+ return this.createCircleMarkupElement();
155
+ case 'freeform':
156
+ return this.createFreeformMarkupElement();
157
+ }
158
+ }
123
159
  updateMarkupElement() {
124
160
  const { markupElement } = this.stateMap;
125
161
  if (markupElement != null) {
@@ -131,9 +167,7 @@ export class ViewerMarkupTool {
131
167
  markupElement.removeEventListener('editCancel', this.handleMarkupEditCancel);
132
168
  }
133
169
  if (!this.disabled) {
134
- const newMarkupElement = this.tool === 'arrow'
135
- ? this.createArrowMarkupElement()
136
- : this.createCircleMarkupElement();
170
+ const newMarkupElement = this.createNewMarkupElement();
137
171
  newMarkupElement.mode = 'create';
138
172
  newMarkupElement.viewer = this.viewer;
139
173
  newMarkupElement.addEventListener('editBegin', this.handleMarkupEditBegin);
@@ -186,12 +220,29 @@ export class ViewerMarkupTool {
186
220
  "attribute": "circle-template-id",
187
221
  "reflect": false
188
222
  },
223
+ "freeformTemplateId": {
224
+ "type": "string",
225
+ "mutable": false,
226
+ "complexType": {
227
+ "original": "string",
228
+ "resolved": "string | undefined",
229
+ "references": {}
230
+ },
231
+ "required": false,
232
+ "optional": true,
233
+ "docs": {
234
+ "tags": [],
235
+ "text": "An HTML template that describes the HTML to use for new freeform\nmarkup. It's expected that the template contains a\n`<vertex-viewer-markup-freeform>`."
236
+ },
237
+ "attribute": "freeform-template-id",
238
+ "reflect": false
239
+ },
189
240
  "tool": {
190
241
  "type": "string",
191
242
  "mutable": false,
192
243
  "complexType": {
193
244
  "original": "ViewerMarkupToolType",
194
- "resolved": "\"arrow\" | \"circle\"",
245
+ "resolved": "\"arrow\" | \"circle\" | \"freeform\"",
195
246
  "references": {
196
247
  "ViewerMarkupToolType": {
197
248
  "location": "local"
@@ -276,7 +327,7 @@ export class ViewerMarkupTool {
276
327
  },
277
328
  "complexType": {
278
329
  "original": "Markup",
279
- "resolved": "ArrowMarkup | CircleMarkup",
330
+ "resolved": "ArrowMarkup | CircleMarkup | FreeformMarkup",
280
331
  "references": {
281
332
  "Markup": {
282
333
  "location": "import",
@@ -313,9 +364,12 @@ export class ViewerMarkupTool {
313
364
  }, {
314
365
  "propName": "circleTemplateId",
315
366
  "methodName": "handleCircleTemplateIdChanged"
367
+ }, {
368
+ "propName": "freeformTemplateId",
369
+ "methodName": "handleFreeformTemplateIdChanged"
316
370
  }, {
317
371
  "propName": "disabled",
318
372
  "methodName": "handleDisabledChanged"
319
373
  }]; }
320
374
  }
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1hcmt1cC10b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLW1hcmt1cC10b29sL3ZpZXdlci1tYXJrdXAtdG9vbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQWtCM0UsTUFBTSxPQUFPLGdCQUFnQjtFQUw3QjtJQXNCRTs7Ozs7T0FLRztJQUVJLFNBQUksR0FBeUIsT0FBTyxDQUFDO0lBRTVDOzs7OztPQUtHO0lBRUksYUFBUSxHQUFHLEtBQUssQ0FBQztJQWdDeEI7OztPQUdHO0lBRUssYUFBUSxHQUFhLEVBQUUsQ0FBQztJQXlKeEIsMEJBQXFCLEdBQUcsR0FBUyxFQUFFO01BQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0lBRU0sd0JBQW1CLEdBQUcsR0FBUyxFQUFFO01BQ3ZDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO01BQ3hDLElBQUksMEJBQTBCLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDN0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQztRQUVqQyxhQUFhLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUVqQyxJQUFJ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
375
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1hcmt1cC10b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLW1hcmt1cC10b29sL3ZpZXdlci1tYXJrdXAtdG9vbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekUsT0FBTyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBQ1osY0FBYyxHQUVmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFtQm5GLE1BQU0sT0FBTyxnQkFBZ0I7RUFMN0I7SUE4QkU7Ozs7O09BS0c7SUFFSSxTQUFJLEdBQXlCLE9BQU8sQ0FBQztJQUU1Qzs7Ozs7T0FLRztJQUVJLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFnQ3hCOzs7T0FHRztJQUVLLGFBQVEsR0FBYSxFQUFFLENBQUM7SUF3TXhCLDBCQUFxQixHQUFHLEdBQVMsRUFBRTtNQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQztJQUVNLHdCQUFtQixHQUFHLEdBQVMsRUFBRTtNQUN2QyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztNQUN4QyxJQUFJLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxF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
@@ -33,4 +33,4 @@ export const DistanceMeasurementRenderer = ({ startPt, endPt, centerPt, indicato
33
33
  h("slot", { name: "indicator" },
34
34
  h("div", { class: "indicator-placeholder" }))))));
35
35
  };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItbWVhc3VyZW1lbnQtZGlzdGFuY2Uvdmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlLWNvbXBvbmVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQXVCLENBQUMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpQnJELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUEwRCxDQUFDLEVBQ2pHLE9BQU8sRUFDUCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGFBQWEsRUFDYix3QkFBd0IsRUFDeEIsc0JBQXNCLEdBQ3ZCLEVBQUUsRUFBRTtFQUNILE1BQU0sS0FBSyxHQUNULE9BQU8sSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUk7SUFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUNsQyxDQUFDLENBQUMsU0FBUyxDQUFDO0VBRWhCLE1BQU0sWUFBWSxHQUNoQixLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksaUJBQWlCLElBQUksSUFBSTtJQUMzRCxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQyxTQUFTLENBQUM7RUFFaEIsTUFBTSxVQUFVLEdBQ2QsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLGlCQUFpQixJQUFJLElBQUk7SUFDekQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztFQUVoQixPQUFPLENBQ0w7SUFDRyxPQUFPLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FDbkMsc0NBQ0UsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUU7UUFDeEIscUJBQXFCLEVBQUUsZUFBZTtRQUN0QyxtQkFBbUIsRUFBRSxhQUFhO09BQ25DLENBQUMsRUFDRixLQUFLLEVBQUUsT0FBTyxFQUNkLEdBQUcsRUFBRSxLQUFLLEVBQ1YsU0FBUyxFQUFFLGFBQWEsRUFDeEIsYUFBYSxFQUFFLGlCQUFpQixHQUNoQyxDQUNIO0lBRUEsQ0FBQyxlQUFlLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxDQUN0QyxXQUNFLEVBQUUsRUFBQyxjQUFjLEVBQ2pCLEtBQUssRUFBQyxxQkFBcUIsRUFDM0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQ25ELGFBQWEsRUFBRSx3QkFBd0I7TUFFdkMsWUFBTSxJQUFJLEVBQUMsY0FBYztRQUN2QixXQUFLLEtBQUssRUFBQyxvQkFBb0IsR0FBTyxDQUNqQyxDQUNILENBQ1A7SUFFQSxDQUFDLGVBQWUsSUFBSSxZQUFZLElBQUksQ0FDbkMsV0FDRSxLQUFLLEVBQUMsaUNBQWlDLEVBQ3ZDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsRUFBRTtNQUV4RCxZQUFNLElBQUksRUFBQyxhQUFhLEdBQUcsQ0FDdkIsQ0FDUDtJQUVBLENBQUMsYUFBYSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FDbEMsV0FDRSxFQUFFLEVBQUMsWUFBWSxFQUNmLEtBQUssRUFBQyxtQkFBbUIsRUFDekIsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQ2pELGFBQWEsRUFBRSxzQkFBc0I7TUFFckMsWUFBTSxJQUFJLEVBQUMsWUFBWTtRQUNyQixXQUFLLEtBQUssRUFBQyxvQkFBb0IsR0FBTyxDQUNqQyxDQUNILENBQ1A7SUFFQSxDQUFDLGFBQWEsSUFBSSxVQUFVLElBQUksQ0FDL0IsV0FDRSxLQUFLLEVBQUMsK0JBQStCLEVBQ3JDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtNQUV0RCxZQUFNLElBQUksRUFBQyxXQUFXLEdBQUcsQ0FDckIsQ0FDUDtJQUVBLFFBQVEsSUFBSSxJQUFJLElBQUksQ0FDbkIsV0FDRSxFQUFFLEVBQUMsT0FBTyxFQUNWLEtBQUssRUFBQyxnQkFBZ0IsRUFDdEIsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFLElBRW5ELFFBQVEsQ0FDTCxDQUNQO0lBRUEsV0FBVyxJQUFJLElBQUksSUFBSSxDQUN0QixXQUNFLEtBQUssRUFBQyxXQUFXLEVBQ2pCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtNQUV2RCxZQUFNLElBQUksRUFBQyxXQUFXO1FBQ3BCLFdBQUssS0FBSyxFQUFDLHVCQUF1QixHQUFHLENBQ2hDLENBQ0gsQ0FDUCxDQUNHLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItbWVhc3VyZW1lbnQtZGlzdGFuY2Uvdmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlLWNvbXBvbmVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQXVCLENBQUMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpQnJELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUN0QyxDQUFDLEVBQ0MsT0FBTyxFQUNQLEtBQUssRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsYUFBYSxFQUNiLHdCQUF3QixFQUN4QixzQkFBc0IsR0FDdkIsRUFBRSxFQUFFO0VBQ0gsTUFBTSxLQUFLLEdBQ1QsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSTtJQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUM7RUFFaEIsTUFBTSxZQUFZLEdBQ2hCLEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxpQkFBaUIsSUFBSSxJQUFJO0lBQzNELENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQs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