@vertexvis/viewer 0.15.2-canary.0 → 0.15.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 (82) hide show
  1. package/dist/cjs/{config-aec561b9.js → config-4a86ae0b.js} +2 -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-cb169b09.js} +25 -1
  7. package/dist/cjs/{streamAttributes-c64aee75.js → streamAttributes-7725f5c4.js} +976 -4
  8. package/dist/cjs/vertex-scene-tree.cjs.entry.js +17 -3
  9. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  10. package/dist/cjs/vertex-viewer-drag-select.cjs.entry.js +177 -0
  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/scene-tree/lib/grpc.js +11 -1
  22. package/dist/collection/components/scene-tree/scene-tree.js +7 -2
  23. package/dist/collection/components/viewer-drag-select/controller.js +18 -0
  24. package/dist/collection/components/viewer-drag-select/interaction-handler.js +41 -0
  25. package/dist/collection/components/viewer-drag-select/model.js +49 -0
  26. package/dist/collection/components/viewer-drag-select/viewer-drag-select.css +36 -0
  27. package/dist/collection/components/viewer-drag-select/viewer-drag-select.js +115 -0
  28. package/dist/collection/lib/scenes/mapper.js +11 -1
  29. package/dist/collection/lib/scenes/queries.js +15 -1
  30. package/dist/collection/lib/types/flags.js +2 -1
  31. package/dist/custom-elements/index.d.ts +6 -0
  32. package/dist/custom-elements/index.js +1184 -6
  33. package/dist/esm/{config-d574c78c.js → config-6cdeb6ca.js} +2 -1
  34. package/dist/esm/{entities-a5bfef48.js → entities-6f3c5437.js} +2 -2
  35. package/dist/esm/index.js +4 -4
  36. package/dist/esm/index.mjs +4 -4
  37. package/dist/esm/loader.js +1 -1
  38. package/dist/esm/loader.mjs +1 -1
  39. package/dist/esm/{mapper-5894c2a4.js → mapper-941ff03c.js} +1 -1
  40. package/dist/esm/{scene-5b919078.js → scene-6f98b0dd.js} +25 -1
  41. package/dist/esm/{streamAttributes-7e8565be.js → streamAttributes-24bd7b3a.js} +976 -4
  42. package/dist/esm/vertex-scene-tree.entry.js +17 -3
  43. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  44. package/dist/esm/vertex-viewer-drag-select.entry.js +173 -0
  45. package/dist/esm/vertex-viewer-measurement-details.entry.js +1 -1
  46. package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
  47. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
  48. package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -4
  49. package/dist/esm/vertex-viewer-pin-group.entry.js +2 -2
  50. package/dist/esm/vertex-viewer-transform-widget.entry.js +1 -1
  51. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  52. package/dist/esm/vertex-viewer.entry.js +3 -3
  53. package/dist/esm/viewer.js +1 -1
  54. package/dist/types/components/scene-tree/lib/grpc.d.ts +2 -0
  55. package/dist/types/components/viewer-drag-select/controller.d.ts +9 -0
  56. package/dist/types/components/viewer-drag-select/interaction-handler.d.ts +15 -0
  57. package/dist/types/components/viewer-drag-select/model.d.ts +25 -0
  58. package/dist/types/components/viewer-drag-select/viewer-drag-select.d.ts +27 -0
  59. package/dist/types/components.d.ts +24 -0
  60. package/dist/types/lib/scenes/queries.d.ts +12 -2
  61. package/dist/types/lib/types/flags.d.ts +7 -1
  62. package/dist/viewer/index.esm.js +1 -1
  63. package/dist/viewer/{p-e63c1703.entry.js → p-1bba9ade.entry.js} +1 -1
  64. package/dist/viewer/{p-3f6f2457.entry.js → p-24cda14a.entry.js} +1 -1
  65. package/dist/viewer/{p-b7e170ac.entry.js → p-2b58afc3.entry.js} +1 -1
  66. package/dist/viewer/{p-1fc24ec6.js → p-52ab9ec0.js} +1 -1
  67. package/dist/viewer/p-597cc9b5.js +4 -0
  68. package/dist/viewer/{p-61e50e11.entry.js → p-608925c5.entry.js} +1 -1
  69. package/dist/viewer/p-68e192b9.js +4 -0
  70. package/dist/viewer/{p-d34ad2b2.entry.js → p-69a3fce8.entry.js} +1 -1
  71. package/dist/viewer/{p-d78f54a6.entry.js → p-74c772bb.entry.js} +1 -1
  72. package/dist/viewer/{p-40a9dd7d.js → p-9e1384c9.js} +1 -1
  73. package/dist/viewer/{p-d64c1e14.entry.js → p-a107b65e.entry.js} +2 -2
  74. package/dist/viewer/{p-b278cf0b.entry.js → p-a5f18e7b.entry.js} +1 -1
  75. package/dist/viewer/p-ae31d912.entry.js +4 -0
  76. package/dist/viewer/{p-920c9a88.entry.js → p-bfacbaa8.entry.js} +1 -1
  77. package/dist/viewer/{p-f3ea0c2b.entry.js → p-c72da0fb.entry.js} +1 -1
  78. package/dist/viewer/{p-1e0dd2e9.js → p-cea5d8bd.js} +1 -1
  79. package/dist/viewer/viewer.esm.js +1 -1
  80. package/package.json +8 -8
  81. package/dist/viewer/p-31b87b90.js +0 -4
  82. package/dist/viewer/p-5317e8cd.js +0 -4
