@vertexvis/viewer 0.12.0 → 0.13.0-canary.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 (225) hide show
  1. package/dist/cjs/{config-acd7cea9.js → config-90ee43d5.js} +1 -1
  2. package/dist/cjs/{cursors-399a9648.js → cursors-ad2fd395.js} +7 -0
  3. package/dist/cjs/{controller-8cbcdd8d.js → entities-aa59890e.js} +57 -22
  4. package/dist/cjs/{index-cc65325e.js → index-e100709a.js} +64 -3
  5. package/dist/cjs/index.cjs.js +21 -11
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/{model-18ef3363.js → mapper-f6e6cafe.js} +37 -191
  8. package/dist/cjs/model-4ec0c36e.js +134 -0
  9. package/dist/cjs/overlays-8a582edf.js +76 -0
  10. package/dist/cjs/results-bc325974.js +24 -0
  11. package/dist/cjs/{scene-ffee07ee.js → scene-f4040800.js} +1 -1
  12. package/dist/cjs/{stencil-bd453a38.js → stencil-a664cd10.js} +1 -1
  13. package/dist/cjs/{streamAttributes-9d6226ac.js → streamAttributes-d6236448.js} +87 -30
  14. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +2 -2
  15. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  16. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  17. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  18. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +1 -1
  19. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  20. package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -3
  21. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
  22. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  23. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
  24. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +1 -1
  25. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  26. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +1 -1
  27. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +1 -1
  28. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
  29. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +221 -75
  30. package/dist/cjs/{vertex-viewer-measurement-distance_2.cjs.entry.js → vertex-viewer-measurement-distance.cjs.entry.js} +30 -69
  31. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +170 -0
  32. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +163 -55
  33. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +2 -2
  34. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +33 -4
  35. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +4 -4
  36. package/dist/cjs/vertex-viewer.cjs.entry.js +58 -10
  37. package/dist/cjs/viewer.cjs.js +2 -2
  38. package/dist/cjs/{viewport-51aa05ab.js → viewport-8c39089f.js} +11 -0
  39. package/dist/collection/collection-manifest.json +1 -0
  40. package/dist/collection/components/viewer/viewer.js +2 -2
  41. package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +2 -2
  42. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-entry.js +14 -0
  43. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +22 -0
  44. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.css +3 -10
  45. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.js +125 -188
  46. package/dist/collection/components/viewer-measurement-distance/interactions.js +3 -14
  47. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +41 -1
  48. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays-components.js +30 -0
  49. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.css +51 -0
  50. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +149 -0
  51. package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js +118 -26
  52. package/dist/collection/components/viewer-measurements/viewer-measurements.js +67 -2
  53. package/dist/collection/components/viewer-view-cube/viewer-view-cube.css +21 -3
  54. package/dist/collection/index.js +2 -2
  55. package/dist/collection/lib/cursors.js +7 -1
  56. package/dist/collection/lib/elementRectObserver.js +19 -0
  57. package/dist/collection/lib/interactions/interactionApi.js +53 -4
  58. package/dist/collection/lib/mappers/frameStreaming.js +2 -4
  59. package/dist/collection/lib/measurement/controller.js +21 -17
  60. package/dist/collection/lib/measurement/entities.js +34 -0
  61. package/dist/collection/lib/measurement/index.js +4 -2
  62. package/dist/collection/lib/measurement/interactions.js +74 -28
  63. package/dist/collection/lib/measurement/mapper.js +5 -5
  64. package/dist/collection/lib/measurement/model.js +24 -85
  65. package/dist/collection/lib/measurement/outcomes.js +2 -0
  66. package/dist/collection/lib/measurement/overlays.js +69 -0
  67. package/dist/collection/lib/measurement/results.js +17 -0
  68. package/dist/collection/lib/types/entities.js +5 -1
  69. package/dist/collection/lib/types/featureMap.js +14 -5
  70. package/dist/collection/lib/types/frame.js +3 -3
  71. package/dist/collection/lib/types/measurementUnits.js +7 -7
  72. package/dist/collection/lib/types/viewport.js +12 -1
  73. package/dist/collection/testing/eventually.js +30 -0
  74. package/dist/collection/testing/fixtures.js +11 -4
  75. package/dist/collection/testing/index.js +2 -1
  76. package/dist/custom-elements/index.d.ts +6 -0
  77. package/dist/custom-elements/index.js +851 -287
  78. package/dist/esm/{browser.esm-e6827921.js → browser.esm-59e914f6.js} +1 -1
  79. package/dist/esm/{bundle.esm-8f14ac60.js → bundle.esm-d899b2d5.js} +1 -1
  80. package/dist/esm/{config-a200c227.js → config-604c644e.js} +2 -2
  81. package/dist/esm/{cursors-5157d29d.js → cursors-a7ec4adb.js} +8 -2
  82. package/dist/esm/{dom-2d6a1e1e.js → dom-780d25be.js} +1 -1
  83. package/dist/esm/{controller-a756cf9c.js → entities-759d97cd.js} +52 -18
  84. package/dist/esm/{index-f0053642.js → index-10c1495a.js} +64 -3
  85. package/dist/esm/index.js +13 -11
  86. package/dist/esm/index.mjs +13 -11
  87. package/dist/esm/loader.js +2 -2
  88. package/dist/esm/loader.mjs +2 -2
  89. package/dist/esm/{model-f711a825.js → mapper-4b815e31.js} +37 -190
  90. package/dist/esm/{markup-e46623b3.js → markup-1d177b4a.js} +2 -2
  91. package/dist/esm/{measurement-702d6b8c.js → measurement-12cdbf5c.js} +2 -2
  92. package/dist/esm/model-e5a4f00f.js +132 -0
  93. package/dist/esm/overlays-dbe5d652.js +74 -0
  94. package/dist/esm/{png-decoder-59a0e9c2.js → png-decoder-3f1fa486.js} +1 -1
  95. package/dist/esm/results-994bdb50.js +22 -0
  96. package/dist/esm/{scene-16490983.js → scene-9ac8a484.js} +3 -3
  97. package/dist/esm/{stencil-7d04d41a.js → stencil-9bf7fb9e.js} +1 -1
  98. package/dist/esm/{streamAttributes-7aa486b2.js → streamAttributes-d623bb60.js} +77 -20
  99. package/dist/esm/{utils-8070900a.js → utils-01e4f587.js} +1 -1
  100. package/dist/esm/{utils-953a1619.js → utils-5e57bf24.js} +1 -1
  101. package/dist/esm/vertex-scene-tree-search_3.entry.js +3 -3
  102. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  103. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  104. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  105. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +1 -1
  106. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  107. package/dist/esm/vertex-scene-tree.entry.js +5 -5
  108. package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
  109. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  110. package/dist/esm/vertex-viewer-dom-element_3.entry.js +6 -6
  111. package/dist/esm/vertex-viewer-icon.entry.js +1 -1
  112. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  113. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +4 -4
  114. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  115. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  116. package/dist/esm/vertex-viewer-measurement-details.entry.js +221 -75
  117. package/dist/esm/{vertex-viewer-measurement-distance_2.entry.js → vertex-viewer-measurement-distance.entry.js} +35 -73
  118. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +165 -0
  119. package/dist/esm/vertex-viewer-measurement-precise.entry.js +160 -52
  120. package/dist/esm/vertex-viewer-measurement-tool.entry.js +6 -6
  121. package/dist/esm/vertex-viewer-measurements.entry.js +36 -7
  122. package/dist/esm/vertex-viewer-view-cube.entry.js +6 -6
  123. package/dist/esm/vertex-viewer.entry.js +61 -13
  124. package/dist/esm/viewer.js +2 -2
  125. package/dist/esm/{viewport-bb7c46d9.js → viewport-01c886ea.js} +12 -1
  126. package/dist/types/components/viewer-dom-renderer/viewer-dom-renderer.d.ts +1 -1
  127. package/dist/types/components/viewer-measurement-details/viewer-measurement-details-entry.d.ts +8 -0
  128. package/dist/types/components/viewer-measurement-details/viewer-measurement-details-results.d.ts +15 -0
  129. package/dist/types/components/viewer-measurement-details/viewer-measurement-details.d.ts +44 -42
  130. package/dist/types/components/viewer-measurement-distance/interactions.d.ts +23 -1
  131. package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +8 -0
  132. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays-components.d.ts +10 -0
  133. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays.d.ts +41 -0
  134. package/dist/types/components/viewer-measurement-precise/viewer-measurement-precise.d.ts +62 -6
  135. package/dist/types/components/viewer-measurements/viewer-measurements.d.ts +12 -0
  136. package/dist/types/components.d.ts +103 -40
  137. package/dist/types/index.d.ts +1 -1
  138. package/dist/types/lib/cursors.d.ts +5 -0
  139. package/dist/types/lib/elementRectObserver.d.ts +8 -0
  140. package/dist/types/lib/interactions/interactionApi.d.ts +32 -5
  141. package/dist/types/lib/measurement/controller.d.ts +8 -7
  142. package/dist/types/lib/measurement/entities.d.ts +10 -0
  143. package/dist/types/lib/measurement/index.d.ts +3 -1
  144. package/dist/types/lib/measurement/interactions.d.ts +19 -5
  145. package/dist/types/lib/measurement/mapper.d.ts +1 -1
  146. package/dist/types/lib/measurement/model.d.ts +18 -153
  147. package/dist/types/lib/measurement/outcomes.d.ts +8 -0
  148. package/dist/types/lib/measurement/overlays.d.ts +38 -0
  149. package/dist/types/lib/measurement/results.d.ts +90 -0
  150. package/dist/types/lib/types/entities.d.ts +5 -1
  151. package/dist/types/lib/types/featureMap.d.ts +2 -2
  152. package/dist/types/lib/types/measurementUnits.d.ts +1 -1
  153. package/dist/types/lib/types/viewport.d.ts +9 -1
  154. package/dist/types/testing/eventually.d.ts +15 -0
  155. package/dist/types/testing/fixtures.d.ts +2 -2
  156. package/dist/types/testing/index.d.ts +1 -0
  157. package/dist/viewer/index.esm.js +1 -1
  158. package/dist/viewer/p-081e6873.js +4 -0
  159. package/dist/viewer/{p-5d82c131.entry.js → p-099fe6ca.entry.js} +1 -1
  160. package/dist/viewer/{p-784914e4.js → p-0aba71fd.js} +1 -1
  161. package/dist/viewer/p-0aeab3fc.js +4 -0
  162. package/dist/viewer/p-0eb195dd.entry.js +4 -0
  163. package/dist/viewer/p-1a7df99a.entry.js +4 -0
  164. package/dist/viewer/{p-f70d8def.js → p-301660cf.js} +1 -1
  165. package/dist/viewer/{p-a0e49d10.entry.js → p-31658489.entry.js} +1 -1
  166. package/dist/viewer/{p-95f3a81c.entry.js → p-353cfc7a.entry.js} +1 -1
  167. package/dist/viewer/p-364ce21c.js +4 -0
  168. package/dist/viewer/{p-a5a0bf86.js → p-3f6ac74f.js} +1 -1
  169. package/dist/viewer/p-423410be.js +4 -0
  170. package/dist/viewer/{p-6f71f0f2.js → p-439220c6.js} +1 -1
  171. package/dist/viewer/{p-e84ed098.entry.js → p-46459921.entry.js} +1 -1
  172. package/dist/viewer/{p-c23a8b34.entry.js → p-4717c98e.entry.js} +1 -1
  173. package/dist/viewer/p-4985fad5.js +4 -0
  174. package/dist/viewer/{p-ba393340.entry.js → p-61b1097b.entry.js} +1 -1
  175. package/dist/viewer/{p-011eecd5.entry.js → p-6370098c.entry.js} +1 -1
  176. package/dist/viewer/p-67446e35.js +4 -0
  177. package/dist/viewer/p-7006fd4e.entry.js +4 -0
  178. package/dist/viewer/{p-a20e4ea1.entry.js → p-70ca1ea7.entry.js} +1 -1
  179. package/dist/viewer/p-76ec0245.js +4 -0
  180. package/dist/viewer/p-7cad9bf4.js +4 -0
  181. package/dist/viewer/p-7f25dcb5.entry.js +4 -0
  182. package/dist/viewer/{p-ca6bbe53.entry.js → p-8decee06.entry.js} +1 -1
  183. package/dist/viewer/{p-b7ffa306.entry.js → p-915d95ad.entry.js} +1 -1
  184. package/dist/viewer/{p-4485ac6d.js → p-a0df0e0c.js} +1 -1
  185. package/dist/viewer/{p-cc9888be.entry.js → p-a455ae02.entry.js} +1 -1
  186. package/dist/viewer/{p-a6a8026f.js → p-acf22d3e.js} +1 -1
  187. package/dist/viewer/{p-653aca1b.entry.js → p-b2b48a42.entry.js} +1 -1
  188. package/dist/viewer/p-bc9b1e67.entry.js +4 -0
  189. package/dist/viewer/p-c458f191.entry.js +32 -0
  190. package/dist/viewer/p-cafa57a6.js +4 -0
  191. package/dist/viewer/p-d00e9203.js +4 -0
  192. package/dist/viewer/{p-3e96bd62.entry.js → p-d2bcf788.entry.js} +1 -1
  193. package/dist/viewer/p-d90f2f6d.entry.js +4 -0
  194. package/dist/viewer/p-da2f4a56.js +4 -0
  195. package/dist/viewer/{p-5a2e34e1.entry.js → p-e07377fa.entry.js} +1 -1
  196. package/dist/viewer/{p-40800e8d.entry.js → p-f755af5a.entry.js} +1 -1
  197. package/dist/viewer/p-f7cb7e59.js +4 -0
  198. package/dist/viewer/p-fad9693e.js +4 -0
  199. package/dist/viewer/p-fe11d694.js +4 -0
  200. package/dist/viewer/{p-b92a3ac2.entry.js → p-fec1a8d0.entry.js} +1 -1
  201. package/dist/viewer/viewer.css +1 -1
  202. package/dist/viewer/viewer.esm.js +1 -1
  203. package/package.json +11 -10
  204. package/dist/cjs/summary-7bbdb4c9.js +0 -45
  205. package/dist/collection/lib/measurement/summary.js +0 -38
  206. package/dist/esm/summary-0a3d0bf9.js +0 -43
  207. package/dist/types/lib/measurement/summary.d.ts +0 -11
  208. package/dist/viewer/p-03e482ff.js +0 -4
  209. package/dist/viewer/p-0c052bc8.entry.js +0 -4
  210. package/dist/viewer/p-148cd792.js +0 -4
  211. package/dist/viewer/p-26d99e2d.entry.js +0 -4
  212. package/dist/viewer/p-38eeacc5.js +0 -4
  213. package/dist/viewer/p-39d1720c.js +0 -4
  214. package/dist/viewer/p-5dc17b8b.js +0 -4
  215. package/dist/viewer/p-5fea3491.js +0 -4
  216. package/dist/viewer/p-6b700561.entry.js +0 -4
  217. package/dist/viewer/p-6cd7a6e0.js +0 -4
  218. package/dist/viewer/p-75337d0b.js +0 -4
  219. package/dist/viewer/p-b83cc8a9.js +0 -4
  220. package/dist/viewer/p-d2a9e047.js +0 -4
  221. package/dist/viewer/p-d40bd835.entry.js +0 -4
  222. package/dist/viewer/p-e10b1526.js +0 -4
  223. package/dist/viewer/p-ec8a1a68.entry.js +0 -4
  224. package/dist/viewer/p-f4a8c901.js +0 -4
  225. package/dist/viewer/p-f77dde26.entry.js +0 -4
