@vertexvis/viewer 0.16.0 → 0.16.1-canary.1
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.
- package/README.template.md +19 -0
- package/dist/cjs/controller-383147c5.js +111 -0
- package/dist/cjs/controller-917f9ebf.js +7508 -0
- package/dist/cjs/dom-d162f898.js +14 -0
- package/dist/cjs/{entities-053d1e65.js → entities-98b08d8a.js} +5 -5
- package/dist/cjs/index.cjs.js +10 -3
- package/dist/cjs/{mapper-767b5f6d.js → mapper-d3855fc8.js} +583 -583
- package/dist/cjs/{dom-92728e58.js → row-3a1861d4.js} +0 -9
- package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +5 -4
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +19 -7510
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +9 -110
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +6 -3
- package/dist/collection/collection-manifest.json +4 -4
- package/dist/collection/components/scene-tree/lib/index.js +3 -0
- package/dist/collection/components/scene-tree/scene-tree.js +30 -17
- package/dist/collection/components/scene-tree/types.js +2 -0
- package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +1 -1
- package/dist/collection/components/viewer-box-query-tool/types.js +2 -0
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +5 -3
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +2 -2
- package/dist/collection/components/viewer-toolbar/types.js +2 -0
- package/dist/collection/components/viewer-toolbar/viewer-toolbar.js +5 -3
- package/dist/collection/components/viewer-toolbar-group/types.js +2 -0
- package/dist/collection/components/viewer-toolbar-group/viewer-toolbar-group.js +3 -2
- package/dist/collection/index.js +8 -1
- package/dist/collection/lib/pins/index.js +2 -0
- package/dist/collection/lib/volume-intersection/index.js +2 -0
- package/dist/custom-elements/index.js +71942 -71942
- package/dist/esm/{bundle.esm-b51ea7fc.js → bundle.esm-c0b261c8.js} +1 -1
- package/dist/esm/{config-def96227.js → config-5a3235d2.js} +1 -1
- package/dist/esm/controller-37e0b32a.js +109 -0
- package/dist/esm/controller-8e9e0b43.js +7503 -0
- package/dist/esm/dom-2111ed19.js +11 -0
- package/dist/esm/{entities-3ff1a7ee.js → entities-f0128903.js} +3 -3
- package/dist/esm/index.js +9 -6
- package/dist/esm/index.mjs +9 -6
- package/dist/esm/{mapper-b2f3424f.js → mapper-36404f5d.js} +2 -2
- package/dist/esm/{dom-e19ee80b.js → row-5ebb8f09.js} +1 -8
- package/dist/esm/{scene-ed248e56.js → scene-d23dff71.js} +2 -2
- package/dist/esm/{streamAttributes-90bcdb58.js → streamAttributes-7bd73748.js} +1 -1
- package/dist/esm/vertex-scene-tree-search_3.entry.js +2 -1
- package/dist/esm/vertex-scene-tree.entry.js +13 -7504
- package/dist/esm/vertex-viewer-box-query-tool.entry.js +3 -104
- package/dist/esm/vertex-viewer-dom-element_2.entry.js +2 -2
- package/dist/esm/vertex-viewer-measurement-details.entry.js +2 -2
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +4 -4
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +4 -4
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +6 -6
- package/dist/esm/vertex-viewer-pin-group.entry.js +8 -5
- package/dist/esm/vertex-viewer-transform-widget.entry.js +2 -2
- package/dist/esm/vertex-viewer-view-cube.entry.js +2 -2
- package/dist/esm/vertex-viewer.entry.js +4 -4
- package/dist/esm/{grpc-web-client.umd-5409853c.js → wrappers_pb-e7a5f842.js} +5 -5
- package/dist/types/components/scene-tree/lib/controller.d.ts +1 -1
- package/dist/types/components/scene-tree/lib/index.d.ts +2 -0
- package/dist/types/components/scene-tree/lib/row.d.ts +1 -1
- package/dist/types/components/scene-tree/scene-tree.d.ts +1 -31
- package/dist/types/components/scene-tree/types.d.ts +32 -0
- package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +1 -1
- package/dist/types/components/viewer-box-query-tool/types.d.ts +2 -0
- package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +1 -2
- package/dist/types/components/viewer-default-toolbar/viewer-default-toolbar.d.ts +2 -2
- package/dist/types/components/viewer-toolbar/types.d.ts +5 -0
- package/dist/types/components/viewer-toolbar/viewer-toolbar.d.ts +1 -5
- package/dist/types/components/viewer-toolbar-group/types.d.ts +1 -0
- package/dist/types/components/viewer-toolbar-group/viewer-toolbar-group.d.ts +1 -1
- package/dist/types/components.d.ts +6 -10
- package/dist/types/index.d.ts +7 -0
- package/dist/types/lib/pins/index.d.ts +2 -0
- package/dist/types/lib/volume-intersection/index.d.ts +1 -0
- package/dist/types/lib/volume-intersection/model.d.ts +1 -1
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/{p-9f805c70.js → p-2c07b773.js} +1 -1
- package/dist/viewer/p-39535bb0.entry.js +4 -0
- package/dist/viewer/p-3a6fa239.js +4 -0
- package/dist/viewer/{p-e24dbb45.entry.js → p-42acbbaf.entry.js} +1 -1
- package/dist/viewer/p-43f7a708.entry.js +4 -0
- package/dist/viewer/{p-bd314501.js → p-5632192b.js} +1 -1
- package/dist/viewer/{p-01012fee.entry.js → p-58b30f31.entry.js} +1 -1
- package/dist/viewer/{p-f6b6b3d5.entry.js → p-6a4d8fb9.entry.js} +1 -1
- package/dist/viewer/p-6f47fcb9.js +4 -0
- package/dist/viewer/p-76c414a4.js +4 -0
- package/dist/viewer/{p-b283a36b.js → p-787c2987.js} +1 -1
- package/dist/viewer/{p-46f40a43.js → p-817743a4.js} +1 -1
- package/dist/viewer/{p-13e6c657.entry.js → p-886fb3a9.entry.js} +2 -2
- package/dist/viewer/{p-b629cebb.entry.js → p-92a65d2c.entry.js} +1 -1
- package/dist/viewer/p-9cc361f6.entry.js +4 -0
- package/dist/viewer/{p-934cbb97.js → p-a7c29e95.js} +1 -1
- package/dist/viewer/{p-47c4b430.entry.js → p-b4321377.entry.js} +1 -1
- package/dist/viewer/p-bfae3945.js +4 -0
- package/dist/viewer/{p-86759ae2.entry.js → p-d8c578a9.entry.js} +1 -1
- package/dist/viewer/{p-ea183d6e.entry.js → p-db8948a9.entry.js} +1 -1
- package/dist/viewer/{p-a12791aa.js → p-dde5650a.js} +1 -1
- package/dist/viewer/{p-bf688622.entry.js → p-ecd99a3e.entry.js} +1 -1
- package/dist/viewer/p-f5aaf680.js +4 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +7 -7
- package/readme.md +19 -0
- package/dist/collection/components/scene-tree/interfaces.js +0 -2
- package/dist/types/components/scene-tree/interfaces.d.ts +0 -1
- package/dist/viewer/p-3296fdf1.entry.js +0 -4
- package/dist/viewer/p-569ed94a.entry.js +0 -4
- package/dist/viewer/p-7ef7d9ce.entry.js +0 -4
- package/dist/viewer/p-92fe4417.js +0 -4
- package/dist/viewer/p-c8c4343b.js +0 -4
- package/dist/cjs/{grpc-web-client.umd-2af20c1b.js → wrappers_pb-04573f90.js} +4 -4
package/README.template.md
CHANGED
|
@@ -145,6 +145,25 @@ import { defineCustomElements } from '@vertexvis/viewer';
|
|
|
145
145
|
defineCustomElements();
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
+
## Interacting With Component Properties
|
|
149
|
+
|
|
150
|
+
Some of our components provide default values for properties that can be used
|
|
151
|
+
once the component is ready. Before interacting with these properties, the
|
|
152
|
+
`componentOnReady` method must be awaited to ensure the property is defined.
|
|
153
|
+
|
|
154
|
+
```js
|
|
155
|
+
function main() {
|
|
156
|
+
await defineCustomElements();
|
|
157
|
+
|
|
158
|
+
const sceneTree = document.querySelector("scene-tree");
|
|
159
|
+
await sceneTree.componentOnReady();
|
|
160
|
+
|
|
161
|
+
sceneTree.controller.stateChanged(state => {
|
|
162
|
+
console.log(`Scene Tree Row Count: ${state.totalRows}`);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
148
167
|
## Polyfills
|
|
149
168
|
|
|
150
169
|
If you plan on targeting IE11 or Edge <= 18, you'll also need to supply
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
const bundle_esm = require('./bundle.esm-6e8027ac.js');
|
|
7
|
+
const browser_esm = require('./browser.esm-5d246754.js');
|
|
8
|
+
|
|
9
|
+
class VolumeIntersectionQueryController {
|
|
10
|
+
constructor(model, viewer) {
|
|
11
|
+
this.model = model;
|
|
12
|
+
this.viewer = viewer;
|
|
13
|
+
this.additionalTransforms = [];
|
|
14
|
+
this.operationInFlight = false;
|
|
15
|
+
this.operationAborted = false;
|
|
16
|
+
this.executeStarted = new browser_esm.EventDispatcher();
|
|
17
|
+
this.executeComplete = new browser_esm.EventDispatcher();
|
|
18
|
+
this.executeAborted = new browser_esm.EventDispatcher();
|
|
19
|
+
this.additionalTransforms = [(op) => op.where((q) => q.all()).deselect()];
|
|
20
|
+
this.operationTransform = (builder) => builder.select();
|
|
21
|
+
}
|
|
22
|
+
setStartPoint(point) {
|
|
23
|
+
this.previousViewerCameraControls = this.viewer.cameraControls;
|
|
24
|
+
this.viewer.cameraControls = false;
|
|
25
|
+
this.model.setStartPoint(point);
|
|
26
|
+
}
|
|
27
|
+
setEndPoint(point) {
|
|
28
|
+
this.model.setEndPoint(point);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Updates the operation that will be applied based on the volume intersection
|
|
32
|
+
* query. Defaults to `(builder) => builder.select()`, which will select any
|
|
33
|
+
* of the results of the query.
|
|
34
|
+
*/
|
|
35
|
+
setOperationTransform(operationTransform) {
|
|
36
|
+
this.operationTransform = operationTransform;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Updates any additional operations that should be performed independent of
|
|
40
|
+
* the volume intersection query. This can be used to perform an operation on
|
|
41
|
+
* the entirety of the scene prior to the operation on the result of the
|
|
42
|
+
* volume intersection query.
|
|
43
|
+
* Defaults to `[(op) => op.where((q) => q.all()).deselect()]`, which will
|
|
44
|
+
* clear any prior selection before the default selection.
|
|
45
|
+
*/
|
|
46
|
+
setAdditionalTransforms(additionalTransforms) {
|
|
47
|
+
this.additionalTransforms = additionalTransforms;
|
|
48
|
+
}
|
|
49
|
+
onExecuteStarted(listener) {
|
|
50
|
+
return this.executeStarted.on(listener);
|
|
51
|
+
}
|
|
52
|
+
onExecuteComplete(listener) {
|
|
53
|
+
return this.executeComplete.on(listener);
|
|
54
|
+
}
|
|
55
|
+
onExecuteAborted(listener) {
|
|
56
|
+
return this.executeAborted.on(listener);
|
|
57
|
+
}
|
|
58
|
+
async execute() {
|
|
59
|
+
var _a, _b, _c;
|
|
60
|
+
const screenBounds = this.model.getScreenBounds();
|
|
61
|
+
const type = this.model.getType();
|
|
62
|
+
if (screenBounds != null && !this.operationInFlight) {
|
|
63
|
+
this.model.complete();
|
|
64
|
+
try {
|
|
65
|
+
this.operationInFlight = true;
|
|
66
|
+
this.executeStarted.emit();
|
|
67
|
+
const additionalTransforms = (op) => this.additionalTransforms.map((t) => t(op)).flat();
|
|
68
|
+
const operationTransforms = (op) => [
|
|
69
|
+
this.operationTransform(op.where((q) => q.withVolumeIntersection(screenBounds, type === 'exclusive'))),
|
|
70
|
+
].flat();
|
|
71
|
+
const scene = await this.viewer.scene();
|
|
72
|
+
await scene
|
|
73
|
+
.items((op) => [
|
|
74
|
+
...additionalTransforms(op),
|
|
75
|
+
...operationTransforms(op),
|
|
76
|
+
])
|
|
77
|
+
.execute();
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
if (e instanceof bundle_esm.StreamRequestError &&
|
|
81
|
+
((_a = e.summary) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase().includes('operation aborted'))) {
|
|
82
|
+
this.executeAborted.emit(e);
|
|
83
|
+
this.operationAborted = true;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.error('Failed to perform volume intersection query', e);
|
|
87
|
+
throw e;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
this.viewer.cameraControls = (_b = this.previousViewerCameraControls) !== null && _b !== void 0 ? _b : true;
|
|
92
|
+
this.previousViewerCameraControls = undefined;
|
|
93
|
+
this.operationInFlight = false;
|
|
94
|
+
this.executeComplete.emit({
|
|
95
|
+
aborted: this.operationAborted,
|
|
96
|
+
});
|
|
97
|
+
this.operationAborted = false;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else if (this.operationInFlight) {
|
|
101
|
+
this.model.cancel();
|
|
102
|
+
throw new Error(`Unable to perform volume intersection query as there is already one in-flight.`);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.model.cancel();
|
|
106
|
+
this.viewer.cameraControls = (_c = this.previousViewerCameraControls) !== null && _c !== void 0 ? _c : true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
exports.VolumeIntersectionQueryController = VolumeIntersectionQueryController;
|