@vertexvis/viewer 0.15.2-testing.2 → 0.15.2-testing.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/cjs/{config-6e330a82.js → config-4a86ae0b.js} +1 -1
  2. package/dist/cjs/{entities-7b2e8c03.js → entities-496b61cd.js} +2 -2
  3. package/dist/cjs/index.cjs.js +4 -4
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{mapper-0f2294a6.js → mapper-216603b0.js} +1 -1
  6. package/dist/cjs/{scene-56438693.js → scene-0ce59b26.js} +28 -1
  7. package/dist/cjs/{streamAttributes-c64aee75.js → streamAttributes-7725f5c4.js} +976 -4
  8. package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
  9. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +245 -0
  10. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  11. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +1 -1
  12. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
  13. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
  14. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
  15. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +2 -2
  16. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +1 -1
  17. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
  18. package/dist/cjs/vertex-viewer.cjs.entry.js +3 -3
  19. package/dist/cjs/viewer.cjs.js +1 -1
  20. package/dist/collection/collection-manifest.json +1 -0
  21. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.css +74 -0
  22. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +191 -0
  23. package/dist/collection/lib/scenes/mapper.js +12 -1
  24. package/dist/collection/lib/scenes/queries.js +17 -1
  25. package/dist/collection/lib/volume-intersection/controller.js +48 -0
  26. package/dist/collection/lib/volume-intersection/interactions.js +37 -0
  27. package/dist/collection/lib/volume-intersection/model.js +67 -0
  28. package/dist/custom-elements/index.d.ts +6 -0
  29. package/dist/custom-elements/index.js +1241 -5
  30. package/dist/esm/{config-49688db8.js → config-6cdeb6ca.js} +1 -1
  31. package/dist/esm/{entities-a5bfef48.js → entities-6f3c5437.js} +2 -2
  32. package/dist/esm/index.js +4 -4
  33. package/dist/esm/index.mjs +4 -4
  34. package/dist/esm/loader.js +1 -1
  35. package/dist/esm/loader.mjs +1 -1
  36. package/dist/esm/{mapper-5894c2a4.js → mapper-941ff03c.js} +1 -1
  37. package/dist/esm/{scene-5b919078.js → scene-970f5000.js} +28 -1
  38. package/dist/esm/{streamAttributes-7e8565be.js → streamAttributes-24bd7b3a.js} +976 -4
  39. package/dist/esm/vertex-scene-tree.entry.js +2 -2
  40. package/dist/esm/vertex-viewer-box-query-tool.entry.js +241 -0
  41. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  42. package/dist/esm/vertex-viewer-measurement-details.entry.js +1 -1
  43. package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
  44. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
  45. package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -4
  46. package/dist/esm/vertex-viewer-pin-group.entry.js +2 -2
  47. package/dist/esm/vertex-viewer-transform-widget.entry.js +1 -1
  48. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  49. package/dist/esm/vertex-viewer.entry.js +3 -3
  50. package/dist/esm/viewer.js +1 -1
  51. package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +60 -0
  52. package/dist/types/components.d.ts +48 -0
  53. package/dist/types/lib/scenes/queries.d.ts +14 -2
  54. package/dist/types/lib/volume-intersection/controller.d.ts +17 -0
  55. package/dist/types/lib/volume-intersection/interactions.d.ts +13 -0
  56. package/dist/types/lib/volume-intersection/model.d.ts +26 -0
  57. package/dist/viewer/index.esm.js +1 -1
  58. package/dist/viewer/{p-1e0dd2e9.js → p-10145045.js} +1 -1
  59. package/dist/viewer/{p-a6558bb2.entry.js → p-1bba9ade.entry.js} +1 -1
  60. package/dist/viewer/{p-3f6f2457.entry.js → p-24cda14a.entry.js} +1 -1
  61. package/dist/viewer/{p-b7e170ac.entry.js → p-2b58afc3.entry.js} +1 -1
  62. package/dist/viewer/{p-22ae6785.entry.js → p-51966cef.entry.js} +1 -1
  63. package/dist/viewer/{p-1fc24ec6.js → p-52ab9ec0.js} +1 -1
  64. package/dist/viewer/{p-927b528b.js → p-597cc9b5.js} +1 -1
  65. package/dist/viewer/{p-61e50e11.entry.js → p-608925c5.entry.js} +1 -1
  66. package/dist/viewer/p-68e192b9.js +4 -0
  67. package/dist/viewer/{p-d34ad2b2.entry.js → p-69a3fce8.entry.js} +1 -1
  68. package/dist/viewer/{p-7579e2a1.entry.js → p-74c772bb.entry.js} +1 -1
  69. package/dist/viewer/{p-40a9dd7d.js → p-9e1384c9.js} +1 -1
  70. package/dist/viewer/{p-d64c1e14.entry.js → p-a107b65e.entry.js} +2 -2
  71. package/dist/viewer/p-bb425931.entry.js +4 -0
  72. package/dist/viewer/{p-920c9a88.entry.js → p-bfacbaa8.entry.js} +1 -1
  73. package/dist/viewer/{p-f3ea0c2b.entry.js → p-c72da0fb.entry.js} +1 -1
  74. package/dist/viewer/viewer.esm.js +1 -1
  75. package/package.json +8 -8
  76. package/dist/viewer/p-31b87b90.js +0 -4
