@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.
Files changed (109) hide show
  1. package/README.template.md +19 -0
  2. package/dist/cjs/controller-383147c5.js +111 -0
  3. package/dist/cjs/controller-917f9ebf.js +7508 -0
  4. package/dist/cjs/dom-d162f898.js +14 -0
  5. package/dist/cjs/{entities-053d1e65.js → entities-98b08d8a.js} +5 -5
  6. package/dist/cjs/index.cjs.js +10 -3
  7. package/dist/cjs/{mapper-767b5f6d.js → mapper-d3855fc8.js} +583 -583
  8. package/dist/cjs/{dom-92728e58.js → row-3a1861d4.js} +0 -9
  9. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +5 -4
  10. package/dist/cjs/vertex-scene-tree.cjs.entry.js +19 -7510
  11. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +9 -110
  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 +6 -3
  16. package/dist/collection/collection-manifest.json +4 -4
  17. package/dist/collection/components/scene-tree/lib/index.js +3 -0
  18. package/dist/collection/components/scene-tree/scene-tree.js +30 -17
  19. package/dist/collection/components/scene-tree/types.js +2 -0
  20. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +1 -1
  21. package/dist/collection/components/viewer-box-query-tool/types.js +2 -0
  22. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +5 -3
  23. package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +2 -2
  24. package/dist/collection/components/viewer-toolbar/types.js +2 -0
  25. package/dist/collection/components/viewer-toolbar/viewer-toolbar.js +5 -3
  26. package/dist/collection/components/viewer-toolbar-group/types.js +2 -0
  27. package/dist/collection/components/viewer-toolbar-group/viewer-toolbar-group.js +3 -2
  28. package/dist/collection/index.js +8 -1
  29. package/dist/collection/lib/pins/index.js +2 -0
  30. package/dist/collection/lib/volume-intersection/index.js +2 -0
  31. package/dist/custom-elements/index.js +71942 -71942
  32. package/dist/esm/{bundle.esm-b51ea7fc.js → bundle.esm-c0b261c8.js} +1 -1
  33. package/dist/esm/{config-def96227.js → config-5a3235d2.js} +1 -1
  34. package/dist/esm/controller-37e0b32a.js +109 -0
  35. package/dist/esm/controller-8e9e0b43.js +7503 -0
  36. package/dist/esm/dom-2111ed19.js +11 -0
  37. package/dist/esm/{entities-3ff1a7ee.js → entities-f0128903.js} +3 -3
  38. package/dist/esm/index.js +9 -6
  39. package/dist/esm/index.mjs +9 -6
  40. package/dist/esm/{mapper-b2f3424f.js → mapper-36404f5d.js} +2 -2
  41. package/dist/esm/{dom-e19ee80b.js → row-5ebb8f09.js} +1 -8
  42. package/dist/esm/{scene-ed248e56.js → scene-d23dff71.js} +2 -2
  43. package/dist/esm/{streamAttributes-90bcdb58.js → streamAttributes-7bd73748.js} +1 -1
  44. package/dist/esm/vertex-scene-tree-search_3.entry.js +2 -1
  45. package/dist/esm/vertex-scene-tree.entry.js +13 -7504
  46. package/dist/esm/vertex-viewer-box-query-tool.entry.js +3 -104
  47. package/dist/esm/vertex-viewer-dom-element_2.entry.js +2 -2
  48. package/dist/esm/vertex-viewer-measurement-details.entry.js +2 -2
  49. package/dist/esm/vertex-viewer-measurement-distance.entry.js +4 -4
  50. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +4 -4
  51. package/dist/esm/vertex-viewer-measurement-precise.entry.js +6 -6
  52. package/dist/esm/vertex-viewer-pin-group.entry.js +8 -5
  53. package/dist/esm/vertex-viewer-transform-widget.entry.js +2 -2
  54. package/dist/esm/vertex-viewer-view-cube.entry.js +2 -2
  55. package/dist/esm/vertex-viewer.entry.js +4 -4
  56. package/dist/esm/{grpc-web-client.umd-5409853c.js → wrappers_pb-e7a5f842.js} +5 -5
  57. package/dist/types/components/scene-tree/lib/controller.d.ts +1 -1
  58. package/dist/types/components/scene-tree/lib/index.d.ts +2 -0
  59. package/dist/types/components/scene-tree/lib/row.d.ts +1 -1
  60. package/dist/types/components/scene-tree/scene-tree.d.ts +1 -31
  61. package/dist/types/components/scene-tree/types.d.ts +32 -0
  62. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +1 -1
  63. package/dist/types/components/viewer-box-query-tool/types.d.ts +2 -0
  64. package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +1 -2
  65. package/dist/types/components/viewer-default-toolbar/viewer-default-toolbar.d.ts +2 -2
  66. package/dist/types/components/viewer-toolbar/types.d.ts +5 -0
  67. package/dist/types/components/viewer-toolbar/viewer-toolbar.d.ts +1 -5
  68. package/dist/types/components/viewer-toolbar-group/types.d.ts +1 -0
  69. package/dist/types/components/viewer-toolbar-group/viewer-toolbar-group.d.ts +1 -1
  70. package/dist/types/components.d.ts +6 -10
  71. package/dist/types/index.d.ts +7 -0
  72. package/dist/types/lib/pins/index.d.ts +2 -0
  73. package/dist/types/lib/volume-intersection/index.d.ts +1 -0
  74. package/dist/types/lib/volume-intersection/model.d.ts +1 -1
  75. package/dist/viewer/index.esm.js +1 -1
  76. package/dist/viewer/{p-9f805c70.js → p-2c07b773.js} +1 -1
  77. package/dist/viewer/p-39535bb0.entry.js +4 -0
  78. package/dist/viewer/p-3a6fa239.js +4 -0
  79. package/dist/viewer/{p-e24dbb45.entry.js → p-42acbbaf.entry.js} +1 -1
  80. package/dist/viewer/p-43f7a708.entry.js +4 -0
  81. package/dist/viewer/{p-bd314501.js → p-5632192b.js} +1 -1
  82. package/dist/viewer/{p-01012fee.entry.js → p-58b30f31.entry.js} +1 -1
  83. package/dist/viewer/{p-f6b6b3d5.entry.js → p-6a4d8fb9.entry.js} +1 -1
  84. package/dist/viewer/p-6f47fcb9.js +4 -0
  85. package/dist/viewer/p-76c414a4.js +4 -0
  86. package/dist/viewer/{p-b283a36b.js → p-787c2987.js} +1 -1
  87. package/dist/viewer/{p-46f40a43.js → p-817743a4.js} +1 -1
  88. package/dist/viewer/{p-13e6c657.entry.js → p-886fb3a9.entry.js} +2 -2
  89. package/dist/viewer/{p-b629cebb.entry.js → p-92a65d2c.entry.js} +1 -1
  90. package/dist/viewer/p-9cc361f6.entry.js +4 -0
  91. package/dist/viewer/{p-934cbb97.js → p-a7c29e95.js} +1 -1
  92. package/dist/viewer/{p-47c4b430.entry.js → p-b4321377.entry.js} +1 -1
  93. package/dist/viewer/p-bfae3945.js +4 -0
  94. package/dist/viewer/{p-86759ae2.entry.js → p-d8c578a9.entry.js} +1 -1
  95. package/dist/viewer/{p-ea183d6e.entry.js → p-db8948a9.entry.js} +1 -1
  96. package/dist/viewer/{p-a12791aa.js → p-dde5650a.js} +1 -1
  97. package/dist/viewer/{p-bf688622.entry.js → p-ecd99a3e.entry.js} +1 -1
  98. package/dist/viewer/p-f5aaf680.js +4 -0
  99. package/dist/viewer/viewer.esm.js +1 -1
  100. package/package.json +7 -7
  101. package/readme.md +19 -0
  102. package/dist/collection/components/scene-tree/interfaces.js +0 -2
  103. package/dist/types/components/scene-tree/interfaces.d.ts +0 -1
  104. package/dist/viewer/p-3296fdf1.entry.js +0 -4
  105. package/dist/viewer/p-569ed94a.entry.js +0 -4
  106. package/dist/viewer/p-7ef7d9ce.entry.js +0 -4
  107. package/dist/viewer/p-92fe4417.js +0 -4
  108. package/dist/viewer/p-c8c4343b.js +0 -4
  109. package/dist/cjs/{grpc-web-client.umd-2af20c1b.js → wrappers_pb-04573f90.js} +4 -4
@@ -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;