@vertexvis/viewer 0.18.1 → 0.18.2-testing.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 (226) hide show
  1. package/dist/components/_commonjsHelpers.js +41 -0
  2. package/dist/components/_commonjsHelpers.js.map +1 -0
  3. package/dist/components/browser.esm.js +3173 -0
  4. package/dist/components/browser.esm.js.map +1 -0
  5. package/dist/components/bundle.esm.js +2250 -0
  6. package/dist/components/bundle.esm.js.map +1 -0
  7. package/dist/components/bundle.esm2.js +39740 -0
  8. package/dist/components/bundle.esm2.js.map +1 -0
  9. package/dist/components/config.js +81 -0
  10. package/dist/components/config.js.map +1 -0
  11. package/dist/components/controller.js +7627 -0
  12. package/dist/components/controller.js.map +1 -0
  13. package/dist/components/controller2.js +124 -0
  14. package/dist/components/controller2.js.map +1 -0
  15. package/dist/components/controller3.js +111 -0
  16. package/dist/components/controller3.js.map +1 -0
  17. package/dist/components/cursors.js +110 -0
  18. package/dist/components/cursors.js.map +1 -0
  19. package/dist/components/dom.js +43 -0
  20. package/dist/components/dom.js.map +1 -0
  21. package/dist/components/dom2.js +10 -0
  22. package/dist/components/dom2.js.map +1 -0
  23. package/dist/components/elementRectObserver.js +25 -0
  24. package/dist/components/elementRectObserver.js.map +1 -0
  25. package/dist/components/entities.js +179 -0
  26. package/dist/components/entities.js.map +1 -0
  27. package/dist/components/errors.js +80 -0
  28. package/dist/components/errors.js.map +1 -0
  29. package/dist/components/events.js +11 -0
  30. package/dist/components/events.js.map +1 -0
  31. package/dist/components/index.d.ts +26 -0
  32. package/dist/components/index.js +365 -0
  33. package/dist/components/index.js.map +1 -0
  34. package/dist/components/index2.js +63 -0
  35. package/dist/components/index2.js.map +1 -0
  36. package/dist/components/interactions.js +236 -0
  37. package/dist/components/interactions.js.map +1 -0
  38. package/dist/components/mapper.js +9811 -0
  39. package/dist/components/mapper.js.map +1 -0
  40. package/dist/components/markup.js +33 -0
  41. package/dist/components/markup.js.map +1 -0
  42. package/dist/components/model.js +134 -0
  43. package/dist/components/model.js.map +1 -0
  44. package/dist/components/model2.js +157 -0
  45. package/dist/components/model2.js.map +1 -0
  46. package/dist/components/overlays.js +76 -0
  47. package/dist/components/overlays.js.map +1 -0
  48. package/dist/components/png-decoder.js +2405 -0
  49. package/dist/components/png-decoder.js.map +1 -0
  50. package/dist/components/regl-component.js +12582 -0
  51. package/dist/components/regl-component.js.map +1 -0
  52. package/dist/components/results.js +24 -0
  53. package/dist/components/results.js.map +1 -0
  54. package/dist/components/row.js +32 -0
  55. package/dist/components/row.js.map +1 -0
  56. package/dist/components/scene-tree-search.js +146 -0
  57. package/dist/components/scene-tree-search.js.map +1 -0
  58. package/dist/components/scene-tree-table-layout.js +928 -0
  59. package/dist/components/scene-tree-table-layout.js.map +1 -0
  60. package/dist/components/scene-tree-toolbar.js +35 -0
  61. package/dist/components/scene-tree-toolbar.js.map +1 -0
  62. package/dist/components/scene.js +1508 -0
  63. package/dist/components/scene.js.map +1 -0
  64. package/dist/components/stencil.js +25 -0
  65. package/dist/components/stencil.js.map +1 -0
  66. package/dist/components/streamAttributes.js +40833 -0
  67. package/dist/components/streamAttributes.js.map +1 -0
  68. package/dist/components/templates.js +36 -0
  69. package/dist/components/templates.js.map +1 -0
  70. package/dist/components/tslib.es6.js +125 -0
  71. package/dist/components/tslib.es6.js.map +1 -0
  72. package/dist/components/vertex-scene-tree-search.d.ts +11 -0
  73. package/dist/components/vertex-scene-tree-search.js +11 -0
  74. package/dist/components/vertex-scene-tree-search.js.map +1 -0
  75. package/dist/components/vertex-scene-tree-table-cell.d.ts +11 -0
  76. package/dist/components/vertex-scene-tree-table-cell.js +209 -0
  77. package/dist/components/vertex-scene-tree-table-cell.js.map +1 -0
  78. package/dist/components/vertex-scene-tree-table-column.d.ts +11 -0
  79. package/dist/components/vertex-scene-tree-table-column.js +42 -0
  80. package/dist/components/vertex-scene-tree-table-column.js.map +1 -0
  81. package/dist/components/vertex-scene-tree-table-header.d.ts +11 -0
  82. package/dist/components/vertex-scene-tree-table-header.js +38 -0
  83. package/dist/components/vertex-scene-tree-table-header.js.map +1 -0
  84. package/dist/components/vertex-scene-tree-table-layout.d.ts +11 -0
  85. package/dist/components/vertex-scene-tree-table-layout.js +11 -0
  86. package/dist/components/vertex-scene-tree-table-layout.js.map +1 -0
  87. package/dist/components/vertex-scene-tree-table-resize-divider.d.ts +11 -0
  88. package/dist/components/vertex-scene-tree-table-resize-divider.js +57 -0
  89. package/dist/components/vertex-scene-tree-table-resize-divider.js.map +1 -0
  90. package/dist/components/vertex-scene-tree-toolbar-group.d.ts +11 -0
  91. package/dist/components/vertex-scene-tree-toolbar-group.js +38 -0
  92. package/dist/components/vertex-scene-tree-toolbar-group.js.map +1 -0
  93. package/dist/components/vertex-scene-tree-toolbar.d.ts +11 -0
  94. package/dist/components/vertex-scene-tree-toolbar.js +11 -0
  95. package/dist/components/vertex-scene-tree-toolbar.js.map +1 -0
  96. package/dist/components/vertex-scene-tree.d.ts +11 -0
  97. package/dist/components/vertex-scene-tree.js +803 -0
  98. package/dist/components/vertex-scene-tree.js.map +1 -0
  99. package/dist/components/vertex-viewer-box-query-tool.d.ts +11 -0
  100. package/dist/components/vertex-viewer-box-query-tool.js +352 -0
  101. package/dist/components/vertex-viewer-box-query-tool.js.map +1 -0
  102. package/dist/components/vertex-viewer-button.d.ts +11 -0
  103. package/dist/components/vertex-viewer-button.js +11 -0
  104. package/dist/components/vertex-viewer-button.js.map +1 -0
  105. package/dist/components/vertex-viewer-default-toolbar.d.ts +11 -0
  106. package/dist/components/vertex-viewer-default-toolbar.js +99 -0
  107. package/dist/components/vertex-viewer-default-toolbar.js.map +1 -0
  108. package/dist/components/vertex-viewer-dom-element.d.ts +11 -0
  109. package/dist/components/vertex-viewer-dom-element.js +11 -0
  110. package/dist/components/vertex-viewer-dom-element.js.map +1 -0
  111. package/dist/components/vertex-viewer-dom-group.d.ts +11 -0
  112. package/dist/components/vertex-viewer-dom-group.js +11 -0
  113. package/dist/components/vertex-viewer-dom-group.js.map +1 -0
  114. package/dist/components/vertex-viewer-dom-renderer.d.ts +11 -0
  115. package/dist/components/vertex-viewer-dom-renderer.js +11 -0
  116. package/dist/components/vertex-viewer-dom-renderer.js.map +1 -0
  117. package/dist/components/vertex-viewer-hit-result-indicator.d.ts +11 -0
  118. package/dist/components/vertex-viewer-hit-result-indicator.js +335 -0
  119. package/dist/components/vertex-viewer-hit-result-indicator.js.map +1 -0
  120. package/dist/components/vertex-viewer-icon.d.ts +11 -0
  121. package/dist/components/vertex-viewer-icon.js +11 -0
  122. package/dist/components/vertex-viewer-icon.js.map +1 -0
  123. package/dist/components/vertex-viewer-layer.d.ts +11 -0
  124. package/dist/components/vertex-viewer-layer.js +11 -0
  125. package/dist/components/vertex-viewer-layer.js.map +1 -0
  126. package/dist/components/vertex-viewer-markup-arrow.d.ts +11 -0
  127. package/dist/components/vertex-viewer-markup-arrow.js +11 -0
  128. package/dist/components/vertex-viewer-markup-arrow.js.map +1 -0
  129. package/dist/components/vertex-viewer-markup-circle.d.ts +11 -0
  130. package/dist/components/vertex-viewer-markup-circle.js +11 -0
  131. package/dist/components/vertex-viewer-markup-circle.js.map +1 -0
  132. package/dist/components/vertex-viewer-markup-freeform.d.ts +11 -0
  133. package/dist/components/vertex-viewer-markup-freeform.js +11 -0
  134. package/dist/components/vertex-viewer-markup-freeform.js.map +1 -0
  135. package/dist/components/vertex-viewer-markup-tool.d.ts +11 -0
  136. package/dist/components/vertex-viewer-markup-tool.js +257 -0
  137. package/dist/components/vertex-viewer-markup-tool.js.map +1 -0
  138. package/dist/components/vertex-viewer-markup.d.ts +11 -0
  139. package/dist/components/vertex-viewer-markup.js +362 -0
  140. package/dist/components/vertex-viewer-markup.js.map +1 -0
  141. package/dist/components/vertex-viewer-measurement-details.d.ts +11 -0
  142. package/dist/components/vertex-viewer-measurement-details.js +307 -0
  143. package/dist/components/vertex-viewer-measurement-details.js.map +1 -0
  144. package/dist/components/vertex-viewer-measurement-distance.d.ts +11 -0
  145. package/dist/components/vertex-viewer-measurement-distance.js +1067 -0
  146. package/dist/components/vertex-viewer-measurement-distance.js.map +1 -0
  147. package/dist/components/vertex-viewer-measurement-line.d.ts +11 -0
  148. package/dist/components/vertex-viewer-measurement-line.js +11 -0
  149. package/dist/components/vertex-viewer-measurement-line.js.map +1 -0
  150. package/dist/components/vertex-viewer-measurement-overlays.d.ts +11 -0
  151. package/dist/components/vertex-viewer-measurement-overlays.js +11 -0
  152. package/dist/components/vertex-viewer-measurement-overlays.js.map +1 -0
  153. package/dist/components/vertex-viewer-measurement-precise.d.ts +11 -0
  154. package/dist/components/vertex-viewer-measurement-precise.js +362 -0
  155. package/dist/components/vertex-viewer-measurement-precise.js.map +1 -0
  156. package/dist/components/vertex-viewer-pin-group.d.ts +11 -0
  157. package/dist/components/vertex-viewer-pin-group.js +11 -0
  158. package/dist/components/vertex-viewer-pin-group.js.map +1 -0
  159. package/dist/components/vertex-viewer-pin-label-line.d.ts +11 -0
  160. package/dist/components/vertex-viewer-pin-label-line.js +11 -0
  161. package/dist/components/vertex-viewer-pin-label-line.js.map +1 -0
  162. package/dist/components/vertex-viewer-pin-label.d.ts +11 -0
  163. package/dist/components/vertex-viewer-pin-label.js +11 -0
  164. package/dist/components/vertex-viewer-pin-label.js.map +1 -0
  165. package/dist/components/vertex-viewer-pin-tool.d.ts +11 -0
  166. package/dist/components/vertex-viewer-pin-tool.js +430 -0
  167. package/dist/components/vertex-viewer-pin-tool.js.map +1 -0
  168. package/dist/components/vertex-viewer-spinner.d.ts +11 -0
  169. package/dist/components/vertex-viewer-spinner.js +11 -0
  170. package/dist/components/vertex-viewer-spinner.js.map +1 -0
  171. package/dist/components/vertex-viewer-toolbar-group.d.ts +11 -0
  172. package/dist/components/vertex-viewer-toolbar-group.js +11 -0
  173. package/dist/components/vertex-viewer-toolbar-group.js.map +1 -0
  174. package/dist/components/vertex-viewer-toolbar.d.ts +11 -0
  175. package/dist/components/vertex-viewer-toolbar.js +11 -0
  176. package/dist/components/vertex-viewer-toolbar.js.map +1 -0
  177. package/dist/components/vertex-viewer-transform-widget.d.ts +11 -0
  178. package/dist/components/vertex-viewer-transform-widget.js +838 -0
  179. package/dist/components/vertex-viewer-transform-widget.js.map +1 -0
  180. package/dist/components/vertex-viewer-view-cube.d.ts +11 -0
  181. package/dist/components/vertex-viewer-view-cube.js +270 -0
  182. package/dist/components/vertex-viewer-view-cube.js.map +1 -0
  183. package/dist/components/vertex-viewer.d.ts +11 -0
  184. package/dist/components/vertex-viewer.js +3543 -0
  185. package/dist/components/vertex-viewer.js.map +1 -0
  186. package/dist/components/viewer-button.js +35 -0
  187. package/dist/components/viewer-button.js.map +1 -0
  188. package/dist/components/viewer-dom-element.js +250 -0
  189. package/dist/components/viewer-dom-element.js.map +1 -0
  190. package/dist/components/viewer-dom-group.js +214 -0
  191. package/dist/components/viewer-dom-group.js.map +1 -0
  192. package/dist/components/viewer-dom-renderer.js +295 -0
  193. package/dist/components/viewer-dom-renderer.js.map +1 -0
  194. package/dist/components/viewer-icon.js +87 -0
  195. package/dist/components/viewer-icon.js.map +1 -0
  196. package/dist/components/viewer-layer.js +46 -0
  197. package/dist/components/viewer-layer.js.map +1 -0
  198. package/dist/components/viewer-markup-arrow.js +235 -0
  199. package/dist/components/viewer-markup-arrow.js.map +1 -0
  200. package/dist/components/viewer-markup-circle-components.js +42 -0
  201. package/dist/components/viewer-markup-circle-components.js.map +1 -0
  202. package/dist/components/viewer-markup-circle.js +201 -0
  203. package/dist/components/viewer-markup-circle.js.map +1 -0
  204. package/dist/components/viewer-markup-freeform.js +251 -0
  205. package/dist/components/viewer-markup-freeform.js.map +1 -0
  206. package/dist/components/viewer-measurement-line.js +77 -0
  207. package/dist/components/viewer-measurement-line.js.map +1 -0
  208. package/dist/components/viewer-measurement-overlays.js +184 -0
  209. package/dist/components/viewer-measurement-overlays.js.map +1 -0
  210. package/dist/components/viewer-pin-group.js +207 -0
  211. package/dist/components/viewer-pin-group.js.map +1 -0
  212. package/dist/components/viewer-pin-label-line.js +43 -0
  213. package/dist/components/viewer-pin-label-line.js.map +1 -0
  214. package/dist/components/viewer-pin-label.js +427 -0
  215. package/dist/components/viewer-pin-label.js.map +1 -0
  216. package/dist/components/viewer-spinner.js +53 -0
  217. package/dist/components/viewer-spinner.js.map +1 -0
  218. package/dist/components/viewer-toolbar-group.js +42 -0
  219. package/dist/components/viewer-toolbar-group.js.map +1 -0
  220. package/dist/components/viewer-toolbar.js +61 -0
  221. package/dist/components/viewer-toolbar.js.map +1 -0
  222. package/dist/components/viewport.js +188 -0
  223. package/dist/components/viewport.js.map +1 -0
  224. package/dist/components/wrappers_pb.js +1926 -0
  225. package/dist/components/wrappers_pb.js.map +1 -0
  226. package/package.json +7 -7