@@ -3,6 +3,7 @@ import { Line3, Vector3 } from '@vertexvis/geometry';
3
3
  import { MEASUREMENT_LINE_CAP_LENGTH, MEASUREMENT_SNAP_DISTANCE, } from '../../lib/constants';
4
4
  import { measurementCursor } from '../../lib/cursors';
5
5
  import { getMouseClientPosition } from '../../lib/dom';
6
+ import { MeasurementOverlayManager, } from '../../lib/measurement';
6
7
  import { DistanceUnits, Viewport, } from '../../lib/types';
7
8
  import { getMeasurementBoundingClientRect } from './dom';
8
9
  import { PointToPointHitTester } from './hitTest';
@@ -26,6 +27,11 @@ import { DistanceMeasurementRenderer } from './viewer-measurement-distance-compo
26
27
  */
27
28
  export class ViewerMeasurementDistance {
28
29
  constructor() {
30
+ /**
31
+ * Enables the display of axis reference lines between the start and end
32
+ * point.
33
+ */
34
+ this.showAxisReferenceLines = false;
29
35
  /**
30
36
  * The distance, in pixels, between the mouse and nearest snappable edge. A
31
37
  * value of 0 disables snapping.
@@ -70,6 +76,7 @@ export class ViewerMeasurementDistance {
70
76
  this.stateMap = {};
71
77
  this.model = PointToPointInteractionModel.empty();
72
78
  this.controller = new PointToPointInteractionController(this.model);
79
+ this.overlays = new MeasurementOverlayManager();
73
80
  this.measurementUnits = new DistanceUnits(this.units);
74
81
  this.isUserInteractingWithModel = false;
75
82
  this.handleFrameDrawn = () => {
@@ -229,16 +236,19 @@ export class ViewerMeasurementDistance {
229
236
  const distance = this.formatDistance(this.distance);
230
237
  if (this.mode === 'edit') {
231
238
  return (h(Host, null,
239
+ this.showAxisReferenceLines && (h("vertex-viewer-measurement-overlays", { measurementOverlays: this.overlays, viewer: this.viewer })),
232
240
  h("div", { class: "measurement" },
233
241
  h(DistanceMeasurementRenderer, { startPt: startPt, endPt: endPt, centerPt: labelPt, indicatorPt: indicatorPt, distance: distance, anchorLabelOffset: this.anchorLabelOffset, lineCapLength: this.lineCapLength, hideStartAnchor: hideStart, hideEndAnchor: hideEnd, onStartAnchorPointerDown: this.handleEditAnchor('start'), onEndAnchorPointerDown: this.handleEditAnchor('end') }))));
234
242
  }
235
243
  else if (this.mode === 'replace') {
236
244
  return (h(Host, null,
245
+ this.showAxisReferenceLines && (h("vertex-viewer-measurement-overlays", { measurementOverlays: this.overlays, viewer: this.viewer })),
237
246
  h("div", { class: "measurement" },
238
247
  h(DistanceMeasurementRenderer, { startPt: startPt, endPt: endPt, centerPt: labelPt, indicatorPt: indicatorPt, distance: distance, hideStartAnchor: hideStart, hideEndAnchor: hideEnd, anchorLabelOffset: this.anchorLabelOffset, lineCapLength: this.lineCapLength }))));
239
248
  }
240
249
  else {
241
250
  return (h(Host, null,
251
+ this.showAxisReferenceLines && (h("vertex-viewer-measurement-overlays", { measurementOverlays: this.overlays, viewer: this.viewer })),
242
252
  h("div", { class: "measurement" },
243
253
  h(DistanceMeasurementRenderer, { startPt: startPt, endPt: endPt, centerPt: labelPt, indicatorPt: this.indicatorPt, distance: distance, hideStartAnchor: hideStart, hideEndAnchor: hideEnd, anchorLabelOffset: this.anchorLabelOffset, lineCapLength: this.lineCapLength, linePointerEvents: "painted" }))));
244
254
  }
@@ -287,6 +297,18 @@ export class ViewerMeasurementDistance {
287
297
  this.updateCamera();
288
298
  this.updateDepthBuffer();
289
299
  this.updateMeasurementPropsFromModel();
300
+ this.updateOverlays();
301
+ }
302
+ updateOverlays() {
303
+ var _a;
304
+ (_a = this.overlay) === null || _a === void 0 ? void 0 : _a.dispose();
305
+ if (this.showAxisReferenceLines &&
306
+ this.interactionCount === 0 &&
307
+ !this.invalid &&
308
+ this.start != null &&
309
+ this.end != null) {
310
+ this.overlay = this.overlays.addDistanceVector(this.start, this.end);
311
+ }
290
312
  }
291
313
  async setCursor(cursor) {
292
314
  var _a, _b;
@@ -604,6 +626,24 @@ export class ViewerMeasurementDistance {
604
626
  "attribute": "distance",
605
627
  "reflect": false
606
628
  },
629
+ "showAxisReferenceLines": {
630
+ "type": "boolean",
631
+ "mutable": false,
632
+ "complexType": {
633
+ "original": "boolean",
634
+ "resolved": "boolean",
635
+ "references": {}
636
+ },
637
+ "required": false,
638
+ "optional": false,
639
+ "docs": {
640
+ "tags": [],
641
+ "text": "Enables the display of axis reference lines between the start and end\npoint."
642
+ },
643
+ "attribute": "show-axis-reference-lines",
644
+ "reflect": false,
645
+ "defaultValue": "false"
646
+ },
607
647
  "snapDistance": {
608
648
  "type": "number",
609
649
  "mutable": false,
@@ -955,4 +995,4 @@ export class ViewerMeasurementDistance {
955
995
  function parseVector3(value) {
956
996
  return typeof value === 'string' ? Vector3.fromJson(value) : value;
957
997
  }
958
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlL3ZpZXdlci1tZWFzdXJlbWVudC1kaXN0YW5jZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osTUFBTSxFQUNOLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQWtCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3JFLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IseUJBQXlCLEdBQzFCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFFTCxhQUFhLEVBSWIsUUFBUSxHQUNULE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBR0wsaUNBQWlDLEVBQ2pDLDRCQUE0QixHQUM3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFFTCwwQkFBMEIsRUFFMUIsMEJBQTBCLEdBQzNCLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBNkJ2Rjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7RUFMdEM7SUE4Q0U7OztPQUdHO0lBRUksaUJBQVksR0FBVyx5QkFBeUIs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
998
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlL3ZpZXdlci1tZWFzdXJlbWVudC1kaXN0YW5jZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osTUFBTSxFQUNOLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQWtCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3JFLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IseUJBQXlCLEdBQzFCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFFTCx5QkFBeUIsR0FDMUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBRUwsYUFBYSxFQUliLFFBQVEsR0FDVCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUdMLGlDQUFpQyxFQUNqQyw0QkFBNEIsR0FDN0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUwsMEJBQTBCLEVBRTFCLDBCQUEwQixHQUMzQixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQTZCdkY7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFNSCxNQUFNLE9BQU8seUJB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
@@ -0,0 +1,30 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ import { Fragment, h } from '@stencil/core';
3
+ export const MeasurementOverlayView = ({ overlay, viewport, camera }) => {
4
+ if (overlay.type === 'line') {
5
+ return (h(LineOverlayView, { overlay: overlay, viewport: viewport, camera: camera }));
6
+ }
7
+ else {
8
+ return (h(DistanceVectorOverlayView, { overlay: overlay, viewport: viewport, camera: camera }));
9
+ }
10
+ };
11
+ const LineOverlayView = ({ overlay: { start, end }, camera, viewport }) => {
12
+ const m = camera.projectionViewMatrix;
13
+ const sw = viewport.transformWorldToViewport(start, m);
14
+ const ew = viewport.transformWorldToViewport(end, m);
15
+ return (h("vertex-viewer-measurement-line", { class: "measurement-line", start: sw, end: ew }));
16
+ };
17
+ const DistanceVectorOverlayView = ({ overlay: { x, y, z }, camera, viewport }) => {
18
+ const m = camera.projectionViewMatrix;
19
+ const xs = viewport.transformWorldToViewport(x.start, m);
20
+ const xe = viewport.transformWorldToViewport(x.end, m);
21
+ const ys = viewport.transformWorldToViewport(y.start, m);
22
+ const ye = viewport.transformWorldToViewport(y.end, m);
23
+ const zs = viewport.transformWorldToViewport(z.start, m);
24
+ const ze = viewport.transformWorldToViewport(z.end, m);
25
+ return (h(Fragment, null,
26
+ h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-x", start: xs, end: xe }),
27
+ h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-y", start: ys, end: ye }),
28
+ h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-z", start: zs, end: ze })));
29
+ };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LW92ZXJsYXlzLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItbWVhc3VyZW1lbnQtb3ZlcmxheXMvdmlld2VyLW1lYXN1cmVtZW50LW92ZXJsYXlzLWNvbXBvbmVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUF1QixDQUFDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFlakUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBRS9CLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7RUFDcEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtJQUMzQixPQUFPLENBQ0wsRUFBQyxlQUFlLElBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUksQ0FDMUUsQ0FBQztHQUNIO09BQU07SUFDTCxPQUFPLENBQ0wsRUFBQyx5QkFBeUIsSUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDZCxDQUNILENBQUM7R0FDSDtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUVqQixDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0VBQ3BELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztFQUV0QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ3ZELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFFckQsT0FBTyxDQUNMLHNDQUNFLEtBQUssRUFBQyxrQkFBa0IsRUFDeEIsS0FBSyxFQUFFLEVBQUUsRUFDVCxHQUFHLEVBQUUsRUFBRSxHQUNQLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBRTNCLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0VBQ2pELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztFQUV0QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztFQUN6RCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUN2RCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztFQUN6RCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUN2RCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztFQUN6RCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUV2RCxPQUFPLENBQ0wsRUFBQyxRQUFRO0lBQ1Asc0NBQ0UsS0FBSyxFQUFDLG9DQUFvQyxFQUMxQyxLQUFLLEVBQUUsRUFBRSxFQUNULEdBQUcsRUFBRSxFQUFFLEdBQ1A7SUFDRixzQ0FDRSxLQUFLLEVBQUMsb0NBQW9DLEVBQzFDLEtBQUssRUFBRSxFQUFFLEVBQ1QsR0FBRyxFQUFFLEVBQUUsR0FDUDtJQUNGLHNDQUNFLEtBQUssRUFBQyxvQ0FBb0MsRUFDMUMsS0FBSyxFQUFFLEVBQUUsRUFDVCxHQUFHLEVBQUUsRUFBRSxHQUNQLENBQ08sQ0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
@@ -0,0 +1,51 @@
1
+ :host {
2
+ display: block;
3
+ position: absolute;
4
+ top: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ right: 0;
8
+ pointer-events: none;
9
+
10
+ /**
11
+ * @prop --viewer-measurement-overlays-x-axis-color: A CSS color for overlays
12
+ * representing the X axis.
13
+ */
14
+ --viewer-measurement-overlays-x-axis-color: var(--x-axis-color);
15
+
16
+ /**
17
+ * @prop --viewer-measurement-overlays-y-axis-color: A CSS color for overlays
18
+ * representing the Y axis.
19
+ */
20
+ --viewer-measurement-overlays-y-axis-color: var(--y-axis-color);
21
+
22
+ /**
23
+ * @prop --viewer-measurement-overlays-z-axis-color: A CSS color for overlays
24
+ * representing the Z axis.
25
+ */
26
+ --viewer-measurement-overlays-z-axis-color: var(--z-axis-color);
27
+ }
28
+
29
+ .measurement-line {
30
+ position: absolute;
31
+ width: 100%;
32
+ height: 100%;
33
+ }
34
+
35
+ .measurement-line.distance-vector-x {
36
+ --viewer-measurement-line-fill: var(
37
+ --viewer-measurement-overlays-x-axis-color
38
+ );
39
+ }
40
+
41
+ .measurement-line.distance-vector-y {
42
+ --viewer-measurement-line-fill: var(
43
+ --viewer-measurement-overlays-y-axis-color
44
+ );
45
+ }
46
+
47
+ .measurement-line.distance-vector-z {
48
+ --viewer-measurement-line-fill: var(
49
+ --viewer-measurement-overlays-z-axis-color
50
+ );
51
+ }
@@ -0,0 +1,149 @@
1
+ /* eslint-disable @typescript-eslint/member-ordering */
2
+ import { Component, h, Host, Prop, State, Watch } from '@stencil/core';
3
+ import { MeasurementOverlayManager, } from '../../lib/measurement';
4
+ import { MeasurementOverlayView } from './viewer-measurement-overlays-components';
5
+ export class ViewerMeasurementOverlays {
6
+ constructor() {
7
+ /**
8
+ * The model that contains the overlays to present.
9
+ */
10
+ this.measurementOverlays = new MeasurementOverlayManager();
11
+ this.overlays = [];
12
+ this.updateCamera = () => {
13
+ var _a, _b;
14
+ this.camera = (_b = (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.frame) === null || _b === void 0 ? void 0 : _b.scene.camera;
15
+ };
16
+ }
17
+ /**
18
+ * @ignore
19
+ */
20
+ handleMeasurementOverlaysChanged() {
21
+ this.removeModelListeners();
22
+ this.addModelListeners();
23
+ this.updateOverlays();
24
+ }
25
+ /**
26
+ * @ignore
27
+ */
28
+ handleViewerChanged(newViewer, oldViewer) {
29
+ this.removeViewerListeners(oldViewer);
30
+ this.addViewerListeners();
31
+ this.updateCamera();
32
+ }
33
+ /**
34
+ * @ignore
35
+ */
36
+ componentWillLoad() {
37
+ this.addModelListeners();
38
+ this.addViewerListeners();
39
+ this.updateOverlays();
40
+ this.updateCamera();
41
+ }
42
+ addModelListeners() {
43
+ this.onOverlaysChangedListener = this.measurementOverlays.onOverlaysChanged(() => this.updateOverlays());
44
+ }
45
+ removeModelListeners() {
46
+ var _a;
47
+ (_a = this.onOverlaysChangedListener) === null || _a === void 0 ? void 0 : _a.dispose();
48
+ this.onOverlaysChangedListener = undefined;
49
+ }
50
+ addViewerListeners() {
51
+ var _a;
52
+ (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.addEventListener('frameReceived', this.updateCamera);
53
+ }
54
+ removeViewerListeners(viewer) {
55
+ viewer === null || viewer === void 0 ? void 0 : viewer.removeEventListener('frameReceived', this.updateCamera);
56
+ }
57
+ updateOverlays() {
58
+ this.overlays = this.measurementOverlays.getOverlays();
59
+ }
60
+ /**
61
+ * @ignore
62
+ */
63
+ render() {
64
+ return (h(Host, null, this.overlays.map((overlay) => {
65
+ if (this.camera != null && this.viewer != null) {
66
+ return (h(MeasurementOverlayView, { overlay: overlay, viewport: this.viewer.viewport, camera: this.camera }));
67
+ }
68
+ })));
69
+ }
70
+ static get is() { return "vertex-viewer-measurement-overlays"; }
71
+ static get encapsulation() { return "shadow"; }
72
+ static get originalStyleUrls() { return {
73
+ "$": ["viewer-measurement-overlays.css"]
74
+ }; }
75
+ static get styleUrls() { return {
76
+ "$": ["viewer-measurement-overlays.css"]
77
+ }; }
78
+ static get properties() { return {
79
+ "measurementOverlays": {
80
+ "type": "unknown",
81
+ "mutable": false,
82
+ "complexType": {
83
+ "original": "MeasurementOverlayManager",
84
+ "resolved": "MeasurementOverlayManager",
85
+ "references": {}
86
+ },
87
+ "required": false,
88
+ "optional": false,
89
+ "docs": {
90
+ "tags": [],
91
+ "text": "The model that contains the overlays to present."
92
+ },
93
+ "defaultValue": "new MeasurementOverlayManager()"
94
+ },
95
+ "camera": {
96
+ "type": "unknown",
97
+ "mutable": true,
98
+ "complexType": {
99
+ "original": "FramePerspectiveCamera",
100
+ "resolved": "FramePerspectiveCamera | undefined",
101
+ "references": {
102
+ "FramePerspectiveCamera": {
103
+ "location": "import",
104
+ "path": "../../lib/types"
105
+ }
106
+ }
107
+ },
108
+ "required": false,
109
+ "optional": true,
110
+ "docs": {
111
+ "tags": [{
112
+ "name": "internal",
113
+ "text": undefined
114
+ }],
115
+ "text": ""
116
+ }
117
+ },
118
+ "viewer": {
119
+ "type": "unknown",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "HTMLVertexViewerElement",
123
+ "resolved": "HTMLVertexViewerElement | undefined",
124
+ "references": {
125
+ "HTMLVertexViewerElement": {
126
+ "location": "global"
127
+ }
128
+ }
129
+ },
130
+ "required": false,
131
+ "optional": true,
132
+ "docs": {
133
+ "tags": [],
134
+ "text": "The viewer that this component is bound to."
135
+ }
136
+ }
137
+ }; }
138
+ static get states() { return {
139
+ "overlays": {}
140
+ }; }
141
+ static get watchers() { return [{
142
+ "propName": "measurementOverlays",
143
+ "methodName": "handleMeasurementOverlaysChanged"
144
+ }, {
145
+ "propName": "viewer",
146
+ "methodName": "handleViewerChanged"
147
+ }]; }
148
+ }
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LW92ZXJsYXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLW1lYXN1cmVtZW50LW92ZXJsYXlzL3ZpZXdlci1tZWFzdXJlbWVudC1vdmVybGF5cy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFPbEYsTUFBTSxPQUFPLHlCQUF5QjtFQUx0QztJQU1FOztPQUVHO0lBRUksd0JBQW1CLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO0lBMENyRCxhQUFRLEdBQXlCLEVBQUUsQ0FBQztJQWdDcEMsaUJBQVksR0FBRyxHQUFTLEVBQUU7O01BQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssMENBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDLENBQUM7R0EwQkg7RUFsR0M7O0tBRUc7RUFFTyxnQ0FBZ0M7SUFDeEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFFekIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0VBQ3hCLENBQUM7RUFjRDs7S0FFRztFQUVPLG1CQUFtQixDQUMzQixTQUFtQyxFQUNuQyxTQUFtQztJQUVuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFFMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0VBQ3RCLENBQUM7RUFLRDs7S0FFRztFQUNPLGlCQUFpQjtJQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUUxQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0VBQ3RCLENBQUM7RUFFTyxpQkFBaUI7SUFDdkIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FDekUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUM1QixDQUFDO0VBQ0osQ0FBQztFQUVPLG9CQUFvQjs7SUFDMUIsTUFBQSxJQUFJLENBQUMseUJBQXlCLDBDQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxTQUFTLENBQUM7RUFDN0MsQ0FBQztFQUVPLGtCQUFrQjs7SUFDeEIsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0VBQ3BFLENBQUM7RUFFTyxxQkFBcUIsQ0FBQyxNQUFnQztJQUM1RCxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsbUJBQW1CLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztFQUNsRSxDQUFDO0VBTU8sY0FBYztJQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztFQUN6RCxDQUFDO0VBRUQ7O0tBRUc7RUFDTyxNQUFNO0lBQ2QsT0FBTyxDQUNMLEVBQUMsSUFBSSxRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7TUFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtRQUM5QyxPQUFPLENBQ0wsRUFBQyxzQkFBc0IsSUFDckIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FDbkIsQ0FDSCxDQUFDO09BQ0g7SUFDSCxDQUFDLENBQUMsQ0FDRyxDQUNSLENBQUM7RUFDSixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQ0YifQ==