@@ -9,10 +9,10 @@ const index = require('./index-70db349e.js');
9
9
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
10
  const _commonjsHelpers = require('./_commonjsHelpers-dcc4cf71.js');
11
11
  const grpcWebClient_umd = require('./grpc-web-client.umd-2af20c1b.js');
12
- const config = require('./config-6e330a82.js');
12
+ const config = require('./config-4a86ae0b.js');
13
13
  const browser_esm = require('./browser.esm-5d246754.js');
14
14
  const dom = require('./dom-92728e58.js');
15
- require('./streamAttributes-c64aee75.js');
15
+ require('./streamAttributes-7725f5c4.js');
16
16
  require('./entities-9eb7e608.js');
17
17
 
18
18
  window.requestIdleCallback =
@@ -0,0 +1,245 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ 'use strict';
5
+
6
+ Object.defineProperty(exports, '__esModule', { value: true });
7
+
8
+ const index = require('./index-70db349e.js');
9
+ const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
+ const browser_esm = require('./browser.esm-5d246754.js');
11
+
12
+ const DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT = 5;
13
+ class VolumeIntersectionQueryController {
14
+ constructor(model, viewer) {
15
+ this.model = model;
16
+ this.viewer = viewer;
17
+ this.inFlightOperations = 0;
18
+ this.operationTransform = (builder) => builder.select();
19
+ }
20
+ setStartPoint(point) {
21
+ this.previousViewerCameraControls = this.viewer.cameraControls;
22
+ this.viewer.cameraControls = false;
23
+ this.model.setStartPoint(point);
24
+ }
25
+ setEndPoint(point) {
26
+ this.model.setEndPoint(point);
27
+ }
28
+ setOperationTransform(operationTransform) {
29
+ this.operationTransform = operationTransform;
30
+ }
31
+ async execute() {
32
+ var _a;
33
+ const screenBounds = this.model.getScreenBounds();
34
+ const type = this.model.getType();
35
+ this.viewer.cameraControls = (_a = this.previousViewerCameraControls) !== null && _a !== void 0 ? _a : true;
36
+ this.model.complete();
37
+ if (screenBounds != null &&
38
+ this.inFlightOperations < DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT) {
39
+ this.inFlightOperations = this.inFlightOperations + 1;
40
+ try {
41
+ const scene = await this.viewer.scene();
42
+ await scene
43
+ .items((op) => this.operationTransform(op.where((q) => q.withVolumeIntersection(screenBounds, type === 'exclusive'))))
44
+ .execute();
45
+ }
46
+ catch (e) {
47
+ console.error('Failed to perform volume intersection query', e);
48
+ throw e;
49
+ }
50
+ finally {
51
+ this.inFlightOperations = this.inFlightOperations - 1;
52
+ }
53
+ }
54
+ else if (this.inFlightOperations >= DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT) {
55
+ throw new Error(`Unable to perform volume intersection query due to the limit of ${DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT}.`);
56
+ }
57
+ }
58
+ }
59
+
60
+ class VolumeIntersectionQueryInteractionHandler {
61
+ constructor(controller) {
62
+ this.controller = controller;
63
+ this.handleDragBegin = this.handleDragBegin.bind(this);
64
+ this.handleDrag = this.handleDrag.bind(this);
65
+ this.handleDragEnd = this.handleDragEnd.bind(this);
66
+ }
67
+ initialize(element) {
68
+ this.element = element;
69
+ this.element.addEventListener('pointerdown', this.handleDragBegin);
70
+ }
71
+ dispose() {
72
+ var _a;
73
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.removeEventListener('pointerdown', this.handleDragBegin);
74
+ window.removeEventListener('pointermove', this.handleDrag);
75
+ window.removeEventListener('pointerup', this.handleDragEnd);
76
+ }
77
+ handleDragBegin(event) {
78
+ if (event.buttons === 1 && !this.isInteracting) {
79
+ this.isInteracting = true;
80
+ this.controller.setStartPoint(bundle_esm.point.create(event.offsetX, event.offsetY));
81
+ window.addEventListener('pointermove', this.handleDrag);
82
+ window.addEventListener('pointerup', this.handleDragEnd);
83
+ }
84
+ }
85
+ handleDrag(event) {
86
+ this.controller.setEndPoint(bundle_esm.point.create(event.offsetX, event.offsetY));
87
+ }
88
+ handleDragEnd() {
89
+ this.controller.execute();
90
+ this.isInteracting = false;
91
+ window.removeEventListener('pointermove', this.handleDrag);
92
+ window.removeEventListener('pointerup', this.handleDragEnd);
93
+ }
94
+ }
95
+
96
+ class VolumeIntersectionQueryModel {
97
+ constructor() {
98
+ this.dragStarted = new browser_esm.EventDispatcher();
99
+ this.dragComplete = new browser_esm.EventDispatcher();
100
+ this.screenBoundsChanged = new browser_esm.EventDispatcher();
101
+ }
102
+ setStartPoint(point) {
103
+ this.startPoint = point;
104
+ this.dragStarted.emit();
105
+ }
106
+ setEndPoint(point) {
107
+ this.endPoint = point;
108
+ this.updateQueryType();
109
+ this.screenBoundsChanged.emit(this.getQueryDetails());
110
+ }
111
+ complete() {
112
+ if (this.startPoint != null && this.endPoint != null) {
113
+ this.screenBoundsChanged.emit(undefined);
114
+ this.dragComplete.emit(this.getQueryDetails());
115
+ this.reset();
116
+ }
117
+ }
118
+ reset() {
119
+ this.startPoint = undefined;
120
+ this.endPoint = undefined;
121
+ this.type = undefined;
122
+ }
123
+ getScreenBounds() {
124
+ return this.startPoint != null && this.endPoint != null
125
+ ? bundle_esm.rectangle.fromPoints(this.startPoint, this.endPoint)
126
+ : undefined;
127
+ }
128
+ getType() {
129
+ return this.type;
130
+ }
131
+ onScreenBoundsChanged(listener) {
132
+ return this.screenBoundsChanged.on(listener);
133
+ }
134
+ onDragStarted(listener) {
135
+ return this.dragStarted.on(listener);
136
+ }
137
+ onDragComplete(listener) {
138
+ return this.dragComplete.on(listener);
139
+ }
140
+ getQueryDetails() {
141
+ if (this.startPoint != null && this.endPoint != null && this.type != null) {
142
+ return {
143
+ screenBounds: bundle_esm.rectangle.fromPoints(this.startPoint, this.endPoint),
144
+ type: this.type,
145
+ };
146
+ }
147
+ else {
148
+ throw new Error('Failed to create query details, the start and end points must be set.');
149
+ }
150
+ }
151
+ updateQueryType() {
152
+ if (this.startPoint != null && this.endPoint) {
153
+ this.type =
154
+ bundle_esm.point.subtract(this.endPoint, this.startPoint).x > 0
155
+ ? 'exclusive'
156
+ : 'inclusive';
157
+ }
158
+ }
159
+ }
160
+
161
+ const viewerBoxQueryToolCss = ":host{--viewer-box-query-outline-exclusive-color:#0099cc;--viewer-box-query-outline-exclusive-border-style:solid;--viewer-box-query-outline-inclusive-color:#00cc00;--viewer-box-query-outline-inclusive-border-style:dashed;--viewer-box-query-outline-border-radius:0.25rem;--viewer-box-query-outline-fill-opacity:0.25}.bounds{position:absolute}.outline{position:relative;width:100%;height:100%;box-sizing:border-box;border-radius:var(--viewer-box-query-outline-border-radius)}:host([exclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-exclusive-border-style) var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-inclusive-border-style) var(--viewer-box-query-outline-inclusive-color)}.fill{position:relative;width:100%;height:100%;opacity:var(--viewer-box-query-outline-fill-opacity)}:host([exclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-inclusive-color)}";
162
+
163
+ const ViewerBoxQueryTool = class {
164
+ constructor(hostRef) {
165
+ index.registerInstance(this, hostRef);
166
+ /**
167
+ * The default operation to perform when a drag has completed and the intersection
168
+ * query will be run. Defaults to `select`, and can be changed to `deselect`.
169
+ *
170
+ * The operation behavior for this intersection query tool can also be changed by
171
+ * providing a custom implementation of the `VolumeIntersectionQueryController`, or
172
+ * by using the `setOperationTransform` method of the default controller.
173
+ */
174
+ this.operationType = 'select';
175
+ this.handleScreenBoundsChanged = this.handleScreenBoundsChanged.bind(this);
176
+ }
177
+ componentWillLoad() {
178
+ var _a;
179
+ this.model = (_a = this.model) !== null && _a !== void 0 ? _a : new VolumeIntersectionQueryModel();
180
+ this.screenBoundsChangedDisposable = this.model.onScreenBoundsChanged(this.handleScreenBoundsChanged);
181
+ this.handleViewerChanged(this.viewer);
182
+ }
183
+ disconnectedCallback() {
184
+ var _a, _b, _c;
185
+ (_a = this.model) === null || _a === void 0 ? void 0 : _a.reset();
186
+ (_b = this.screenBoundsChangedDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
187
+ (_c = this.interactionHandler) === null || _c === void 0 ? void 0 : _c.dispose();
188
+ }
189
+ /**
190
+ * @ignore
191
+ */
192
+ handleViewerChanged(newViewer) {
193
+ this.deregisterInteractionHandler();
194
+ if (this.model != null && newViewer != null) {
195
+ this.controller = new VolumeIntersectionQueryController(this.model, newViewer);
196
+ this.handleDefaultOperationChange(this.operationType);
197
+ this.registerInteractionHandler(this.controller, newViewer);
198
+ }
199
+ }
200
+ /**
201
+ * @ignore
202
+ */
203
+ handleDefaultOperationChange(updatedOperationType) {
204
+ var _a;
205
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.setOperationTransform(updatedOperationType === 'select'
206
+ ? (builder) => builder.select()
207
+ : (builder) => builder.deselect());
208
+ }
209
+ /**
210
+ * @ignore
211
+ */
212
+ render() {
213
+ return (index.h(index.Host, null, index.h("vertex-viewer-layer", null, this.details != null && (index.h("div", { class: "bounds", style: {
214
+ left: `${this.details.screenBounds.x}px`,
215
+ top: `${this.details.screenBounds.y}px`,
216
+ width: `${this.details.screenBounds.width}px`,
217
+ height: `${this.details.screenBounds.height}px`,
218
+ } }, index.h("slot", { name: "bounds" }, index.h("div", { class: "outline" }, index.h("div", { class: "fill" }))))))));
219
+ }
220
+ handleScreenBoundsChanged(details) {
221
+ this.details = details;
222
+ this.updateTypeAttribute(details === null || details === void 0 ? void 0 : details.type);
223
+ }
224
+ registerInteractionHandler(controller, viewer) {
225
+ this.interactionHandler = new VolumeIntersectionQueryInteractionHandler(controller);
226
+ viewer.registerInteractionHandler(this.interactionHandler);
227
+ }
228
+ deregisterInteractionHandler() {
229
+ var _a;
230
+ (_a = this.interactionHandler) === null || _a === void 0 ? void 0 : _a.dispose();
231
+ this.interactionHandler = undefined;
232
+ }
233
+ updateTypeAttribute(type) {
234
+ this.hostEl.setAttribute('inclusive', `${type === 'inclusive'}`);
235
+ this.hostEl.setAttribute('exclusive', `${type === 'exclusive'}`);
236
+ }
237
+ get hostEl() { return index.getElement(this); }
238
+ static get watchers() { return {
239
+ "viewer": ["handleViewerChanged"],
240
+ "operationType": ["handleDefaultOperationChange"]
241
+ }; }
242
+ };
243
+ ViewerBoxQueryTool.style = viewerBoxQueryToolCss;
244
+
245
+ exports.vertex_viewer_box_query_tool = ViewerBoxQueryTool;
@@ -8,7 +8,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
  const index = require('./index-70db349e.js');
9
9
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
10
  const browser_esm = require('./browser.esm-5d246754.js');
11
- require('./streamAttributes-c64aee75.js');
11
+ require('./streamAttributes-7725f5c4.js');
12
12
  require('./entities-9eb7e608.js');
13
13
  const viewport = require('./viewport-5ca619f7.js');
14
14
  require('./_commonjsHelpers-dcc4cf71.js');
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-70db349e.js');
9
- const streamAttributes = require('./streamAttributes-c64aee75.js');
9
+ const streamAttributes = require('./streamAttributes-7725f5c4.js');
10
10
  require('./entities-9eb7e608.js');
11
11
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
12
12
  const index$1 = require('./index-b9d13137.js');
@@ -9,9 +9,9 @@ const index = require('./index-70db349e.js');
9
9
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
10
  const cursors = require('./cursors-85d403e9.js');
11
11
  const dom = require('./dom-8d90bfaf.js');
12
- require('./mapper-0f2294a6.js');
12
+ require('./mapper-216603b0.js');
13
13
  require('./grpc-web-client.umd-2af20c1b.js');
14
- const streamAttributes = require('./streamAttributes-c64aee75.js');
14
+ const streamAttributes = require('./streamAttributes-7725f5c4.js');
15
15
  const model = require('./model-20a70d27.js');
16
16
  const overlays = require('./overlays-b03ec80b.js');
17
17
  const results = require('./results-178e89a3.js');
@@ -7,9 +7,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-70db349e.js');
9
9
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
- require('./mapper-0f2294a6.js');
10
+ require('./mapper-216603b0.js');
11
11
  require('./grpc-web-client.umd-2af20c1b.js');
12
- require('./streamAttributes-c64aee75.js');
12
+ require('./streamAttributes-7725f5c4.js');
13
13
  const overlays = require('./overlays-b03ec80b.js');
14
14
  const utils = require('./utils-2c8e2aa3.js');
15
15
  require('./_commonjsHelpers-dcc4cf71.js');
@@ -6,11 +6,11 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-70db349e.js');
9
- const mapper = require('./mapper-0f2294a6.js');
9
+ const mapper = require('./mapper-216603b0.js');
10
10
  const grpcWebClient_umd = require('./grpc-web-client.umd-2af20c1b.js');
11
- const config = require('./config-6e330a82.js');
12
- const entities = require('./entities-7b2e8c03.js');
13
- require('./streamAttributes-c64aee75.js');
11
+ const config = require('./config-4a86ae0b.js');
12
+ const entities = require('./entities-496b61cd.js');
13
+ require('./streamAttributes-7725f5c4.js');
14
14
  const model = require('./model-20a70d27.js');
15
15
  const overlays = require('./overlays-b03ec80b.js');
16
16
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
@@ -8,9 +8,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
  const index = require('./index-70db349e.js');
9
9
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
10
  require('./cursors-85d403e9.js');
11
- require('./mapper-0f2294a6.js');
11
+ require('./mapper-216603b0.js');
12
12
  require('./grpc-web-client.umd-2af20c1b.js');
13
- require('./streamAttributes-c64aee75.js');
13
+ require('./streamAttributes-7725f5c4.js');
14
14
  require('./entities-9eb7e608.js');
15
15
  const viewport = require('./viewport-5ca619f7.js');
16
16
  const model = require('./model-b61f4d20.js');
@@ -11,7 +11,7 @@ const index$1 = require('./index-b9d13137.js');
11
11
  const stencil = require('./stencil-fc92b387.js');
12
12
  const browser_esm = require('./browser.esm-5d246754.js');
13
13
  const _commonjsHelpers = require('./_commonjsHelpers-dcc4cf71.js');
14
- require('./streamAttributes-c64aee75.js');
14
+ require('./streamAttributes-7725f5c4.js');
15
15
  require('./entities-9eb7e608.js');
16
16
  const viewport = require('./viewport-5ca619f7.js');
17
17
 
@@ -8,7 +8,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
  const index = require('./index-70db349e.js');
9
9
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
10
  const stencil = require('./stencil-fc92b387.js');
11
- const streamAttributes = require('./streamAttributes-c64aee75.js');
11
+ const streamAttributes = require('./streamAttributes-7725f5c4.js');
12
12
  require('./entities-9eb7e608.js');
13
13
  const index$1 = require('./index-b9d13137.js');
14
14
  require('./browser.esm-5d246754.js');
@@ -7,13 +7,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-70db349e.js');
9
9
  const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
- const streamAttributes = require('./streamAttributes-c64aee75.js');
10
+ const streamAttributes = require('./streamAttributes-7725f5c4.js');
11
11
  const browser_esm = require('./browser.esm-5d246754.js');
12
12
  const index$1 = require('./index-b9d13137.js');
13
- const config = require('./config-6e330a82.js');
13
+ const config = require('./config-4a86ae0b.js');
14
14
  const cursors = require('./cursors-85d403e9.js');
15
15
  const dom = require('./dom-8d90bfaf.js');
16
- const scene = require('./scene-56438693.js');
16
+ const scene = require('./scene-0ce59b26.js');
17
17
  const entities = require('./entities-9eb7e608.js');
18
18
  const viewport = require('./viewport-5ca619f7.js');
19
19
  require('./_commonjsHelpers-dcc4cf71.js');
@@ -74,5 +74,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
74
74
 
75
75
  patchBrowser().then(options => {
76
76
  appGlobals.globalScripts();
77
- return index.bootstrapLazy([["vertex-viewer-pin-tool.cjs",[[1,"vertex-viewer-pin-tool",{"pinController":[1040],"pinModel":[16],"viewer":[16],"tool":[1025],"mode":[1025],"primaryColor":[1025,"primary-color"],"accentColor":[1025,"accent-color"],"pins":[32],"selectedPinId":[32],"elementBounds":[32],"projectionViewMatrix":[32]}]]],["vertex-scene-tree.cjs",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[1],"configEnv":[1,"config-env"],"controller":[1040],"metadataSearchExactMatch":[1028,"metadata-search-exact-match"],"metadataSearchKeys":[1040],"metadataKeys":[16],"rows":[32],"totalRows":[32],"showLoader":[32],"stateMap":[32],"errorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"selectFilteredItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-default-toolbar.cjs",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-viewer-markup.cjs",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool.cjs",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-view-cube.cjs",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurement-distance.cjs",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["vertex-viewer-measurement-precise.cjs",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[1]}]]],["vertex-scene-tree-table-cell.cjs",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hovered":[1028],"isScrolling":[4,"is-scrolling"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"selectionHandler":[16],"visibilityHandler":[16],"expansionHandler":[16],"hoverController":[16]}]]],["vertex-scene-tree-table-column.cjs",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header.cjs",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider.cjs",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group.cjs",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer.cjs",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1025,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"cameraType":[1537,"camera-type"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"noDefaultLights":[4,"no-default-lights"],"experimentalRenderingOptions":[1,"experimental-rendering-options"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget_DEPRECATED":[64],"addCursor":[64],"getInteractionHandlers":[64],"getKeyInteractions":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-viewer-measurement-details.cjs",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-transform-widget.cjs",[[1,"vertex-viewer-transform-widget",{"viewer":[16],"position":[1040],"controller":[1040],"hovered":[1040]}]]],["vertex-viewer-pin-group.cjs",[[0,"vertex-viewer-pin-group",{"pin":[16],"matrix":[1040],"projectionViewMatrix":[16],"elementBounds":[1040],"pinModel":[16],"pinController":[16],"selected":[4],"invalidateStateCounter":[32]}]]],["vertex-viewer-dom-group.cjs",[[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}]]],["vertex-viewer-layer.cjs",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-spinner.cjs",[[1,"vertex-viewer-spinner",{"size":[1]}]]],["vertex-viewer-icon.cjs",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-scene-tree-search_3.cjs",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"controller":[16],"value":[1025],"focused":[32],"isSearching":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"isScrolling":[32],"scrollTimer":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3.cjs",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-pin-label_2.cjs",[[0,"vertex-viewer-pin-label",{"pin":[16],"elementBounds":[16],"value":[1025],"pinController":[16],"focused":[32],"computedScreenPosition":[32],"textareaRows":[32],"contentElBounds":[32],"setFocus":[64]}],[0,"vertex-viewer-pin-label-line",{"pinPoint":[16],"labelPoint":[16],"pin":[16]}]]],["vertex-viewer-measurement-line_2.cjs",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]],["vertex-viewer-dom-element_2.cjs",[[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]],[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}]]],["vertex-viewer-markup-arrow_3.cjs",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"screenPoints":[32],"dispose":[64]}]]]], options);
77
+ return index.bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-scene-tree.cjs\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[32],\"stateMap\":[32],\"errorDetails\":[32],\"attemptingRetry\":[32],\"invalidateRows\":[64],\"scrollToIndex\":[64],\"scrollToItem\":[64],\"expandAll\":[64],\"collapseAll\":[64],\"expandItem\":[64],\"collapseItem\":[64],\"toggleExpandItem\":[64],\"toggleItemVisibility\":[64],\"hideItem\":[64],\"showItem\":[64],\"selectItem\":[64],\"deselectItem\":[64],\"getRowAtIndex\":[64],\"getRowForEvent\":[64],\"getRowAtClientY\":[64],\"filterItems\":[64],\"selectFilteredItems\":[64],\"fetchMetadataKeys\":[64]},[[0,\"search\",\"handleSearch\"]]]]],[\"vertex-viewer-default-toolbar.cjs\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-viewer-markup.cjs\",[[1,\"vertex-viewer-markup\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"selectedMarkupId\":[1025,\"selected-markup-id\"],\"selectNew\":[4,\"select-new\"],\"toSelectMarkupId\":[32],\"pointerDownPosition\":[32],\"addMarkup\":[64],\"removeMarkup\":[64],\"getMarkupElements\":[64],\"getMarkupElement\":[64]},[[0,\"markupEnd\",\"handleMarkupEnd\"],[1,\"pointerdown\",\"handleMarkupPointerDown\"]]]]],[\"vertex-viewer-markup-tool.cjs\",[[1,\"vertex-viewer-markup-tool\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"stateMap\":[32],\"reset\":[64]}]]],[\"vertex-viewer-view-cube.cjs\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]}]]],[\"vertex-viewer-measurement-distance.cjs\",[[1,\"vertex-viewer-measurement-distance\",{\"start\":[1040],\"startJson\":[1,\"start-json\"],\"end\":[1040],\"endJson\":[1,\"end-json\"],\"distance\":[1026],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"snapDistance\":[2,\"snap-distance\"],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"labelFormatter\":[16],\"anchorLabelOffset\":[2,\"anchor-label-offset\"],\"lineCapLength\":[2,\"line-cap-length\"],\"mode\":[513],\"interactingAnchor\":[1537,\"interacting-anchor\"],\"invalid\":[1540],\"camera\":[16],\"hitProvider\":[16],\"indicatorPt\":[1040],\"viewer\":[16],\"measurementModel\":[16],\"viewport\":[32],\"elementBounds\":[32],\"interactionCount\":[32],\"internalCamera\":[32],\"invalidateStateCounter\":[32],\"stateMap\":[32],\"measurementUnits\":[32],\"computeElementMetrics\":[64]}]]],[\"vertex-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]}]]],[\"vertex-viewer-box-query-tool.cjs\",[[1,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"details\":[32]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"hoverController\":[16]}]]],[\"vertex-scene-tree-table-column.cjs\",[[1,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header.cjs\",[[1,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider.cjs\",[[1,\"vertex-scene-tree-table-resize-divider\",{\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group.cjs\",[[1,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer.cjs\",[[1,\"vertex-viewer\",{\"src\":[1],\"clientId\":[1,\"client-id\"],\"deviceId\":[1025,\"device-id\"],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"resolvedConfig\":[1040],\"cameraControls\":[4,\"camera-controls\"],\"cameraType\":[1537,\"camera-type\"],\"keyboardControls\":[4,\"keyboard-controls\"],\"rotateAroundTapPoint\":[4,\"rotate-around-tap-point\"],\"token\":[1025],\"depthBuffers\":[1,\"depth-buffers\"],\"experimentalGhostingOpacity\":[2,\"experimental-ghosting-opacity\"],\"noDefaultLights\":[4,\"no-default-lights\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"featureLines\":[16],\"featureHighlighting\":[16],\"featureMaps\":[1,\"feature-maps\"],\"selectionMaterial\":[1,\"selection-material\"],\"resizeDebounce\":[2,\"resize-debounce\"],\"frame\":[1040],\"stream\":[1040],\"stencilBuffer\":[1040],\"viewport\":[1040],\"dimensions\":[32],\"hostDimensions\":[32],\"errorMessage\":[32],\"cursor\":[32],\"stateMap\":[32],\"dispatchFrameDrawn\":[64],\"registerInteractionHandler\":[64],\"registerTapKeyInteraction\":[64],\"getInteractionTarget_DEPRECATED\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getKeyInteractions\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-measurement-details.cjs\",[[1,\"vertex-viewer-measurement-details\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementOutcome\":[1040],\"distanceUnits\":[1,\"distance-units\"],\"angleUnits\":[1,\"angle-units\"],\"fractionalDigits\":[2,\"fractional-digits\"],\"distanceFormatter\":[16],\"angleFormatter\":[16],\"areaFormatter\":[16],\"resultTypes\":[16],\"overlay\":[32],\"distanceMeasurementUnits\":[32],\"angleMeasurementUnits\":[32],\"areaMeasurementUnits\":[32]}]]],[\"vertex-viewer-transform-widget.cjs\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"controller\":[1040],\"hovered\":[1040]}]]],[\"vertex-viewer-icon.cjs\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]],[\"vertex-viewer-pin-group.cjs\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"invalidateStateCounter\":[32]}]]],[\"vertex-viewer-dom-group.cjs\",[[1,\"vertex-viewer-dom-group\",{\"position\":[1040],\"positionJson\":[1,\"position\"],\"rotation\":[1040],\"rotationJson\":[1,\"rotation\"],\"quaternion\":[1040],\"quaternionJson\":[1,\"quaternion\"],\"scale\":[1040],\"scaleJson\":[1,\"scale\"],\"matrix\":[1040]}]]],[\"vertex-viewer-spinner.cjs\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-scene-tree-search_3.cjs\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[32],\"setFocus\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer.cjs\",[[1,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3.cjs\",[[1,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[1,\"vertex-viewer-button\"],[1,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-viewer-pin-label_2.cjs\",[[0,\"vertex-viewer-pin-label\",{\"pin\":[16],\"elementBounds\":[16],\"value\":[1025],\"pinController\":[16],\"focused\":[32],\"computedScreenPosition\":[32],\"textareaRows\":[32],\"contentElBounds\":[32],\"setFocus\":[64]}],[0,\"vertex-viewer-pin-label-line\",{\"pinPoint\":[16],\"labelPoint\":[16],\"pin\":[16]}]]],[\"vertex-viewer-measurement-line_2.cjs\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]],[\"vertex-viewer-dom-element_2.cjs\",[[1,\"vertex-viewer-dom-renderer\",{\"drawMode\":[1,\"draw-mode\"],\"viewer\":[16],\"camera\":[1040],\"depthBuffer\":[1040],\"viewport\":[32],\"invalidateFrameCounter\":[32]},[[0,\"propertyChange\",\"handlePropertyChange\"]]],[1,\"vertex-viewer-dom-element\",{\"position\":[1040],\"positionJson\":[1,\"position\"],\"rotation\":[1040],\"rotationJson\":[1,\"rotation\"],\"quaternion\":[1040],\"quaternionJson\":[1,\"quaternion\"],\"scale\":[1040],\"scaleJson\":[1,\"scale\"],\"matrix\":[1040],\"occlusionOff\":[4,\"occlusion-off\"],\"occluded\":[516],\"billboardOff\":[4,\"billboard-off\"],\"interactionsOff\":[516,\"interactions-off\"]}]]],[\"vertex-viewer-markup-arrow_3.cjs\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]]]"), options);
78
78
  });
@@ -3,6 +3,7 @@
3
3
  "./components/scene-tree/scene-tree.js",
4
4
  "./components/scene-tree-table-cell/scene-tree-table-cell.js",
5
5
  "./components/viewer/viewer.js",
6
+ "./components/viewer-box-query-tool/viewer-box-query-tool.js",
6
7
  "./components/viewer-toolbar/viewer-toolbar.js",
7
8
  "./components/viewer-toolbar-group/viewer-toolbar-group.js",
8
9
  "./components/viewer-dom-renderer/viewer-dom-renderer.js",
@@ -0,0 +1,74 @@
1
+ :host {
2
+ /**
3
+ * @prop --viewer-box-query-outline-exclusive-color: A CSS color that
4
+ * specifies the color of box for an exclusive query. This will
5
+ * be used in combination with `--viewer-box-query-outline-fill-opacity`
6
+ * for the background color of the box. Defaults to `#0099cc`.
7
+ */
8
+ --viewer-box-query-outline-exclusive-color: #0099cc;
9
+ /**
10
+ * @prop --viewer-box-query-outline-exclusive-border-style: A border
11
+ * style that specifies the type of border to display around the box for an
12
+ * exclusive query. Defaults to `solid`.
13
+ */
14
+ --viewer-box-query-outline-exclusive-border-style: solid;
15
+ /**
16
+ * @prop --viewer-box-query-outline-inclusive-color: A CSS color that
17
+ * specifies the color of box for an inclusive query. This will
18
+ * be used in combination with `--viewer-box-query-outline-fill-opacity`
19
+ * for the background color of the box. Defaults to `#00cc00`.
20
+ */
21
+ --viewer-box-query-outline-inclusive-color: #00cc00;
22
+ /**
23
+ * @prop --viewer-box-query-outline-inclusive-border-style: A border
24
+ * style that specifies the type of border to display around the box for an
25
+ * inclusive query. Defaults to `dashed`.
26
+ */
27
+ --viewer-box-query-outline-inclusive-border-style: dashed;
28
+ /**
29
+ * @prop --viewer-box-query-outline-border-radius: A CSS length that
30
+ * specifies the border radius of the drawn box. Defaults to `0.25rem`.
31
+ */
32
+ --viewer-box-query-outline-border-radius: 0.25rem;
33
+ /**
34
+ * @prop--viewer-box-query-outline-fill-opacity: A number between
35
+ * 0 and 1 that specifies the opacity of the background of the drawn box.
36
+ * Defaults to `0.25`.
37
+ */
38
+ --viewer-box-query-outline-fill-opacity: 0.25;
39
+ }
40
+
41
+ .bounds {
42
+ position: absolute;
43
+ }
44
+
45
+ .outline {
46
+ position: relative;
47
+ width: 100%;
48
+ height: 100%;
49
+ box-sizing: border-box;
50
+ border-radius: var(--viewer-box-query-outline-border-radius);
51
+ }
52
+
53
+ :host([exclusive="true"]) .outline {
54
+ border: 3px var(--viewer-box-query-outline-exclusive-border-style) var(--viewer-box-query-outline-exclusive-color);
55
+ }
56
+
57
+ :host([inclusive="true"]) .outline {
58
+ border: 3px var(--viewer-box-query-outline-inclusive-border-style) var(--viewer-box-query-outline-inclusive-color);
59
+ }
60
+
61
+ .fill {
62
+ position: relative;
63
+ width: 100%;
64
+ height: 100%;
65
+ opacity: var(--viewer-box-query-outline-fill-opacity);
66
+ }
67
+
68
+ :host([exclusive="true"]) .fill {
69
+ background-color: var(--viewer-box-query-outline-exclusive-color);
70
+ }
71
+
72
+ :host([inclusive="true"]) .fill {
73
+ background-color: var(--viewer-box-query-outline-inclusive-color);
74
+ }