@@ -0,0 +1,307 @@
1
+ /*!
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import { h, Fragment, proxyCustomElement, HTMLElement, Host } from '@stencil/core/internal/client';
5
+ import { D as DistanceUnits, A as AngleUnits, f as AreaUnits } from './streamAttributes.js';
6
+ import { v as vector3 } from './bundle.esm.js';
7
+ import { f as __rest } from './tslib.es6.js';
8
+ import { c as classnames } from './index2.js';
9
+
10
+ /*! *****************************************************************************
11
+ Copyright (c) Microsoft Corporation.
12
+
13
+ Permission to use, copy, modify, and/or distribute this software for any
14
+ purpose with or without fee is hereby granted.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
17
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
18
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
19
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
20
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
21
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22
+ PERFORMANCE OF THIS SOFTWARE.
23
+ ***************************************************************************** */
24
+
25
+ var __assign$1 = function() {
26
+ __assign$1 = Object.assign || function __assign(t) {
27
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
28
+ s = arguments[i];
29
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
30
+ }
31
+ return t;
32
+ };
33
+ return __assign$1.apply(this, arguments);
34
+ };
35
+
36
+ /*! *****************************************************************************
37
+ Copyright (c) Microsoft Corporation.
38
+
39
+ Permission to use, copy, modify, and/or distribute this software for any
40
+ purpose with or without fee is hereby granted.
41
+
42
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
43
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
44
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
45
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
46
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
47
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
48
+ PERFORMANCE OF THIS SOFTWARE.
49
+ ***************************************************************************** */
50
+
51
+ var __assign = function() {
52
+ __assign = Object.assign || function __assign(t) {
53
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
54
+ s = arguments[i];
55
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
56
+ }
57
+ return t;
58
+ };
59
+ return __assign.apply(this, arguments);
60
+ };
61
+
62
+ /**
63
+ * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
64
+ */
65
+ /**
66
+ * Lower case as a function.
67
+ */
68
+ function lowerCase(str) {
69
+ return str.toLowerCase();
70
+ }
71
+
72
+ // Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case").
73
+ var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
74
+ // Remove all non-word characters.
75
+ var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
76
+ /**
77
+ * Normalize the string into something other libraries can manipulate easier.
78
+ */
79
+ function noCase(input, options) {
80
+ if (options === void 0) { options = {}; }
81
+ var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d;
82
+ var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
83
+ var start = 0;
84
+ var end = result.length;
85
+ // Trim the delimiter from around the output string.
86
+ while (result.charAt(start) === "\0")
87
+ start++;
88
+ while (result.charAt(end - 1) === "\0")
89
+ end--;
90
+ // Transform each token independently.
91
+ return result.slice(start, end).split("\0").map(transform).join(delimiter);
92
+ }
93
+ /**
94
+ * Replace `re` in the input string with the replacement value.
95
+ */
96
+ function replace(input, re, value) {
97
+ if (re instanceof RegExp)
98
+ return input.replace(re, value);
99
+ return re.reduce(function (input, re) { return input.replace(re, value); }, input);
100
+ }
101
+
102
+ function dotCase(input, options) {
103
+ if (options === void 0) { options = {}; }
104
+ return noCase(input, __assign({ delimiter: "." }, options));
105
+ }
106
+
107
+ function paramCase(input, options) {
108
+ if (options === void 0) { options = {}; }
109
+ return dotCase(input, __assign$1({ delimiter: "-" }, options));
110
+ }
111
+
112
+ const MeasurementDetailsEntry = (_a, children) => {
113
+ var { label } = _a, props = __rest(_a, ["label"]);
114
+ return (h("div", Object.assign({}, props, { class: "measurement-details-entry" }),
115
+ h("div", { class: classnames('measurement-details-entry-label', paramCase(label)) },
116
+ label,
117
+ ":"),
118
+ children));
119
+ };
120
+
121
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
122
+ const MinimumDistanceResultEntry = ({ result, formatter, overlays, onShowOverlay, onHideOverlay }) => {
123
+ const v = vector3.subtract(result.point1, result.point2);
124
+ return (h(Fragment, null,
125
+ h(MeasurementDetailsEntry, { label: "Dist", onMouseEnter: () => onShowOverlay(overlays === null || overlays === void 0 ? void 0 : overlays.addLineFromResult(result)), onMouseLeave: onHideOverlay }, formatter(result.distance)),
126
+ h(MeasurementDetailsEntry, { label: "X", onMouseEnter: () => onShowOverlay(overlays === null || overlays === void 0 ? void 0 : overlays.addDistanceVectorFromResult(result)), onMouseLeave: onHideOverlay }, formatter(v.x)),
127
+ h(MeasurementDetailsEntry, { label: "Y", onMouseEnter: () => onShowOverlay(overlays === null || overlays === void 0 ? void 0 : overlays.addDistanceVectorFromResult(result)), onMouseLeave: onHideOverlay }, formatter(v.y)),
128
+ h(MeasurementDetailsEntry, { label: "Z", onMouseEnter: () => onShowOverlay(overlays === null || overlays === void 0 ? void 0 : overlays.addDistanceVectorFromResult(result)), onMouseLeave: onHideOverlay }, formatter(v.z))));
129
+ };
130
+ const PlanarAngleResultEntry = ({ result, formatter }) => {
131
+ return (h(MeasurementDetailsEntry, { label: "Angle" }, formatter(result.angle)));
132
+ };
133
+ const PlanarDistanceResultEntry = ({ result, formatter }) => {
134
+ return (h(MeasurementDetailsEntry, { label: "Parallel Dist" }, formatter(result.distance)));
135
+ };
136
+ const SurfaceAreaResultEntry = ({ result, formatter }) => {
137
+ return (h(MeasurementDetailsEntry, { label: "Area" }, formatter(result.area)));
138
+ };
139
+
140
+ const viewerMeasurementDetailsCss = ":host{display:flex;flex-direction:column;--viewer-measurement-details-x-color:red;--viewer-measurement-details-y-color:var(--green-500);--viewer-measurement-details-z-color:blue}.measurement-details-entry{display:flex;align-items:center}.measurement-details-entry-label{user-select:none;padding-right:0.25rem}.measurement-details-entry-label.x{color:var(--viewer-measurement-details-x-color)}.measurement-details-entry-label.y{color:var(--viewer-measurement-details-y-color)}.measurement-details-entry-label.z{color:var(--viewer-measurement-details-z-color)}";
141
+
142
+ const ViewerMeasurementDetails = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
143
+ constructor() {
144
+ super();
145
+ this.__registerHost();
146
+ this.__attachShadow();
147
+ /**
148
+ * The unit of distance-based measurement.
149
+ */
150
+ this.distanceUnits = 'millimeters';
151
+ /**
152
+ * The unit of angle-based measurement.
153
+ */
154
+ this.angleUnits = 'degrees';
155
+ /**
156
+ * The number of fraction digits to display.
157
+ */
158
+ this.fractionalDigits = 2;
159
+ this.distanceMeasurementUnits = new DistanceUnits(this.distanceUnits);
160
+ this.angleMeasurementUnits = new AngleUnits(this.angleUnits);
161
+ this.areaMeasurementUnits = new AreaUnits(this.distanceUnits);
162
+ this.handleShowOverlay = (overlay) => {
163
+ this.overlay = overlay;
164
+ };
165
+ this.handleHideOverlay = () => {
166
+ var _a;
167
+ (_a = this.overlay) === null || _a === void 0 ? void 0 : _a.dispose();
168
+ };
169
+ this.handleOutcomeChange = () => {
170
+ this.updateStateFromModel();
171
+ };
172
+ }
173
+ /**
174
+ * @internal
175
+ */
176
+ connectedCallback() {
177
+ var _a;
178
+ this.onOutcomeChangedHandler = (_a = this.measurementModel) === null || _a === void 0 ? void 0 : _a.onOutcomeChanged(this.handleOutcomeChange);
179
+ this.updateStateFromModel();
180
+ }
181
+ /**
182
+ * @internal
183
+ */
184
+ disconnectedCallback() {
185
+ var _a;
186
+ (_a = this.onOutcomeChangedHandler) === null || _a === void 0 ? void 0 : _a.dispose();
187
+ }
188
+ /**
189
+ * @internal
190
+ */
191
+ handleDistanceUnitsChanged() {
192
+ this.distanceMeasurementUnits = new DistanceUnits(this.distanceUnits);
193
+ this.areaMeasurementUnits = new AreaUnits(this.distanceUnits);
194
+ }
195
+ /**
196
+ * @internal
197
+ */
198
+ handleAngleUnitsChanged() {
199
+ this.angleMeasurementUnits = new AngleUnits(this.angleUnits);
200
+ }
201
+ /**
202
+ * @internal
203
+ */
204
+ handleMeasurementModelChanged() {
205
+ var _a, _b;
206
+ (_a = this.onOutcomeChangedHandler) === null || _a === void 0 ? void 0 : _a.dispose();
207
+ this.onOutcomeChangedHandler = (_b = this.measurementModel) === null || _b === void 0 ? void 0 : _b.onOutcomeChanged(this.handleOutcomeChange);
208
+ this.updateStateFromModel();
209
+ }
210
+ /**
211
+ * @internal
212
+ */
213
+ handleResultTypesChanged() {
214
+ this.updateStateFromModel();
215
+ }
216
+ /**
217
+ * @internal
218
+ */
219
+ render() {
220
+ var _a, _b;
221
+ const isFilteredResultType = (result) => {
222
+ var _a, _b;
223
+ return (_b = (_a = this.resultTypes) === null || _a === void 0 ? void 0 : _a.includes(result.type)) !== null && _b !== void 0 ? _b : true;
224
+ };
225
+ const results = ((_b = (_a = this.measurementOutcome) === null || _a === void 0 ? void 0 : _a.results) !== null && _b !== void 0 ? _b : []).filter(isFilteredResultType);
226
+ return (h(Host, null, this.renderResult('planar-angle', results, (result) => (h(PlanarAngleResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeAngleFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay }))), this.renderResult('planar-distance', results, (result) => (h(PlanarDistanceResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeDistanceFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay }))), this.renderResult('surface-area', results, (result) => (h(SurfaceAreaResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeAreaFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay }))), this.renderResult('minimum-distance', results, (result) => (h(MinimumDistanceResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeDistanceFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay })))));
227
+ }
228
+ updateStateFromModel() {
229
+ var _a;
230
+ this.measurementOutcome = (_a = this.measurementModel) === null || _a === void 0 ? void 0 : _a.getOutcome();
231
+ }
232
+ renderResult(type, results, render) {
233
+ const result = this.getResultForType(type, results);
234
+ return result != null ? render(result) : undefined;
235
+ }
236
+ getResultForType(type, results) {
237
+ return results.find((result) => result.type === type);
238
+ }
239
+ makeDistanceFormatter() {
240
+ return this.makeFormatter((value) => this.distanceMeasurementUnits.convertWorldValueToReal(value), this.distanceMeasurementUnits.unit, this.distanceFormatter);
241
+ }
242
+ makeAngleFormatter() {
243
+ return this.makeFormatter((value) => this.angleMeasurementUnits.convertTo(value), this.angleMeasurementUnits.unit, this.angleFormatter);
244
+ }
245
+ makeAreaFormatter() {
246
+ return this.makeFormatter((value) => this.areaMeasurementUnits.convertWorldValueToReal(value), this.areaMeasurementUnits.unit, this.areaFormatter);
247
+ }
248
+ makeFormatter(convert, units, customFormatter) {
249
+ return (value) => {
250
+ const v = convert(value);
251
+ if (customFormatter != null) {
252
+ return customFormatter(v);
253
+ }
254
+ else {
255
+ return this.formatValue(v, units);
256
+ }
257
+ };
258
+ }
259
+ formatValue(value, unit) {
260
+ var _a, _b;
261
+ const val = value.toFixed(this.fractionalDigits);
262
+ const isApprox = (_b = (_a = this.measurementOutcome) === null || _a === void 0 ? void 0 : _a.isApproximate) !== null && _b !== void 0 ? _b : false;
263
+ return `${isApprox ? '~' + val : val} ${unit.abbreviatedName}`;
264
+ }
265
+ static get watchers() { return {
266
+ "distanceUnits": ["handleDistanceUnitsChanged"],
267
+ "angleUnits": ["handleAngleUnitsChanged"],
268
+ "measurementModel": ["handleMeasurementModelChanged"],
269
+ "resultTypes": ["handleResultTypesChanged"]
270
+ }; }
271
+ static get style() { return viewerMeasurementDetailsCss; }
272
+ }, [1, "vertex-viewer-measurement-details", {
273
+ "measurementModel": [16],
274
+ "measurementOverlays": [16],
275
+ "measurementOutcome": [1040],
276
+ "distanceUnits": [1, "distance-units"],
277
+ "angleUnits": [1, "angle-units"],
278
+ "fractionalDigits": [2, "fractional-digits"],
279
+ "distanceFormatter": [16],
280
+ "angleFormatter": [16],
281
+ "areaFormatter": [16],
282
+ "resultTypes": [16],
283
+ "overlay": [32],
284
+ "distanceMeasurementUnits": [32],
285
+ "angleMeasurementUnits": [32],
286
+ "areaMeasurementUnits": [32]
287
+ }]);
288
+ function defineCustomElement$1() {
289
+ if (typeof customElements === "undefined") {
290
+ return;
291
+ }
292
+ const components = ["vertex-viewer-measurement-details"];
293
+ components.forEach(tagName => { switch (tagName) {
294
+ case "vertex-viewer-measurement-details":
295
+ if (!customElements.get(tagName)) {
296
+ customElements.define(tagName, ViewerMeasurementDetails);
297
+ }
298
+ break;
299
+ } });
300
+ }
301
+
302
+ const VertexViewerMeasurementDetails = ViewerMeasurementDetails;
303
+ const defineCustomElement = defineCustomElement$1;
304
+
305
+ export { VertexViewerMeasurementDetails, defineCustomElement };
306
+
307
+ //# sourceMappingURL=vertex-viewer-measurement-details.js.map
@@ -0,0 +1 @@
1
+ {"file":"vertex-viewer-measurement-details.js","mappings":"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","names":["__assign","classNames","Vector3"],"sources":["../../node_modules/param-case/node_modules/tslib/tslib.es6.js","../../node_modules/dot-case/node_modules/tslib/tslib.es6.js","../../node_modules/lower-case/dist.es2015/index.js","../../node_modules/no-case/dist.es2015/index.js","../../node_modules/dot-case/dist.es2015/index.js","../../node_modules/param-case/dist.es2015/index.js","./src/components/viewer-measurement-details/viewer-measurement-details-entry.tsx","./src/components/viewer-measurement-details/viewer-measurement-details-results.tsx","./src/components/viewer-measurement-details/viewer-measurement-details.css?tag=vertex-viewer-measurement-details&encapsulation=shadow","./src/components/viewer-measurement-details/viewer-measurement-details.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function dotCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \".\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function paramCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"-\" }, options));\n}\n//# sourceMappingURL=index.js.map","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { FunctionalComponent, h } from '@stencil/core';\nimport classNames from 'classnames';\nimport { paramCase } from 'param-case';\n\ninterface MeasurementDetailsEntryProps {\n label: string;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n}\n\nexport const MeasurementDetailsEntry: FunctionalComponent<\n MeasurementDetailsEntryProps\n> = ({ label, ...props }, children) => {\n return (\n <div {...props} class=\"measurement-details-entry\">\n <div\n class={classNames('measurement-details-entry-label', paramCase(label))}\n >\n {label}:\n </div>\n {children}\n </div>\n );\n};\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Fragment, FunctionalComponent, h } from '@stencil/core';\nimport { Vector3 } from '@vertexvis/geometry';\n\nimport { Formatter } from '../../lib/formatter';\nimport {\n MeasurementOverlay,\n MeasurementOverlayManager,\n MeasurementResult,\n MinimumDistanceMeasurementResult,\n PlanarAngleMeasurementResult,\n PlanarDistanceMeasurementResult,\n SurfaceAreaMeasurementResult,\n} from '../../lib/measurement';\nimport { MeasurementDetailsEntry } from './viewer-measurement-details-entry';\n\ninterface MeasurementResultEntryProps<R extends MeasurementResult> {\n result: R;\n overlays?: MeasurementOverlayManager;\n formatter: Formatter<number>;\n onShowOverlay: (overlay: MeasurementOverlay | undefined) => void;\n onHideOverlay: () => void;\n}\n\nexport const MinimumDistanceResultEntry: FunctionalComponent<\n MeasurementResultEntryProps<MinimumDistanceMeasurementResult>\n> = ({ result, formatter, overlays, onShowOverlay, onHideOverlay }) => {\n const v = Vector3.subtract(result.point1, result.point2);\n\n return (\n <Fragment>\n <MeasurementDetailsEntry\n label=\"Dist\"\n onMouseEnter={() => onShowOverlay(overlays?.addLineFromResult(result))}\n onMouseLeave={onHideOverlay}\n >\n {formatter(result.distance)}\n </MeasurementDetailsEntry>\n <MeasurementDetailsEntry\n label=\"X\"\n onMouseEnter={() =>\n onShowOverlay(overlays?.addDistanceVectorFromResult(result))\n }\n onMouseLeave={onHideOverlay}\n >\n {formatter(v.x)}\n </MeasurementDetailsEntry>\n <MeasurementDetailsEntry\n label=\"Y\"\n onMouseEnter={() =>\n onShowOverlay(overlays?.addDistanceVectorFromResult(result))\n }\n onMouseLeave={onHideOverlay}\n >\n {formatter(v.y)}\n </MeasurementDetailsEntry>\n <MeasurementDetailsEntry\n label=\"Z\"\n onMouseEnter={() =>\n onShowOverlay(overlays?.addDistanceVectorFromResult(result))\n }\n onMouseLeave={onHideOverlay}\n >\n {formatter(v.z)}\n </MeasurementDetailsEntry>\n </Fragment>\n );\n};\n\nexport const PlanarAngleResultEntry: FunctionalComponent<\n MeasurementResultEntryProps<PlanarAngleMeasurementResult>\n> = ({ result, formatter }) => {\n return (\n <MeasurementDetailsEntry label=\"Angle\">\n {formatter(result.angle)}\n </MeasurementDetailsEntry>\n );\n};\n\nexport const PlanarDistanceResultEntry: FunctionalComponent<\n MeasurementResultEntryProps<PlanarDistanceMeasurementResult>\n> = ({ result, formatter }) => {\n return (\n <MeasurementDetailsEntry label=\"Parallel Dist\">\n {formatter(result.distance)}\n </MeasurementDetailsEntry>\n );\n};\n\nexport const SurfaceAreaResultEntry: FunctionalComponent<\n MeasurementResultEntryProps<SurfaceAreaMeasurementResult>\n> = ({ result, formatter }) => {\n return (\n <MeasurementDetailsEntry label=\"Area\">\n {formatter(result.area)}\n </MeasurementDetailsEntry>\n );\n};\n",":host {\n display: flex;\n flex-direction: column;\n\n /**\n * @prop --viewer-measurement-details-x-color:\n * The color of the `X` label in measurements.\n * Defaults to red.\n */\n --viewer-measurement-details-x-color: red;\n\n /**\n * @prop --viewer-measurement-details-y-color:\n * The color of the `X` label in measurements.\n * Defaults to var(--green-500).\n */\n --viewer-measurement-details-y-color: var(--green-500);\n\n /**\n * @prop --viewer-measurement-details-z-color:\n * The color of the `X` label in measurements.\n * Defaults to blue.\n */\n --viewer-measurement-details-z-color: blue;\n}\n\n.measurement-details-entry {\n display: flex;\n align-items: center;\n}\n\n.measurement-details-entry-label {\n user-select: none;\n padding-right: 0.25rem;\n}\n\n.measurement-details-entry-label.x {\n color: var(--viewer-measurement-details-x-color);\n}\n\n.measurement-details-entry-label.y {\n color: var(--viewer-measurement-details-y-color);\n}\n\n.measurement-details-entry-label.z {\n color: var(--viewer-measurement-details-z-color);\n}\n","import { Component, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { Formatter } from '../../lib/formatter';\nimport {\n MeasurementModel,\n MeasurementOutcome,\n MeasurementOverlay,\n MeasurementOverlayManager,\n MeasurementResult,\n} from '../../lib/measurement';\nimport {\n AngleUnits,\n AngleUnitType,\n AreaUnits,\n DistanceUnits,\n DistanceUnitType,\n Unit,\n} from '../../lib/types';\nimport {\n MinimumDistanceResultEntry,\n PlanarAngleResultEntry,\n PlanarDistanceResultEntry,\n SurfaceAreaResultEntry,\n} from './viewer-measurement-details-results';\n\n@Component({\n tag: 'vertex-viewer-measurement-details',\n styleUrl: 'viewer-measurement-details.css',\n shadow: true,\n})\nexport class ViewerMeasurementDetails {\n /**\n * The `MeasurementModel` that should be reflected in these details.\n * If not specified, a new `MeasurementModel` will be created,\n * which can then be used to update the display.\n */\n @Prop()\n public measurementModel?: MeasurementModel;\n\n /**\n * The manager that the component will use to present measurement overlays.\n */\n @Prop()\n public measurementOverlays?: MeasurementOverlayManager;\n\n /**\n * The outcome to display. This property is automatically updated if a\n * measurement model is provided.\n */\n @Prop({ mutable: true })\n public measurementOutcome?: MeasurementOutcome;\n\n /**\n * The unit of distance-based measurement.\n */\n @Prop()\n public distanceUnits: DistanceUnitType = 'millimeters';\n\n /**\n * The unit of angle-based measurement.\n */\n @Prop()\n public angleUnits: AngleUnitType = 'degrees';\n\n /**\n * The number of fraction digits to display.\n */\n @Prop()\n public fractionalDigits = 2;\n\n /**\n * An optional formatter that can be used to format the display of a distance.\n * The formatting function is passed a calculated real-world distance and is\n * expected to return a string.\n */\n @Prop()\n public distanceFormatter?: Formatter<number>;\n\n /**\n * An optional formatter that can be used to format the display of an angle.\n * The formatting function is passed a calculated angle in degrees and is\n * expected to return a string.\n */\n @Prop()\n public angleFormatter?: Formatter<number>;\n\n /**\n * An optional formatter that can be used to format the display of an area.\n * The formatting function is passed a calculated area and is\n * expected to return a string.\n */\n @Prop()\n public areaFormatter?: Formatter<number>;\n\n /**\n * A set of result types to display. If `undefined`, then all results will be\n * displayed.\n */\n @Prop()\n public resultTypes?: MeasurementResult['type'][];\n\n @State()\n private overlay?: MeasurementOverlay;\n\n @State()\n private distanceMeasurementUnits = new DistanceUnits(this.distanceUnits);\n\n @State()\n private angleMeasurementUnits = new AngleUnits(this.angleUnits);\n\n @State()\n private areaMeasurementUnits = new AreaUnits(this.distanceUnits);\n\n private onOutcomeChangedHandler?: Disposable;\n\n /**\n * @internal\n */\n protected connectedCallback(): void {\n this.onOutcomeChangedHandler = this.measurementModel?.onOutcomeChanged(\n this.handleOutcomeChange\n );\n this.updateStateFromModel();\n }\n\n /**\n * @internal\n */\n protected disconnectedCallback(): void {\n this.onOutcomeChangedHandler?.dispose();\n }\n\n /**\n * @internal\n */\n @Watch('distanceUnits')\n protected handleDistanceUnitsChanged(): void {\n this.distanceMeasurementUnits = new DistanceUnits(this.distanceUnits);\n this.areaMeasurementUnits = new AreaUnits(this.distanceUnits);\n }\n\n /**\n * @internal\n */\n @Watch('angleUnits')\n protected handleAngleUnitsChanged(): void {\n this.angleMeasurementUnits = new AngleUnits(this.angleUnits);\n }\n\n /**\n * @internal\n */\n @Watch('measurementModel')\n protected handleMeasurementModelChanged(): void {\n this.onOutcomeChangedHandler?.dispose();\n this.onOutcomeChangedHandler = this.measurementModel?.onOutcomeChanged(\n this.handleOutcomeChange\n );\n\n this.updateStateFromModel();\n }\n\n /**\n * @internal\n */\n @Watch('resultTypes')\n protected handleResultTypesChanged(): void {\n this.updateStateFromModel();\n }\n\n /**\n * @internal\n */\n protected render(): h.JSX.IntrinsicElements {\n const isFilteredResultType = (result: MeasurementResult): boolean => {\n return this.resultTypes?.includes(result.type) ?? true;\n };\n\n const results = (this.measurementOutcome?.results ?? []).filter(\n isFilteredResultType\n );\n\n return (\n <Host>\n {this.renderResult('planar-angle', results, (result) => (\n <PlanarAngleResultEntry\n result={result}\n overlays={this.measurementOverlays}\n formatter={this.makeAngleFormatter()}\n onShowOverlay={this.handleShowOverlay}\n onHideOverlay={this.handleHideOverlay}\n />\n ))}\n\n {this.renderResult('planar-distance', results, (result) => (\n <PlanarDistanceResultEntry\n result={result}\n overlays={this.measurementOverlays}\n formatter={this.makeDistanceFormatter()}\n onShowOverlay={this.handleShowOverlay}\n onHideOverlay={this.handleHideOverlay}\n />\n ))}\n\n {this.renderResult('surface-area', results, (result) => (\n <SurfaceAreaResultEntry\n result={result}\n overlays={this.measurementOverlays}\n formatter={this.makeAreaFormatter()}\n onShowOverlay={this.handleShowOverlay}\n onHideOverlay={this.handleHideOverlay}\n />\n ))}\n\n {this.renderResult('minimum-distance', results, (result) => (\n <MinimumDistanceResultEntry\n result={result}\n overlays={this.measurementOverlays}\n formatter={this.makeDistanceFormatter()}\n onShowOverlay={this.handleShowOverlay}\n onHideOverlay={this.handleHideOverlay}\n />\n ))}\n </Host>\n );\n }\n\n private handleShowOverlay = (\n overlay: MeasurementOverlay | undefined\n ): void => {\n this.overlay = overlay;\n };\n\n private handleHideOverlay = (): void => {\n this.overlay?.dispose();\n };\n\n private handleOutcomeChange = (): void => {\n this.updateStateFromModel();\n };\n\n private updateStateFromModel(): void {\n this.measurementOutcome = this.measurementModel?.getOutcome();\n }\n\n private renderResult<T extends MeasurementResult['type']>(\n type: T,\n results: MeasurementResult[],\n render: (\n result: Extract<MeasurementResult, { type: T }>\n ) => h.JSX.IntrinsicElements | undefined\n ): h.JSX.IntrinsicElements | undefined {\n const result = this.getResultForType(type, results);\n return result != null ? render(result) : undefined;\n }\n\n private getResultForType<T extends MeasurementResult['type']>(\n type: T,\n results: MeasurementResult[]\n ): Extract<MeasurementResult, { type: T }> | undefined {\n return results.find((result) => result.type === type) as Extract<\n MeasurementResult,\n { type: T }\n >;\n }\n\n private makeDistanceFormatter(): Formatter<number> {\n return this.makeFormatter(\n (value) => this.distanceMeasurementUnits.convertWorldValueToReal(value),\n this.distanceMeasurementUnits.unit,\n this.distanceFormatter\n );\n }\n\n private makeAngleFormatter(): Formatter<number> {\n return this.makeFormatter(\n (value) => this.angleMeasurementUnits.convertTo(value),\n this.angleMeasurementUnits.unit,\n this.angleFormatter\n );\n }\n\n private makeAreaFormatter(): Formatter<number> {\n return this.makeFormatter(\n (value) => this.areaMeasurementUnits.convertWorldValueToReal(value),\n this.areaMeasurementUnits.unit,\n this.areaFormatter\n );\n }\n\n private makeFormatter(\n convert: (value: number) => number,\n units: Unit,\n customFormatter: Formatter<number> | undefined\n ): Formatter<number> {\n return (value) => {\n const v = convert(value);\n\n if (customFormatter != null) {\n return customFormatter(v);\n } else {\n return this.formatValue(v, units);\n }\n };\n }\n\n private formatValue(value: number, unit: Unit): string {\n const val = value.toFixed(this.fractionalDigits);\n const isApprox = this.measurementOutcome?.isApproximate ?? false;\n return `${isApprox ? '~' + val : val} ${unit.abbreviatedName}`;\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/regl-shape";
2
+
3
+ interface VertexViewerMeasurementDistance extends Components.VertexViewerMeasurementDistance, HTMLElement {}
4
+ export const VertexViewerMeasurementDistance: {
5
+ prototype: VertexViewerMeasurementDistance;
6
+ new (): VertexViewerMeasurementDistance;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;