@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
@@ -38530,4 +38530,4 @@ var StreamApi = /** @class */ (function () {
38530
38530
  return StreamApi;
38531
38531
  }());
38532
38532
 
38533
- export { StreamApi as S, WebSocketClientImpl as W, StreamRequestError as a, currentDateAsProtoTimestamp as c, protoToDate as p, toProtoDuration as t };
38533
+ export { StreamRequestError as S, WebSocketClientImpl as W, StreamApi as a, currentDateAsProtoTimestamp as c, protoToDate as p, toProtoDuration as t };
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { o as objects } from './browser.esm-07e7db8f.js';
5
- import './streamAttributes-90bcdb58.js';
5
+ import './streamAttributes-7bd73748.js';
6
6
  import './entities-ce81dd7f.js';
7
7
 
8
8
  const DEFAULT_ANIMATION_DURATION = 500;
@@ -0,0 +1,109 @@
1
+ /**!
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import { S as StreamRequestError } from './bundle.esm-c0b261c8.js';
5
+ import { E as EventDispatcher } from './browser.esm-07e7db8f.js';
6
+
7
+ class VolumeIntersectionQueryController {
8
+ constructor(model, viewer) {
9
+ this.model = model;
10
+ this.viewer = viewer;
11
+ this.additionalTransforms = [];
12
+ this.operationInFlight = false;
13
+ this.operationAborted = false;
14
+ this.executeStarted = new EventDispatcher();
15
+ this.executeComplete = new EventDispatcher();
16
+ this.executeAborted = new EventDispatcher();
17
+ this.additionalTransforms = [(op) => op.where((q) => q.all()).deselect()];
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
+ /**
29
+ * Updates the operation that will be applied based on the volume intersection
30
+ * query. Defaults to `(builder) => builder.select()`, which will select any
31
+ * of the results of the query.
32
+ */
33
+ setOperationTransform(operationTransform) {
34
+ this.operationTransform = operationTransform;
35
+ }
36
+ /**
37
+ * Updates any additional operations that should be performed independent of
38
+ * the volume intersection query. This can be used to perform an operation on
39
+ * the entirety of the scene prior to the operation on the result of the
40
+ * volume intersection query.
41
+ * Defaults to `[(op) => op.where((q) => q.all()).deselect()]`, which will
42
+ * clear any prior selection before the default selection.
43
+ */
44
+ setAdditionalTransforms(additionalTransforms) {
45
+ this.additionalTransforms = additionalTransforms;
46
+ }
47
+ onExecuteStarted(listener) {
48
+ return this.executeStarted.on(listener);
49
+ }
50
+ onExecuteComplete(listener) {
51
+ return this.executeComplete.on(listener);
52
+ }
53
+ onExecuteAborted(listener) {
54
+ return this.executeAborted.on(listener);
55
+ }
56
+ async execute() {
57
+ var _a, _b, _c;
58
+ const screenBounds = this.model.getScreenBounds();
59
+ const type = this.model.getType();
60
+ if (screenBounds != null && !this.operationInFlight) {
61
+ this.model.complete();
62
+ try {
63
+ this.operationInFlight = true;
64
+ this.executeStarted.emit();
65
+ const additionalTransforms = (op) => this.additionalTransforms.map((t) => t(op)).flat();
66
+ const operationTransforms = (op) => [
67
+ this.operationTransform(op.where((q) => q.withVolumeIntersection(screenBounds, type === 'exclusive'))),
68
+ ].flat();
69
+ const scene = await this.viewer.scene();
70
+ await scene
71
+ .items((op) => [
72
+ ...additionalTransforms(op),
73
+ ...operationTransforms(op),
74
+ ])
75
+ .execute();
76
+ }
77
+ catch (e) {
78
+ if (e instanceof StreamRequestError &&
79
+ ((_a = e.summary) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase().includes('operation aborted'))) {
80
+ this.executeAborted.emit(e);
81
+ this.operationAborted = true;
82
+ }
83
+ else {
84
+ console.error('Failed to perform volume intersection query', e);
85
+ throw e;
86
+ }
87
+ }
88
+ finally {
89
+ this.viewer.cameraControls = (_b = this.previousViewerCameraControls) !== null && _b !== void 0 ? _b : true;
90
+ this.previousViewerCameraControls = undefined;
91
+ this.operationInFlight = false;
92
+ this.executeComplete.emit({
93
+ aborted: this.operationAborted,
94
+ });
95
+ this.operationAborted = false;
96
+ }
97
+ }
98
+ else if (this.operationInFlight) {
99
+ this.model.cancel();
100
+ throw new Error(`Unable to perform volume intersection query as there is already one in-flight.`);
101
+ }
102
+ else {
103
+ this.model.cancel();
104
+ this.viewer.cameraControls = (_c = this.previousViewerCameraControls) !== null && _c !== void 0 ? _c : true;
105
+ }
106
+ }
107
+ }
108
+
109
+ export { VolumeIntersectionQueryController as V };