@@ -5,10 +5,10 @@ import { h, F as Fragment, r as registerInstance, c as createEvent, f as forceUp
5
5
  import { o as __rest } from './bundle.esm-ce2c7ad3.js';
6
6
  import { c as createCommonjsModule } from './_commonjsHelpers-11ca3be1.js';
7
7
  import { a as googleProtobuf, w as wrappers_pb, g as grpcWebClient_umd } from './grpc-web-client.umd-5409853c.js';
8
- import { p as parseConfig } from './config-d574c78c.js';
8
+ import { p as parseConfig } from './config-6cdeb6ca.js';
9
9
  import { E as EventDispatcher } from './browser.esm-ae4ca1f1.js';
10
10
  import { i as isLoadedRow, f as fromNodeProto, g as getSceneTreeContainsElement } from './dom-e19ee80b.js';
11
- import './streamAttributes-7e8565be.js';
11
+ import './streamAttributes-24bd7b3a.js';
12
12
  import './entities-ce81dd7f.js';
13
13
 
14
14
  window.requestIdleCallback =
@@ -6365,6 +6365,8 @@ SceneTreeAPI.GetAvailableColumns = {
6365
6365
  responseType: scene_tree_api_pb.GetAvailableColumnsResponse
6366
6366
  };
6367
6367
 
6368
+ var SceneTreeAPI_1 = SceneTreeAPI;
6369
+
6368
6370
  function SceneTreeAPIClient(serviceHost, options) {
6369
6371
  this.serviceHost = serviceHost;
6370
6372
  this.options = options || {};
@@ -6741,6 +6743,14 @@ function getSceneTreeErrorMessage(code) {
6741
6743
  function isGrpcServiceError(err) {
6742
6744
  return typeof err.code === 'number' && err.hasOwnProperty('metadata');
6743
6745
  }
6746
+ function webSocketSubscriptionTransportFactory(options) {
6747
+ if (options.methodDefinition.methodName === SceneTreeAPI_1.Subscribe.methodName) {
6748
+ return grpcWebClient_umd.grpc.WebsocketTransport()(options);
6749
+ }
6750
+ else {
6751
+ return grpcWebClient_umd.grpc.CrossBrowserHttpTransport({ withCredentials: false })(options);
6752
+ }
6753
+ }
6744
6754
 
6745
6755
  function e(e){this.message=e;}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,"");if(t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,o,a=0,i=0,c="";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);return c};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw "Illegal base64url string!"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e;}function o(e,r){if("string"!=typeof e)throw new n("Invalid token specified");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(".")[o]))}catch(e){throw new n("Invalid token specified: "+e.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";
6746
6756
 
@@ -7833,7 +7843,11 @@ const SceneTree = class {
7833
7843
  componentWillLoad() {
7834
7844
  if (this.controller == null) {
7835
7845
  const { sceneTreeHost } = this.getConfig().network;
7836
- const client = new SceneTreeAPIClient_1(sceneTreeHost);
7846
+ const client = new SceneTreeAPIClient_1(sceneTreeHost, this.getConfig().flags.grpcUseStreamingWebSocketTransport
7847
+ ? {
7848
+ transport: webSocketSubscriptionTransportFactory,
7849
+ }
7850
+ : undefined);
7837
7851
  this.controller = new SceneTreeController(client, 100);
7838
7852
  }
7839
7853
  this.stateMap.onStateChangeDisposable = this.controller.onStateChange.on((state) => this.handleControllerStateChange(state));
@@ -4,7 +4,7 @@
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-26dfb2d0.js';
5
5
  import { v as vector3, q as quaternion, m as matrix4, u as euler } from './bundle.esm-ce2c7ad3.js';
6
6
  import { o as objects } from './browser.esm-ae4ca1f1.js';
7
- import './streamAttributes-7e8565be.js';
7
+ import './streamAttributes-24bd7b3a.js';
8
8
  import './entities-ce81dd7f.js';
9
9
  import { V as Viewport } from './viewport-e39e2eba.js';
10
10
  import './_commonjsHelpers-11ca3be1.js';
@@ -0,0 +1,173 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import { r as registerInstance, h, H as Host } from './index-26dfb2d0.js';
5
+ import { c as classnames } from './index-e841d91b.js';
6
+ import { p as point, i as rectangle } from './bundle.esm-ce2c7ad3.js';
7
+ import { E as EventDispatcher } from './browser.esm-ae4ca1f1.js';
8
+ import './_commonjsHelpers-11ca3be1.js';
9
+
10
+ class ViewerDragSelectController {
11
+ constructor(viewer, model) {
12
+ this.viewer = viewer;
13
+ this.model = model;
14
+ this.dragEndDisposable = this.model.onDragFinished(this.selectFromBounds);
15
+ }
16
+ dispose() {
17
+ var _a;
18
+ (_a = this.dragEndDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
19
+ }
20
+ async selectFromBounds(event) {
21
+ const scene = await this.viewer.scene();
22
+ await scene
23
+ .items((op) => op.where((q) => q.withVolumeIntersection(event.rectangle)).select())
24
+ .execute();
25
+ }
26
+ }
27
+
28
+ class ViewerDragSelectInteractionHandler {
29
+ constructor(viewer, dragSelectModel) {
30
+ this.viewer = viewer;
31
+ this.dragSelectModel = dragSelectModel;
32
+ this.handleDragBegin = this.handleDragBegin.bind(this);
33
+ this.handleDrag = this.handleDrag.bind(this);
34
+ this.handleDragEnd = this.handleDragEnd.bind(this);
35
+ }
36
+ initialize(element, api) {
37
+ this.element = element;
38
+ this.api = api;
39
+ this.element.addEventListener('pointerdown', this.handleDragBegin);
40
+ }
41
+ dispose() {
42
+ var _a, _b, _c;
43
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.removeEventListener('pointerdown', this.handleDragBegin);
44
+ (_b = this.element) === null || _b === void 0 ? void 0 : _b.removeEventListener('pointermove', this.handleDrag);
45
+ (_c = this.element) === null || _c === void 0 ? void 0 : _c.removeEventListener('pointerup', this.handleDragEnd);
46
+ }
47
+ handleDragBegin(event) {
48
+ var _a, _b;
49
+ if (event.buttons === 1) {
50
+ this.viewer.cameraControls = false;
51
+ this.dragSelectModel.updateStartPoint(point.create(event.offsetX, event.offsetY));
52
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.addEventListener('pointermove', this.handleDrag);
53
+ (_b = this.element) === null || _b === void 0 ? void 0 : _b.addEventListener('pointerup', this.handleDragEnd);
54
+ }
55
+ }
56
+ handleDrag(event) {
57
+ this.dragSelectModel.updateEndPoint(point.create(event.offsetX, event.offsetY));
58
+ }
59
+ handleDragEnd() {
60
+ var _a, _b;
61
+ this.viewer.cameraControls = true;
62
+ this.dragSelectModel.clear();
63
+ (_a = this.element) === null || _a === void 0 ? void 0 : _a.removeEventListener('pointermove', this.handleDrag);
64
+ (_b = this.element) === null || _b === void 0 ? void 0 : _b.removeEventListener('pointerup', this.handleDragEnd);
65
+ }
66
+ }
67
+
68
+ class ViewerDragSelectModel {
69
+ constructor() {
70
+ this.dragFinished = new EventDispatcher();
71
+ this.boundsChanged = new EventDispatcher();
72
+ }
73
+ updateStartPoint(point) {
74
+ this.dragStartPoint = point;
75
+ }
76
+ updateEndPoint(point$1) {
77
+ var _a;
78
+ this.dragEndPoint = point$1;
79
+ this.direction =
80
+ point.subtract(point$1, (_a = this.dragStartPoint) !== null && _a !== void 0 ? _a : point$1).x > 0
81
+ ? 'right'
82
+ : 'left';
83
+ this.boundsChanged.emit({
84
+ rectangle: this.getDragBounds(),
85
+ direction: this.getDragDirection(),
86
+ });
87
+ }
88
+ clear() {
89
+ this.dragFinished.emit({
90
+ rectangle: this.getDragBounds(),
91
+ direction: this.getDragDirection(),
92
+ });
93
+ this.dragStartPoint = undefined;
94
+ this.dragEndPoint = undefined;
95
+ this.boundsChanged.emit({});
96
+ }
97
+ onDragFinished(listener) {
98
+ return this.dragFinished.on(listener);
99
+ }
100
+ onBoundsChanged(listener) {
101
+ return this.boundsChanged.on(listener);
102
+ }
103
+ getDragBounds() {
104
+ if (this.dragStartPoint != null && this.dragEndPoint != null) {
105
+ return rectangle.fromPoints(this.dragStartPoint, this.dragEndPoint);
106
+ }
107
+ return rectangle.create(0, 0, 0, 0);
108
+ }
109
+ getDragDirection() {
110
+ var _a;
111
+ return (_a = this.direction) !== null && _a !== void 0 ? _a : 'right';
112
+ }
113
+ }
114
+
115
+ const viewerDragSelectCss = ":host{--viewer-drag-select-outline-exclusive-border-color:#5555ff;--viewer-drag-select-outline-exclusive-border-style:solid;--viewer-drag-select-outline-exclusive-fill-color:blue;--viewer-drag-select-outline-inclusive-border-color:#ff5555;--viewer-drag-select-outline-inclusive-border-style:dashed;--viewer-drag-select-outline-inclusive-fill-color:red;--viewer-drag-select-outline-fill-opacity:0.1}.outline{position:absolute}.outline.exclusive{border:3px var(--viewer-drag-select-outline-exclusive-border-style) var(--viewer-drag-select-outline-exclusive-border-color)}.outline.inclusive{border:3px var(--viewer-drag-select-outline-inclusive-border-style) var(--viewer-drag-select-outline-inclusive-border-color)}.fill{position:relative;width:100%;height:100%;opacity:var(--viewer-drag-select-outline-fill-opacity)}.fill.exclusive{background-color:var(--viewer-drag-select-outline-exclusive-fill-color)}.fill.inclusive{background-color:var(--viewer-drag-select-outline-inclusive-fill-color)}";
116
+
117
+ const ViewerDragSelect = class {
118
+ constructor(hostRef) {
119
+ registerInstance(this, hostRef);
120
+ this.handleBoundsChanged = this.handleBoundsChanged.bind(this);
121
+ }
122
+ componentWillLoad() {
123
+ this.interactionModel = new ViewerDragSelectModel();
124
+ this.interactionModel.onBoundsChanged(this.handleBoundsChanged);
125
+ this.handleViewerChanged(this.viewer);
126
+ }
127
+ /**
128
+ * @ignore
129
+ */
130
+ handleViewerChanged(newViewer) {
131
+ this.deregisterInteractionHandler();
132
+ if ((newViewer === null || newViewer === void 0 ? void 0 : newViewer.stream) != null) {
133
+ this.registerInteractionHandler(newViewer);
134
+ this.controller = new ViewerDragSelectController(newViewer, this.interactionModel);
135
+ }
136
+ }
137
+ /**
138
+ * @ignore
139
+ */
140
+ render() {
141
+ return (h(Host, null, h("vertex-viewer-layer", null, this.dragRect != null && (h("div", { class: classnames('outline', {
142
+ exclusive: this.dragDirection === 'right',
143
+ inclusive: this.dragDirection === 'left',
144
+ }), style: {
145
+ left: `${this.dragRect.x}px`,
146
+ top: `${this.dragRect.y}px`,
147
+ width: `${this.dragRect.width}px`,
148
+ height: `${this.dragRect.height}px`,
149
+ } }, h("div", { class: classnames('fill', {
150
+ exclusive: this.dragDirection === 'right',
151
+ inclusive: this.dragDirection === 'left',
152
+ }) }))))));
153
+ }
154
+ handleBoundsChanged(event) {
155
+ this.dragRect = event.rectangle;
156
+ this.dragDirection = event.direction;
157
+ }
158
+ registerInteractionHandler(viewer) {
159
+ this.interactionHandler = new ViewerDragSelectInteractionHandler(viewer, this.interactionModel);
160
+ viewer.registerInteractionHandler(this.interactionHandler);
161
+ }
162
+ deregisterInteractionHandler() {
163
+ var _a;
164
+ (_a = this.interactionHandler) === null || _a === void 0 ? void 0 : _a.dispose();
165
+ this.interactionHandler = undefined;
166
+ }
167
+ static get watchers() { return {
168
+ "viewer": ["handleViewerChanged"]
169
+ }; }
170
+ };
171
+ ViewerDragSelect.style = viewerDragSelectCss;
172
+
173
+ export { ViewerDragSelect as vertex_viewer_drag_select };
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { h, F as Fragment, r as registerInstance, H as Host } from './index-26dfb2d0.js';
5
- import { D as DistanceUnits, A as AngleUnits, f as AreaUnits } from './streamAttributes-7e8565be.js';
5
+ import { D as DistanceUnits, A as AngleUnits, f as AreaUnits } from './streamAttributes-24bd7b3a.js';
6
6
  import './entities-ce81dd7f.js';
7
7
  import { o as __rest, v as vector3 } from './bundle.esm-ce2c7ad3.js';
8
8
  import { c as classnames } from './index-e841d91b.js';
@@ -5,9 +5,9 @@ import { h, r as registerInstance, c as createEvent, H as Host, g as getElement
5
5
  import { v as vector3, h as angle, p as point, l as line3 } from './bundle.esm-ce2c7ad3.js';
6
6
  import { m as measurementCursor } from './cursors-a8d4b3f4.js';
7
7
  import { a as cssTransformCenterAt, g as getMouseClientPosition } from './dom-5b164305.js';
8
- import './mapper-5894c2a4.js';
8
+ import './mapper-941ff03c.js';
9
9
  import './grpc-web-client.umd-5409853c.js';
10
- import { j as fromPbVector3f, D as DistanceUnits } from './streamAttributes-7e8565be.js';
10
+ import { j as fromPbVector3f, D as DistanceUnits } from './streamAttributes-24bd7b3a.js';
11
11
  import { M as MeasurementModel } from './model-fa9af61a.js';
12
12
  import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
13
13
  import { m as makeMinimumDistanceResult } from './results-3b4df2cf.js';
@@ -3,9 +3,9 @@
3
3
  */
4
4
  import { r as registerInstance, h, F as Fragment, H as Host } from './index-26dfb2d0.js';
5
5
  import { p as point, h as angle } from './bundle.esm-ce2c7ad3.js';
6
- import './mapper-5894c2a4.js';
6
+ import './mapper-941ff03c.js';
7
7
  import './grpc-web-client.umd-5409853c.js';
8
- import './streamAttributes-7e8565be.js';
8
+ import './streamAttributes-24bd7b3a.js';
9
9
  import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
10
10
  import { t as translateWorldLineToViewport } from './utils-81347571.js';
11
11
  import './_commonjsHelpers-11ca3be1.js';
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h, H as Host } from './index-26dfb2d0.js';
5
- import { s as scene_view_api_pb } from './mapper-5894c2a4.js';
5
+ import { s as scene_view_api_pb } from './mapper-941ff03c.js';
6
6
  import { g as grpcWebClient_umd } from './grpc-web-client.umd-5409853c.js';
7
- import { p as parseConfig } from './config-d574c78c.js';
8
- import { a as MeasurementEntity, M as MeasurementController } from './entities-a5bfef48.js';
9
- import './streamAttributes-7e8565be.js';
7
+ import { p as parseConfig } from './config-6cdeb6ca.js';
8
+ import { a as MeasurementEntity, M as MeasurementController } from './entities-6f3c5437.js';
9
+ import './streamAttributes-24bd7b3a.js';
10
10
  import { M as MeasurementModel } from './model-fa9af61a.js';
11
11
  import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
12
12
  import { p as point } from './bundle.esm-ce2c7ad3.js';
@@ -4,9 +4,9 @@
4
4
  import { h, F as Fragment, r as registerInstance } from './index-26dfb2d0.js';
5
5
  import { p as point, m as matrix4, v as vector3 } from './bundle.esm-ce2c7ad3.js';
6
6
  import './cursors-a8d4b3f4.js';
7
- import './mapper-5894c2a4.js';
7
+ import './mapper-941ff03c.js';
8
8
  import './grpc-web-client.umd-5409853c.js';
9
- import './streamAttributes-7e8565be.js';
9
+ import './streamAttributes-24bd7b3a.js';
10
10
  import './entities-ce81dd7f.js';
11
11
  import { V as Viewport } from './viewport-e39e2eba.js';
12
12
  import { g as getPinColors, i as isIconPin, b as isTextPin, P as PinModel, a as PinController, c as translatePointToScreen } from './model-40bd1711.js';
@@ -7,7 +7,7 @@ import { c as classnames } from './index-e841d91b.js';
7
7
  import { w as writeDOM, r as readDOM } from './stencil-bfbf099f.js';
8
8
  import { c as color, E as EventDispatcher } from './browser.esm-ae4ca1f1.js';
9
9
  import { c as createCommonjsModule, a as commonjsGlobal, g as getAugmentedNamespace, b as getDefaultExportFromCjs } from './_commonjsHelpers-11ca3be1.js';
10
- import './streamAttributes-7e8565be.js';
10
+ import './streamAttributes-24bd7b3a.js';
11
11
  import './entities-ce81dd7f.js';
12
12
  import { V as Viewport } from './viewport-e39e2eba.js';
13
13
 
@@ -4,7 +4,7 @@
4
4
  import { h, F as Fragment, r as registerInstance, H as Host } from './index-26dfb2d0.js';
5
5
  import { v as vector3, q as quaternion, u as euler } from './bundle.esm-ce2c7ad3.js';
6
6
  import { r as readDOM } from './stencil-bfbf099f.js';
7
- import { O as Orientation, e as FramePerspectiveCamera, G as StandardView } from './streamAttributes-7e8565be.js';
7
+ import { O as Orientation, e as FramePerspectiveCamera, G as StandardView } from './streamAttributes-24bd7b3a.js';
8
8
  import './entities-ce81dd7f.js';
9
9
  import { c as classnames } from './index-e841d91b.js';
10
10
  import './browser.esm-ae4ca1f1.js';
@@ -3,13 +3,13 @@
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-26dfb2d0.js';
5
5
  import { p as point, v as vector3, h as angle, j as plane, r as ray, b as boundingBox, s as matrix2, d as dimensions } from './bundle.esm-ce2c7ad3.js';
6
- import { l as fromPbStencilBufferOrThrow, m as decodePng, n as DepthBuffer, t as toProtoDuration, g as toProtobuf, p as protoToDate, o as toPbStreamAttributes, q as toPbRGBi, S as StreamApi, r as StreamRequestError, s as fromPbFrameOrThrow, u as fromPbStartStreamResponseOrThrow, x as fromPbReconnectResponseOrThrow, y as fromPbSyncTimeResponseOrThrow, z as currentDateAsProtoTimestamp, B as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl, C as toOrthographic, E as toPerspective } from './streamAttributes-7e8565be.js';
6
+ import { l as fromPbStencilBufferOrThrow, m as decodePng, n as DepthBuffer, t as toProtoDuration, g as toProtobuf, p as protoToDate, o as toPbStreamAttributes, q as toPbRGBi, S as StreamApi, r as StreamRequestError, s as fromPbFrameOrThrow, u as fromPbStartStreamResponseOrThrow, x as fromPbReconnectResponseOrThrow, y as fromPbSyncTimeResponseOrThrow, z as currentDateAsProtoTimestamp, B as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl, C as toOrthographic, E as toPerspective } from './streamAttributes-24bd7b3a.js';
7
7
  import { E as EventDispatcher, m as mapper, c as color, o as objects, u as uri, a as async, b as uuid } from './browser.esm-ae4ca1f1.js';
8
8
  import { c as classnames } from './index-e841d91b.js';
9
- import { p as parseConfig } from './config-d574c78c.js';
9
+ import { p as parseConfig } from './config-6cdeb6ca.js';
10
10
  import { C as CursorManager } from './cursors-a8d4b3f4.js';
11
11
  import { g as getMouseClientPosition, c as cssCursor } from './dom-5b164305.js';
12
- import { I as ImageLoadError, f as fromUrn, C as CustomError, W as WebsocketConnectionError, a as SynchronizedClock, b as SceneRenderError, d as defaultSelectionMaterial, V as ViewerInitializationError, e as InteractionHandlerError, g as ComponentInitializationError, h as IllegalStateError, i as fromHex, S as Scene } from './scene-5b919078.js';
12
+ import { I as ImageLoadError, f as fromUrn, C as CustomError, W as WebsocketConnectionError, a as SynchronizedClock, b as SceneRenderError, d as defaultSelectionMaterial, V as ViewerInitializationError, e as InteractionHandlerError, g as ComponentInitializationError, h as IllegalStateError, i as fromHex, S as Scene } from './scene-6f98b0dd.js';
13
13
  import { E as EntityType } from './entities-ce81dd7f.js';
14
14
  import { V as Viewport } from './viewport-e39e2eba.js';
15
15
  import './_commonjsHelpers-11ca3be1.js';
@@ -72,5 +72,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
72
72
 
73
73
  patchBrowser().then(options => {
74
74
  globalScripts();
75
- return bootstrapLazy([["vertex-viewer-pin-tool",[[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",[[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",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-viewer-markup",[[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",[[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",[[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",[[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",[[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",[[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",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[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",[[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",[[1,"vertex-viewer-transform-widget",{"viewer":[16],"position":[1040],"controller":[1040],"hovered":[1040]}]]],["vertex-viewer-pin-group",[[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",[[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",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-spinner",[[1,"vertex-viewer-spinner",{"size":[1]}]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-scene-tree-search_3",[[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",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-pin-label_2",[[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",[[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",[[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",[[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);
75
+ return bootstrapLazy([["vertex-viewer-pin-tool",[[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",[[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",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-viewer-markup",[[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",[[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",[[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",[[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",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[1]}]]],["vertex-viewer-drag-select",[[1,"vertex-viewer-drag-select",{"viewer":[16],"controller":[16],"dragRect":[32],"dragDirection":[32]}]]],["vertex-scene-tree-table-cell",[[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",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[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",[[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",[[1,"vertex-viewer-transform-widget",{"viewer":[16],"position":[1040],"controller":[1040],"hovered":[1040]}]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-pin-group",[[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",[[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",[[1,"vertex-viewer-spinner",{"size":[1]}]]],["vertex-scene-tree-search_3",[[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",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-button_3",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-pin-label_2",[[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",[[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",[[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",[[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);
76
76
  });
@@ -1,2 +1,4 @@
1
+ import { Transport, TransportOptions } from '@improbable-eng/grpc-web/dist/typings/transports/Transport';
1
2
  import { ServiceError } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';
2
3
  export declare function isGrpcServiceError(err: any): err is ServiceError;
4
+ export declare function webSocketSubscriptionTransportFactory(options: TransportOptions): Transport;
@@ -0,0 +1,9 @@
1
+ import { DragFinishedEvent, ViewerDragSelectModel } from './model';
2
+ export declare class ViewerDragSelectController {
3
+ private viewer;
4
+ private model;
5
+ private dragEndDisposable?;
6
+ constructor(viewer: HTMLVertexViewerElement, model: ViewerDragSelectModel);
7
+ dispose(): void;
8
+ selectFromBounds(event: DragFinishedEvent): Promise<void>;
9
+ }
@@ -0,0 +1,15 @@
1
+ import { InteractionApi } from '../../lib/interactions';
2
+ import { InteractionHandler } from '../../lib/interactions/interactionHandler';
3
+ import { ViewerDragSelectModel } from './model';
4
+ export declare class ViewerDragSelectInteractionHandler implements InteractionHandler {
5
+ private viewer;
6
+ private dragSelectModel;
7
+ private element?;
8
+ private api?;
9
+ constructor(viewer: HTMLVertexViewerElement, dragSelectModel: ViewerDragSelectModel);
10
+ initialize(element: HTMLElement, api: InteractionApi): void;
11
+ dispose(): void;
12
+ private handleDragBegin;
13
+ private handleDrag;
14
+ private handleDragEnd;
15
+ }
@@ -0,0 +1,25 @@
1
+ import { Point, Rectangle } from '@vertexvis/geometry';
2
+ import { Disposable, Listener } from '@vertexvis/utils';
3
+ export declare type ViewerDragSelectDirection = 'left' | 'right';
4
+ export interface BoundsChangedEvent {
5
+ rectangle?: Rectangle.Rectangle;
6
+ direction?: ViewerDragSelectDirection;
7
+ }
8
+ export interface DragFinishedEvent {
9
+ rectangle: Rectangle.Rectangle;
10
+ direction: ViewerDragSelectDirection;
11
+ }
12
+ export declare class ViewerDragSelectModel {
13
+ private dragStartPoint?;
14
+ private dragEndPoint?;
15
+ private direction?;
16
+ private dragFinished;
17
+ private boundsChanged;
18
+ updateStartPoint(point: Point.Point): void;
19
+ updateEndPoint(point: Point.Point): void;
20
+ clear(): void;
21
+ onDragFinished(listener: Listener<DragFinishedEvent>): Disposable;
22
+ onBoundsChanged(listener: Listener<BoundsChangedEvent>): Disposable;
23
+ private getDragBounds;
24
+ private getDragDirection;
25
+ }
@@ -0,0 +1,27 @@
1
+ import { h } from '../../stencil-public-runtime';
2
+ import { ViewerDragSelectController } from './controller';
3
+ export declare class ViewerDragSelect {
4
+ /**
5
+ * The viewer that this component is bound to. This is automatically assigned
6
+ * if added to the light-dom of a parent viewer element.
7
+ */
8
+ viewer?: HTMLVertexViewerElement;
9
+ controller?: ViewerDragSelectController;
10
+ private dragRect?;
11
+ private dragDirection?;
12
+ private interactionModel;
13
+ private interactionHandler?;
14
+ constructor();
15
+ componentWillLoad(): void;
16
+ /**
17
+ * @ignore
18
+ */
19
+ protected handleViewerChanged(newViewer?: HTMLVertexViewerElement): void;
20
+ /**
21
+ * @ignore
22
+ */
23
+ protected render(): h.JSX.IntrinsicElements;
24
+ private handleBoundsChanged;
25
+ private registerInteractionHandler;
26
+ private deregisterInteractionHandler;
27
+ }
@@ -36,6 +36,7 @@ import { Scene } from "./lib/scenes/scene";
36
36
  import { ViewerToolbarPlacement } from "./components/viewer-toolbar/viewer-toolbar";
37
37
  import { ViewerToolbarGroupDirection } from "./components/viewer-toolbar-group/viewer-toolbar-group";
38
38
  import { ViewerDomRendererDrawMode } from "./components/viewer-dom-renderer/viewer-dom-renderer";
39
+ import { ViewerDragSelectController } from "./components/viewer-drag-select/controller";
39
40
  import { ViewerIconName, ViewerIconSize } from "./components/viewer-icon/viewer-icon";
40
41
  import { ViewerMarkupToolType } from "./components/viewer-markup-tool/viewer-markup-tool";
41
42
  import { Markup } from "./lib/types/markup";
@@ -599,6 +600,13 @@ export namespace Components {
599
600
  */
600
601
  "viewer"?: HTMLVertexViewerElement;
601
602
  }
603
+ interface VertexViewerDragSelect {
604
+ "controller"?: ViewerDragSelectController;
605
+ /**
606
+ * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element.
607
+ */
608
+ "viewer"?: HTMLVertexViewerElement;
609
+ }
602
610
  interface VertexViewerIcon {
603
611
  /**
604
612
  * The name of the icon to render.
@@ -1274,6 +1282,12 @@ declare global {
1274
1282
  prototype: HTMLVertexViewerDomRendererElement;
1275
1283
  new (): HTMLVertexViewerDomRendererElement;
1276
1284
  };
1285
+ interface HTMLVertexViewerDragSelectElement extends Components.VertexViewerDragSelect, HTMLStencilElement {
1286
+ }
1287
+ var HTMLVertexViewerDragSelectElement: {
1288
+ prototype: HTMLVertexViewerDragSelectElement;
1289
+ new (): HTMLVertexViewerDragSelectElement;
1290
+ };
1277
1291
  interface HTMLVertexViewerIconElement extends Components.VertexViewerIcon, HTMLStencilElement {
1278
1292
  }
1279
1293
  var HTMLVertexViewerIconElement: {
@@ -1416,6 +1430,7 @@ declare global {
1416
1430
  "vertex-viewer-dom-element": HTMLVertexViewerDomElementElement;
1417
1431
  "vertex-viewer-dom-group": HTMLVertexViewerDomGroupElement;
1418
1432
  "vertex-viewer-dom-renderer": HTMLVertexViewerDomRendererElement;
1433
+ "vertex-viewer-drag-select": HTMLVertexViewerDragSelectElement;
1419
1434
  "vertex-viewer-icon": HTMLVertexViewerIconElement;
1420
1435
  "vertex-viewer-layer": HTMLVertexViewerLayerElement;
1421
1436
  "vertex-viewer-markup": HTMLVertexViewerMarkupElement;
@@ -1867,6 +1882,13 @@ declare namespace LocalJSX {
1867
1882
  */
1868
1883
  "viewer"?: HTMLVertexViewerElement;
1869
1884
  }
1885
+ interface VertexViewerDragSelect {
1886
+ "controller"?: ViewerDragSelectController;
1887
+ /**
1888
+ * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element.
1889
+ */
1890
+ "viewer"?: HTMLVertexViewerElement;
1891
+ }
1870
1892
  interface VertexViewerIcon {
1871
1893
  /**
1872
1894
  * The name of the icon to render.
@@ -2438,6 +2460,7 @@ declare namespace LocalJSX {
2438
2460
  "vertex-viewer-dom-element": VertexViewerDomElement;
2439
2461
  "vertex-viewer-dom-group": VertexViewerDomGroup;
2440
2462
  "vertex-viewer-dom-renderer": VertexViewerDomRenderer;
2463
+ "vertex-viewer-drag-select": VertexViewerDragSelect;
2441
2464
  "vertex-viewer-icon": VertexViewerIcon;
2442
2465
  "vertex-viewer-layer": VertexViewerLayer;
2443
2466
  "vertex-viewer-markup": VertexViewerMarkup;
@@ -2480,6 +2503,7 @@ declare module "@stencil/core" {
2480
2503
  "vertex-viewer-dom-element": LocalJSX.VertexViewerDomElement & JSXBase.HTMLAttributes<HTMLVertexViewerDomElementElement>;
2481
2504
  "vertex-viewer-dom-group": LocalJSX.VertexViewerDomGroup & JSXBase.HTMLAttributes<HTMLVertexViewerDomGroupElement>;
2482
2505
  "vertex-viewer-dom-renderer": LocalJSX.VertexViewerDomRenderer & JSXBase.HTMLAttributes<HTMLVertexViewerDomRendererElement>;
2506
+ "vertex-viewer-drag-select": LocalJSX.VertexViewerDragSelect & JSXBase.HTMLAttributes<HTMLVertexViewerDragSelectElement>;
2483
2507
  "vertex-viewer-icon": LocalJSX.VertexViewerIcon & JSXBase.HTMLAttributes<HTMLVertexViewerIconElement>;
2484
2508
  "vertex-viewer-layer": LocalJSX.VertexViewerLayer & JSXBase.HTMLAttributes<HTMLVertexViewerLayerElement>;
2485
2509
  "vertex-viewer-markup": LocalJSX.VertexViewerMarkup & JSXBase.HTMLAttributes<HTMLVertexViewerMarkupElement>;
@@ -1,4 +1,4 @@
1
- import { Point } from '@vertexvis/geometry';
1
+ import { Point, Rectangle } from '@vertexvis/geometry';
2
2
  import { ColorMaterial } from './colorMaterial';
3
3
  import { SceneItemOperationsBuilder } from './scene';
4
4
  interface AllQueryExpression {
@@ -37,10 +37,14 @@ interface PointQueryExpression {
37
37
  type: 'point';
38
38
  point: Point.Point;
39
39
  }
40
+ interface VolumeIntersectionQueryExpression {
41
+ type: 'volume-intersection';
42
+ rectangle: Rectangle.Rectangle;
43
+ }
40
44
  /**
41
45
  * Represents the sum of all possible types of expressions.
42
46
  */
43
- export declare type QueryExpression = AllQueryExpression | ItemQueryExpression | AndExpression | OrExpression | SceneTreeRangeQueryExpression | PointQueryExpression | MetadataQueryExpression | AllSelectedQueryExpression;
47
+ export declare type QueryExpression = AllQueryExpression | ItemQueryExpression | AndExpression | OrExpression | SceneTreeRangeQueryExpression | PointQueryExpression | VolumeIntersectionQueryExpression | MetadataQueryExpression | AllSelectedQueryExpression;
44
48
  /**
45
49
  * An interface that represents a query is "complete" and can be turned into an
46
50
  * expression.
@@ -66,6 +70,7 @@ export declare class RootQuery implements ItemQuery<SingleQuery> {
66
70
  withMetadata(filter: string, keys: string[], exactMatch: boolean): MetadataQuery;
67
71
  withSelected(): AllSelectedQuery;
68
72
  withPoint(point: Point.Point): PointQuery;
73
+ withVolumeIntersection(rectangle: Rectangle.Rectangle): VolumeIntersectionQuery;
69
74
  }
70
75
  export declare class AllQuery implements TerminalQuery {
71
76
  build(): QueryExpression;
@@ -90,6 +95,11 @@ export declare class PointQuery implements TerminalQuery {
90
95
  constructor(point: Point.Point);
91
96
  build(): PointQueryExpression;
92
97
  }
98
+ export declare class VolumeIntersectionQuery implements TerminalQuery {
99
+ private rectangle;
100
+ constructor(rectangle: Rectangle.Rectangle);
101
+ build(): VolumeIntersectionQueryExpression;
102
+ }
93
103
  export declare class BulkQuery implements TerminalQuery {
94
104
  private ids;
95
105
  private type;
@@ -22,7 +22,13 @@ declare type Flag =
22
22
  * are larger than the supported maximum image size (1080p). By default
23
23
  * this option is disabled, and images will be scaled up to match the host.
24
24
  */
25
- | 'letterboxFrames';
25
+ | 'letterboxFrames'
26
+ /**
27
+ * Enables or disables the use of the `grpc.WebsocketTransport` for streaming
28
+ * RPCs. By default this transport will be used, and streaming messages will
29
+ * be sent over WebSocket.
30
+ */
31
+ | 'grpcUseStreamingWebSocketTransport';
26
32
  /**
27
33
  * A set of experimental features that can be enabled through the viewer's
28
34
  * config.