@vertexvis/viewer 1.0.0-canary.2 → 1.0.0-canary.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/cjs/{entities-DKHUfheC.js → entities-BbFe_OSv.js} +24 -2
  2. package/dist/cjs/entities-BbFe_OSv.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +14 -50
  6. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js.map +1 -1
  7. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +14 -29
  8. package/dist/cjs/vertex-viewer-markup.cjs.entry.js.map +1 -1
  9. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +1 -1
  10. package/dist/cjs/viewer.cjs.js +1 -1
  11. package/dist/collection/components/viewer-markup/viewer-markup.js +14 -29
  12. package/dist/collection/components/viewer-markup/viewer-markup.js.map +1 -1
  13. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js +14 -50
  14. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js.map +1 -1
  15. package/dist/collection/lib/measurement/controller.js +22 -0
  16. package/dist/collection/lib/measurement/controller.js.map +1 -1
  17. package/dist/components/index.js +1 -1
  18. package/dist/components/p-Bfbzt4ZR.js +5 -0
  19. package/dist/components/p-Bfbzt4ZR.js.map +1 -0
  20. package/dist/components/{p-DP0zP-Gr.js → p-C8zX6RrH.js} +2 -2
  21. package/dist/components/{p-DU6goRD0.js → p-Ce-6kPRQ.js} +2 -2
  22. package/dist/components/{p-BBKWC-yY.js → p-DrkwJOM4.js} +2 -2
  23. package/dist/components/vertex-viewer-markup-tool.js +1 -1
  24. package/dist/components/vertex-viewer-markup-tool.js.map +1 -1
  25. package/dist/components/vertex-viewer-markup.js +1 -1
  26. package/dist/components/vertex-viewer-markup.js.map +1 -1
  27. package/dist/components/vertex-viewer-measurement-distance.js +1 -1
  28. package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
  29. package/dist/components/vertex-viewer-measurement-precise.js +1 -1
  30. package/dist/components/vertex-viewer-pin-group.js +1 -1
  31. package/dist/components/vertex-viewer-pin-tool.js +1 -1
  32. package/dist/esm/{entities-Bpi27lyT.js → entities-C3Psu9sn.js} +25 -3
  33. package/dist/esm/entities-C3Psu9sn.js.map +1 -0
  34. package/dist/esm/{geometry_pb-BeXN0y30.js → geometry_pb-mKM0mAGa.js} +3 -3
  35. package/dist/esm/{geometry_pb-BeXN0y30.js.map → geometry_pb-mKM0mAGa.js.map} +1 -1
  36. package/dist/esm/index.js +2 -2
  37. package/dist/esm/index.mjs +2 -2
  38. package/dist/esm/loader.js +1 -1
  39. package/dist/esm/loader.mjs +1 -1
  40. package/dist/esm/vertex-viewer-markup-tool.entry.js +14 -50
  41. package/dist/esm/vertex-viewer-markup-tool.entry.js.map +1 -1
  42. package/dist/esm/vertex-viewer-markup.entry.js +14 -29
  43. package/dist/esm/vertex-viewer-markup.entry.js.map +1 -1
  44. package/dist/esm/vertex-viewer-measurement-distance.entry.js +1 -1
  45. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +1 -1
  46. package/dist/esm/vertex-viewer-measurement-precise.entry.js +2 -2
  47. package/dist/esm/vertex-viewer-pin-group.entry.js +1 -1
  48. package/dist/esm/viewer.js +1 -1
  49. package/dist/types/components/viewer-markup/viewer-markup.d.ts +1 -13
  50. package/dist/types/components/viewer-markup-tool/viewer-markup-tool.d.ts +1 -25
  51. package/dist/types/lib/measurement/controller.d.ts +3 -0
  52. package/dist/viewer/index.esm.js +1 -1
  53. package/dist/viewer/p-0ac84ef2.entry.js +5 -0
  54. package/dist/viewer/p-0ac84ef2.entry.js.map +1 -0
  55. package/dist/viewer/{p-7cca58e4.entry.js → p-6f02eb99.entry.js} +2 -2
  56. package/dist/viewer/{p-e62befb5.entry.js → p-73b3b95a.entry.js} +2 -2
  57. package/dist/viewer/{p-53b6e251.entry.js → p-7cee56a8.entry.js} +2 -2
  58. package/dist/viewer/p-Dr2r9bDY.js +5 -0
  59. package/dist/viewer/p-Dr2r9bDY.js.map +1 -0
  60. package/dist/viewer/{p-0545bbd6.entry.js → p-ae0fc09f.entry.js} +2 -2
  61. package/dist/viewer/p-f0f98be0.entry.js +5 -0
  62. package/dist/viewer/p-f0f98be0.entry.js.map +1 -0
  63. package/dist/viewer/{p-BU754187.js → p-oWeTwgJJ.js} +2 -2
  64. package/dist/viewer/{p-BU754187.js.map → p-oWeTwgJJ.js.map} +1 -1
  65. package/dist/viewer/viewer.esm.js +1 -1
  66. package/package.json +7 -7
  67. package/dist/cjs/entities-DKHUfheC.js.map +0 -1
  68. package/dist/components/p-BqEOBQcx.js +0 -5
  69. package/dist/components/p-BqEOBQcx.js.map +0 -1
  70. package/dist/esm/entities-Bpi27lyT.js.map +0 -1
  71. package/dist/viewer/p-1152e3db.entry.js +0 -5
  72. package/dist/viewer/p-1152e3db.entry.js.map +0 -1
  73. package/dist/viewer/p-DZ2ZtqUE.js +0 -5
  74. package/dist/viewer/p-DZ2ZtqUE.js.map +0 -1
  75. package/dist/viewer/p-b275cb83.entry.js +0 -5
  76. package/dist/viewer/p-b275cb83.entry.js.map +0 -1
  77. /package/dist/components/{p-DP0zP-Gr.js.map → p-C8zX6RrH.js.map} +0 -0
  78. /package/dist/components/{p-DU6goRD0.js.map → p-Ce-6kPRQ.js.map} +0 -0
  79. /package/dist/components/{p-BBKWC-yY.js.map → p-DrkwJOM4.js.map} +0 -0
  80. /package/dist/viewer/{p-7cca58e4.entry.js.map → p-6f02eb99.entry.js.map} +0 -0
  81. /package/dist/viewer/{p-e62befb5.entry.js.map → p-73b3b95a.entry.js.map} +0 -0
  82. /package/dist/viewer/{p-53b6e251.entry.js.map → p-7cee56a8.entry.js.map} +0 -0
  83. /package/dist/viewer/{p-0545bbd6.entry.js.map → p-ae0fc09f.entry.js.map} +0 -0
@@ -21,6 +21,7 @@ class MeasurementController {
21
21
  this.jwtProvider = jwtProvider;
22
22
  this.deviceId = deviceId;
23
23
  this.outcome = Promise.resolve(undefined);
24
+ this.debugLogs = false;
24
25
  }
25
26
  /**
26
27
  * Registers an entity to measure and performs a measurement if this entity
@@ -31,6 +32,10 @@ class MeasurementController {
31
32
  * entity.
32
33
  */
33
34
  addEntity(entity) {
35
+ if (this.debugLogs) {
36
+ const deserializedEntity = geometry_pb.model_entity_pbExports.ModelEntity.deserializeBinary(entity.modelEntity);
37
+ this.log(`Adding ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`);
38
+ }
34
39
  return this.performMeasurement(() => this.model.addEntity(entity));
35
40
  }
36
41
  /**
@@ -38,6 +43,7 @@ class MeasurementController {
38
43
  * of measurement results.
39
44
  */
