@vertexvis/viewer 0.10.2-canary.7 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{browser.esm-ae55f058.js → browser.esm-17419694.js} +25 -25
- package/dist/cjs/{bundle.esm-c457ad4d.js → bundle.esm-b79513ef.js} +231 -207
- package/dist/cjs/{constants-4277684a.js → constants-1d65ed39.js} +1 -1
- package/dist/cjs/{cursors-b93b43ef.js → cursors-8aaf500f.js} +1 -1
- package/dist/cjs/{dom-cdb50ebc.js → dom-40804039.js} +1 -1
- package/dist/cjs/index.cjs.js +8 -7
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{markup-3dac4cef.js → markup-e84a143f.js} +11 -2
- package/dist/cjs/{measurement-b494bf55.js → measurement-4579193b.js} +2 -2
- package/dist/cjs/{orientation-42cc9e8d.js → orientation-09d0f3ef.js} +14 -7
- package/dist/cjs/{png-decoder-2add73dd.js → png-decoder-97ea96ba.js} +3 -3
- package/dist/cjs/{scene-23a0a330.js → scene-4397373a.js} +28524 -2446
- package/dist/cjs/{utils-6933381f.js → utils-414e6cfe.js} +2 -2
- package/dist/cjs/utils-440f0f7d.js +61 -0
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +6 -5
- package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
- package/dist/cjs/{vertex-viewer-markup-arrow_2.cjs.entry.js → vertex-viewer-markup-arrow_3.cjs.entry.js} +267 -4
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +43 -9
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +25 -5
- package/dist/cjs/vertex-viewer-measurement-distance_2.cjs.entry.js +8 -8
- package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer.cjs.entry.js +141 -48
- package/dist/cjs/viewer.cjs.js +1 -1
- package/dist/cjs/{viewport-e69f8223.js → viewport-fc405a48.js} +31 -7
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/scene-tree/scene-tree.js +3 -2
- package/dist/collection/components/viewer/viewer.js +28 -3
- package/dist/collection/components/viewer-markup/utils.js +65 -1
- package/dist/collection/components/viewer-markup/viewer-markup.js +72 -16
- package/dist/collection/components/viewer-markup-circle/utils.js +2 -55
- package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js +4 -4
- package/dist/collection/components/viewer-markup-freeform.tsx/utils.js +10 -0
- package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.css +157 -0
- package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.js +413 -0
- package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js +63 -9
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance-components.js +1 -1
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +2 -2
- package/dist/collection/lib/cursors.js +1 -1
- package/dist/collection/lib/interactions/baseInteractionHandler.js +5 -4
- package/dist/collection/lib/interactions/flyToPartKeyInteraction.js +1 -1
- package/dist/collection/lib/interactions/interactionApi.js +101 -22
- package/dist/collection/lib/interactions/mouseInteractions.js +17 -15
- package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +2 -2
- package/dist/collection/lib/mappers.js +4 -3
- package/dist/collection/lib/scenes/camera.js +8 -2
- package/dist/collection/lib/scenes/operations.js +1 -1
- package/dist/collection/lib/scenes/scene.js +5 -2
- package/dist/collection/lib/types/frame.js +8 -2
- package/dist/collection/lib/types/markup.js +9 -1
- package/dist/collection/lib/types/stencilBuffer.js +2 -2
- package/dist/collection/lib/types/viewport.js +32 -8
- package/dist/collection/testing/fixtures.js +2 -1
- package/dist/esm/{browser.esm-7dbdf78a.js → browser.esm-e4fb17dc.js} +25 -25
- package/dist/esm/{bundle.esm-590d2273.js → bundle.esm-d891316f.js} +232 -208
- package/dist/esm/{constants-083f6b2c.js → constants-037e417f.js} +1 -1
- package/dist/esm/{cursors-39294365.js → cursors-00835249.js} +1 -1
- package/dist/esm/{dom-43682375.js → dom-d0877f90.js} +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/index.mjs +7 -7
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.mjs +1 -1
- package/dist/esm/{markup-3ce3dccd.js → markup-9b29aa94.js} +11 -3
- package/dist/esm/{measurement-78bd27fc.js → measurement-8430d5d6.js} +2 -2
- package/dist/esm/{orientation-c3e2af18.js → orientation-bb34b652.js} +14 -7
- package/dist/esm/{png-decoder-dfb97536.js → png-decoder-c4745070.js} +3 -3
- package/dist/esm/{scene-30ac6229.js → scene-72760305.js} +28532 -2454
- package/dist/esm/utils-5fe43b8a.js +52 -0
- package/dist/esm/{utils-b857bd7c.js → utils-f8e0baf7.js} +2 -2
- package/dist/esm/vertex-scene-tree.entry.js +6 -5
- package/dist/esm/vertex-viewer-dom-element_3.entry.js +4 -4
- package/dist/esm/{vertex-viewer-markup-arrow_2.entry.js → vertex-viewer-markup-arrow_3.entry.js} +267 -5
- package/dist/esm/vertex-viewer-markup-tool.entry.js +43 -9
- package/dist/esm/vertex-viewer-markup.entry.js +25 -5
- package/dist/esm/vertex-viewer-measurement-distance_2.entry.js +8 -8
- package/dist/esm/vertex-viewer-measurement-tool.entry.js +5 -5
- package/dist/esm/vertex-viewer-measurements.entry.js +5 -5
- package/dist/esm/vertex-viewer-view-cube.entry.js +3 -3
- package/dist/esm/vertex-viewer.entry.js +141 -48
- package/dist/esm/viewer.js +1 -1
- package/dist/esm/{viewport-8fea0743.js → viewport-d6f5cd7b.js} +31 -7
- package/dist/types/components/viewer/viewer.d.ts +4 -0
- package/dist/types/components/viewer-markup/utils.d.ts +8 -0
- package/dist/types/components/viewer-markup/viewer-markup.d.ts +13 -6
- package/dist/types/components/viewer-markup-circle/utils.d.ts +1 -4
- package/dist/types/components/viewer-markup-freeform.tsx/utils.d.ts +3 -0
- package/dist/types/components/viewer-markup-freeform.tsx/viewer-markup-freeform.d.ts +116 -0
- package/dist/types/components/viewer-markup-tool/viewer-markup-tool.d.ts +13 -1
- package/dist/types/components.d.ts +107 -10
- package/dist/types/lib/interactions/interactionApi.d.ts +22 -6
- package/dist/types/lib/interactions/mouseInteractions.d.ts +7 -6
- package/dist/types/lib/scenes/camera.d.ts +5 -1
- package/dist/types/lib/scenes/scene.d.ts +1 -1
- package/dist/types/lib/types/frame.d.ts +4 -1
- package/dist/types/lib/types/markup.d.ts +12 -1
- package/dist/types/lib/types/viewport.d.ts +17 -0
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/p-012fb54f.js +4 -0
- package/dist/viewer/{p-3dc15d99.entry.js → p-117324c0.entry.js} +1 -1
- package/dist/viewer/{p-1ee75110.entry.js → p-1c772ec1.entry.js} +1 -1
- package/dist/viewer/p-1f8a238b.js +4 -0
- package/dist/viewer/p-21e8510d.js +4 -0
- package/dist/viewer/{p-e3105f9a.entry.js → p-3c2aff67.entry.js} +1 -1
- package/dist/viewer/p-5389e9d4.js +4 -0
- package/dist/viewer/p-59d075d4.js +17 -0
- package/dist/viewer/{p-5b078339.js → p-62c6f482.js} +1 -1
- package/dist/viewer/p-640cb5f8.js +18 -0
- package/dist/viewer/p-68aaf1f8.entry.js +4 -0
- package/dist/viewer/{p-05b2444e.js → p-75682963.js} +1 -1
- package/dist/viewer/{p-4183c421.entry.js → p-79c45c02.entry.js} +1 -1
- package/dist/viewer/p-835e158e.js +4 -0
- package/dist/viewer/p-8c255868.entry.js +4 -0
- package/dist/viewer/{p-f4a492e1.js → p-9faabd97.js} +1 -1
- package/dist/viewer/p-b122ee39.js +4 -0
- package/dist/viewer/p-b36b3d1a.js +4 -0
- package/dist/viewer/{p-7c71db57.entry.js → p-bc9e6919.entry.js} +1 -1
- package/dist/viewer/{p-f090a3f3.entry.js → p-c818c80e.entry.js} +1 -1
- package/dist/viewer/{p-e96bc9a2.js → p-d42a482c.js} +1 -1
- package/dist/viewer/p-f43e8cc2.entry.js +4 -0
- package/dist/viewer/p-f75436be.entry.js +4 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +18 -16
- package/readme.md +6 -6
- package/dist/cjs/utils-96f244e1.js +0 -104
- package/dist/esm/utils-a550c58f.js +0 -96
- package/dist/viewer/p-11bdd2c4.js +0 -4
- package/dist/viewer/p-14182324.entry.js +0 -4
- package/dist/viewer/p-2768474e.js +0 -4
- package/dist/viewer/p-2e11803d.js +0 -4
- package/dist/viewer/p-6d4ab5fc.js +0 -17
- package/dist/viewer/p-964642c6.js +0 -4
- package/dist/viewer/p-9e856d0a.entry.js +0 -4
- package/dist/viewer/p-a717d9ff.js +0 -4
- package/dist/viewer/p-a9434d8e.entry.js +0 -4
- package/dist/viewer/p-af806858.js +0 -4
- package/dist/viewer/p-b5c350a7.js +0 -4
- package/dist/viewer/p-d912dd24.js +0 -18
- package/dist/viewer/p-f6d75616.entry.js +0 -4
|
@@ -433,6 +433,12 @@ export class Viewer {
|
|
|
433
433
|
this.urn = undefined;
|
|
434
434
|
this.stateMap.streamWorldOrientation = undefined;
|
|
435
435
|
}
|
|
436
|
+
if (this.canvasElement != null) {
|
|
437
|
+
const context = this.canvasElement.getContext('2d');
|
|
438
|
+
if (context != null) {
|
|
439
|
+
context.clearRect(0, 0, this.canvasElement.width, this.canvasElement.height);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
436
442
|
}
|
|
437
443
|
/**
|
|
438
444
|
* Returns an object that is used to perform operations on the `Scene` that's
|
|
@@ -495,7 +501,8 @@ export class Viewer {
|
|
|
495
501
|
this.streamId = streamId.hex;
|
|
496
502
|
}
|
|
497
503
|
// Need to parse world orientation.
|
|
498
|
-
this.stateMap.streamWorldOrientation =
|
|
504
|
+
this.stateMap.streamWorldOrientation =
|
|
505
|
+
mapWorldOrientationOrThrow(worldOrientation);
|
|
499
506
|
console.debug(`Stream connected [stream-id=${this.streamId}, scene-view-id=${this.sceneViewId}]`);
|
|
500
507
|
await this.waitNextDrawnFrame(15 * 1000);
|
|
501
508
|
this.sceneReady.emit();
|
|
@@ -662,6 +669,9 @@ export class Viewer {
|
|
|
662
669
|
viewport: Viewport.fromDimensions(this.getCanvasDimensions() || Dimensions.create(0, 0)),
|
|
663
670
|
};
|
|
664
671
|
this.frameReceived.emit(this.frame);
|
|
672
|
+
if (this.frame.scene.hasChanged) {
|
|
673
|
+
this.sceneChanged.emit();
|
|
674
|
+
}
|
|
665
675
|
const drawnFrame = await this.canvasRenderer(data);
|
|
666
676
|
this.dispatchFrameDrawn(drawnFrame);
|
|
667
677
|
}
|
|
@@ -1045,7 +1055,7 @@ export class Viewer {
|
|
|
1045
1055
|
"type": "string",
|
|
1046
1056
|
"mutable": false,
|
|
1047
1057
|
"complexType": {
|
|
1048
|
-
"original": "
|
|
1058
|
+
"original": "string | ColorMaterial",
|
|
1049
1059
|
"resolved": "ColorMaterial | string",
|
|
1050
1060
|
"references": {
|
|
1051
1061
|
"ColorMaterial": {
|
|
@@ -1315,6 +1325,21 @@ export class Viewer {
|
|
|
1315
1325
|
"resolved": "void",
|
|
1316
1326
|
"references": {}
|
|
1317
1327
|
}
|
|
1328
|
+
}, {
|
|
1329
|
+
"method": "sceneChanged",
|
|
1330
|
+
"name": "sceneChanged",
|
|
1331
|
+
"bubbles": true,
|
|
1332
|
+
"cancelable": true,
|
|
1333
|
+
"composed": true,
|
|
1334
|
+
"docs": {
|
|
1335
|
+
"tags": [],
|
|
1336
|
+
"text": "Emits an event when a frame is received with a different scene attribute."
|
|
1337
|
+
},
|
|
1338
|
+
"complexType": {
|
|
1339
|
+
"original": "void",
|
|
1340
|
+
"resolved": "void",
|
|
1341
|
+
"references": {}
|
|
1342
|
+
}
|
|
1318
1343
|
}, {
|
|
1319
1344
|
"method": "interactionStarted",
|
|
1320
1345
|
"name": "interactionStarted",
|
|
@@ -1793,4 +1818,4 @@ function getRequiredProp(errorMsg, getter) {
|
|
|
1793
1818
|
else
|
|
1794
1819
|
throw new Error(errorMsg);
|
|
1795
1820
|
}
|
|
1796
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyL3ZpZXdlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsQ0FBQyxFQUNELElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUF1QixNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBSUwsS0FBSyxFQUNMLGVBQWUsRUFDZixPQUFPLEdBQ1IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsUUFBUSxFQUVSLG9CQUFvQixHQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUs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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FDRjtBQUVELFNBQVMsZUFBZSxDQUFJLFFBQWdCLEVBQUUsTUFBMkI7RUFDdkUsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7RUFDdkIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO0lBQ2pCLE9BQU8sS0FBSyxDQUFDO0dBQ2Q7O0lBQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNuQyxDQUFDIn0=
|
|
1821
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyL3ZpZXdlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsQ0FBQyxFQUNELElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUF1QixNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBSUwsS0FBSyxFQUNMLGVBQWUsRUFDZixPQUFPLEdBQ1IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsUUFBUSxFQUVSLG9CQUFvQixHQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUs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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQ0Y7QUFFRCxTQUFTLGVBQWUsQ0FBSSxRQUFnQixFQUFFLE1BQTJCO0VBQ3ZFLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0VBQ3ZCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtJQUNqQixPQUFPLEtBQUssQ0FBQztHQUNkOztJQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbkMsQ0FBQyJ9
|
|
@@ -49,6 +49,10 @@ export function translatePointToScreen(pt, canvasDimensions) {
|
|
|
49
49
|
const scaleFactor = toScreenScaleFactor(canvasDimensions);
|
|
50
50
|
return Point.add(Point.scale(pt, scaleFactor, scaleFactor), Dimensions.center(canvasDimensions));
|
|
51
51
|
}
|
|
52
|
+
export function translatePointToBounds(pt, rect, canvasDimensions) {
|
|
53
|
+
const rectToScreen = translateRectToScreen(rect, canvasDimensions);
|
|
54
|
+
return Point.add(pt, rectToScreen);
|
|
55
|
+
}
|
|
52
56
|
export function translateDimensionsToScreen(dimensions, canvasDimensions) {
|
|
53
57
|
const scaleFactor = toScreenScaleFactor(canvasDimensions);
|
|
54
58
|
return Dimensions.scale(scaleFactor, scaleFactor, dimensions);
|
|
@@ -71,4 +75,64 @@ export function translatePointToRelative(pt, canvasDimensions) {
|
|
|
71
75
|
const scaleFactor = toRelativeScaleFactor(canvasDimensions);
|
|
72
76
|
return Point.scale(Point.subtract(pt, Dimensions.center(canvasDimensions)), scaleFactor, scaleFactor);
|
|
73
77
|
}
|
|
74
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Translates a set of points in relative `original` units to
|
|
80
|
+
* points in relative `bounds` units.
|
|
81
|
+
*/
|
|
82
|
+
export function translatePointsToBounds(points, original, bounds) {
|
|
83
|
+
return points.map((pt) => Point.add(Point.scale(Point.subtract(pt, original), bounds.width / (original.width || 1), bounds.height / (original.height || 1)), bounds));
|
|
84
|
+
}
|
|
85
|
+
export function createRectangle(initialPoint, currentPoint, maintainAspectRatio) {
|
|
86
|
+
const bounds = Rectangle.fromPoints(initialPoint, currentPoint);
|
|
87
|
+
if (maintainAspectRatio) {
|
|
88
|
+
const fitBoundsSize = Math.max(bounds.width, bounds.height);
|
|
89
|
+
const isPortrait = bounds.height > bounds.width;
|
|
90
|
+
const currentIsLeftOfInitial = currentPoint.x <= initialPoint.x;
|
|
91
|
+
const currentIsAboveInitial = currentPoint.y <= initialPoint.y;
|
|
92
|
+
const fitBoundsX = currentIsLeftOfInitial
|
|
93
|
+
? isPortrait
|
|
94
|
+
? initialPoint.x - fitBoundsSize
|
|
95
|
+
: currentPoint.x
|
|
96
|
+
: initialPoint.x;
|
|
97
|
+
const fitBoundsY = currentIsAboveInitial
|
|
98
|
+
? isPortrait
|
|
99
|
+
? currentPoint.y
|
|
100
|
+
: initialPoint.y - fitBoundsSize
|
|
101
|
+
: initialPoint.y;
|
|
102
|
+
return Rectangle.create(fitBoundsX, fitBoundsY, fitBoundsSize, fitBoundsSize);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return bounds;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export function transformRectangle(bounds, start, current, anchor, maintainAspectRatio) {
|
|
109
|
+
const delta = Point.subtract(current, start);
|
|
110
|
+
const { x: left, y: top, width: w, height: h } = bounds;
|
|
111
|
+
const right = left + w;
|
|
112
|
+
const bottom = top + h;
|
|
113
|
+
const topLeft = Point.create(left, top);
|
|
114
|
+
const bottomLeft = Point.create(left, bottom);
|
|
115
|
+
const topRight = Point.create(right, top);
|
|
116
|
+
const bottomRight = Point.create(right, bottom);
|
|
117
|
+
switch (anchor) {
|
|
118
|
+
case 'top-left':
|
|
119
|
+
return createRectangle(bottomRight, current, !!maintainAspectRatio);
|
|
120
|
+
case 'top':
|
|
121
|
+
return createRectangle(bottomRight, Point.create(left, current.y), !!maintainAspectRatio);
|
|
122
|
+
case 'top-right':
|
|
123
|
+
return createRectangle(bottomLeft, current, !!maintainAspectRatio);
|
|
124
|
+
case 'right':
|
|
125
|
+
return createRectangle(bottomLeft, Point.create(current.x, top), !!maintainAspectRatio);
|
|
126
|
+
case 'bottom-right':
|
|
127
|
+
return createRectangle(topLeft, current, !!maintainAspectRatio);
|
|
128
|
+
case 'bottom':
|
|
129
|
+
return createRectangle(topLeft, Point.create(right, current.y), !!maintainAspectRatio);
|
|
130
|
+
case 'bottom-left':
|
|
131
|
+
return createRectangle(topRight, current, !!maintainAspectRatio);
|
|
132
|
+
case 'left':
|
|
133
|
+
return createRectangle(bottomRight, Point.create(current.x, top), !!maintainAspectRatio);
|
|
134
|
+
case 'center':
|
|
135
|
+
return Rectangle.create(bounds.x + delta.x, bounds.y + delta.y, bounds.width, bounds.height);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItbWFya3VwL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYW5FLE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsSUFBeUIsRUFDekIsUUFBcUM7RUFFckMsUUFBUSxRQUFRLEVBQUU7SUFDaEIsS0FBSyxVQUFVO01BQ2IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLEtBQUssS0FBSztNQUNSLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxLQUFLLFdBQVc7TUFDZCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxLQUFLLE9BQU87TUFDVixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRSxLQUFLLGNBQWM7TUFDakIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSxLQUFLLFFBQVE7TUFDWCxPQUFPLEtBQUssQ0FBQyxNQUFNLENB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
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Component, Host, h, Element, Prop, Watch, Event, Method, Listen, } from '@stencil/core';
|
|
2
2
|
import { stampTemplateWithId } from '../../lib/templates';
|
|
3
|
-
import { ArrowMarkup, CircleMarkup } from '../../lib/types/markup';
|
|
3
|
+
import { ArrowMarkup, CircleMarkup, FreeformMarkup, } from '../../lib/types/markup';
|
|
4
4
|
import { isVertexViewerArrowMarkup } from '../viewer-markup-arrow/utils';
|
|
5
5
|
import { isVertexViewerCircleMarkup } from '../viewer-markup-circle/utils';
|
|
6
|
+
import { isVertexViewerFreeformMarkup } from '../viewer-markup-freeform.tsx/utils';
|
|
6
7
|
export class ViewerMarkup {
|
|
7
8
|
constructor() {
|
|
8
9
|
/**
|
|
@@ -42,6 +43,14 @@ export class ViewerMarkup {
|
|
|
42
43
|
el.bounds = bounds;
|
|
43
44
|
return this.appendMarkupElement(el);
|
|
44
45
|
}
|
|
46
|
+
else if (markup instanceof FreeformMarkup) {
|
|
47
|
+
const { bounds, points, id } = markup;
|
|
48
|
+
const el = this.createFreeformMarkupElement();
|
|
49
|
+
el.id = id;
|
|
50
|
+
el.points = points;
|
|
51
|
+
el.bounds = bounds;
|
|
52
|
+
return this.appendMarkupElement(el);
|
|
53
|
+
}
|
|
45
54
|
else {
|
|
46
55
|
throw new Error(`Cannot add markup. Unknown type '${markup}'.`);
|
|
47
56
|
}
|
|
@@ -69,7 +78,9 @@ export class ViewerMarkup {
|
|
|
69
78
|
* @see {@link ViewerMarkup.getMarkupElement}
|
|
70
79
|
*/
|
|
71
80
|
async getMarkupElements() {
|
|
72
|
-
return Array.from(this.hostEl.children).filter((e) => isVertexViewerArrowMarkup(e) ||
|
|
81
|
+
return Array.from(this.hostEl.children).filter((e) => isVertexViewerArrowMarkup(e) ||
|
|
82
|
+
isVertexViewerCircleMarkup(e) ||
|
|
83
|
+
isVertexViewerFreeformMarkup(e));
|
|
73
84
|
}
|
|
74
85
|
/**
|
|
75
86
|
* Returns the markup element associated to the given ID.
|
|
@@ -186,6 +197,15 @@ export class ViewerMarkup {
|
|
|
186
197
|
}
|
|
187
198
|
return document.createElement('vertex-viewer-markup-circle');
|
|
188
199
|
}
|
|
200
|
+
createFreeformMarkupElement() {
|
|
201
|
+
if (this.freeformTemplateId != null) {
|
|
202
|
+
const element = stampTemplateWithId(window.document.body, this.freeformTemplateId, isVertexViewerFreeformMarkup, () => console.warn(`Freeform template with ID ${this.freeformTemplateId} not found. Using default freeform element.`), () => console.warn(`Freeform template does not contain a vertex-viewer-markup-freeform. Using default freeform element.`));
|
|
203
|
+
if (element != null) {
|
|
204
|
+
return element;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return document.createElement('vertex-viewer-markup-freeform');
|
|
208
|
+
}
|
|
189
209
|
async updatePropsOnMarkups() {
|
|
190
210
|
const markup = await this.getMarkupElements();
|
|
191
211
|
markup.forEach((m) => this.updatePropsOnMarkup(m));
|
|
@@ -200,6 +220,7 @@ export class ViewerMarkup {
|
|
|
200
220
|
tool.disabled = this.disabled;
|
|
201
221
|
tool.arrowTemplateId = this.arrowTemplateId;
|
|
202
222
|
tool.circleTemplateId = this.circleTemplateId;
|
|
223
|
+
tool.freeformTemplateId = this.freeformTemplateId;
|
|
203
224
|
tool.tool = this.tool;
|
|
204
225
|
tool.viewer = this.viewer;
|
|
205
226
|
}
|
|
@@ -250,12 +271,29 @@ export class ViewerMarkup {
|
|
|
250
271
|
"attribute": "circle-template-id",
|
|
251
272
|
"reflect": false
|
|
252
273
|
},
|
|
274
|
+
"freeformTemplateId": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"mutable": false,
|
|
277
|
+
"complexType": {
|
|
278
|
+
"original": "string",
|
|
279
|
+
"resolved": "string | undefined",
|
|
280
|
+
"references": {}
|
|
281
|
+
},
|
|
282
|
+
"required": false,
|
|
283
|
+
"optional": true,
|
|
284
|
+
"docs": {
|
|
285
|
+
"tags": [],
|
|
286
|
+
"text": "An HTML template that describes the HTML to use for new freeform\nmarkup. It's expected that the template contains a\n`<vertex-viewer-markup-freeform>`."
|
|
287
|
+
},
|
|
288
|
+
"attribute": "freeform-template-id",
|
|
289
|
+
"reflect": false
|
|
290
|
+
},
|
|
253
291
|
"tool": {
|
|
254
292
|
"type": "string",
|
|
255
293
|
"mutable": false,
|
|
256
294
|
"complexType": {
|
|
257
295
|
"original": "ViewerMarkupToolType",
|
|
258
|
-
"resolved": "\"arrow\" | \"circle\"",
|
|
296
|
+
"resolved": "\"arrow\" | \"circle\" | \"freeform\"",
|
|
259
297
|
"references": {
|
|
260
298
|
"ViewerMarkupToolType": {
|
|
261
299
|
"location": "import",
|
|
@@ -339,14 +377,17 @@ export class ViewerMarkup {
|
|
|
339
377
|
"text": "Dispatched when a new markup is added, either through user interaction\nor programmatically."
|
|
340
378
|
},
|
|
341
379
|
"complexType": {
|
|
342
|
-
"original": "HTMLVertexViewerMarkupArrowElement |
|
|
343
|
-
"resolved": "HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement",
|
|
380
|
+
"original": "| HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement",
|
|
381
|
+
"resolved": "HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement",
|
|
344
382
|
"references": {
|
|
345
383
|
"HTMLVertexViewerMarkupArrowElement": {
|
|
346
384
|
"location": "global"
|
|
347
385
|
},
|
|
348
386
|
"HTMLVertexViewerMarkupCircleElement": {
|
|
349
387
|
"location": "global"
|
|
388
|
+
},
|
|
389
|
+
"HTMLVertexViewerMarkupFreeformElement": {
|
|
390
|
+
"location": "global"
|
|
350
391
|
}
|
|
351
392
|
}
|
|
352
393
|
}
|
|
@@ -361,14 +402,17 @@ export class ViewerMarkup {
|
|
|
361
402
|
"text": "Dispatched when a markup is removed, either through user\ninteraction or programmatically."
|
|
362
403
|
},
|
|
363
404
|
"complexType": {
|
|
364
|
-
"original": "HTMLVertexViewerMarkupArrowElement |
|
|
365
|
-
"resolved": "HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement",
|
|
405
|
+
"original": "| HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement",
|
|
406
|
+
"resolved": "HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement",
|
|
366
407
|
"references": {
|
|
367
408
|
"HTMLVertexViewerMarkupArrowElement": {
|
|
368
409
|
"location": "global"
|
|
369
410
|
},
|
|
370
411
|
"HTMLVertexViewerMarkupCircleElement": {
|
|
371
412
|
"location": "global"
|
|
413
|
+
},
|
|
414
|
+
"HTMLVertexViewerMarkupFreeformElement": {
|
|
415
|
+
"location": "global"
|
|
372
416
|
}
|
|
373
417
|
}
|
|
374
418
|
}
|
|
@@ -376,7 +420,7 @@ export class ViewerMarkup {
|
|
|
376
420
|
static get methods() { return {
|
|
377
421
|
"addMarkup": {
|
|
378
422
|
"complexType": {
|
|
379
|
-
"signature": "(markup: Markup) => Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement>",
|
|
423
|
+
"signature": "(markup: Markup) => Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement>",
|
|
380
424
|
"parameters": [{
|
|
381
425
|
"tags": [{
|
|
382
426
|
"text": "markup The markup to add.",
|
|
@@ -394,12 +438,15 @@ export class ViewerMarkup {
|
|
|
394
438
|
"HTMLVertexViewerMarkupCircleElement": {
|
|
395
439
|
"location": "global"
|
|
396
440
|
},
|
|
441
|
+
"HTMLVertexViewerMarkupFreeformElement": {
|
|
442
|
+
"location": "global"
|
|
443
|
+
},
|
|
397
444
|
"Markup": {
|
|
398
445
|
"location": "import",
|
|
399
446
|
"path": "../../lib/types/markup"
|
|
400
447
|
}
|
|
401
448
|
},
|
|
402
|
-
"return": "Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement>"
|
|
449
|
+
"return": "Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement>"
|
|
403
450
|
},
|
|
404
451
|
"docs": {
|
|
405
452
|
"text": "Adds a new markup as a child to this component. A new markup\ncomponent will be created from the template specified by\n`arrow-template-id`, `circle-template-id`, or if undefined\na default element will be created.",
|
|
@@ -426,7 +473,7 @@ export class ViewerMarkup {
|
|
|
426
473
|
},
|
|
427
474
|
"removeMarkup": {
|
|
428
475
|
"complexType": {
|
|
429
|
-
"signature": "(id: string) => Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | undefined>",
|
|
476
|
+
"signature": "(id: string) => Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement | undefined>",
|
|
430
477
|
"parameters": [{
|
|
431
478
|
"tags": [{
|
|
432
479
|
"text": "id The ID of the markup to remove.",
|
|
@@ -443,9 +490,12 @@ export class ViewerMarkup {
|
|
|
443
490
|
},
|
|
444
491
|
"HTMLVertexViewerMarkupCircleElement": {
|
|
445
492
|
"location": "global"
|
|
493
|
+
},
|
|
494
|
+
"HTMLVertexViewerMarkupFreeformElement": {
|
|
495
|
+
"location": "global"
|
|
446
496
|
}
|
|
447
497
|
},
|
|
448
|
-
"return": "Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | undefined>"
|
|
498
|
+
"return": "Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement | undefined>"
|
|
449
499
|
},
|
|
450
500
|
"docs": {
|
|
451
501
|
"text": "Removes a markup with the given ID, and returns the HTML element\nassociated to the markup. Returns `undefined` if no markup is\nfound.",
|
|
@@ -460,7 +510,7 @@ export class ViewerMarkup {
|
|
|
460
510
|
},
|
|
461
511
|
"getMarkupElements": {
|
|
462
512
|
"complexType": {
|
|
463
|
-
"signature": "() => Promise<Array<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement>>",
|
|
513
|
+
"signature": "() => Promise<Array<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement>>",
|
|
464
514
|
"parameters": [],
|
|
465
515
|
"references": {
|
|
466
516
|
"Promise": {
|
|
@@ -472,11 +522,14 @@ export class ViewerMarkup {
|
|
|
472
522
|
"HTMLVertexViewerMarkupCircleElement": {
|
|
473
523
|
"location": "global"
|
|
474
524
|
},
|
|
525
|
+
"HTMLVertexViewerMarkupFreeformElement": {
|
|
526
|
+
"location": "global"
|
|
527
|
+
},
|
|
475
528
|
"Array": {
|
|
476
529
|
"location": "global"
|
|
477
530
|
}
|
|
478
531
|
},
|
|
479
|
-
"return": "Promise<(HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement)[]>"
|
|
532
|
+
"return": "Promise<(HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement)[]>"
|
|
480
533
|
},
|
|
481
534
|
"docs": {
|
|
482
535
|
"text": "Returns a list of markup elements that are children of this component.",
|
|
@@ -494,7 +547,7 @@ export class ViewerMarkup {
|
|
|
494
547
|
},
|
|
495
548
|
"getMarkupElement": {
|
|
496
549
|
"complexType": {
|
|
497
|
-
"signature": "(id: string) => Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | undefined>",
|
|
550
|
+
"signature": "(id: string) => Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement | undefined>",
|
|
498
551
|
"parameters": [{
|
|
499
552
|
"tags": [{
|
|
500
553
|
"text": "id The ID of the markup element to return.",
|
|
@@ -511,9 +564,12 @@ export class ViewerMarkup {
|
|
|
511
564
|
},
|
|
512
565
|
"HTMLVertexViewerMarkupCircleElement": {
|
|
513
566
|
"location": "global"
|
|
567
|
+
},
|
|
568
|
+
"HTMLVertexViewerMarkupFreeformElement": {
|
|
569
|
+
"location": "global"
|
|
514
570
|
}
|
|
515
571
|
},
|
|
516
|
-
"return": "Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | undefined>"
|
|
572
|
+
"return": "Promise<HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement | undefined>"
|
|
517
573
|
},
|
|
518
574
|
"docs": {
|
|
519
575
|
"text": "Returns the markup element associated to the given ID.",
|
|
@@ -573,4 +629,4 @@ export class ViewerMarkup {
|
|
|
573
629
|
"passive": true
|
|
574
630
|
}]; }
|
|
575
631
|
}
|
|
576
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
632
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1hcmt1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlci1tYXJrdXAvdmlld2VyLW1hcmt1cC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osQ0FBQyxFQUNELE9BQU8sRUFDUCxJQUFJLEVBQ0osS0FBSyxFQUVMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFFTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBUW5GLE1BQU0sT0FBTyxZQUFZO0VBTHpCO0lBOEJFOztPQUVHO0lBRUksU0FBSSxHQUF5QixPQUFPLENBQUM7SUFFNUM7OztPQUdHO0lBRUksYUFBUSxHQUFHLEtBQUssQ0FBQztHQWlZekI7RUF6VkM7Ozs7Ozs7Ozs7S0FVRztFQUVJLEtBQUssQ0FBQyxTQUFTLENBQ3BCLE1BQWM7SUFNZCxJQUFJLE1BQU0sWUFBWSxXQUFXLEVBQUU7TUFDakMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDO01BRWxDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO01BQzNDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO01BQ1gsRUFBRSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7TUFDakIsRUFBRSxDQUFDLEdB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LENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNyRCxDQUFDO0VBRU8sbUJBQW1CLENBQ3pCLE9BQTJDO0lBRTNDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0VBQ2pELENBQUM7RUFFTyx1QkFBdUI7SUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtNQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7TUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO01BQzVDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7TUFDOUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztNQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQzNCO0VBQ0gsQ0FBQztFQUVPLGFBQWE7SUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FFL0MsQ0FBQztFQUNoQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUNGIn0=
|