@vertexvis/viewer 1.0.2-canary.1 → 1.0.2-canary.2

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 (79) hide show
  1. package/dist/cjs/index.cjs.js +1 -1
  2. package/dist/cjs/{multiElementInteractionHandler-DCKBIy58.js → multiElementInteractionHandler-BHvRKVIp.js} +20 -21
  3. package/dist/cjs/multiElementInteractionHandler-BHvRKVIp.js.map +1 -0
  4. package/dist/cjs/{queries-XG1IeRYE.js → queries-Da9I-xMf.js} +12 -12
  5. package/dist/cjs/queries-Da9I-xMf.js.map +1 -0
  6. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  7. package/dist/cjs/vertex-viewer-teleport-tool.cjs.entry.js +1 -1
  8. package/dist/cjs/vertex-viewer-teleport-tool.cjs.entry.js.map +1 -1
  9. package/dist/cjs/vertex-viewer.cjs.entry.js +27 -18
  10. package/dist/cjs/vertex-viewer.cjs.entry.js.map +1 -1
  11. package/dist/collection/lib/interactions/baseInteractionHandler.js +18 -19
  12. package/dist/collection/lib/interactions/baseInteractionHandler.js.map +1 -1
  13. package/dist/collection/lib/interactions/interactionApi.js +17 -8
  14. package/dist/collection/lib/interactions/interactionApi.js.map +1 -1
  15. package/dist/collection/lib/interactions/mouseInteractions.js +8 -8
  16. package/dist/collection/lib/interactions/mouseInteractions.js.map +1 -1
  17. package/dist/collection/lib/scenes/camera.js +10 -10
  18. package/dist/collection/lib/scenes/camera.js.map +1 -1
  19. package/dist/collection/lib/teleportation/interactions.js +1 -1
  20. package/dist/collection/lib/teleportation/interactions.js.map +1 -1
  21. package/dist/components/index.js +1 -1
  22. package/dist/components/{p-BR7cFxzj.js → p-3DqRAYgO.js} +2 -2
  23. package/dist/components/p-3DqRAYgO.js.map +1 -0
  24. package/dist/components/{p-Bkhr6gno.js → p-BCOD9yfw.js} +2 -2
  25. package/dist/components/p-CAugdB_8.js +5 -0
  26. package/dist/components/p-CAugdB_8.js.map +1 -0
  27. package/dist/components/p-CGCJ5hbJ.js +5 -0
  28. package/dist/components/p-CGCJ5hbJ.js.map +1 -0
  29. package/dist/components/vertex-viewer-dom-renderer.js +1 -1
  30. package/dist/components/vertex-viewer-pin-tool.js +1 -1
  31. package/dist/components/vertex-viewer-teleport-tool.js +1 -1
  32. package/dist/components/vertex-viewer-view-cube.js +1 -1
  33. package/dist/components/vertex-viewer-walk-mode-tool.js +1 -1
  34. package/dist/components/vertex-viewer.js +1 -1
  35. package/dist/components/vertex-viewer.js.map +1 -1
  36. package/dist/esm/index.js +1 -1
  37. package/dist/esm/index.mjs +1 -1
  38. package/dist/esm/{multiElementInteractionHandler-C3A6SPxu.js → multiElementInteractionHandler-DwjL-r55.js} +20 -21
  39. package/dist/esm/multiElementInteractionHandler-DwjL-r55.js.map +1 -0
  40. package/dist/esm/{queries-CsBLqW1v.js → queries-DEzCmbTD.js} +12 -12
  41. package/dist/esm/queries-DEzCmbTD.js.map +1 -0
  42. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  43. package/dist/esm/vertex-viewer-teleport-tool.entry.js +1 -1
  44. package/dist/esm/vertex-viewer-teleport-tool.entry.js.map +1 -1
  45. package/dist/esm/vertex-viewer.entry.js +27 -18
  46. package/dist/esm/vertex-viewer.entry.js.map +1 -1
  47. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +1 -1
  48. package/dist/types/lib/interactions/interactionApi.d.ts +2 -2
  49. package/dist/types/lib/interactions/mouseInteractions.d.ts +2 -2
  50. package/dist/types/lib/scenes/camera.d.ts +1 -0
  51. package/dist/viewer/index.esm.js +1 -1
  52. package/dist/viewer/p-07b99ac9.entry.js +5 -0
  53. package/dist/viewer/p-07b99ac9.entry.js.map +1 -0
  54. package/dist/viewer/{p-5ced98d5.entry.js → p-29d14611.entry.js} +2 -2
  55. package/dist/viewer/{p-72a0588f.entry.js → p-89544066.entry.js} +2 -2
  56. package/dist/viewer/p-89544066.entry.js.map +1 -0
  57. package/dist/viewer/p-D6eJC1q4.js +5 -0
  58. package/dist/viewer/p-D6eJC1q4.js.map +1 -0
  59. package/dist/viewer/{p-5U-3M0jx.js → p-EsKoKfmx.js} +2 -2
  60. package/dist/viewer/p-EsKoKfmx.js.map +1 -0
  61. package/dist/viewer/viewer.esm.js +1 -1
  62. package/package.json +7 -7
  63. package/dist/cjs/multiElementInteractionHandler-DCKBIy58.js.map +0 -1
  64. package/dist/cjs/queries-XG1IeRYE.js.map +0 -1
  65. package/dist/components/p-BQrJ-Yrs.js +0 -5
  66. package/dist/components/p-BQrJ-Yrs.js.map +0 -1
  67. package/dist/components/p-BR7cFxzj.js.map +0 -1
  68. package/dist/components/p-DizXmW54.js +0 -5
  69. package/dist/components/p-DizXmW54.js.map +0 -1
  70. package/dist/esm/multiElementInteractionHandler-C3A6SPxu.js.map +0 -1
  71. package/dist/esm/queries-CsBLqW1v.js.map +0 -1
  72. package/dist/viewer/p-5U-3M0jx.js.map +0 -1
  73. package/dist/viewer/p-72a0588f.entry.js.map +0 -1
  74. package/dist/viewer/p-77a0c7b7.entry.js +0 -5
  75. package/dist/viewer/p-77a0c7b7.entry.js.map +0 -1
  76. package/dist/viewer/p-CxLXWk2n.js +0 -5
  77. package/dist/viewer/p-CxLXWk2n.js.map +0 -1
  78. /package/dist/components/{p-Bkhr6gno.js.map → p-BCOD9yfw.js.map} +0 -0
  79. /package/dist/viewer/{p-5ced98d5.entry.js.map → p-29d14611.entry.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var queries = require('./queries-XG1IeRYE.js');
6
+ var queries = require('./queries-Da9I-xMf.js');
7
7
  var controller = require('./controller-CSwG6gbQ.js');
8
8
  var row = require('./row-Cet6xXup.js');
9
9
  var types = require('./types-UbZMN9nQ.js');
@@ -263,31 +263,30 @@ class BaseInteractionHandler {
263
263
  }
264
264
  }