40
45
  clearEntities() {
46
+ this.log('Clearing all ModelEntities.');
41
47
  return this.performMeasurement(() => {
42
48
  this.model.clearEntities();
43
49
  this.model.clearOutcome();
@@ -53,6 +59,10 @@ class MeasurementController {
53
59
  * entity.
54
60
  */
55
61
  removeEntity(entity) {
62
+ if (this.debugLogs) {
63
+ const deserializedEntity = geometry_pb.model_entity_pbExports.ModelEntity.deserializeBinary(entity.modelEntity);
64
+ this.log(`Removing ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`);
65
+ }
56
66
  return this.performMeasurement(() => this.model.removeEntity(entity));
57
67
  }
58
68
  /**
@@ -63,8 +73,15 @@ class MeasurementController {
63
73
  * entities.
64
74
  */
65
75
  setEntities(entities) {
76
+ if (this.debugLogs) {
77
+ const deserializedEntities = Array.from(entities).map((e) => geometry_pb.model_entity_pbExports.ModelEntity.deserializeBinary(e.modelEntity));
78
+ this.log(`Setting ${deserializedEntities.length} ModelEntities. [entityIds=[${deserializedEntities.map((e) => e.getEntityId()).join(', ')}], sceneItemIds=[${deserializedEntities.map((e) => e.getSceneItemId()).join(', ')}]]`);
79
+ }
66
80
  return this.performMeasurement(() => this.model.setEntities(entities));
67
81
  }
82
+ setDebugLogs(debugLogs) {
83
+ this.debugLogs = debugLogs;
84
+ }
68
85
  performMeasurement(effect) {
69
86
  const previous = this.model.getEntities();
70
87
  const changed = effect();
@@ -122,6 +139,11 @@ class MeasurementController {
122
139
  this.client.updateModelEntities(req, meta, handler);
123
140
  });
124
141
  }
142
+ log(message, ...optionalParams) {
143
+ if (this.debugLogs) {
144
+ console.debug(message, optionalParams);
145
+ }
146
+ }
125
147
  }
126
148
 
127
149
  class MeasurementEntity {
@@ -154,6 +176,6 @@ class MeasurementEntity {
154
176
 
155
177
  exports.MeasurementController = MeasurementController;
156
178
  exports.MeasurementEntity = MeasurementEntity;
157
- //# sourceMappingURL=entities-DKHUfheC.js.map
179
+ //# sourceMappingURL=entities-BbFe_OSv.js.map
158
180
 
159
- //# sourceMappingURL=entities-DKHUfheC.js.map
181
+ //# sourceMappingURL=entities-BbFe_OSv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities-BbFe_OSv.js","sources":["src/lib/measurement/controller.ts","src/lib/measurement/entities.ts"],"sourcesContent":["import { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport {\n MeasureRequest,\n MeasureResponse,\n ModelEntityUpdate,\n UpdateModelEntitiesRequest,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { BoolValue } from 'google-protobuf/google/protobuf/wrappers_pb';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { MeasurementEntity } from './entities';\nimport { mapMeasureResponseOrThrow } from './mapper';\nimport { MeasurementModel } from './model';\nimport { MeasurementOutcome } from './outcomes';\n\n/**\n * The `MeasurementController` is responsible for performing measurements of\n * registered entities, and updating the model with their measurement results.\n */\nexport class MeasurementController {\n private outcome = Promise.resolve<MeasurementOutcome | undefined>(undefined);\n private debugLogs = false;\n\n public constructor(\n private model: MeasurementModel,\n private client: SceneViewAPIClient,\n private jwtProvider: JwtProvider,\n private deviceId: string | undefined\n ) {}\n\n /**\n * Registers an entity to measure and performs a measurement if this entity\n * has not been previously registered.\n *\n * @param entity The entity to measure.\n * @returns A promise that resolves with the results after registering this\n * entity.\n */\n public addEntity(\n entity: MeasurementEntity\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntity = ModelEntity.deserializeBinary(\n entity.modelEntity\n );\n\n this.log(\n `Adding ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`\n );\n }\n\n return this.performMeasurement(() => this.model.addEntity(entity));\n }\n\n /**\n * Clears all entities and returns a promise that resolves with an empty list\n * of measurement results.\n */\n public clearEntities(): Promise<MeasurementOutcome | undefined> {\n this.log('Clearing all ModelEntities.');\n\n return this.performMeasurement(() => {\n this.model.clearEntities();\n this.model.clearOutcome();\n return true;\n });\n }\n\n /**\n * Deregisters an entity and performs a measurement if this entity was\n * removed.\n *\n * @param entity The entity to remove.\n * @returns A promise that resolves with the results after removing this\n * entity.\n */\n public removeEntity(\n entity: MeasurementEntity\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntity = ModelEntity.deserializeBinary(\n entity.modelEntity\n );\n\n this.log(\n `Removing ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`\n );\n }\n\n return this.performMeasurement(() => this.model.removeEntity(entity));\n }\n\n /**\n * Registers a set of entities and performs a measurement\n *\n * @param entities The entities to measure.\n * @returns A promise that resolves with the results after registering these\n * entities.\n */\n public setEntities(\n entities: Set<MeasurementEntity>\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntities = Array.from(entities).map((e) =>\n ModelEntity.deserializeBinary(e.modelEntity)\n );\n\n this.log(\n `Setting ${deserializedEntities.length} ModelEntities. [entityIds=[${deserializedEntities.map((e) => e.getEntityId()).join(', ')}], sceneItemIds=[${deserializedEntities.map((e) => e.getSceneItemId()).join(', ')}]]`\n );\n }\n\n return this.performMeasurement(() => this.model.setEntities(entities));\n }\n\n public setDebugLogs(debugLogs: boolean): void {\n this.debugLogs = debugLogs;\n }\n\n private performMeasurement(\n effect: () => boolean\n ): Promise<MeasurementOutcome | undefined> {\n const previous = this.model.getEntities();\n const changed = effect();\n const entities = this.model.getEntities();\n if (changed) {\n this.measureAndUpdateModel(entities);\n this.highlightEntities(previous, entities);\n }\n return this.outcome;\n }\n\n private measureAndUpdateModel(entities: MeasurementEntity[]): void {\n if (entities.length > 0) {\n this.outcome = this.measureEntities(entities).then((outcome) => {\n this.model.setOutcome(outcome);\n return this.model.getOutcome();\n });\n } else {\n this.outcome = Promise.resolve(undefined);\n }\n }\n\n private async measureEntities(\n entities: MeasurementEntity[]\n ): Promise<MeasurementOutcome | undefined> {\n if (entities.length > 0) {\n const res = await requestUnary<MeasureResponse>(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n const req = new MeasureRequest();\n req.setEntitiesList(entities.map((e) => e.toProto()));\n\n this.client.measure(req, meta, handler);\n });\n\n return mapMeasureResponseOrThrow(res.toObject());\n } else {\n return undefined;\n }\n }\n\n private async highlightEntities(\n previous: MeasurementEntity[],\n entities: MeasurementEntity[]\n ): Promise<void> {\n await requestUnary(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n\n const entitySet = new Set(entities);\n const newPrevious = previous.filter((e) => !entitySet.has(e));\n\n const clearEntities = newPrevious.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(false));\n return update;\n });\n const highlightEntities = entities.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(true));\n return update;\n });\n\n const req = new UpdateModelEntitiesRequest();\n req.setUpdatesList([...clearEntities, ...highlightEntities]);\n this.client.updateModelEntities(req, meta, handler);\n });\n }\n\n private log(message?: string, ...optionalParams: unknown[]): void {\n if (this.debugLogs) {\n console.debug(message, optionalParams);\n }\n }\n}\n","import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { Vector3 } from '@vertexvis/geometry';\nimport { Vector3f } from '@vertexvis/scene-view-protos/core/protos/geometry_pb';\nimport { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport { MeasureEntity } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper } from '@vertexvis/utils';\n\nimport { fromPbVector3f } from '../mappers';\n\nexport class MeasurementEntity {\n public constructor(\n public readonly point: Vector3.Vector3,\n public readonly modelEntity: Uint8Array\n ) {}\n\n public static fromHit(\n hit: vertexvis.protobuf.stream.IHit\n ): MeasurementEntity {\n if (hit.hitPoint != null && hit.modelEntity != null) {\n const hitPoint = Mapper.ifInvalidThrow(fromPbVector3f)(hit.hitPoint);\n const modelEntity = vertexvis.protobuf.core.ModelEntity.encode(\n hit.modelEntity\n ).finish();\n return new MeasurementEntity(hitPoint, modelEntity);\n } else {\n throw new Error(\n 'Cannot create MeasurementEntity from Hit. Hit is missing hit point and model entity'\n );\n }\n }\n\n public toProto(): MeasureEntity {\n const entity = new MeasureEntity();\n\n const point = new Vector3f();\n point.setX(this.point.x);\n point.setY(this.point.y);\n point.setZ(this.point.z);\n entity.setPoint(point);\n\n const modelEntity = ModelEntity.deserializeBinary(this.modelEntity);\n entity.setModelEntity(modelEntity);\n\n return entity;\n }\n}\n"],"names":["ModelEntity","requestUnary","createMetadata","MeasureRequest","mapMeasureResponseOrThrow","ModelEntityUpdate","BoolValue","UpdateModelEntitiesRequest","Mapper","fromPbVector3f","vertexvis","MeasureEntity","Vector3f"],"mappings":"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"}
@@ -8,7 +8,7 @@ var controller = require('./controller-Bdoxn5mz.js');
8
8
  var row = require('./row-Cet6xXup.js');
9
9
  var types = require('./types-UbZMN9nQ.js');
10
10
  var cursors = require('./cursors-BjfBRMe4.js');
11
- var entities$1 = require('./entities-DKHUfheC.js');
11
+ var entities$1 = require('./entities-BbFe_OSv.js');
12
12
  var model = require('./model-CNYtD2Ho.js');
13
13
  var overlays = require('./overlays-CxiJArpE.js');
14
14
  var results = require('./results-BDTeOJrm.js');
@@ -8,7 +8,7 @@ var index = require('./index-C_J7n4Dv.js');
8
8
  const defineCustomElements = async (win, options) => {
9
9
  if (typeof window === 'undefined') return undefined;
10
10
  await index.globalScripts();
11
- return index.bootstrapLazy(JSON.parse("[[\"vertex-scene-tree.cjs\",[[257,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"searchOptions\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"operationAnimationDuration\":[2,\"operation-animation-duration\"],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[32],\"showEmptyResults\":[32],\"stateMap\":[32],\"errorDetails\":[32],\"hasPartialFilterResults\":[32],\"refreshingResults\":[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],\"isolateItem\":[64],\"getRowAtIndex\":[64],\"getRowForItemId\":[64],\"getRowForEvent\":[64],\"getRowAtClientY\":[64],\"filterItems\":[64],\"selectFilteredItems\":[64],\"fetchMetadataKeys\":[64]},[[0,\"search\",\"handleSearch\"],[0,\"cellLoaded\",\"handleCellLoaded\"]],{\"viewer\":[{\"handleViewerChanged\":0}],\"controller\":[{\"handleControllerChanged\":0}],\"metadataKeys\":[{\"handleMetadataKeysChanged\":0}]}]]],[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]},null,{\"mode\":[{\"watchModeChange\":0}],\"tool\":[{\"watchTypeChange\":0}],\"accentColor\":[{\"watchAccentColorChange\":0}],\"primaryColor\":[{\"watchPrimaryColorChange\":0}],\"pins\":[{\"watchPinsChange\":0}],\"viewer\":[{\"handleViewerChanged\":0}]}]]],[\"vertex-viewer-default-toolbar.cjs\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-viewer-markup.cjs\",[[257,\"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\"],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"toSelectMarkupId\":[32],\"pointerDownPosition\":[32],\"addMarkup\":[64],\"removeMarkup\":[64],\"getMarkupElements\":[64],\"getMarkupElement\":[64]},[[0,\"markupEnd\",\"handleMarkupEnd\"],[0,\"interactionEnd\",\"handleMarkupUpdated\"],[1,\"pointerdown\",\"handleMarkupPointerDown\"]],{\"selectedMarkupId\":[{\"handleSelectedMarkupIdChanged\":0}],\"tool\":[{\"handleToolChanged\":0}],\"arrowTemplateId\":[{\"handleArrowTemplateIdChanged\":0}],\"circleTemplateId\":[{\"handleCircleTemplateIdChanged\":0}],\"freeformTemplateId\":[{\"handleFreeformTemplateIdChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}],\"originatingViewport\":[{\"handleViewerChanged\":0}],\"centeringBehavior\":[{\"handleViewerChanged\":0}],\"offset\":[{\"handleViewerChanged\":0}],\"scale\":[{\"handleViewerChanged\":0}],\"disabled\":[{\"handleDisabledChanged\":0}],\"startLineAnchorStyle\":[{\"handleStartLineAnchorStyleChanged\":0}],\"endLineAnchorStyle\":[{\"handleEndLineAnchorStyleChanged\":0}]}]]],[\"vertex-viewer-markup-tool.cjs\",[[257,\"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],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"stateMap\":[32],\"reset\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"tool\":[{\"handleToolChanged\":0}],\"arrowTemplateId\":[{\"handleArrowTemplateIdChanged\":0}],\"circleTemplateId\":[{\"handleCircleTemplateIdChanged\":0}],\"freeformTemplateId\":[{\"handleFreeformTemplateIdChanged\":0}],\"disabled\":[{\"handleDisabledChanged\":0}],\"startLineAnchorStyle\":[{\"handleStartLineAnchorStyleChanged\":0}],\"endLineAnchorStyle\":[{\"handleEndLineAnchorStyleChanged\":0}]}]]],[\"vertex-viewer-view-cube.cjs\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"viewAll\":[4,\"view-all\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]},null,{\"viewer\":[{\"handleViewerChanged\":0}]}]]],[\"vertex-viewer-measurement-distance.cjs\",[[1,\"vertex-viewer-measurement-distance\",{\"start\":[1040],\"startJson\":[1,\"start-json\"],\"end\":[1040],\"endJson\":[1,\"end-json\"],\"distance\":[1026],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"snapDistance\":[2,\"snap-distance\"],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"labelFormatter\":[16],\"anchorLabelOffset\":[2,\"anchor-label-offset\"],\"lineCapLength\":[2,\"line-cap-length\"],\"mode\":[513],\"interactingAnchor\":[1537,\"interacting-anchor\"],\"invalid\":[1540],\"camera\":[16],\"hitProvider\":[16],\"indicatorPt\":[1040],\"viewer\":[16],\"measurementModel\":[16],\"viewport\":[32],\"elementBounds\":[32],\"interactionCount\":[32],\"internalCamera\":[32],\"invalidateStateCounter\":[32],\"stateMap\":[32],\"measurementUnits\":[32],\"computeElementMetrics\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"units\":[{\"handleUnitsChanged\":0}],\"camera\":[{\"handleCameraChanged\":0}],\"mode\":[{\"handleModeChanged\":0}],\"start\":[{\"handleStartChanged\":0}],\"end\":[{\"handleEndChanged\":0}],\"invalid\":[{\"handleInvalidChanged\":0}]}]]],[\"vertex-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]},null,{\"measurableEntityTypes\":[{\"handleMeasurableEntityTypesChanged\":0}],\"measurementController\":[{\"handleMeasurementControllerChanged\":0}],\"measurementModel\":[{\"handleMeasurementModelChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[257,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"alwaysShowIcons\":[4,\"always-show-icons\"],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"endItemIndicator\":[4,\"end-item-indicator\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"isolateButton\":[4,\"isolate-button\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"isolateHandler\":[16],\"hoverController\":[16]}]]],[\"vertex-viewer-annotation-callout.cjs\",[[1,\"vertex-viewer-annotation-callout\",{\"data\":[16],\"iconSize\":[1,\"icon-size\"]}]]],[\"vertex-viewer-box-query-tool.cjs\",[[257,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"mode\":[1],\"details\":[32]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"operationType\":[{\"handleDefaultOperationChange\":0}],\"mode\":[{\"handleModeChange\":0}],\"controller\":[{\"handleControllerChange\":0}]}]]],[\"vertex-viewer-walk-mode-tool.cjs\",[[257,\"vertex-viewer-walk-mode-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"teleportMode\":[1,\"teleport-mode\"],\"enabled\":[4]},null,{\"enabled\":[{\"handleEnabledChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}],\"teleportMode\":[{\"handleTeleportModeChanged\":0}],\"controller\":[{\"handleControllerChanged\":0}],\"model\":[{\"handleModelChanged\":0}]}]]],[\"vertex-scene-tree-table-column.cjs\",[[257,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header.cjs\",[[257,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider.cjs\",[[257,\"vertex-scene-tree-table-resize-divider\",{\"hovering\":[32],\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group.cjs\",[[257,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer.cjs\",[[257,\"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\"],\"phantom\":[16],\"noDefaultLights\":[4,\"no-default-lights\"],\"enableTemporalRefinement\":[4,\"enable-temporal-refinement\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"featureLines\":[16],\"selectionHighlighting\":[16],\"featureHighlighting\":[16],\"sceneComparison\":[16],\"crossSectioning\":[16],\"featureMaps\":[1,\"feature-maps\"],\"resizeDebounce\":[2,\"resize-debounce\"],\"frame\":[1040],\"stream\":[1040],\"stencilBuffer\":[1040],\"viewport\":[1040],\"annotations\":[1040],\"modelViews\":[1040],\"pmi\":[1040],\"sceneItems\":[1040],\"canvases\":[1040],\"experimentalSkipVisibilityCheck\":[4,\"experimental-skip-visibility-check\"],\"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],\"reload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]],{\"src\":[{\"handleSrcChanged\":0}],\"cameraControls\":[{\"handleCameraControlsChanged\":0}],\"keyboardControls\":[{\"handleKeyboardControlsChanged\":0}],\"rotateAroundTapPoint\":[{\"handleRotateAboutTapPointChanged\":0}],\"cameraType\":[{\"handleCameraTypeChanged\":0}],\"experimentalRenderingOptions\":[{\"handleStreamAttributesChanged\":0}],\"depthBuffers\":[{\"handleStreamAttributesChanged\":0}],\"featureHighlighting\":[{\"handleStreamAttributesChanged\":0}],\"featureLines\":[{\"handleStreamAttributesChanged\":0}],\"featureMaps\":[{\"handleStreamAttributesChanged\":0}],\"noDefaultLights\":[{\"handleStreamAttributesChanged\":0}],\"phantom\":[{\"handleStreamAttributesChanged\":0}],\"sceneComparison\":[{\"handleStreamAttributesChanged\":0}],\"crossSectioning\":[{\"handleStreamAttributesChanged\":0}],\"selectionHighlighting\":[{\"handleStreamAttributesChanged\":0}],\"enableTemporalRefinement\":[{\"handleEnableTemporalRefinementChanged\":0}],\"config\":[{\"handleConfigChanged\":0}],\"configEnv\":[{\"handleConfigEnvChanged\":0}]}]]],[\"vertex-viewer-hit-result-indicator.cjs\",[[1,\"vertex-viewer-hit-result-indicator\",{\"viewer\":[16],\"position\":[1040],\"normal\":[1040]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"position\":[{\"handlePositionChanged\":0}],\"normal\":[{\"handleNormalChanged\":0}]}]]],[\"vertex-viewer-measurement-details.cjs\",[[1,\"vertex-viewer-measurement-details\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementOutcome\":[1040],\"distanceUnits\":[1,\"distance-units\"],\"angleUnits\":[1,\"angle-units\"],\"fractionalDigits\":[2,\"fractional-digits\"],\"distanceFormatter\":[16],\"angleFormatter\":[16],\"areaFormatter\":[16],\"resultTypes\":[16],\"overlay\":[32],\"distanceMeasurementUnits\":[32],\"angleMeasurementUnits\":[32],\"areaMeasurementUnits\":[32]},null,{\"distanceUnits\":[{\"handleDistanceUnitsChanged\":0}],\"angleUnits\":[{\"handleAngleUnitsChanged\":0}],\"measurementModel\":[{\"handleMeasurementModelChanged\":0}],\"resultTypes\":[{\"handleResultTypesChanged\":0}]}]]],[\"vertex-viewer-transform-widget.cjs\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"rotation\":[1040],\"controller\":[1040],\"xRotationDisabled\":[1028,\"x-rotation-disabled\"],\"yRotationDisabled\":[1028,\"y-rotation-disabled\"],\"zRotationDisabled\":[1028,\"z-rotation-disabled\"],\"xTranslationDisabled\":[1028,\"x-translation-disabled\"],\"yTranslationDisabled\":[1028,\"y-translation-disabled\"],\"zTranslationDisabled\":[1028,\"z-translation-disabled\"],\"xyTranslationDisabled\":[1028,\"xy-translation-disabled\"],\"xzTranslationDisabled\":[1028,\"xz-translation-disabled\"],\"yzTranslationDisabled\":[1028,\"yz-translation-disabled\"],\"showInputs\":[4,\"show-inputs\"],\"distanceUnit\":[1,\"distance-unit\"],\"angleUnit\":[1,\"angle-unit\"],\"decimalPlaces\":[2,\"decimal-places\"],\"rotationSnapDegrees\":[2,\"rotation-snap-degrees\"],\"rotationSnapKey\":[1,\"rotation-snap-key\"],\"translationHandleScalar\":[2,\"translation-handle-scalar\"],\"rotationHandleScalar\":[2,\"rotation-handle-scalar\"],\"interactionThrottle\":[2,\"interaction-throttle\"],\"EXPERIMENTAL_undoKeybindings\":[4,\"e-x-p-e-r-i-m-e-n-t-a-l_undo-keybindings\"],\"hovered\":[1040],\"inputPosition\":[32],\"inputValue\":[32],\"isEndingTransform\":[32],\"inputShouldFocus\":[32],\"EXPERIMENTAL_undo\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"xTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"yTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"zTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"xyTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"xzTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"yzTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"xRotationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"yRotationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"zRotationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"translationHandleScalar\":[{\"handleTransformHandleScalarChanged\":0}],\"rotationHandleScalar\":[{\"handleTransformHandleScalarChanged\":0}],\"rotation\":[{\"handleRotationChanged\":0}],\"position\":[{\"handlePositionChanged\":0}],\"distanceUnit\":[{\"handleInputFormattingChanged\":0}],\"angleUnit\":[{\"handleInputFormattingChanged\":0}],\"decimalPlaces\":[{\"handleInputFormattingChanged\":0}]}]]],[\"vertex-viewer-pin-group.cjs\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"occluded\":[1540],\"detached\":[1540],\"invalidateStateCounter\":[32]},[[0,\"occlusionStateChanged\",\"handleOcclusionStateChanged\"],[0,\"detachedStateChanged\",\"handleDetachedStateChanged\"]]]]],[\"vertex-viewer-dom-group.cjs\",[[262,\"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]},null,{\"position\":[{\"handlePositionChange\":0}],\"positionJson\":[{\"handlePositionJsonChanged\":0}],\"rotation\":[{\"handleRotationChanged\":0}],\"rotationJson\":[{\"handleRotationJsonChanged\":0}],\"quaternion\":[{\"handleQuaternionChange\":0}],\"quaternionJson\":[{\"handleQuaternionJsonChanged\":0}],\"scale\":[{\"handleScaleChange\":0}],\"scaleJson\":[{\"handleScaleJsonChanged\":0}],\"matrix\":[{\"handleMatrixChanged\":0}]}]]],[\"vertex-viewer-teleport-tool.cjs\",[[1,\"vertex-viewer-teleport-tool\",{\"viewer\":[16],\"mode\":[1025],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"],\"controller\":[1040],\"model\":[1040]},null,{\"mode\":[{\"handleModeChange\":0}],\"viewer\":[{\"handleViewerChanged\":0}],\"animationMs\":[{\"handleAnimationMsChanged\":0}],\"animationsDisabled\":[{\"handleAnimationsDisabledChanged\":0}],\"controller\":[{\"handleControllerChanged\":0}],\"model\":[{\"handleModelChanged\":0}]}]]],[\"vertex-viewer-spinner.cjs\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-viewer-layer.cjs\",[[257,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3.cjs\",[[257,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[257,\"vertex-viewer-button\"],[257,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-scene-tree-notification-banner_4.cjs\",[[257,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[32],\"setFocus\":[64],\"clear\":[64]},null,{\"controller\":[{\"controllerChanged\":0}]}],[1,\"vertex-scene-tree-notification-banner\",{\"message\":[1],\"actionLabel\":[1,\"action-label\"]}],[257,\"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],\"attemptComputeCellHeight\":[64]},null,{\"rows\":[{\"handleViewportRowsPropsChanged\":0}],\"totalRows\":[{\"handleViewportRowsPropsChanged\":0}],\"rowHeight\":[{\"handleViewportRowsPropsChanged\":0}]}],[257,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-pin-label_2.cjs\",[[0,\"vertex-viewer-pin-label\",{\"pin\":[16],\"elementBounds\":[16],\"value\":[1025],\"pinController\":[16],\"focused\":[32],\"computedScreenPosition\":[32],\"textareaRows\":[32],\"contentElBounds\":[32],\"setFocus\":[64],\"submit\":[64]},null,{\"focused\":[{\"watchFocusChange\":0}],\"pin\":[{\"watchPinChange\":0}],\"elementBounds\":[{\"watchElementBoundsChange\":0}]}],[0,\"vertex-viewer-pin-label-line\",{\"pinPoint\":[16],\"labelPoint\":[16],\"pin\":[16]}]]],[\"vertex-viewer-measurement-line_2.cjs\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]},null,{\"measurementOverlays\":[{\"handleMeasurementOverlaysChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]],[\"vertex-viewer-dom-element_2.cjs\",[[262,\"vertex-viewer-dom-renderer\",{\"drawMode\":[1,\"draw-mode\"],\"propagateEventsToViewer\":[4,\"propagate-events-to-viewer\"],\"viewer\":[16],\"camera\":[1040],\"depthBuffer\":[1040],\"viewport\":[32],\"invalidateFrameCounter\":[32],\"interactionDisposables\":[32]},[[0,\"propertyChange\",\"handlePropertyChange\"]],{\"viewer\":[{\"handleViewerChange\":0}]}],[257,\"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],\"detachedOff\":[4,\"detached-off\"],\"detached\":[516],\"billboardOff\":[4,\"billboard-off\"],\"interactionsOff\":[516,\"interactions-off\"]},null,{\"position\":[{\"handlePositionChange\":0}],\"positionJson\":[{\"handlePositionJsonChanged\":0}],\"rotation\":[{\"handleRotationChanged\":0}],\"rotationJson\":[{\"handleRotationJsonChanged\":0}],\"quaternion\":[{\"handleQuaternionChange\":0}],\"quaternionJson\":[{\"handleQuaternionJsonChanged\":0}],\"scale\":[{\"handleScaleChange\":0}],\"scaleJson\":[{\"handleScaleJsonChanged\":0}],\"matrix\":[{\"handleMatrixChanged\":0}],\"occluded\":[{\"handleOcclusionStateChanged\":0}],\"detached\":[{\"handleDetachedStateChanged\":0}]}]]],[\"vertex-viewer-markup-arrow_3.cjs\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"start\":[{\"handleStartJsonChange\":0}],\"end\":[{\"handleEndJsonChange\":0}],\"mode\":[{\"handleModeChange\":0}],\"scale\":[{\"handleScaleChange\":0}]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"elementBounds\":[32],\"dispose\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"bounds\":[{\"handleBoundsJsonChange\":0}],\"mode\":[{\"handleModeChange\":0}],\"scale\":[{\"handleScaleChange\":0}]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"originatingViewport\":[{\"recomputePointsFromProps\":0}],\"offset\":[{\"recomputePointsFromProps\":0}],\"scale\":[{\"recomputePointsFromProps\":0},{\"handleScaleChange\":0}],\"bounds\":[{\"recomputePointsFromProps\":0}],\"points\":[{\"recomputePointsFromProps\":0}],\"mode\":[{\"handleModeChange\":0}]}]]],[\"vertex-viewer-icon.cjs\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]]]"), options);
11
+ return index.bootstrapLazy(JSON.parse("[[\"vertex-scene-tree.cjs\",[[257,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"searchOptions\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"operationAnimationDuration\":[2,\"operation-animation-duration\"],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[32],\"showEmptyResults\":[32],\"stateMap\":[32],\"errorDetails\":[32],\"hasPartialFilterResults\":[32],\"refreshingResults\":[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],\"isolateItem\":[64],\"getRowAtIndex\":[64],\"getRowForItemId\":[64],\"getRowForEvent\":[64],\"getRowAtClientY\":[64],\"filterItems\":[64],\"selectFilteredItems\":[64],\"fetchMetadataKeys\":[64]},[[0,\"search\",\"handleSearch\"],[0,\"cellLoaded\",\"handleCellLoaded\"]],{\"viewer\":[{\"handleViewerChanged\":0}],\"controller\":[{\"handleControllerChanged\":0}],\"metadataKeys\":[{\"handleMetadataKeysChanged\":0}]}]]],[\"vertex-viewer-pin-tool.cjs\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]},null,{\"mode\":[{\"watchModeChange\":0}],\"tool\":[{\"watchTypeChange\":0}],\"accentColor\":[{\"watchAccentColorChange\":0}],\"primaryColor\":[{\"watchPrimaryColorChange\":0}],\"pins\":[{\"watchPinsChange\":0}],\"viewer\":[{\"handleViewerChanged\":0}]}]]],[\"vertex-viewer-default-toolbar.cjs\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-viewer-markup.cjs\",[[257,\"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\"],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"toSelectMarkupId\":[32],\"pointerDownPosition\":[32],\"addMarkup\":[64],\"removeMarkup\":[64],\"getMarkupElements\":[64],\"getMarkupElement\":[64]},[[0,\"markupEnd\",\"handleMarkupEnd\"],[0,\"interactionEnd\",\"handleMarkupUpdated\"],[1,\"pointerdown\",\"handleMarkupPointerDown\"]],{\"selectedMarkupId\":[{\"handleSelectedMarkupIdChanged\":0}],\"arrowTemplateId\":[{\"handlePropertyChanged\":0}],\"circleTemplateId\":[{\"handlePropertyChanged\":0}],\"freeformTemplateId\":[{\"handlePropertyChanged\":0}],\"tool\":[{\"handlePropertyChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}],\"originatingViewport\":[{\"handleViewerChanged\":0}],\"centeringBehavior\":[{\"handleViewerChanged\":0}],\"offset\":[{\"handleViewerChanged\":0}],\"scale\":[{\"handleViewerChanged\":0}],\"disabled\":[{\"handleDisabledChanged\":0}],\"startLineAnchorStyle\":[{\"handleStartLineAnchorStyleChanged\":0}],\"endLineAnchorStyle\":[{\"handleEndLineAnchorStyleChanged\":0}]}]]],[\"vertex-viewer-markup-tool.cjs\",[[257,\"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],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"stateMap\":[32],\"reset\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"arrowTemplateId\":[{\"handlePropertyChanged\":0}],\"circleTemplateId\":[{\"handlePropertyChanged\":0}],\"disabled\":[{\"handlePropertyChanged\":0}],\"endLineAnchorStyle\":[{\"handlePropertyChanged\":0}],\"freeformTemplateId\":[{\"handlePropertyChanged\":0}],\"startLineAnchorStyle\":[{\"handlePropertyChanged\":0}],\"tool\":[{\"handlePropertyChanged\":0}]}]]],[\"vertex-viewer-view-cube.cjs\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"viewAll\":[4,\"view-all\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]},null,{\"viewer\":[{\"handleViewerChanged\":0}]}]]],[\"vertex-viewer-measurement-distance.cjs\",[[1,\"vertex-viewer-measurement-distance\",{\"start\":[1040],\"startJson\":[1,\"start-json\"],\"end\":[1040],\"endJson\":[1,\"end-json\"],\"distance\":[1026],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"snapDistance\":[2,\"snap-distance\"],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"labelFormatter\":[16],\"anchorLabelOffset\":[2,\"anchor-label-offset\"],\"lineCapLength\":[2,\"line-cap-length\"],\"mode\":[513],\"interactingAnchor\":[1537,\"interacting-anchor\"],\"invalid\":[1540],\"camera\":[16],\"hitProvider\":[16],\"indicatorPt\":[1040],\"viewer\":[16],\"measurementModel\":[16],\"viewport\":[32],\"elementBounds\":[32],\"interactionCount\":[32],\"internalCamera\":[32],\"invalidateStateCounter\":[32],\"stateMap\":[32],\"measurementUnits\":[32],\"computeElementMetrics\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"units\":[{\"handleUnitsChanged\":0}],\"camera\":[{\"handleCameraChanged\":0}],\"mode\":[{\"handleModeChanged\":0}],\"start\":[{\"handleStartChanged\":0}],\"end\":[{\"handleEndChanged\":0}],\"invalid\":[{\"handleInvalidChanged\":0}]}]]],[\"vertex-viewer-measurement-precise.cjs\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]},null,{\"measurableEntityTypes\":[{\"handleMeasurableEntityTypesChanged\":0}],\"measurementController\":[{\"handleMeasurementControllerChanged\":0}],\"measurementModel\":[{\"handleMeasurementModelChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}]}]]],[\"vertex-scene-tree-table-cell.cjs\",[[257,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"alwaysShowIcons\":[4,\"always-show-icons\"],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"endItemIndicator\":[4,\"end-item-indicator\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"isolateButton\":[4,\"isolate-button\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"isolateHandler\":[16],\"hoverController\":[16]}]]],[\"vertex-viewer-annotation-callout.cjs\",[[1,\"vertex-viewer-annotation-callout\",{\"data\":[16],\"iconSize\":[1,\"icon-size\"]}]]],[\"vertex-viewer-box-query-tool.cjs\",[[257,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"mode\":[1],\"details\":[32]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"operationType\":[{\"handleDefaultOperationChange\":0}],\"mode\":[{\"handleModeChange\":0}],\"controller\":[{\"handleControllerChange\":0}]}]]],[\"vertex-viewer-walk-mode-tool.cjs\",[[257,\"vertex-viewer-walk-mode-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"teleportMode\":[1,\"teleport-mode\"],\"enabled\":[4]},null,{\"enabled\":[{\"handleEnabledChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}],\"teleportMode\":[{\"handleTeleportModeChanged\":0}],\"controller\":[{\"handleControllerChanged\":0}],\"model\":[{\"handleModelChanged\":0}]}]]],[\"vertex-scene-tree-table-column.cjs\",[[257,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header.cjs\",[[257,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider.cjs\",[[257,\"vertex-scene-tree-table-resize-divider\",{\"hovering\":[32],\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group.cjs\",[[257,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer.cjs\",[[257,\"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\"],\"phantom\":[16],\"noDefaultLights\":[4,\"no-default-lights\"],\"enableTemporalRefinement\":[4,\"enable-temporal-refinement\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"featureLines\":[16],\"selectionHighlighting\":[16],\"featureHighlighting\":[16],\"sceneComparison\":[16],\"crossSectioning\":[16],\"featureMaps\":[1,\"feature-maps\"],\"resizeDebounce\":[2,\"resize-debounce\"],\"frame\":[1040],\"stream\":[1040],\"stencilBuffer\":[1040],\"viewport\":[1040],\"annotations\":[1040],\"modelViews\":[1040],\"pmi\":[1040],\"sceneItems\":[1040],\"canvases\":[1040],\"experimentalSkipVisibilityCheck\":[4,\"experimental-skip-visibility-check\"],\"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],\"reload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]],{\"src\":[{\"handleSrcChanged\":0}],\"cameraControls\":[{\"handleCameraControlsChanged\":0}],\"keyboardControls\":[{\"handleKeyboardControlsChanged\":0}],\"rotateAroundTapPoint\":[{\"handleRotateAboutTapPointChanged\":0}],\"cameraType\":[{\"handleCameraTypeChanged\":0}],\"experimentalRenderingOptions\":[{\"handleStreamAttributesChanged\":0}],\"depthBuffers\":[{\"handleStreamAttributesChanged\":0}],\"featureHighlighting\":[{\"handleStreamAttributesChanged\":0}],\"featureLines\":[{\"handleStreamAttributesChanged\":0}],\"featureMaps\":[{\"handleStreamAttributesChanged\":0}],\"noDefaultLights\":[{\"handleStreamAttributesChanged\":0}],\"phantom\":[{\"handleStreamAttributesChanged\":0}],\"sceneComparison\":[{\"handleStreamAttributesChanged\":0}],\"crossSectioning\":[{\"handleStreamAttributesChanged\":0}],\"selectionHighlighting\":[{\"handleStreamAttributesChanged\":0}],\"enableTemporalRefinement\":[{\"handleEnableTemporalRefinementChanged\":0}],\"config\":[{\"handleConfigChanged\":0}],\"configEnv\":[{\"handleConfigEnvChanged\":0}]}]]],[\"vertex-viewer-hit-result-indicator.cjs\",[[1,\"vertex-viewer-hit-result-indicator\",{\"viewer\":[16],\"position\":[1040],\"normal\":[1040]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"position\":[{\"handlePositionChanged\":0}],\"normal\":[{\"handleNormalChanged\":0}]}]]],[\"vertex-viewer-measurement-details.cjs\",[[1,\"vertex-viewer-measurement-details\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementOutcome\":[1040],\"distanceUnits\":[1,\"distance-units\"],\"angleUnits\":[1,\"angle-units\"],\"fractionalDigits\":[2,\"fractional-digits\"],\"distanceFormatter\":[16],\"angleFormatter\":[16],\"areaFormatter\":[16],\"resultTypes\":[16],\"overlay\":[32],\"distanceMeasurementUnits\":[32],\"angleMeasurementUnits\":[32],\"areaMeasurementUnits\":[32]},null,{\"distanceUnits\":[{\"handleDistanceUnitsChanged\":0}],\"angleUnits\":[{\"handleAngleUnitsChanged\":0}],\"measurementModel\":[{\"handleMeasurementModelChanged\":0}],\"resultTypes\":[{\"handleResultTypesChanged\":0}]}]]],[\"vertex-viewer-transform-widget.cjs\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"rotation\":[1040],\"controller\":[1040],\"xRotationDisabled\":[1028,\"x-rotation-disabled\"],\"yRotationDisabled\":[1028,\"y-rotation-disabled\"],\"zRotationDisabled\":[1028,\"z-rotation-disabled\"],\"xTranslationDisabled\":[1028,\"x-translation-disabled\"],\"yTranslationDisabled\":[1028,\"y-translation-disabled\"],\"zTranslationDisabled\":[1028,\"z-translation-disabled\"],\"xyTranslationDisabled\":[1028,\"xy-translation-disabled\"],\"xzTranslationDisabled\":[1028,\"xz-translation-disabled\"],\"yzTranslationDisabled\":[1028,\"yz-translation-disabled\"],\"showInputs\":[4,\"show-inputs\"],\"distanceUnit\":[1,\"distance-unit\"],\"angleUnit\":[1,\"angle-unit\"],\"decimalPlaces\":[2,\"decimal-places\"],\"rotationSnapDegrees\":[2,\"rotation-snap-degrees\"],\"rotationSnapKey\":[1,\"rotation-snap-key\"],\"translationHandleScalar\":[2,\"translation-handle-scalar\"],\"rotationHandleScalar\":[2,\"rotation-handle-scalar\"],\"interactionThrottle\":[2,\"interaction-throttle\"],\"EXPERIMENTAL_undoKeybindings\":[4,\"e-x-p-e-r-i-m-e-n-t-a-l_undo-keybindings\"],\"hovered\":[1040],\"inputPosition\":[32],\"inputValue\":[32],\"isEndingTransform\":[32],\"inputShouldFocus\":[32],\"EXPERIMENTAL_undo\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"xTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"yTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"zTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"xyTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"xzTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"yzTranslationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"xRotationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"yRotationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"zRotationDisabled\":[{\"handleDisabledPropertyChanged\":0}],\"translationHandleScalar\":[{\"handleTransformHandleScalarChanged\":0}],\"rotationHandleScalar\":[{\"handleTransformHandleScalarChanged\":0}],\"rotation\":[{\"handleRotationChanged\":0}],\"position\":[{\"handlePositionChanged\":0}],\"distanceUnit\":[{\"handleInputFormattingChanged\":0}],\"angleUnit\":[{\"handleInputFormattingChanged\":0}],\"decimalPlaces\":[{\"handleInputFormattingChanged\":0}]}]]],[\"vertex-viewer-pin-group.cjs\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"occluded\":[1540],\"detached\":[1540],\"invalidateStateCounter\":[32]},[[0,\"occlusionStateChanged\",\"handleOcclusionStateChanged\"],[0,\"detachedStateChanged\",\"handleDetachedStateChanged\"]]]]],[\"vertex-viewer-dom-group.cjs\",[[262,\"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]},null,{\"position\":[{\"handlePositionChange\":0}],\"positionJson\":[{\"handlePositionJsonChanged\":0}],\"rotation\":[{\"handleRotationChanged\":0}],\"rotationJson\":[{\"handleRotationJsonChanged\":0}],\"quaternion\":[{\"handleQuaternionChange\":0}],\"quaternionJson\":[{\"handleQuaternionJsonChanged\":0}],\"scale\":[{\"handleScaleChange\":0}],\"scaleJson\":[{\"handleScaleJsonChanged\":0}],\"matrix\":[{\"handleMatrixChanged\":0}]}]]],[\"vertex-viewer-teleport-tool.cjs\",[[1,\"vertex-viewer-teleport-tool\",{\"viewer\":[16],\"mode\":[1025],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"],\"controller\":[1040],\"model\":[1040]},null,{\"mode\":[{\"handleModeChange\":0}],\"viewer\":[{\"handleViewerChanged\":0}],\"animationMs\":[{\"handleAnimationMsChanged\":0}],\"animationsDisabled\":[{\"handleAnimationsDisabledChanged\":0}],\"controller\":[{\"handleControllerChanged\":0}],\"model\":[{\"handleModelChanged\":0}]}]]],[\"vertex-viewer-spinner.cjs\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-viewer-layer.cjs\",[[257,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3.cjs\",[[257,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[257,\"vertex-viewer-button\"],[257,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-scene-tree-notification-banner_4.cjs\",[[257,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[32],\"setFocus\":[64],\"clear\":[64]},null,{\"controller\":[{\"controllerChanged\":0}]}],[1,\"vertex-scene-tree-notification-banner\",{\"message\":[1],\"actionLabel\":[1,\"action-label\"]}],[257,\"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],\"attemptComputeCellHeight\":[64]},null,{\"rows\":[{\"handleViewportRowsPropsChanged\":0}],\"totalRows\":[{\"handleViewportRowsPropsChanged\":0}],\"rowHeight\":[{\"handleViewportRowsPropsChanged\":0}]}],[257,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-pin-label_2.cjs\",[[0,\"vertex-viewer-pin-label\",{\"pin\":[16],\"elementBounds\":[16],\"value\":[1025],\"pinController\":[16],\"focused\":[32],\"computedScreenPosition\":[32],\"textareaRows\":[32],\"contentElBounds\":[32],\"setFocus\":[64],\"submit\":[64]},null,{\"focused\":[{\"watchFocusChange\":0}],\"pin\":[{\"watchPinChange\":0}],\"elementBounds\":[{\"watchElementBoundsChange\":0}]}],[0,\"vertex-viewer-pin-label-line\",{\"pinPoint\":[16],\"labelPoint\":[16],\"pin\":[16]}]]],[\"vertex-viewer-measurement-line_2.cjs\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]},null,{\"measurementOverlays\":[{\"handleMeasurementOverlaysChanged\":0}],\"viewer\":[{\"handleViewerChanged\":0}]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]],[\"vertex-viewer-dom-element_2.cjs\",[[262,\"vertex-viewer-dom-renderer\",{\"drawMode\":[1,\"draw-mode\"],\"propagateEventsToViewer\":[4,\"propagate-events-to-viewer\"],\"viewer\":[16],\"camera\":[1040],\"depthBuffer\":[1040],\"viewport\":[32],\"invalidateFrameCounter\":[32],\"interactionDisposables\":[32]},[[0,\"propertyChange\",\"handlePropertyChange\"]],{\"viewer\":[{\"handleViewerChange\":0}]}],[257,\"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],\"detachedOff\":[4,\"detached-off\"],\"detached\":[516],\"billboardOff\":[4,\"billboard-off\"],\"interactionsOff\":[516,\"interactions-off\"]},null,{\"position\":[{\"handlePositionChange\":0}],\"positionJson\":[{\"handlePositionJsonChanged\":0}],\"rotation\":[{\"handleRotationChanged\":0}],\"rotationJson\":[{\"handleRotationJsonChanged\":0}],\"quaternion\":[{\"handleQuaternionChange\":0}],\"quaternionJson\":[{\"handleQuaternionJsonChanged\":0}],\"scale\":[{\"handleScaleChange\":0}],\"scaleJson\":[{\"handleScaleJsonChanged\":0}],\"matrix\":[{\"handleMatrixChanged\":0}],\"occluded\":[{\"handleOcclusionStateChanged\":0}],\"detached\":[{\"handleDetachedStateChanged\":0}]}]]],[\"vertex-viewer-markup-arrow_3.cjs\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"startLineAnchorStyle\":[1025,\"start-line-anchor-style\"],\"endLineAnchorStyle\":[1025,\"end-line-anchor-style\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"start\":[{\"handleStartJsonChange\":0}],\"end\":[{\"handleEndJsonChange\":0}],\"mode\":[{\"handleModeChange\":0}],\"scale\":[{\"handleScaleChange\":0}]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"elementBounds\":[32],\"dispose\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"bounds\":[{\"handleBoundsJsonChange\":0}],\"mode\":[{\"handleModeChange\":0}],\"scale\":[{\"handleScaleChange\":0}]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"originatingViewport\":[16],\"centeringBehavior\":[1,\"centering-behavior\"],\"offset\":[16],\"scale\":[2],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]},null,{\"viewer\":[{\"handleViewerChanged\":0}],\"originatingViewport\":[{\"recomputePointsFromProps\":0}],\"offset\":[{\"recomputePointsFromProps\":0}],\"scale\":[{\"recomputePointsFromProps\":0},{\"handleScaleChange\":0}],\"bounds\":[{\"recomputePointsFromProps\":0}],\"points\":[{\"recomputePointsFromProps\":0}],\"mode\":[{\"handleModeChange\":0}]}]]],[\"vertex-viewer-icon.cjs\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]]]"), options);
12
12
  };
13
13
 
14
14
  exports.setNonce = index.setNonce;
@@ -97,43 +97,7 @@ const ViewerMarkupTool = class {
97
97
  /**
98
98
  * @ignore
99
99
  */
100
- handleToolChanged() {
101
- this.updateMarkupElement();
102
- }
103
- /**
104
- * @ignore
105
- */
106
- handleArrowTemplateIdChanged() {
107
- this.updateMarkupElement();
108
- }
109
- /**
110
- * @ignore
111
- */
112
- handleCircleTemplateIdChanged() {
113
- this.updateMarkupElement();
114
- }
115
- /**
116
- * @ignore
117
- */
118
- handleFreeformTemplateIdChanged() {
119
- this.updateMarkupElement();
120
- }
121
- /**
122
- * @ignore
123
- */
124
- handleDisabledChanged() {
125
- this.updateMarkupElement();
126
- }
127
- /**
128
- * @ignore
129
- */
130
- handleStartLineAnchorStyleChanged() {
131
- this.updateMarkupElement();
132
- }
133
- /**
134
- * @ignore
135
- */
136
- handleEndLineAnchorStyleChanged() {
100
+ handlePropertyChanged() {
137
101
  this.updateMarkupElement();
138
102
  }
139
103
  /**
@@ -231,6 +195,7 @@ const ViewerMarkupTool = class {
231
195
  }
232
196
  if (!this.disabled) {
233
197
  const newMarkupElement = this.createNewMarkupElement();
198
+ this.hostEl.append(newMarkupElement);
234
199
  if (this.tool === 'arrow') {
235
200
  newMarkupElement.startLineAnchorStyle = this.startLineAnchorStyle;
236
201
  newMarkupElement.endLineAnchorStyle = this.endLineAnchorStyle;
@@ -244,7 +209,6 @@ const ViewerMarkupTool = class {
244
209
  newMarkupElement.addEventListener('interactionBegin', this.handleMarkupInteractionBegin);
245
210
  newMarkupElement.addEventListener('interactionEnd', this.handleMarkupInteractionEnd);
246
211
  this.stateMap.markupElement = newMarkupElement;
247
- this.hostEl.append(newMarkupElement);
248
212
  }
249
213
  }
250
214
  get hostEl() { return index.getElement(this); }
@@ -252,26 +216,26 @@ const ViewerMarkupTool = class {
252
216
  "viewer": [{
253
217
  "handleViewerChanged": 0
254
218
  }],
255
- "tool": [{
256
- "handleToolChanged": 0
257
- }],
258
219
  "arrowTemplateId": [{
259
- "handleArrowTemplateIdChanged": 0
220
+ "handlePropertyChanged": 0
260
221
  }],
261
222
  "circleTemplateId": [{
262
- "handleCircleTemplateIdChanged": 0
263
- }],
264
- "freeformTemplateId": [{
265
- "handleFreeformTemplateIdChanged": 0
223
+ "handlePropertyChanged": 0
266
224
  }],
267
225
  "disabled": [{
268
- "handleDisabledChanged": 0
226
+ "handlePropertyChanged": 0
227
+ }],
228
+ "endLineAnchorStyle": [{
229
+ "handlePropertyChanged": 0
230
+ }],
231
+ "freeformTemplateId": [{
232
+ "handlePropertyChanged": 0
269
233
  }],
270
234
  "startLineAnchorStyle": [{
271
- "handleStartLineAnchorStyleChanged": 0
235
+ "handlePropertyChanged": 0
272
236
  }],
273
- "endLineAnchorStyle": [{
274
- "handleEndLineAnchorStyleChanged": 0
237
+ "tool": [{
238
+ "handlePropertyChanged": 0
275
239
  }]
276
240
  }; }
277
241
  };
@@ -1 +1 @@
1
- {"file":"vertex-viewer-markup-tool.cjs.entry.js","mappings":"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","names":["isVertexViewerFreeformMarkup","FreeformMarkup","isVertexViewerCircleMarkup","CircleMarkup","isVertexViewerArrowMarkup","ArrowMarkup","h","Host","stampTemplateWithId"],"sources":["src/components/viewer-markup-tool/viewer-markup-tool.css?tag=vertex-viewer-markup-tool&encapsulation=shadow","src/components/viewer-markup-tool/viewer-markup-tool.tsx"],"sourcesContent":[":host {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n}\n\n:host([elevated=\"\"]) {\n z-index: 100;\n}","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Dimensions, Point } from '@vertexvis/geometry';\n\nimport { stampTemplateWithId } from '../../lib/templates';\nimport {\n ArrowMarkup,\n CircleMarkup,\n FreeformMarkup,\n Markup,\n MarkupCenteringBehavior,\n} from '../../lib/types/markup';\nimport {\n isVertexViewerArrowMarkup,\n LineAnchorStyle,\n} from '../viewer-markup-arrow/utils';\nimport { isVertexViewerCircleMarkup } from '../viewer-markup-circle/utils';\nimport { isVertexViewerFreeformMarkup } from '../viewer-markup-freeform/utils';\n\n/**\n * The types of markup that can be performed by this tool.\n */\nexport type ViewerMarkupToolType = 'arrow' | 'circle' | 'freeform';\n\ninterface StateMap {\n markupElement?:\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement;\n}\n\n@Component({\n tag: 'vertex-viewer-markup-tool',\n styleUrl: 'viewer-markup-tool.css',\n shadow: true,\n})\nexport class ViewerMarkupTool {\n /**\n * An HTML template that describes the HTML to use for new arrow\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-arrow>`.\n */\n @Prop()\n public arrowTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new circle\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-circle>`.\n */\n @Prop()\n public circleTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new freeform\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-freeform>`.\n */\n @Prop()\n public freeformTemplateId?: string;\n\n /**\n * The type of markup.\n *\n * This property will automatically be set when a child of a\n * `<vertex-viewer-markup>` element.\n */\n @Prop()\n public tool: ViewerMarkupToolType = 'arrow';\n\n /**\n * Disables markups.\n *\n * This property will automatically be set when a child of a\n * `<vertex-viewer-markup>` element.\n */\n @Prop()\n public disabled = false;\n\n /**\n * The viewer to connect to markup.\n *\n * This property will automatically be set when a child of a\n * `<vertex-viewer-markup>` or `<vertex-viewer>` element.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * The style of the starting anchor. This defaults to none.\n */\n @Prop({ mutable: true })\n public startLineAnchorStyle: LineAnchorStyle = 'none';\n\n /**\n * The style of the ending anchor. This defaults to 'arrow-triangle.'\n */\n @Prop({ mutable: true })\n public endLineAnchorStyle: LineAnchorStyle = 'arrow-triangle';\n\n /**\n * The original viewport dimensions where this markup was created. This value is used\n * to determine where the markup should be rendered relative to the current viewport,\n * enabling some markup to appear \"off-screen\".\n *\n * When provided, all NDC values will be considered relative to this viewport.\n */\n @Prop()\n public originatingViewport?: Dimensions.Dimensions;\n\n /**\n * Defines the behavior of the provided markup when the originating viewport is smaller\n * than the current viewport, or is scaled to a size smaller than the current viewport\n * using the `scale` property.\n *\n * Options:\n * - `x-only`: Markup will be centered horizontally, but not vertically.\n * - `y-only`: Markup will be centered vertically, but not horizontally.\n * - `both`: Markup will be centered both horizontally and vertically.\n * - `none`: Markup will not be centered (default).\n */\n @Prop()\n public centeringBehavior: MarkupCenteringBehavior = 'none';\n\n /**\n * The current offset of the visible viewport. This value is used to determine where\n * markup should be rendered relative to the current viewport, enabling some markup to appear \"off-screen\".\n *\n * When provided, all computed coordinates will be offset by this amount.\n */\n @Prop()\n public offset?: Point.Point;\n\n /**\n * The scale to render this markup at. This value is used to scale the element's bounds\n * along with any `offset` to determine the final computed coordinates.\n *\n * When provided, all computed coordinates will be scaled by this amount.\n */\n @Prop()\n public scale = 1;\n\n /**\n * An event that is dispatched when a user begins a new markup.\n */\n @Event({ bubbles: true })\n public markupBegin!: EventEmitter<void>;\n\n /**\n * An event that is dispatched when a user has finished their markup.\n */\n @Event({ bubbles: true })\n public markupEnd!: EventEmitter<Markup>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n /**\n * Captures internal state that you want to preserve across dev refreshes, but\n * don't want to trigger a render when the state changes.\n */\n @State()\n private stateMap: StateMap = {};\n\n @Watch('viewer')\n protected async handleViewerChanged(): Promise<void> {\n if (this.stateMap.markupElement != null) {\n this.stateMap.markupElement.viewer = this.viewer;\n }\n }\n\n /**\n * @ignore\n */\n @Watch('tool')\n protected handleToolChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n @Watch('arrowTemplateId')\n protected handleArrowTemplateIdChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n @Watch('circleTemplateId')\n protected handleCircleTemplateIdChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n @Watch('freeformTemplateId')\n protected handleFreeformTemplateIdChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n @Watch('disabled')\n protected handleDisabledChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n @Watch('startLineAnchorStyle')\n protected handleStartLineAnchorStyleChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n @Watch('endLineAnchorStyle')\n protected handleEndLineAnchorStyleChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n this.updateMarkupElement();\n }\n\n /**\n * Resets the state of the internally managed markup element\n * to allow for creating a new markup. This state is automatically\n * managed when this element is placed as a child of a\n * `<vertex-viewer-markup>` element.\n */\n @Method()\n public async reset(): Promise<void> {\n const { markupElement } = this.stateMap;\n if (isVertexViewerFreeformMarkup(markupElement)) {\n markupElement.points = undefined;\n markupElement.bounds = undefined;\n markupElement.mode = 'create';\n } else if (isVertexViewerCircleMarkup(markupElement)) {\n markupElement.bounds = undefined;\n markupElement.mode = 'create';\n } else if (isVertexViewerArrowMarkup(markupElement)) {\n markupElement.start = undefined;\n markupElement.end = undefined;\n markupElement.mode = 'create';\n }\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n if (!this.disabled) {\n if (\n this.tool === 'arrow' ||\n this.tool === 'circle' ||\n this.tool === 'freeform'\n ) {\n return (\n <Host>\n <slot />\n </Host>\n );\n } else {\n return <Host>{`Unsupported tool type '${this.tool}'.`}</Host>;\n }\n } else {\n return <Host></Host>;\n }\n }\n\n private createArrowMarkupElement(): HTMLVertexViewerMarkupArrowElement {\n if (this.arrowTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.arrowTemplateId,\n isVertexViewerArrowMarkup,\n () =>\n console.warn(\n `Arrow template with ID ${this.arrowTemplateId} not found. Using default arrow element.`\n ),\n () =>\n console.warn(\n `Arrow template does not contain a vertex-viewer-markup-arrow. Using default arrow element.`\n )\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-arrow');\n }\n\n private createCircleMarkupElement(): HTMLVertexViewerMarkupCircleElement {\n if (this.circleTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.circleTemplateId,\n isVertexViewerCircleMarkup,\n () =>\n console.warn(\n `Circle template with ID ${this.circleTemplateId} not found. Using default circle element.`\n ),\n () =>\n console.warn(\n `Circle template does not contain a vertex-viewer-markup-circle. Using default circle element.`\n )\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-circle');\n }\n\n private createFreeformMarkupElement(): HTMLVertexViewerMarkupFreeformElement {\n if (this.freeformTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.freeformTemplateId,\n isVertexViewerFreeformMarkup,\n () =>\n console.warn(\n `Freeform template with ID ${this.freeformTemplateId} not found. Using default freeform element.`\n ),\n () =>\n console.warn(\n `Freeform template does not contain a vertex-viewer-markup-freeform. Using default freeform element.`\n )\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-freeform');\n }\n\n private createNewMarkupElement():\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement {\n switch (this.tool) {\n case 'arrow':\n return this.createArrowMarkupElement();\n case 'circle':\n return this.createCircleMarkupElement();\n case 'freeform':\n return this.createFreeformMarkupElement();\n }\n }\n\n private updateMarkupElement(): void {\n const { markupElement } = this.stateMap;\n if (markupElement != null) {\n markupElement.remove();\n markupElement.dispose();\n markupElement.viewer = undefined;\n markupElement.removeEventListener(\n 'interactionBegin',\n this.handleMarkupInteractionBegin\n );\n markupElement.removeEventListener(\n 'interactionEnd',\n this.handleMarkupInteractionEnd\n );\n }\n\n if (!this.disabled) {\n const newMarkupElement = this.createNewMarkupElement();\n\n if (this.tool === 'arrow') {\n (\n newMarkupElement as HTMLVertexViewerMarkupArrowElement\n ).startLineAnchorStyle = this.startLineAnchorStyle;\n (\n newMarkupElement as HTMLVertexViewerMarkupArrowElement\n ).endLineAnchorStyle = this.endLineAnchorStyle;\n }\n\n newMarkupElement.mode = 'create';\n newMarkupElement.viewer = this.viewer;\n newMarkupElement.originatingViewport = this.originatingViewport;\n newMarkupElement.centeringBehavior = this.centeringBehavior;\n newMarkupElement.offset = this.offset;\n newMarkupElement.scale = this.scale;\n newMarkupElement.addEventListener(\n 'interactionBegin',\n this.handleMarkupInteractionBegin\n );\n newMarkupElement.addEventListener(\n 'interactionEnd',\n this.handleMarkupInteractionEnd\n );\n this.stateMap.markupElement = newMarkupElement;\n this.hostEl.append(newMarkupElement);\n }\n }\n\n private handleMarkupInteractionBegin = (): void => {\n this.markupBegin.emit();\n };\n\n private handleMarkupInteractionEnd = (): void => {\n const { markupElement } = this.stateMap;\n if (isVertexViewerFreeformMarkup(markupElement)) {\n const { points, bounds } = markupElement;\n\n if (points != null && points.length > 0 && bounds != null) {\n this.markupEnd.emit(new FreeformMarkup({ points, bounds }));\n }\n } else if (isVertexViewerCircleMarkup(markupElement)) {\n const { bounds } = markupElement;\n\n if (bounds != null) {\n this.markupEnd.emit(new CircleMarkup({ bounds }));\n }\n } else if (isVertexViewerArrowMarkup(markupElement)) {\n const { start, end } = markupElement;\n\n if (start != null && end != null) {\n this.markupEnd.emit(new ArrowMarkup({ start, end }));\n }\n }\n };\n}\n"],"version":3}
1
+ {"file":"vertex-viewer-markup-tool.cjs.entry.js","mappings":"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","names":["isVertexViewerFreeformMarkup","FreeformMarkup","isVertexViewerCircleMarkup","CircleMarkup","isVertexViewerArrowMarkup","ArrowMarkup","h","Host","stampTemplateWithId"],"sources":["src/components/viewer-markup-tool/viewer-markup-tool.css?tag=vertex-viewer-markup-tool&encapsulation=shadow","src/components/viewer-markup-tool/viewer-markup-tool.tsx"],"sourcesContent":[":host {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n}\n\n:host([elevated=\"\"]) {\n z-index: 100;\n}","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Dimensions, Point } from '@vertexvis/geometry';\n\nimport { stampTemplateWithId } from '../../lib/templates';\nimport {\n ArrowMarkup,\n CircleMarkup,\n FreeformMarkup,\n Markup,\n MarkupCenteringBehavior,\n} from '../../lib/types/markup';\nimport {\n isVertexViewerArrowMarkup,\n LineAnchorStyle,\n} from '../viewer-markup-arrow/utils';\nimport { isVertexViewerCircleMarkup } from '../viewer-markup-circle/utils';\nimport { isVertexViewerFreeformMarkup } from '../viewer-markup-freeform/utils';\n\n/**\n * The types of markup that can be performed by this tool.\n */\nexport type ViewerMarkupToolType = 'arrow' | 'circle' | 'freeform';\n\ninterface StateMap {\n markupElement?:\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement;\n}\n\n@Component({\n tag: 'vertex-viewer-markup-tool',\n styleUrl: 'viewer-markup-tool.css',\n shadow: true,\n})\nexport class ViewerMarkupTool {\n /**\n * An HTML template that describes the HTML to use for new arrow\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-arrow>`.\n */\n @Prop()\n public arrowTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new circle\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-circle>`.\n */\n @Prop()\n public circleTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new freeform\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-freeform>`.\n */\n @Prop()\n public freeformTemplateId?: string;\n\n /**\n * The type of markup.\n *\n * This property will automatically be set when a child of a\n * `<vertex-viewer-markup>` element.\n */\n @Prop()\n public tool: ViewerMarkupToolType = 'arrow';\n\n /**\n * Disables markups.\n *\n * This property will automatically be set when a child of a\n * `<vertex-viewer-markup>` element.\n */\n @Prop()\n public disabled = false;\n\n /**\n * The viewer to connect to markup.\n *\n * This property will automatically be set when a child of a\n * `<vertex-viewer-markup>` or `<vertex-viewer>` element.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * The style of the starting anchor. This defaults to none.\n */\n @Prop({ mutable: true })\n public startLineAnchorStyle: LineAnchorStyle = 'none';\n\n /**\n * The style of the ending anchor. This defaults to 'arrow-triangle.'\n */\n @Prop({ mutable: true })\n public endLineAnchorStyle: LineAnchorStyle = 'arrow-triangle';\n\n /**\n * The original viewport dimensions where this markup was created. This value is used\n * to determine where the markup should be rendered relative to the current viewport,\n * enabling some markup to appear \"off-screen\".\n *\n * When provided, all NDC values will be considered relative to this viewport.\n */\n @Prop()\n public originatingViewport?: Dimensions.Dimensions;\n\n /**\n * Defines the behavior of the provided markup when the originating viewport is smaller\n * than the current viewport, or is scaled to a size smaller than the current viewport\n * using the `scale` property.\n *\n * Options:\n * - `x-only`: Markup will be centered horizontally, but not vertically.\n * - `y-only`: Markup will be centered vertically, but not horizontally.\n * - `both`: Markup will be centered both horizontally and vertically.\n * - `none`: Markup will not be centered (default).\n */\n @Prop()\n public centeringBehavior: MarkupCenteringBehavior = 'none';\n\n /**\n * The current offset of the visible viewport. This value is used to determine where\n * markup should be rendered relative to the current viewport, enabling some markup to appear \"off-screen\".\n *\n * When provided, all computed coordinates will be offset by this amount.\n */\n @Prop()\n public offset?: Point.Point;\n\n /**\n * The scale to render this markup at. This value is used to scale the element's bounds\n * along with any `offset` to determine the final computed coordinates.\n *\n * When provided, all computed coordinates will be scaled by this amount.\n */\n @Prop()\n public scale = 1;\n\n /**\n * An event that is dispatched when a user begins a new markup.\n */\n @Event({ bubbles: true })\n public markupBegin!: EventEmitter<void>;\n\n /**\n * An event that is dispatched when a user has finished their markup.\n */\n @Event({ bubbles: true })\n public markupEnd!: EventEmitter<Markup>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n /**\n * Captures internal state that you want to preserve across dev refreshes, but\n * don't want to trigger a render when the state changes.\n */\n @State()\n private stateMap: StateMap = {};\n\n @Watch('viewer')\n protected async handleViewerChanged(): Promise<void> {\n if (this.stateMap.markupElement != null) {\n this.stateMap.markupElement.viewer = this.viewer;\n }\n }\n\n /**\n * @ignore\n */\n @Watch('arrowTemplateId')\n @Watch('circleTemplateId')\n @Watch('disabled')\n @Watch('endLineAnchorStyle')\n @Watch('freeformTemplateId')\n @Watch('startLineAnchorStyle')\n @Watch('tool')\n protected handlePropertyChanged(): void {\n this.updateMarkupElement();\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n this.updateMarkupElement();\n }\n\n /**\n * Resets the state of the internally managed markup element\n * to allow for creating a new markup. This state is automatically\n * managed when this element is placed as a child of a\n * `<vertex-viewer-markup>` element.\n */\n @Method()\n public async reset(): Promise<void> {\n const { markupElement } = this.stateMap;\n if (isVertexViewerFreeformMarkup(markupElement)) {\n markupElement.points = undefined;\n markupElement.bounds = undefined;\n markupElement.mode = 'create';\n } else if (isVertexViewerCircleMarkup(markupElement)) {\n markupElement.bounds = undefined;\n markupElement.mode = 'create';\n } else if (isVertexViewerArrowMarkup(markupElement)) {\n markupElement.start = undefined;\n markupElement.end = undefined;\n markupElement.mode = 'create';\n }\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n if (!this.disabled) {\n if (\n this.tool === 'arrow' ||\n this.tool === 'circle' ||\n this.tool === 'freeform'\n ) {\n return (\n <Host>\n <slot />\n </Host>\n );\n } else {\n return <Host>{`Unsupported tool type '${this.tool}'.`}</Host>;\n }\n } else {\n return <Host></Host>;\n }\n }\n\n private createArrowMarkupElement(): HTMLVertexViewerMarkupArrowElement {\n if (this.arrowTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.arrowTemplateId,\n isVertexViewerArrowMarkup,\n () =>\n console.warn(\n `Arrow template with ID ${this.arrowTemplateId} not found. Using default arrow element.`\n ),\n () =>\n console.warn(\n `Arrow template does not contain a vertex-viewer-markup-arrow. Using default arrow element.`\n )\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-arrow');\n }\n\n private createCircleMarkupElement(): HTMLVertexViewerMarkupCircleElement {\n if (this.circleTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.circleTemplateId,\n isVertexViewerCircleMarkup,\n () =>\n console.warn(\n `Circle template with ID ${this.circleTemplateId} not found. Using default circle element.`\n ),\n () =>\n console.warn(\n `Circle template does not contain a vertex-viewer-markup-circle. Using default circle element.`\n )\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-circle');\n }\n\n private createFreeformMarkupElement(): HTMLVertexViewerMarkupFreeformElement {\n if (this.freeformTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.freeformTemplateId,\n isVertexViewerFreeformMarkup,\n () =>\n console.warn(\n `Freeform template with ID ${this.freeformTemplateId} not found. Using default freeform element.`\n ),\n () =>\n console.warn(\n `Freeform template does not contain a vertex-viewer-markup-freeform. Using default freeform element.`\n )\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-freeform');\n }\n\n private createNewMarkupElement():\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement {\n switch (this.tool) {\n case 'arrow':\n return this.createArrowMarkupElement();\n case 'circle':\n return this.createCircleMarkupElement();\n case 'freeform':\n return this.createFreeformMarkupElement();\n }\n }\n\n private updateMarkupElement(): void {\n const { markupElement } = this.stateMap;\n if (markupElement != null) {\n markupElement.remove();\n markupElement.dispose();\n markupElement.viewer = undefined;\n markupElement.removeEventListener(\n 'interactionBegin',\n this.handleMarkupInteractionBegin\n );\n markupElement.removeEventListener(\n 'interactionEnd',\n this.handleMarkupInteractionEnd\n );\n }\n\n if (!this.disabled) {\n const newMarkupElement = this.createNewMarkupElement();\n this.hostEl.append(newMarkupElement);\n\n if (this.tool === 'arrow') {\n (\n newMarkupElement as HTMLVertexViewerMarkupArrowElement\n ).startLineAnchorStyle = this.startLineAnchorStyle;\n (\n newMarkupElement as HTMLVertexViewerMarkupArrowElement\n ).endLineAnchorStyle = this.endLineAnchorStyle;\n }\n\n newMarkupElement.mode = 'create';\n newMarkupElement.viewer = this.viewer;\n newMarkupElement.originatingViewport = this.originatingViewport;\n newMarkupElement.centeringBehavior = this.centeringBehavior;\n newMarkupElement.offset = this.offset;\n newMarkupElement.scale = this.scale;\n newMarkupElement.addEventListener(\n 'interactionBegin',\n this.handleMarkupInteractionBegin\n );\n newMarkupElement.addEventListener(\n 'interactionEnd',\n this.handleMarkupInteractionEnd\n );\n this.stateMap.markupElement = newMarkupElement;\n }\n }\n\n private handleMarkupInteractionBegin = (): void => {\n this.markupBegin.emit();\n };\n\n private handleMarkupInteractionEnd = (): void => {\n const { markupElement } = this.stateMap;\n if (isVertexViewerFreeformMarkup(markupElement)) {\n const { points, bounds } = markupElement;\n\n if (points != null && points.length > 0 && bounds != null) {\n this.markupEnd.emit(new FreeformMarkup({ points, bounds }));\n }\n } else if (isVertexViewerCircleMarkup(markupElement)) {\n const { bounds } = markupElement;\n\n if (bounds != null) {\n this.markupEnd.emit(new CircleMarkup({ bounds }));\n }\n } else if (isVertexViewerArrowMarkup(markupElement)) {\n const { start, end } = markupElement;\n\n if (start != null && end != null) {\n this.markupEnd.emit(new ArrowMarkup({ start, end }));\n }\n }\n };\n}\n"],"version":3}
@@ -106,27 +106,30 @@ const ViewerMarkup = class {
106
106
  if (markup$1 instanceof markup.ArrowMarkup) {
107
107
  const { start, end, id } = markup$1;
108
108
  const el = this.createArrowMarkupElement();
109
+ this.appendMarkupElement(el);
109
110
  el.id = id;
110
111
  el.start = start;
111
112
  el.end = end;
112
113
  el.startLineAnchorStyle = this.startLineAnchorStyle;
113
114
  el.endLineAnchorStyle = this.endLineAnchorStyle;
114
- return this.appendMarkupElement(el);
115
+ return el;
115
116
  }
116
117
  else if (markup$1 instanceof markup.CircleMarkup) {
117
118
  const { bounds, id } = markup$1;
118
119
  const el = this.createCircleMarkupElement();
120
+ this.appendMarkupElement(el);
119
121
  el.id = id;
120
122
  el.bounds = bounds;
121
- return this.appendMarkupElement(el);
123
+ return el;
122
124
  }
123
125
  else if (markup$1 instanceof markup.FreeformMarkup) {
124
126
  const { bounds, points, id } = markup$1;
125
127
  const el = this.createFreeformMarkupElement();
128
+ this.appendMarkupElement(el);
126
129
  el.id = id;
127
130
  el.points = points;
128
131
  el.bounds = bounds;
129
- return this.appendMarkupElement(el);
132
+ return el;
130
133
  }
131
134
  else {
132
135
  throw new Error(`Cannot add markup. Unknown type '${markup$1}'.`);
@@ -191,25 +194,7 @@ const ViewerMarkup = class {
191
194
  /**
192
195
  * @ignore
193
196
  */
194
- handleToolChanged() {
195
- this.updatePropsOnMarkupTool();
196
- }
197
- /**
198
- * @ignore
199
- */
200
- handleArrowTemplateIdChanged() {
201
- this.updatePropsOnMarkupTool();
202
- }
203
- /**
204
- * @ignore
205
- */
206
- handleCircleTemplateIdChanged() {
207
- this.updatePropsOnMarkupTool();
208
- }
209
- /**
210
- * @ignore
211
- */
212
- handleFreeformTemplateIdChanged() {
197
+ handlePropertyChanged() {
213
198
  this.updatePropsOnMarkupTool();
214
199
  }
215
200
  /**
@@ -304,7 +289,7 @@ const ViewerMarkup = class {
304
289
  * @ignore
305
290
  */
306
291
  render() {
307
- return (index.h(index.Host, { key: 'e19690f0d572ece07fc88ad7aab4547cccbf98ba' }, index.h("slot", { key: '8872cfb52c9a9ab9731d88820c41eeae691a5fc5' })));
292
+ return (index.h(index.Host, { key: 'a5620363230dcc56e335b0864eacf94ba8d8232c' }, index.h("slot", { key: '36643c2fc4dce53608e6a55cd3520297dbbf7f4a' })));
308
293
  }
309
294
  appendMarkupElement(el) {
310
295
  this.updatePropsOnMarkup(el);
@@ -382,17 +367,17 @@ const ViewerMarkup = class {
382
367
  "selectedMarkupId": [{
383
368
  "handleSelectedMarkupIdChanged": 0
384
369
  }],
385
- "tool": [{
386
- "handleToolChanged": 0
387
- }],
388
370
  "arrowTemplateId": [{
389
- "handleArrowTemplateIdChanged": 0
371
+ "handlePropertyChanged": 0
390
372
  }],
391
373
  "circleTemplateId": [{
392
- "handleCircleTemplateIdChanged": 0
374
+ "handlePropertyChanged": 0
393
375
  }],
394
376
  "freeformTemplateId": [{
395
- "handleFreeformTemplateIdChanged": 0
377
+ "handlePropertyChanged": 0
378
+ }],
379
+ "tool": [{
380
+ "handlePropertyChanged": 0
396
381
  }],
397
382
  "viewer": [{
398
383
  "handleViewerChanged": 0