265
265
  wheelDeltaToPixels(deltaY, deltaMode) {
266
- if (this.computedBodyStyle == null) {
267
- this.computedBodyStyle = window.getComputedStyle(document.body);
266
+ // Cached values are an optimization we can use given mouseWheel
267
+ // events can happen dozen or hundreds of times per scroll, but body style
268
+ // is very unlikely to change frequently or while doing wheel movements.
269
+ if (this.bodyStyleCache == null) {
270
+ const bodyStyle = window.getComputedStyle(document.body);
271
+ this.bodyStyleCache = {
272
+ fontSize: parseFloat(bodyStyle.getPropertyValue('fontSize')) ||
273
+ DEFAULT_FONT_SIZE,
274
+ lineHeight: parseFloat(bodyStyle.getPropertyValue('lineHeight')) ||
275
+ DEFAULT_LINE_HEIGHT,
276
+ height: parseFloat(bodyStyle.getPropertyValue('height')) ||
277
+ window.innerHeight,
278
+ };
279
+ window.setTimeout(() => {
280
+ this.bodyStyleCache = undefined;
281
+ }, 4800); // For now hardcoded. Could be derived. eg mouseWheelInteractionEndDebounce * 12
268
282
  }
269
- const defaultLineHeight = this.computedBodyStyle.getPropertyValue('fontSize') != null &&
270
- this.computedBodyStyle.getPropertyValue('fontSize') !== '' &&
271
- !isNaN(parseFloat(this.computedBodyStyle.getPropertyValue('fontSize')))
272
- ? parseFloat(this.computedBodyStyle.getPropertyValue('fontSize')) *
273
- DEFAULT_LINE_HEIGHT
274
- : DEFAULT_FONT_SIZE * DEFAULT_LINE_HEIGHT;
275
283
  if (deltaMode === 1) {
276
284
  // deltaMode 1 corresponds to DOM_DELTA_LINE, which computes deltas in lines
277
- return this.computedBodyStyle.getPropertyValue('lineHeight') != null &&
278
- this.computedBodyStyle.getPropertyValue('lineHeight') !== '' &&
279
- !isNaN(parseFloat(this.computedBodyStyle.getPropertyValue('lineHeight')))
280
- ? deltaY *
281
- parseFloat(this.computedBodyStyle.getPropertyValue('lineHeight'))
282
- : deltaY * defaultLineHeight;
285
+ return (deltaY * (this.bodyStyleCache.fontSize * this.bodyStyleCache.lineHeight));
283
286
  }
284
287
  else if (deltaMode === 2) {
285
288
  // deltaMode 2 corresponds to DOM_DELTA_PAGE, which computes deltas in pages
286
- return this.computedBodyStyle.getPropertyValue('height') != null &&
287
- this.computedBodyStyle.getPropertyValue('height') !== '' &&
288
- !isNaN(parseFloat(this.computedBodyStyle.getPropertyValue('height')))
289
- ? deltaY * parseFloat(this.computedBodyStyle.getPropertyValue('height'))
290
- : deltaY * window.innerHeight;
289
+ return deltaY * this.bodyStyleCache.height;
291
290
  }
292
291
  // deltaMode 0 corresponds to DOM_DELTA_PIXEL, which computes deltas in pixels
293
292
  return deltaY;
@@ -332,6 +331,6 @@ class MultiElementInteractionHandler extends BaseInteractionHandler {
332
331
 
333
332
  exports.BaseInteractionHandler = BaseInteractionHandler;
334
333
  exports.MultiElementInteractionHandler = MultiElementInteractionHandler;
335
- //# sourceMappingURL=multiElementInteractionHandler-DCKBIy58.js.map
334
+ //# sourceMappingURL=multiElementInteractionHandler-BHvRKVIp.js.map
336
335
 
337
- //# sourceMappingURL=multiElementInteractionHandler-DCKBIy58.js.map
336
+ //# sourceMappingURL=multiElementInteractionHandler-BHvRKVIp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiElementInteractionHandler-BHvRKVIp.js","sources":["src/lib/interactions/baseInteractionHandler.ts","src/lib/interactions/multiElementInteractionHandler.ts"],"sourcesContent":["import { Point } from '@vertexvis/geometry';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport { ConfigProvider } from '../config';\nimport { getMouseClientPosition } from '../dom';\nimport { InteractionApi } from './interactionApi';\nimport { BaseEvent } from './interactionEvent';\nimport { InteractionHandler } from './interactionHandler';\nimport {\n MouseInteraction,\n PanInteraction,\n PivotInteraction,\n RotateInteraction,\n RotatePointInteraction,\n TwistInteraction,\n ZoomInteraction,\n} from './mouseInteractions';\n\nexport type InteractionType =\n | 'rotate'\n | 'zoom'\n | 'pan'\n | 'twist'\n | 'rotate-point'\n | 'pivot';\n\nconst DEFAULT_FONT_SIZE = 16;\nconst DEFAULT_LINE_HEIGHT = 1.2;\n\nexport abstract class BaseInteractionHandler implements InteractionHandler {\n protected interactionApi?: InteractionApi;\n protected element?: HTMLElement;\n protected downPosition?: Point.Point;\n private downPositionCanvas?: Point.Point;\n private primaryInteraction: MouseInteraction;\n private currentInteraction?: MouseInteraction;\n private draggingInteraction: MouseInteraction | undefined;\n private lastPrimaryRotateInteraction?: MouseInteraction;\n private isDragging = false;\n private lastMoveEvent?: BaseEvent;\n private interactionTimer?: number;\n private keyboardControls = false;\n\n protected disableIndividualInteractions = false;\n\n private bodyStyleCache?: {\n fontSize: number;\n lineHeight: number;\n height: number;\n };\n\n private primaryInteractionTypeChange = new EventDispatcher<void>();\n\n public constructor(\n protected downEvent: 'mousedown' | 'pointerdown',\n protected upEvent: 'mouseup' | 'pointerup',\n protected moveEvent: 'mousemove' | 'pointermove',\n private rotateInteraction: RotateInteraction,\n private rotatePointInteraction: RotatePointInteraction,\n private zoomInteraction: ZoomInteraction,\n private panInteraction: PanInteraction,\n private twistInteraction: TwistInteraction,\n private pivotInteraction: PivotInteraction,\n private getConfig: ConfigProvider\n ) {\n this.primaryInteraction = rotateInteraction;\n this.handleDownEvent = this.handleDownEvent.bind(this);\n this.handleMouseWheel = this.handleMouseWheel.bind(this);\n this.handleWindowMove = this.handleWindowMove.bind(this);\n this.handleWindowUp = this.handleWindowUp.bind(this);\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\n }\n\n public initialize(element: HTMLElement, api: InteractionApi): void {\n this.element = element;\n this.interactionApi = api;\n element.addEventListener(this.downEvent, this.handleDownEvent);\n element.addEventListener('mousedown', this.handleDoubleClick);\n element.addEventListener('wheel', this.handleMouseWheel, {\n passive: false,\n });\n }\n\n public dispose(): void {\n this.element?.removeEventListener(this.downEvent, this.handleDownEvent);\n this.element?.removeEventListener('mousedown', this.handleDoubleClick);\n this.element?.removeEventListener('wheel', this.handleMouseWheel);\n this.element = undefined;\n }\n\n public onPrimaryInteractionTypeChange(listener: Listener<void>): Disposable {\n return this.primaryInteractionTypeChange.on(listener);\n }\n\n public setCurrentInteractionType(type?: InteractionType): void {\n switch (type) {\n case 'rotate':\n this.currentInteraction = this.rotateInteraction;\n break;\n case 'zoom':\n this.currentInteraction = this.zoomInteraction;\n break;\n case 'pan':\n this.currentInteraction = this.panInteraction;\n break;\n case 'twist':\n this.currentInteraction = this.twistInteraction;\n break;\n case 'rotate-point':\n this.currentInteraction = this.rotatePointInteraction;\n break;\n case 'pivot':\n this.currentInteraction = this.pivotInteraction;\n break;\n default:\n this.currentInteraction = undefined;\n }\n\n if (this.draggingInteraction) {\n const point = this.draggingInteraction.getPosition();\n this.draggingInteraction =\n this.currentInteraction || this.primaryInteraction;\n this.interactionApi?.resetLastAngle();\n this.draggingInteraction.setPosition(point);\n }\n }\n\n public getPrimaryInteractionType(): InteractionType {\n return this.primaryInteraction.getType();\n }\n\n public getCurrentInteractionType(): InteractionType {\n return (this.currentInteraction || this.primaryInteraction).getType();\n }\n\n public setPrimaryInteractionType(type: InteractionType): void {\n switch (type) {\n case 'rotate':\n this.primaryInteraction = this.rotateInteraction;\n this.lastPrimaryRotateInteraction = this.rotateInteraction;\n break;\n case 'rotate-point':\n this.primaryInteraction = this.rotatePointInteraction;\n this.lastPrimaryRotateInteraction = this.rotatePointInteraction;\n break;\n case 'zoom':\n this.primaryInteraction = this.zoomInteraction;\n break;\n case 'pan':\n this.primaryInteraction = this.panInteraction;\n break;\n case 'pivot':\n this.primaryInteraction = this.pivotInteraction;\n break;\n }\n this.primaryInteractionTypeChange.emit();\n }\n\n public setDefaultKeyboardControls(keyboardControls: boolean): void {\n this.keyboardControls = keyboardControls;\n }\n\n protected handleDownEvent(event: BaseEvent): void {\n // Prevent selection of any text while interacting with the model.\n event.preventDefault();\n\n this.interactionTimer = window.setTimeout(() => {\n this.downPosition = Point.create(event.screenX, event.screenY);\n this.downPositionCanvas = this.getCanvasPosition(event);\n this.interactionTimer = undefined;\n\n // Perform the current movement in the case that the interaction timer elapses\n if (this.lastMoveEvent != null) {\n this.handleWindowMove(this.lastMoveEvent);\n }\n }, this.getConfig().interactions.interactionDelay);\n\n window.addEventListener(this.moveEvent, this.handleWindowMove);\n window.addEventListener(this.upEvent, this.handleWindowUp);\n }\n\n protected handleWindowMove(event: BaseEvent): void {\n if (this.interactionTimer == null) {\n if (this.disableIndividualInteractions) {\n return;\n }\n\n const position = Point.create(event.screenX, event.screenY);\n const pixelThreshold =\n this.interactionApi != null\n ? this.interactionApi.pixelThreshold(this.isTouch(event))\n : 2;\n if (\n this.downPosition != null &&\n Point.distance(position, this.downPosition) >= pixelThreshold &&\n !this.isDragging\n ) {\n this.beginDrag(event);\n this.isDragging = true;\n }\n\n if (this.isDragging) {\n this.drag(event);\n }\n }\n\n this.lastMoveEvent = event;\n }\n\n protected async handleWindowUp(event: BaseEvent): Promise<void> {\n if (this.isDragging) {\n this.endDrag(event);\n this.isDragging = false;\n }\n\n if (this.interactionTimer != null) {\n window.clearTimeout(this.interactionTimer);\n this.interactionTimer = undefined;\n }\n\n window.removeEventListener(this.moveEvent, this.handleWindowMove);\n window.removeEventListener(this.upEvent, this.handleWindowUp);\n this.lastMoveEvent = undefined;\n }\n\n protected async handleDoubleClick(event: BaseEvent): Promise<void> {\n // event.detail is the number of clicks that have happened recently. If the number is 2, then the user double clicked.\n if (\n event.detail === 2 &&\n event.buttons === 4 &&\n this.interactionApi != null\n ) {\n await this.interactionApi.viewAll();\n }\n }\n\n protected beginDrag(event: BaseEvent): void {\n if (this.keyboardControls && event.metaKey && event.shiftKey) {\n this.currentInteraction = this.rotatePointInteraction;\n } else if (this.keyboardControls && event.shiftKey && event.altKey) {\n this.currentInteraction = this.twistInteraction;\n } else if (this.keyboardControls && event.shiftKey) {\n this.currentInteraction = this.zoomInteraction;\n } else if (this.keyboardControls && (event.metaKey || event.ctrlKey)) {\n this.currentInteraction = this.panInteraction;\n } else if (this.keyboardControls && event.altKey) {\n this.currentInteraction = this.rotateInteraction;\n }\n\n if (event.buttons === 1) {\n this.draggingInteraction =\n this.currentInteraction || this.primaryInteraction;\n } else if (event.buttons === 2) {\n this.draggingInteraction = this.panInteraction;\n } else if (event.buttons === 4) {\n this.draggingInteraction =\n this.lastPrimaryRotateInteraction ?? this.rotateInteraction;\n }\n\n if (\n this.draggingInteraction != null &&\n this.interactionApi != null &&\n this.element != null\n ) {\n // Ensure any scroll wheel interactions have been ended prior to beginning\n // another interaction to prevent the interaction from being ended early.\n this.zoomInteraction.endDrag(event, this.interactionApi);\n\n this.draggingInteraction.beginDrag(\n event,\n this.downPositionCanvas || Point.create(event.clientX, event.clientY),\n this.interactionApi,\n this.element\n );\n }\n }\n\n protected drag(event: BaseEvent): void {\n if (this.keyboardControls && event.altKey && event.shiftKey) {\n this.currentInteraction = this.twistInteraction;\n } else {\n this.currentInteraction = undefined;\n }\n this.draggingInteraction =\n this.currentInteraction ||\n this.draggingInteraction ||\n this.primaryInteraction;\n if (this.draggingInteraction != null && this.interactionApi != null) {\n this.draggingInteraction.drag(event, this.interactionApi);\n }\n }\n\n protected endDrag(event: BaseEvent): void {\n if (\n this.keyboardControls &&\n this.currentInteraction === this.twistInteraction\n ) {\n this.currentInteraction = undefined;\n }\n\n if (this.draggingInteraction != null && this.interactionApi != null) {\n this.draggingInteraction.endDrag(event, this.interactionApi);\n this.draggingInteraction = undefined;\n }\n }\n\n protected handleMouseWheel(event: WheelEvent): void {\n event.preventDefault();\n\n if (\n this.element != null &&\n this.interactionApi != null &&\n event.buttons !== 4\n ) {\n const delta =\n -this.wheelDeltaToPixels(event.deltaY, event.deltaMode) / 10;\n const rect = this.element.getBoundingClientRect();\n const point = getMouseClientPosition(event, rect);\n const scrollSize = Math.abs(event.deltaY);\n\n if (scrollSize < 12) {\n // For small wheel movements, send a single zoom event.\n void this.zoomInteraction.zoomToPoint(\n point,\n delta,\n this.interactionApi\n );\n } else {\n const divisions = Math.min(10, Math.ceil(scrollSize / 12));\n const zoomDelta = delta / divisions;\n // For larger wheel movements, divide the delta into multiple zoom events with increasing delay\n // which approximates a smooth zoom deceleration curve for the end user.\n for (let i = 1; i <= divisions; i++) {\n const delayMs = i * 5;\n window.setTimeout(() => {\n if (this.interactionApi != null) {\n this.zoomInteraction.zoomToPoint(\n point,\n zoomDelta,\n this.interactionApi,\n delayMs\n );\n }\n }, delayMs);\n }\n }\n }\n }\n\n protected wheelDeltaToPixels(deltaY: number, deltaMode: number): number {\n // Cached values are an optimization we can use given mouseWheel\n // events can happen dozen or hundreds of times per scroll, but body style\n // is very unlikely to change frequently or while doing wheel movements.\n if (this.bodyStyleCache == null) {\n const bodyStyle = window.getComputedStyle(document.body);\n this.bodyStyleCache = {\n fontSize:\n parseFloat(bodyStyle.getPropertyValue('fontSize')) ||\n DEFAULT_FONT_SIZE,\n lineHeight:\n parseFloat(bodyStyle.getPropertyValue('lineHeight')) ||\n DEFAULT_LINE_HEIGHT,\n height:\n parseFloat(bodyStyle.getPropertyValue('height')) ||\n window.innerHeight,\n };\n window.setTimeout(() => {\n this.bodyStyleCache = undefined;\n }, 4800); // For now hardcoded. Could be derived. eg mouseWheelInteractionEndDebounce * 12\n }\n\n if (deltaMode === 1) {\n // deltaMode 1 corresponds to DOM_DELTA_LINE, which computes deltas in lines\n return (\n deltaY * (this.bodyStyleCache.fontSize * this.bodyStyleCache.lineHeight)\n );\n } else if (deltaMode === 2) {\n // deltaMode 2 corresponds to DOM_DELTA_PAGE, which computes deltas in pages\n return deltaY * this.bodyStyleCache.height;\n }\n // deltaMode 0 corresponds to DOM_DELTA_PIXEL, which computes deltas in pixels\n return deltaY;\n }\n\n protected getCanvasPosition(event: BaseEvent): Point.Point | undefined {\n const canvasBounds = this.element?.getBoundingClientRect();\n const canvasOffset =\n canvasBounds != null\n ? Point.create(canvasBounds.left, canvasBounds.top)\n : undefined;\n\n return canvasOffset != null\n ? Point.subtract(Point.create(event.clientX, event.clientY), canvasOffset)\n : undefined;\n }\n\n protected isTouch(event: BaseEvent): boolean {\n return window.PointerEvent != null && event instanceof PointerEvent\n ? event.pointerType === 'touch'\n : false;\n }\n}\n","import { Disposable, UUID } from '@vertexvis/utils';\n\nimport { BaseInteractionHandler } from './baseInteractionHandler';\n\nexport abstract class MultiElementInteractionHandler extends BaseInteractionHandler {\n protected registeredExternalElements: Record<UUID.UUID, Disposable> = {};\n\n public registerAdditionalElement(external: HTMLElement): Disposable {\n const id = UUID.create();\n const disposable = this.addEventListenersToElement(external);\n\n this.registeredExternalElements[id] = disposable;\n return disposable;\n }\n\n public deregisterAdditionalElementById(id: UUID.UUID): void {\n const externalElement = this.registeredExternalElements[id];\n\n externalElement.dispose();\n\n this.registeredExternalElements = Object.fromEntries(\n Object.entries(this.registeredExternalElements).filter(\n ([key]) => key !== id\n )\n );\n }\n\n protected deregisterAllListeners(): void {\n Object.keys(this.registeredExternalElements).forEach((id) =>\n this.deregisterAdditionalElementById(id)\n );\n }\n\n public abstract addEventListenersToElement(element?: HTMLElement): Disposable;\n}\n"],"names":["EventDispatcher","Point","getMouseClientPosition","UUID"],"mappings":"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"}
@@ -1007,9 +1007,9 @@ class Camera {
1007
1007
  * Queues the rendering for a new frame using this camera. The returned
1008
1008
  * promise will resolve when a frame is received that contains this camera.
1009
1009
  */
1010
- async render(renderOptions) {
1011
- var _a, _b, _c;
1012
- if (this.flyToOptions == null && renderOptions != null) {
1010
+ async render(renderOptions = {}) {
1011
+ var _a, _b, _c, _d;
1012
+ if (this.flyToOptions == null && renderOptions.animation) {
1013
1013
  this.flyToOptions = {
1014
1014
  flyTo: {
1015
1015
  type: 'camera',
@@ -1018,24 +1018,24 @@ class Camera {
1018
1018
  };
1019
1019
  }
1020
1020
  try {
1021
- const corrId = bundle.uuid.create();
1021
+ (_a = renderOptions.correlationId) !== null && _a !== void 0 ? _a : (renderOptions.correlationId = bundle.uuid.create());
1022
1022
  if (this.flyToOptions != null) {
1023
- const payload = buildFlyToOperation(corrId, this.flyToOptions, renderOptions === null || renderOptions === void 0 ? void 0 : renderOptions.animation, this.toFrameCamera());
1023
+ const payload = buildFlyToOperation(renderOptions.correlationId, this.flyToOptions, renderOptions.animation, this.toFrameCamera());
1024
1024
  const flyToResponse = await this.stream.flyTo(payload, true);
1025
1025
  return new CameraRenderResult(this.stream, this.decodeFrame, {
1026
- correlationId: corrId,
1027
- animationId: ((_b = (_a = flyToResponse.flyTo) === null || _a === void 0 ? void 0 : _a.animationId) === null || _b === void 0 ? void 0 : _b.hex) || undefined,
1028
- }, ((_c = renderOptions === null || renderOptions === void 0 ? void 0 : renderOptions.animation) === null || _c === void 0 ? void 0 : _c.milliseconds) != null
1026
+ correlationId: renderOptions.correlationId,
1027
+ animationId: ((_c = (_b = flyToResponse.flyTo) === null || _b === void 0 ? void 0 : _b.animationId) === null || _c === void 0 ? void 0 : _c.hex) || undefined,
1028
+ }, ((_d = renderOptions.animation) === null || _d === void 0 ? void 0 : _d.milliseconds) != null
1029
1029
  ? renderOptions.animation.milliseconds + DEFAULT_TIMEOUT_IN_MS
1030
1030
  : undefined);
1031
1031
  }
1032
1032
  else {
1033
1033
  this.stream.replaceCamera({
1034
1034
  camera: streamAttributes.toProtobuf(this.data),
1035
- frameCorrelationId: { value: corrId },
1035
+ frameCorrelationId: { value: renderOptions.correlationId },
1036
1036
  });
1037
1037
  return new CameraRenderResult(this.stream, this.decodeFrame, {
1038
- correlationId: corrId,
1038
+ correlationId: renderOptions.correlationId,
1039
1039
  });
1040
1040
  }
1041
1041
  }
@@ -3022,6 +3022,6 @@ exports.fromUrn = fromUrn;
3022
3022
  exports.loadableResource = loadableResource;
3023
3023
  exports.sceneViewStateIdentifier = sceneViewStateIdentifier;
3024
3024
  exports.toUuid2l = toUuid2l;
3025
- //# sourceMappingURL=queries-XG1IeRYE.js.map
3025
+ //# sourceMappingURL=queries-Da9I-xMf.js.map
3026
3026
 
3027
- //# sourceMappingURL=queries-XG1IeRYE.js.map
3027
+ //# sourceMappingURL=queries-Da9I-xMf.js.map