@vertexvis/viewer 0.12.0 → 0.13.0-canary.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/{config-acd7cea9.js → config-90ee43d5.js} +1 -1
- package/dist/cjs/{cursors-399a9648.js → cursors-ad2fd395.js} +7 -0
- package/dist/cjs/{controller-8cbcdd8d.js → entities-aa59890e.js} +57 -22
- package/dist/cjs/{index-cc65325e.js → index-e100709a.js} +64 -3
- package/dist/cjs/index.cjs.js +21 -11
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{model-18ef3363.js → mapper-f6e6cafe.js} +37 -191
- package/dist/cjs/model-4ec0c36e.js +134 -0
- package/dist/cjs/overlays-8a582edf.js +76 -0
- package/dist/cjs/results-bc325974.js +24 -0
- package/dist/cjs/{scene-ffee07ee.js → scene-f4040800.js} +1 -1
- package/dist/cjs/{stencil-bd453a38.js → stencil-a664cd10.js} +1 -1
- package/dist/cjs/{streamAttributes-9d6226ac.js → streamAttributes-d6236448.js} +87 -30
- package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +2 -2
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-icon.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +221 -75
- package/dist/cjs/{vertex-viewer-measurement-distance_2.cjs.entry.js → vertex-viewer-measurement-distance.cjs.entry.js} +30 -69
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +170 -0
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +163 -55
- package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +33 -4
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer.cjs.entry.js +58 -10
- package/dist/cjs/viewer.cjs.js +2 -2
- package/dist/cjs/{viewport-51aa05ab.js → viewport-8c39089f.js} +11 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/viewer/viewer.js +2 -2
- package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +2 -2
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-entry.js +14 -0
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +22 -0
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.css +3 -10
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.js +125 -188
- package/dist/collection/components/viewer-measurement-distance/interactions.js +3 -14
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +41 -1
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays-components.js +30 -0
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.css +51 -0
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +149 -0
- package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js +118 -26
- package/dist/collection/components/viewer-measurements/viewer-measurements.js +67 -2
- package/dist/collection/components/viewer-view-cube/viewer-view-cube.css +21 -3
- package/dist/collection/index.js +2 -2
- package/dist/collection/lib/cursors.js +7 -1
- package/dist/collection/lib/elementRectObserver.js +19 -0
- package/dist/collection/lib/interactions/interactionApi.js +53 -4
- package/dist/collection/lib/mappers/frameStreaming.js +2 -4
- package/dist/collection/lib/measurement/controller.js +21 -17
- package/dist/collection/lib/measurement/entities.js +34 -0
- package/dist/collection/lib/measurement/index.js +4 -2
- package/dist/collection/lib/measurement/interactions.js +74 -28
- package/dist/collection/lib/measurement/mapper.js +5 -5
- package/dist/collection/lib/measurement/model.js +24 -85
- package/dist/collection/lib/measurement/outcomes.js +2 -0
- package/dist/collection/lib/measurement/overlays.js +69 -0
- package/dist/collection/lib/measurement/results.js +17 -0
- package/dist/collection/lib/types/entities.js +5 -1
- package/dist/collection/lib/types/featureMap.js +14 -5
- package/dist/collection/lib/types/frame.js +3 -3
- package/dist/collection/lib/types/measurementUnits.js +7 -7
- package/dist/collection/lib/types/viewport.js +12 -1
- package/dist/collection/testing/eventually.js +30 -0
- package/dist/collection/testing/fixtures.js +11 -4
- package/dist/collection/testing/index.js +2 -1
- package/dist/custom-elements/index.d.ts +6 -0
- package/dist/custom-elements/index.js +851 -287
- package/dist/esm/{browser.esm-e6827921.js → browser.esm-59e914f6.js} +1 -1
- package/dist/esm/{bundle.esm-8f14ac60.js → bundle.esm-d899b2d5.js} +1 -1
- package/dist/esm/{config-a200c227.js → config-604c644e.js} +2 -2
- package/dist/esm/{cursors-5157d29d.js → cursors-a7ec4adb.js} +8 -2
- package/dist/esm/{dom-2d6a1e1e.js → dom-780d25be.js} +1 -1
- package/dist/esm/{controller-a756cf9c.js → entities-759d97cd.js} +52 -18
- package/dist/esm/{index-f0053642.js → index-10c1495a.js} +64 -3
- package/dist/esm/index.js +13 -11
- package/dist/esm/index.mjs +13 -11
- package/dist/esm/loader.js +2 -2
- package/dist/esm/loader.mjs +2 -2
- package/dist/esm/{model-f711a825.js → mapper-4b815e31.js} +37 -190
- package/dist/esm/{markup-e46623b3.js → markup-1d177b4a.js} +2 -2
- package/dist/esm/{measurement-702d6b8c.js → measurement-12cdbf5c.js} +2 -2
- package/dist/esm/model-e5a4f00f.js +132 -0
- package/dist/esm/overlays-dbe5d652.js +74 -0
- package/dist/esm/{png-decoder-59a0e9c2.js → png-decoder-3f1fa486.js} +1 -1
- package/dist/esm/results-994bdb50.js +22 -0
- package/dist/esm/{scene-16490983.js → scene-9ac8a484.js} +3 -3
- package/dist/esm/{stencil-7d04d41a.js → stencil-9bf7fb9e.js} +1 -1
- package/dist/esm/{streamAttributes-7aa486b2.js → streamAttributes-d623bb60.js} +77 -20
- package/dist/esm/{utils-8070900a.js → utils-01e4f587.js} +1 -1
- package/dist/esm/{utils-953a1619.js → utils-5e57bf24.js} +1 -1
- package/dist/esm/vertex-scene-tree-search_3.entry.js +3 -3
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +5 -5
- package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
- package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
- package/dist/esm/vertex-viewer-dom-element_3.entry.js +6 -6
- package/dist/esm/vertex-viewer-icon.entry.js +1 -1
- package/dist/esm/vertex-viewer-layer.entry.js +1 -1
- package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +4 -4
- package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
- package/dist/esm/vertex-viewer-markup.entry.js +5 -5
- package/dist/esm/vertex-viewer-measurement-details.entry.js +221 -75
- package/dist/esm/{vertex-viewer-measurement-distance_2.entry.js → vertex-viewer-measurement-distance.entry.js} +35 -73
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +165 -0
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +160 -52
- package/dist/esm/vertex-viewer-measurement-tool.entry.js +6 -6
- package/dist/esm/vertex-viewer-measurements.entry.js +36 -7
- package/dist/esm/vertex-viewer-view-cube.entry.js +6 -6
- package/dist/esm/vertex-viewer.entry.js +61 -13
- package/dist/esm/viewer.js +2 -2
- package/dist/esm/{viewport-bb7c46d9.js → viewport-01c886ea.js} +12 -1
- package/dist/types/components/viewer-dom-renderer/viewer-dom-renderer.d.ts +1 -1
- package/dist/types/components/viewer-measurement-details/viewer-measurement-details-entry.d.ts +8 -0
- package/dist/types/components/viewer-measurement-details/viewer-measurement-details-results.d.ts +15 -0
- package/dist/types/components/viewer-measurement-details/viewer-measurement-details.d.ts +44 -42
- package/dist/types/components/viewer-measurement-distance/interactions.d.ts +23 -1
- package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +8 -0
- package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays-components.d.ts +10 -0
- package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays.d.ts +41 -0
- package/dist/types/components/viewer-measurement-precise/viewer-measurement-precise.d.ts +62 -6
- package/dist/types/components/viewer-measurements/viewer-measurements.d.ts +12 -0
- package/dist/types/components.d.ts +103 -40
- package/dist/types/index.d.ts +1 -1
- package/dist/types/lib/cursors.d.ts +5 -0
- package/dist/types/lib/elementRectObserver.d.ts +8 -0
- package/dist/types/lib/interactions/interactionApi.d.ts +32 -5
- package/dist/types/lib/measurement/controller.d.ts +8 -7
- package/dist/types/lib/measurement/entities.d.ts +10 -0
- package/dist/types/lib/measurement/index.d.ts +3 -1
- package/dist/types/lib/measurement/interactions.d.ts +19 -5
- package/dist/types/lib/measurement/mapper.d.ts +1 -1
- package/dist/types/lib/measurement/model.d.ts +18 -153
- package/dist/types/lib/measurement/outcomes.d.ts +8 -0
- package/dist/types/lib/measurement/overlays.d.ts +38 -0
- package/dist/types/lib/measurement/results.d.ts +90 -0
- package/dist/types/lib/types/entities.d.ts +5 -1
- package/dist/types/lib/types/featureMap.d.ts +2 -2
- package/dist/types/lib/types/measurementUnits.d.ts +1 -1
- package/dist/types/lib/types/viewport.d.ts +9 -1
- package/dist/types/testing/eventually.d.ts +15 -0
- package/dist/types/testing/fixtures.d.ts +2 -2
- package/dist/types/testing/index.d.ts +1 -0
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/p-081e6873.js +4 -0
- package/dist/viewer/{p-5d82c131.entry.js → p-099fe6ca.entry.js} +1 -1
- package/dist/viewer/{p-784914e4.js → p-0aba71fd.js} +1 -1
- package/dist/viewer/p-0aeab3fc.js +4 -0
- package/dist/viewer/p-0eb195dd.entry.js +4 -0
- package/dist/viewer/p-1a7df99a.entry.js +4 -0
- package/dist/viewer/{p-f70d8def.js → p-301660cf.js} +1 -1
- package/dist/viewer/{p-a0e49d10.entry.js → p-31658489.entry.js} +1 -1
- package/dist/viewer/{p-95f3a81c.entry.js → p-353cfc7a.entry.js} +1 -1
- package/dist/viewer/p-364ce21c.js +4 -0
- package/dist/viewer/{p-a5a0bf86.js → p-3f6ac74f.js} +1 -1
- package/dist/viewer/p-423410be.js +4 -0
- package/dist/viewer/{p-6f71f0f2.js → p-439220c6.js} +1 -1
- package/dist/viewer/{p-e84ed098.entry.js → p-46459921.entry.js} +1 -1
- package/dist/viewer/{p-c23a8b34.entry.js → p-4717c98e.entry.js} +1 -1
- package/dist/viewer/p-4985fad5.js +4 -0
- package/dist/viewer/{p-ba393340.entry.js → p-61b1097b.entry.js} +1 -1
- package/dist/viewer/{p-011eecd5.entry.js → p-6370098c.entry.js} +1 -1
- package/dist/viewer/p-67446e35.js +4 -0
- package/dist/viewer/p-7006fd4e.entry.js +4 -0
- package/dist/viewer/{p-a20e4ea1.entry.js → p-70ca1ea7.entry.js} +1 -1
- package/dist/viewer/p-76ec0245.js +4 -0
- package/dist/viewer/p-7cad9bf4.js +4 -0
- package/dist/viewer/p-7f25dcb5.entry.js +4 -0
- package/dist/viewer/{p-ca6bbe53.entry.js → p-8decee06.entry.js} +1 -1
- package/dist/viewer/{p-b7ffa306.entry.js → p-915d95ad.entry.js} +1 -1
- package/dist/viewer/{p-4485ac6d.js → p-a0df0e0c.js} +1 -1
- package/dist/viewer/{p-cc9888be.entry.js → p-a455ae02.entry.js} +1 -1
- package/dist/viewer/{p-a6a8026f.js → p-acf22d3e.js} +1 -1
- package/dist/viewer/{p-653aca1b.entry.js → p-b2b48a42.entry.js} +1 -1
- package/dist/viewer/p-bc9b1e67.entry.js +4 -0
- package/dist/viewer/p-c458f191.entry.js +32 -0
- package/dist/viewer/p-cafa57a6.js +4 -0
- package/dist/viewer/p-d00e9203.js +4 -0
- package/dist/viewer/{p-3e96bd62.entry.js → p-d2bcf788.entry.js} +1 -1
- package/dist/viewer/p-d90f2f6d.entry.js +4 -0
- package/dist/viewer/p-da2f4a56.js +4 -0
- package/dist/viewer/{p-5a2e34e1.entry.js → p-e07377fa.entry.js} +1 -1
- package/dist/viewer/{p-40800e8d.entry.js → p-f755af5a.entry.js} +1 -1
- package/dist/viewer/p-f7cb7e59.js +4 -0
- package/dist/viewer/p-fad9693e.js +4 -0
- package/dist/viewer/p-fe11d694.js +4 -0
- package/dist/viewer/{p-b92a3ac2.entry.js → p-fec1a8d0.entry.js} +1 -1
- package/dist/viewer/viewer.css +1 -1
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +11 -10
- package/dist/cjs/summary-7bbdb4c9.js +0 -45
- package/dist/collection/lib/measurement/summary.js +0 -38
- package/dist/esm/summary-0a3d0bf9.js +0 -43
- package/dist/types/lib/measurement/summary.d.ts +0 -11
- package/dist/viewer/p-03e482ff.js +0 -4
- package/dist/viewer/p-0c052bc8.entry.js +0 -4
- package/dist/viewer/p-148cd792.js +0 -4
- package/dist/viewer/p-26d99e2d.entry.js +0 -4
- package/dist/viewer/p-38eeacc5.js +0 -4
- package/dist/viewer/p-39d1720c.js +0 -4
- package/dist/viewer/p-5dc17b8b.js +0 -4
- package/dist/viewer/p-5fea3491.js +0 -4
- package/dist/viewer/p-6b700561.entry.js +0 -4
- package/dist/viewer/p-6cd7a6e0.js +0 -4
- package/dist/viewer/p-75337d0b.js +0 -4
- package/dist/viewer/p-b83cc8a9.js +0 -4
- package/dist/viewer/p-d2a9e047.js +0 -4
- package/dist/viewer/p-d40bd835.entry.js +0 -4
- package/dist/viewer/p-e10b1526.js +0 -4
- package/dist/viewer/p-ec8a1a68.entry.js +0 -4
- package/dist/viewer/p-f4a8c901.js +0 -4
- package/dist/viewer/p-f77dde26.entry.js +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{E as s}from"./p-301660cf.js";class a{constructor(){this.onChanged=new s,this.cursors=[],this.nextId=0}add(s,h=a.NORMAL_PRIORITY){const t=++this.nextId,i={id:t,cursor:s,priority:h,dispose:()=>this.remove(t)};return this.cursors.push(i),this.onChanged.emit(),i}remove(s){const a=this.cursors.findIndex((({id:a})=>a===s));a>=0&&(this.cursors.splice(a,1),this.onChanged.emit())}getActiveCursor(){var s;return null===(s=this.cursors.concat().reverse().sort(((s,a)=>a.priority-s.priority))[0])||void 0===s?void 0:s.cursor}}a.LOW_PRIORITY=0,a.NORMAL_PRIORITY=10,a.HIGH_PRIORITY=20;const h={url:"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M21.5 8h-19a.5.5 0 00-.5.5v6a.5.5 0 00.5.5h19a.5.5 0 00.5-.5v-6a.5.5 0 00-.5-.5zm-.5 6H3V9h3v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2z' stroke='%23fff' stroke-width='1.25' stroke-opacity='0.5' stroke-miterlimit='10' shape-rendering='crispEdges'/%3E%3Cpath d='M21.5 8h-19a.5.5 0 00-.5.5v6a.5.5 0 00.5.5h19a.5.5 0 00.5-.5v-6a.5.5 0 00-.5-.5zm-.5 6H3V9h3v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2v2.5a.5.5 0 001 0V9h2z' shape-rendering='crispEdges'/%3E%3C/svg%3E",offsetX:-24,offsetY:-24},t={url:"data:image/svg+xml;utf8,%3Csvg id='icons' xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bstroke:%23fff;stroke-miterlimit:10;stroke-width:2px;%7D.cls-2%7Bfill:%23fff;%7D.cls-2,.cls-3%7Bfill-rule:evenodd;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M27.46,21h-19a.5.5,0,0,0-.5.5v6a.5.5,0,0,0,.5.5h19a.5.5,0,0,0,.5-.5v-6A.5.5,0,0,0,27.46,21ZM27,27H9V22h3v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2Z'/%3E%3Cpath d='M27.46,21h-19a.5.5,0,0,0-.5.5v6a.5.5,0,0,0,.5.5h19a.5.5,0,0,0,.5-.5v-6A.5.5,0,0,0,27.46,21ZM27,27H9V22h3v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2v2.5a.5.5,0,0,0,1,0V22h2Z'/%3E%3Cpath class='cls-2' d='M1,17V1L12.59,12.62H5.81l-.41.12Z'/%3E%3Cpath class='cls-2' d='M10.08,17.69l-3.6,1.53L1.8,8.14,5.48,6.58Z'/%3E%3Cpath class='cls-3' d='M8.75,17l-1.84.77-3.1-7.37,1.84-.78Z'/%3E%3Cpath class='cls-3' d='M2,3.41V14.6l3-2.87.43-.14h4.76Z'/%3E%3C/svg%3E",offsetX:-30,offsetY:-30};export{a as C,t as a,h as m}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{r as e,h as r,H as s}from"./p-
|
|
4
|
+
import{r as e,h as r,H as s}from"./p-cafa57a6.js";let a=class{constructor(r){e(this,r)}render(){return r(s,null,r("div",{class:"header"},r("slot",null)))}};a.style=":host{width:100%;box-sizing:border-box}.header{display:flex;align-items:center;box-sizing:border-box;font-size:0.875rem;white-space:nowrap;overflow:hidden;padding:0.5rem 0}";export{a as vertex_scene_tree_table_header}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{h as e,F as i,r as t,H as o}from"./p-cafa57a6.js";import{v as r,s as a,t as n}from"./p-0aba71fd.js";import{r as c}from"./p-fad9693e.js";import{O as s,c as d,w as l}from"./p-fe11d694.js";import{c as h}from"./p-f482325b.js";import"./p-301660cf.js";import"./p-112455b1.js";const b={front:{direction:r.back(),quaternion:a.create()},back:{direction:r.forward(),quaternion:a.fromAxisAngle(r.up(),Math.PI)},left:{direction:r.left(),quaternion:a.fromAxisAngle(r.down(),Math.PI/2)},right:{direction:r.right(),quaternion:a.fromAxisAngle(r.up(),Math.PI/2)},top:{direction:r.up(),quaternion:a.fromAxisAngle(r.right(),-Math.PI/2)},bottom:{direction:r.down(),quaternion:a.fromAxisAngle(r.left(),-Math.PI/2)}},f=({label:t,length:o,rotationAxis:c})=>{const s={width:`${o+5}px`},d=a.fromAxisAngle(c,Math.PI/2),l=r.scale(o+15,r.right());return e(i,null,e("vertex-viewer-dom-group",{quaternion:d},e("vertex-viewer-dom-element",{style:s,billboardOff:!0,interactionsOff:!0},e("div",{class:`triad-axis triad-axis-${t.toLowerCase()}`})),e("vertex-viewer-dom-element",{rotation:n.create({x:Math.PI/2,y:0,z:0}),style:s,billboardOff:!0,interactionsOff:!0},e("div",{class:`triad-axis triad-axis-${t.toLowerCase()}`})),e("vertex-viewer-dom-element",{position:l,interactionsOff:!0},e("div",{class:`triad-label triad-label-${t.toLowerCase()}`},t))))},g=({label:i,length:t,side:o,disabled:a,onPointerDown:n})=>{const{direction:c,quaternion:s}=b[o],d=r.scale(t/2-.1,c);return e("vertex-viewer-dom-element",{class:h("cube-side",{disabled:a}),position:d,quaternion:s,style:{width:`${t}px`,height:`${t}px`},onPointerDown:n,billboardOff:!0},e("div",{class:`cube-side-face cube-side-face-${i.toLowerCase()}`},i))},v=({length:i,face1Side:t,face1Corner:o,face2Side:a,face2Corner:n,face3Side:c,face3Corner:s,disabled:d,onPointerDown:l})=>{const{direction:f,quaternion:g}=b[t],{direction:v,quaternion:u}=b[a],{direction:w,quaternion:p}=b[c],m=r.scale(i/2,f),x=r.scale(i/2,v),S=r.scale(i/2,w),y={width:`${i}px`,height:`${i}px`};return e("vertex-viewer-dom-group",{class:h("cube-corner",{disabled:d}),onPointerDown:l},e("vertex-viewer-dom-element",{position:m,quaternion:g,style:y,billboardOff:!0},e("div",{class:`cube-corner-face ${o}`})),e("vertex-viewer-dom-element",{position:x,quaternion:u,style:y,billboardOff:!0},e("div",{class:`cube-corner-face ${n}`})),e("vertex-viewer-dom-element",{position:S,quaternion:p,style:y,billboardOff:!0},e("div",{class:`cube-corner-face ${s}`})))},u=({length:i,face1Side:t,face2Side:o,face1Edge:a,face2Edge:n,disabled:c,onPointerDown:s})=>{const{direction:d,quaternion:l}=b[t],{direction:f,quaternion:g}=b[o],v=r.scale(i/2,d),u=r.scale(i/2,f),w={width:`${i}px`,height:`${i}px`};return e("vertex-viewer-dom-group",{class:h("cube-edge",{disabled:c}),onPointerDown:s},e("vertex-viewer-dom-element",{position:v,quaternion:l,style:w,billboardOff:!0},e("div",{class:`cube-edge-face ${a}`})),e("vertex-viewer-dom-element",{position:u,quaternion:g,style:w,billboardOff:!0},e("div",{class:`cube-edge-face ${n}`})))},w=({length:i})=>{const{direction:t,quaternion:o}=b.top,a=r.scale(-i/2,t);return e("vertex-viewer-dom-element",{class:"cube-shadow",position:a,quaternion:o,style:{width:`${i}px`,height:`${i}px`},billboardOff:!0,interactionsOff:!0},e("div",{class:"cube-shadow-face"}))};let p=class{constructor(e){t(this,e),this.boxLength=80,this.triadPosition=r.origin(),this.xPositiveLabel="Left",this.xNegativeLabel="Right",this.yPositiveLabel="Top",this.yNegativeLabel="Bottom",this.zPositiveLabel="Front",this.zNegativeLabel="Back",this.standardViewsOff=!1,this.animationDuration=500,this.triadOff=!1,this.worldOrientation=s.DEFAULT,this.updateMatrices=()=>{var e;if(null!=(null===(e=this.viewer)||void 0===e?void 0:e.frame)){const{camera:e}=this.viewer.frame.scene,i=this.boxLength/2;this.triadPosition=r.create(-i-5,-i-5,-i-5);const t=21.5;this.camera=new d(r.scale(3.125*this.boxLength,r.negate(e.direction)),r.origin(),e.up,.1,100,1,t),this.worldOrientation=this.viewer.frame.scene.worldOrientation}}}handleViewerChanged(e,i){null==i||i.removeEventListener("frameDrawn",this.updateMatrices),null==e||e.addEventListener("frameDrawn",this.updateMatrices),this.updateMatrices()}handleStandardView(e){return this.standardViewsOff?async()=>{}:async()=>{if(null!=this.viewer){const i=await this.viewer.scene(),t=this.animationDuration>0?{animation:{milliseconds:this.animationDuration}}:{},o=e.transformMatrix(this.worldOrientation.matrix);i.camera().standardView(o).viewAll().render(t)}}}componentWillLoad(){this.handleViewerChanged(this.viewer)}componentDidLoad(){null!=this.rendererEl&&(new ResizeObserver((()=>this.handleRendererResized())).observe(this.rendererEl),this.handleRendererResized())}handleRendererResized(){c((()=>{if(null!=this.rendererEl){const e=this.rendererEl.getBoundingClientRect();this.boxLength=Math.min(e.width,e.height)}}))}render(){return e(o,null,e("vertex-viewer-dom-renderer",{ref:e=>this.rendererEl=e,class:"renderer",camera:this.camera},!this.triadOff&&e("vertex-viewer-dom-group",{class:"triad",position:this.triadPosition},e(f,{label:"X",length:this.boxLength,rotationAxis:r.origin()}),e(f,{label:"Y",length:this.boxLength,rotationAxis:r.back()}),e(f,{label:"Z",length:this.boxLength,rotationAxis:r.down()})),e("vertex-viewer-dom-group",{class:"cube",matrix:this.worldOrientation.matrix},e(w,{length:this.boxLength+10}),e(g,{label:this.zPositiveLabel,length:this.boxLength,side:"front",onPointerDown:this.handleStandardView(l.FRONT),disabled:this.standardViewsOff}),e(g,{label:this.zNegativeLabel,length:this.boxLength,side:"back",onPointerDown:this.handleStandardView(l.BACK),disabled:this.standardViewsOff}),e(g,{label:this.xNegativeLabel,length:this.boxLength,side:"left",onPointerDown:this.handleStandardView(l.RIGHT),disabled:this.standardViewsOff}),e(g,{label:this.xPositiveLabel,length:this.boxLength,side:"right",onPointerDown:this.handleStandardView(l.LEFT),disabled:this.standardViewsOff}),e(g,{label:this.yPositiveLabel,length:this.boxLength,side:"top",onPointerDown:this.handleStandardView(l.TOP),disabled:this.standardViewsOff}),e(g,{label:this.yNegativeLabel,length:this.boxLength,side:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"bottom",face2Side:"front",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_FRONT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"front",face1Edge:"right",face2Side:"right",face2Edge:"left",onPointerDown:this.handleStandardView(l.FRONT_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"top",face2Side:"front",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_FRONT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"front",face1Edge:"left",face2Side:"left",face2Edge:"right",onPointerDown:this.handleStandardView(l.FRONT_RIGHT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"right",face2Side:"right",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"back",face1Edge:"left",face2Side:"right",face2Edge:"right",onPointerDown:this.handleStandardView(l.BACK_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"right",face2Side:"right",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"top",face2Side:"back",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_BACK),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"back",face1Edge:"right",face2Side:"left",face2Edge:"left",onPointerDown:this.handleStandardView(l.BACK_RIGHT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"bottom",face2Side:"back",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_BACK),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"left",face2Side:"left",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_RIGHT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"left",face2Side:"left",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"bottom-left",face2Side:"front",face2Corner:"top-left",face3Side:"left",face3Corner:"top-right",onPointerDown:this.handleStandardView(l.TOP_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"bottom-right",face2Side:"front",face2Corner:"top-right",face3Side:"right",face3Corner:"top-left",onPointerDown:this.handleStandardView(l.TOP_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"top-right",face2Side:"front",face2Corner:"bottom-right",face3Side:"right",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(l.BOTTOM_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"top-left",face2Side:"front",face2Corner:"bottom-left",face3Side:"left",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(l.BOTTOM_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"top-right",face2Side:"back",face2Corner:"top-left",face3Side:"right",face3Corner:"top-right",onPointerDown:this.handleStandardView(l.TOP_BACK_LEFT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"top-left",face2Side:"back",face2Corner:"top-right",face3Side:"left",face3Corner:"top-left",onPointerDown:this.handleStandardView(l.TOP_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-left",face2Side:"back",face2Corner:"bottom-right",face3Side:"left",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(l.BOTTOM_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-right",face2Side:"back",face2Corner:"bottom-left",face3Side:"right",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(l.BOTTOM_BACK_LEFT),disabled:this.standardViewsOff}))))}static get watchers(){return{viewer:["handleViewerChanged"]}}};p.style=":host{--viewer-view-cube-side-background:var(--white);--viewer-view-cube-side-background-hover:var(--blue-500);--viewer-view-cube-side-background-hover-opacity:0.25;--viewer-view-cube-side-border:1.5px solid var(--neutral-500);--viewer-view-cube-edge-length:12px;--viewer-view-cube-opacity:0.8;--viewer-view-cube-triad-x-axis-color:var(--x-axis-color);--viewer-view-cube-triad-y-axis-color:var(--y-axis-color);--viewer-view-cube-triad-z-axis-color:var(--z-axis-color);display:block;color:var(--neutral-700);width:80px;height:80px;margin:20px;position:relative;display:flex;align-items:center;justify-content:center;user-select:none}.renderer{position:unset;width:100%;height:100%;overflow:visible}.reference-point{width:5px;height:5px;border-radius:50%;background-color:black}.triad{pointer-events:none}.triad-axis{width:100%;height:1.5px;outline:1px solid transparent;transform:translateX(50%)}.triad-axis-x{background-color:#ea3324}.triad-axis-y{background-color:#4faf32}.triad-axis-z{background-color:#0000ff}.triad-label{font-family:Arial, Helvetica, sans-serif;font-size:0.6875rem}.triad-label-x{color:var(--viewer-view-cube-triad-x-axis-color)}.triad-label-y{color:var(--viewer-view-cube-triad-y-axis-color)}.triad-label-z{color:var(--viewer-view-cube-triad-z-axis-color)}.cube{pointer-events:initial}.cube:hover .cube-side-face{opacity:1}.cube-side{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-side-face{box-sizing:border-box;font-size:0.875rem;text-transform:uppercase;width:100%;height:100%;background-color:var(--viewer-view-cube-side-background);border:var(--viewer-view-cube-side-border);display:flex;align-items:center;justify-content:center;outline:1px solid transparent;opacity:var(--viewer-view-cube-opacity);transition:opacity 0.2s ease-in-out}.cube-side-face::before{content:'';position:absolute;left:calc(var(--viewer-view-cube-edge-length) - 4px);right:calc(var(--viewer-view-cube-edge-length) - 4px);top:calc(var(--viewer-view-cube-edge-length) - 4px);bottom:calc(var(--viewer-view-cube-edge-length) - 4px)}.cube-corner,.cube-edge{position:relative}.cube-corner-face,.cube-edge-face{position:absolute;backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-edge-face.top{top:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.bottom{bottom:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.left{left:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-edge-face.right{right:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-corner-face{width:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-corner-face.top-left{top:0;left:0}.cube-corner-face.top-right{top:0;right:0}.cube-corner-face.bottom-right{bottom:0;right:0}.cube-corner-face.bottom-left{bottom:0;left:0}.cube-shadow{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-shadow-face{position:absolute;left:4px;right:4px;top:4px;bottom:4px;background-color:black;opacity:0.12;filter:blur(4px)}.cube-corner .cube-corner-face,.cube-edge .cube-edge-face,.cube-side .cube-side-face::before{background:var(--viewer-view-cube-side-background-hover);opacity:0}.cube-corner:hover .cube-corner-face,.cube-edge:hover .cube-edge-face,.cube-side:hover .cube-side-face::before{opacity:var(--viewer-view-cube-side-background-hover-opacity)}.cube-corner.disabled,.cube-edge.disabled,.cube-side.disabled{pointer-events:none}";export{p as vertex_viewer_view_cube}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{E as t,o as s}from"./p-301660cf.js";class i{constructor(){this.entities=new Set,this.results=new Set,this.entitiesChanged=new t,this.outcomeChanged=new t}addEntity(t){return!this.entities.has(t)&&(this.entities.add(t),this.entitiesChanged.emit(this.getEntities()),!0)}clearEntities(){this.entities.forEach((t=>this.removeEntity(t)))}clearOutcome(){this.setOutcome(void 0)}setOutcome(t){s.isEqual(this.outcome,t)||(this.outcome=t,this.outcomeChanged.emit(t))}getEntities(){return Array.from(this.entities)}getOutcome(){return this.outcome}getResults(){return Array.from(this.results)}removeEntity(t){return!!this.entities.has(t)&&(this.entities.delete(t),this.entitiesChanged.emit(this.getEntities()),!0)}setEntities(t){return this.entities.clear(),t.forEach((t=>this.entities.add(t))),this.entitiesChanged.emit(this.getEntities()),!0}onOutcomeChanged(t){return this.outcomeChanged.on(t)}onEntitiesChanged(t){return this.entitiesChanged.on(t)}}export{i as M}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{r as e,c as t,h as i,H as n,g as r}from"./p-
|
|
4
|
+
import{r as e,c as t,h as i,H as n,g as r}from"./p-cafa57a6.js";import{p as s}from"./p-0aba71fd.js";import{s as a}from"./p-c738296e.js";import{A as o,C as l,F as h}from"./p-081e6873.js";import{i as d,a as u,b as p}from"./p-7cad9bf4.js";import"./p-301660cf.js";let c=class{constructor(i){e(this,i),this.markupAdded=t(this,"markupAdded",7),this.markupRemoved=t(this,"markupRemoved",7),this.tool="arrow",this.disabled=!1,this.selectNew=!1,this.handlePointerMove=e=>{null!=this.pointerDownPosition&&s.distance(this.pointerDownPosition,s.create(e.clientX,e.clientY))>2&&(this.toSelectMarkupId=void 0)},this.handlePointerUp=async e=>{if(!this.disabled){const t=e.target,i=(await this.getMarkupElements()).find((e=>e===t));null!=(null==i?void 0:i.id)&&""!==i.id&&i.id===this.toSelectMarkupId?this.selectedMarkupId=t.id:null!=this.pointerDownPosition&&s.distance(this.pointerDownPosition,s.create(e.clientX,e.clientY))<=2&&(this.selectedMarkupId=void 0),this.toSelectMarkupId=void 0,this.pointerDownPosition=void 0}window.removeEventListener("pointerup",this.handlePointerUp),window.removeEventListener("pointermove",this.handlePointerMove)}}disconnectedCallback(){window.removeEventListener("pointerup",this.handlePointerUp),window.removeEventListener("pointermove",this.handlePointerMove)}async addMarkup(e){if(e instanceof o){const{start:t,end:i,id:n}=e,r=this.createArrowMarkupElement();return r.id=n,r.start=t,r.end=i,this.appendMarkupElement(r)}if(e instanceof l){const{bounds:t,id:i}=e,n=this.createCircleMarkupElement();return n.id=i,n.bounds=t,this.appendMarkupElement(n)}if(e instanceof h){const{bounds:t,points:i,id:n}=e,r=this.createFreeformMarkupElement();return r.id=n,r.points=i,r.bounds=t,this.appendMarkupElement(r)}throw new Error(`Cannot add markup. Unknown type '${e}'.`)}async removeMarkup(e){const t=await this.getMarkupElement(e);return null!=t&&(t.remove(),this.markupRemoved.emit(t)),t}async getMarkupElements(){return Array.from(this.hostEl.children).filter((e=>d(e)||u(e)||p(e)))}async getMarkupElement(e){return(await this.getMarkupElements()).find((t=>t.id===e))}async handleSelectedMarkupIdChanged(){(await this.getMarkupElements()).forEach((e=>{e.mode=e.id===this.selectedMarkupId?"edit":""}))}handleToolChanged(){this.updatePropsOnMarkupTool()}handleArrowTemplateIdChanged(){this.updatePropsOnMarkupTool()}handleCircleTemplateIdChanged(){this.updatePropsOnMarkupTool()}handleFreeformTemplateIdChanged(){this.updatePropsOnMarkupTool()}async handleViewerChanged(e){this.updatePropsOnMarkupTool(),this.updatePropsOnMarkups()}handleDisabledChanged(){this.updatePropsOnMarkupTool()}async handleMarkupEnd(e){var t;const i=e,n=await this.addMarkup(i.detail);await new Promise((e=>{const t=()=>{n.removeEventListener("viewRendered",t),e()};n.addEventListener("viewRendered",t)})),this.selectNew&&(this.selectedMarkupId=i.detail.id),null===(t=this.getMarkupTool())||void 0===t||t.reset()}async handleMarkupPointerDown(e){if(!this.disabled){const t=e.target,i=(await this.getMarkupElements()).find((e=>e===t));null!=(null==i?void 0:i.id)&&""!==(null==i?void 0:i.id)&&(this.toSelectMarkupId=t.id),this.pointerDownPosition=s.create(e.clientX,e.clientY),window.addEventListener("pointermove",this.handlePointerMove),window.addEventListener("pointerup",this.handlePointerUp)}}componentDidLoad(){this.updatePropsOnMarkupTool()}render(){return i(n,null,i("slot",null))}appendMarkupElement(e){return this.updatePropsOnMarkup(e),this.hostEl.appendChild(e),this.markupAdded.emit(e),e}createArrowMarkupElement(){if(null!=this.arrowTemplateId){const e=a(window.document.body,this.arrowTemplateId,d,(()=>console.warn(`Arrow template with ID ${this.arrowTemplateId} not found. Using default arrow element.`)),(()=>console.warn("Arrow template does not contain a vertex-viewer-markup-arrow. Using default arrow element.")));if(null!=e)return e}return document.createElement("vertex-viewer-markup-arrow")}createCircleMarkupElement(){if(null!=this.circleTemplateId){const e=a(window.document.body,this.circleTemplateId,u,(()=>console.warn(`Circle template with ID ${this.circleTemplateId} not found. Using default circle element.`)),(()=>console.warn("Circle template does not contain a vertex-viewer-markup-circle. Using default circle element.")));if(null!=e)return e}return document.createElement("vertex-viewer-markup-circle")}createFreeformMarkupElement(){if(null!=this.freeformTemplateId){const e=a(window.document.body,this.freeformTemplateId,p,(()=>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.")));if(null!=e)return e}return document.createElement("vertex-viewer-markup-freeform")}async updatePropsOnMarkups(){(await this.getMarkupElements()).forEach((e=>this.updatePropsOnMarkup(e)))}updatePropsOnMarkup(e){e.viewer=this.viewer,e.classList.add("viewer-markup__markup")}updatePropsOnMarkupTool(){const e=this.getMarkupTool();null!=e&&(e.disabled=this.disabled,e.arrowTemplateId=this.arrowTemplateId,e.circleTemplateId=this.circleTemplateId,e.freeformTemplateId=this.freeformTemplateId,e.tool=this.tool,e.viewer=this.viewer)}getMarkupTool(){return this.hostEl.querySelector("vertex-viewer-markup-tool")}get hostEl(){return r(this)}static get watchers(){return{selectedMarkupId:["handleSelectedMarkupIdChanged"],tool:["handleToolChanged"],arrowTemplateId:["handleArrowTemplateIdChanged"],circleTemplateId:["handleCircleTemplateIdChanged"],freeformTemplateId:["handleFreeformTemplateIdChanged"],viewer:["handleViewerChanged"],disabled:["handleDisabledChanged"]}}};c.style=":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}";export{c as vertex_viewer_markup}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{h as o,r as t,c as e,H as r,g as i}from"./p-75337d0b.js";import{p as n,d as s,i as h,h as a}from"./p-784914e4.js";import{g as d}from"./p-6f71f0f2.js";import{i as c,a as l,b as u,p as w,c as p,d as b,e as v,f as m}from"./p-e10b1526.js";import{c as f}from"./p-f482325b.js";import"./p-112455b1.js";function g(o){return o.getBoundingClientRect()}function k(o,t){switch(t){case"top-left":return n.create(o.x,o.y);case"top":return n.create(o.x+o.width/2,o.y);case"top-right":return n.create(o.x+o.width,o.y);case"right":return n.create(o.x+o.width,o.y+o.height/2);case"bottom-right":return n.create(o.x+o.width,o.y+o.height);case"bottom":return n.create(o.x+o.width/2,o.y+o.height);case"bottom-left":return n.create(o.x,o.y+o.height);case"left":return n.create(o.x,o.y+o.height/2);case"center":return h.center(o)}}function x(o){return Math.min(o.width,o.height)}function D(o,t){const e=x(t);return n.add(n.scale(o,e,e),s.center(t))}function P(o,t){const e=x(t);return s.scale(e,e,o)}function y(o,t){const e=D(o,t),r=P(o,t);return h.fromPointAndDimensions(e,r)}function A(o,t){const e=function(o){return 1/x(o)}(t);return n.scale(n.subtract(o,s.center(t)),e,e)}function C(o,t,e){const r=h.fromPoints(o,t);if(e){const e=Math.max(r.width,r.height),i=r.height>r.width;return h.create(t.x<=o.x?i?o.x-e:t.x:o.x,t.y<=o.y?i?t.y:o.y-e:o.y,e,e)}return r}function L(o,t,e,r,i){const s=n.subtract(e,t),{x:a,y:d,width:c,height:l}=o,u=a+c,w=d+l,p=n.create(a,d),b=n.create(a,w),v=n.create(u,d),m=n.create(u,w);switch(r){case"top-left":return C(m,e,!!i);case"top":return C(m,n.create(a,e.y),!!i);case"top-right":return C(b,e,!!i);case"right":return C(b,n.create(e.x,d),!!i);case"bottom-right":return C(p,e,!!i);case"bottom":return C(p,n.create(u,e.y),!!i);case"bottom-left":return C(v,e,!!i);case"left":return C(m,n.create(e.x,d),!!i);case"center":return h.create(o.x+s.x,o.y+s.y,o.width,o.height)}}function T(o){const t=o.target;return function(o){return c(o)||l(o)||u(o)}(t)&&"edit"!==t.mode}const B=({id:t,rotation:e,name:r,point:i,onPointerDown:n},s)=>o("div",{id:t,class:"bounds-anchor-position",style:{top:`${i.y}px`,left:`${i.x}px`},onTouchStart:o=>o.preventDefault(),onPointerDown:n},o("div",{class:"bounds-anchor",style:{transform:`rotateZ(${null!=e?e:0}deg)`}},o("slot",{name:r},s))),M=({id:t})=>o("filter",{id:t,filterUnits:"userSpaceOnUse"},o("feGaussianBlur",{in:"SourceAlpha",stdDeviation:"2"}),o("feOffset",{dx:"0",dy:"1",result:"offsetblur"}),o("feFlood",{"flood-color":"#000000","flood-opacity":"0.25"}),o("feComposite",{in2:"offsetblur",operator:"in"}),o("feMerge",null,o("feMergeNode",null),o("feMergeNode",{in:"SourceGraphic"}))),R=({start:t,end:e,onStartAnchorPointerDown:r,onCenterAnchorPointerDown:i,onEndAnchorPointerDown:s})=>{const h=a.normalize(a.toDegrees(a.fromPoints(t,e))-270),d=n.create((t.x+e.x)/2,(t.y+e.y)/2);return o("div",{class:"bounds-container"},o(B,{id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:h,point:t,onPointerDown:r},o("div",{class:f("bounds-default-anchor","bounds-cap-anchor")})),o(B,{id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:h,point:e,onPointerDown:s},o("div",{class:f("bounds-default-anchor","bounds-cap-anchor")})),o(B,{id:"bounding-box-1d-center-anchor",name:"center-anchor",point:d,onPointerDown:i},o("div",{class:f("bounds-default-anchor","bounds-center-anchor")})))};let S=class{constructor(o){t(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.viewRendered=e(this,"viewRendered",7),this.mode="",this.editAnchor="end",this.editStartPoint=o=>{this.editAnchor="start",this.startMarkup(o)},this.editCenterPoint=o=>{this.editAnchor="center",this.startMarkup(o)},this.editEndPoint=o=>{this.editAnchor="end",this.startMarkup(o)},this.updatePoints=o=>{if(null!=this.elementBounds&&this.pointerId===o.pointerId){const t=A(d(o,this.elementBounds),this.elementBounds);if("start"===this.editAnchor)this.start=t;else if("end"===this.editAnchor)this.end=t;else if(null!=this.start&&null!=this.end){const o=n.create((this.start.x+this.end.x)/2,(this.start.y+this.end.y)/2),e=o.x-t.x,r=o.y-t.y;this.start=n.create(this.start.x-e,this.start.y-r),this.end=n.create(this.end.x-e,this.end.y-r)}}},this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.startMarkup=o=>{var t;""!==this.mode&&null!=this.elementBounds&&null==this.pointerId&&(this.pointerId=o.pointerId,this.start=null!==(t=this.start)&&void 0!==t?t:A(d(o,this.elementBounds),this.elementBounds),this.editBegin.emit(),this.addDrawingInteractionListeners())},this.endMarkup=o=>{if(this.pointerId===o.pointerId){const o=null!=this.start&&null!=this.elementBounds?D(this.start,this.elementBounds):void 0,t=null!=this.end&&null!=this.elementBounds?D(this.end,this.elementBounds):void 0;""!==this.mode&&null!=o&&null!=t&&n.distance(o,t)>=2?this.editEnd.emit():(this.start=void 0,this.end=void 0),this.pointerId=void 0,this.removeDrawingInteractionListeners()}}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handleStartJsonChange(){this.updatePointsFromProps()}handleEndJsonChange(){this.updatePointsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){const o=g(this.hostEl);this.elementBounds=o}updatePointsFromProps(){this.start=this.start||w(this.startJson),this.end=this.end||w(this.endJson)}render(){if(null!=this.start&&null!=this.end&&null!=this.elementBounds){const t=D(this.start,this.elementBounds),e=D(this.end,this.elementBounds),i=p(t,e);return function(...o){return o.every((o=>!isNaN(o.x)&&!isNaN(o.y)))}(t,e)?o(r,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"arrow-shadow"})),o("g",{filter:"url(#arrow-shadow)"},o("polygon",{id:"arrow-head",class:"head",points:b(i)}),o("line",{id:"arrow-line",class:"line",x1:t.x,y1:t.y,x2:i.base.x,y2:i.base.y}),"edit"===this.mode&&o("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:t.x,y1:t.y,x2:e.x,y2:e.y}))),"edit"===this.mode&&o(R,{start:t,end:e,onStartAnchorPointerDown:this.editStartPoint,onCenterAnchorPointerDown:this.editCenterPoint,onEndAnchorPointerDown:this.editEndPoint}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart})):o(r,null)}return o(r,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],start:["handleStartJsonChange"],end:["handleEndJsonChange"],mode:["handleModeChange"]}}};S.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-arrow-line-stroke-color:var(--red-800);--viewer-markup-arrow-line-stroke-width:4;--viewer-markup-arrow-head-stroke-color:var(--red-800);--viewer-markup-arrow-head-stroke-width:4;--viewer-markup-arrow-head-fill-color:var(--red-800);--viewer-markup-arrow-head-fill-opacity:1;--viewer-markup-arrow-bounds-cap-border-color:var(--blue-400);--viewer-markup-arrow-bounds-cap-border-width:1px;--viewer-markup-arrow-bounds-cap-background-color:white;--viewer-markup-arrow-bounds-center-anchor-border-color:white;--viewer-markup-arrow-bounds-center-anchor-border-width:1px;--viewer-markup-arrow-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-arrow-bounds-outline-width:1px;--viewer-markup-arrow-bounds-outline-color:var(--blue-400);--viewer-markup-arrow-bounds-anchor-width:9px;--viewer-markup-arrow-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.line{pointer-events:auto;stroke:var(--viewer-markup-arrow-line-stroke-color);stroke-width:var(--viewer-markup-arrow-line-stroke-width);cursor:default}.head{pointer-events:auto;stroke:var(--viewer-markup-arrow-head-stroke-color);stroke-width:var(--viewer-markup-arrow-head-stroke-width);fill:var(--viewer-markup-arrow-head-fill-color);fill-opacity:var(--viewer-markup-arrow-head-fill-opacity);cursor:default}.bounds-line{pointer-events:auto;stroke:var(--viewer-markup-arrow-bounds-outline-color);stroke-width:var(--viewer-markup-arrow-bounds-outline-width)}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-arrow-bounds-anchor-width);height:var(--viewer-markup-arrow-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-arrow-bounds-center-anchor-border-width);border-color:var(--viewer-markup-arrow-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-center-anchor-background-color)}.bounds-cap-anchor{border-width:var(--viewer-markup-arrow-bounds-cap-border-width);border-color:var(--viewer-markup-arrow-bounds-cap-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-cap-background-color)}";const I=({bounds:t,onTopLeftAnchorPointerDown:e,onLeftAnchorPointerDown:r,onTopRightAnchorPointerDown:i,onRightAnchorPointerDown:n,onBottomLeftAnchorPointerDown:s,onBottomAnchorPointerDown:a,onBottomRightAnchorPointerDown:d,onTopAnchorPointerDown:c,onCenterAnchorPointerDown:l})=>{const u=h.pad(t,6),w=h.center(u);return o("div",{class:"bounds-container"},o("div",{class:"bounds-outline",style:{top:`${u.y}px`,left:`${u.x}px`,width:`${u.width}px`,height:`${u.height}px`}}),o(B,{id:"bounding-box-2d-top-left-anchor",name:"top-left-anchor",point:k(u,"top-left"),onPointerDown:e},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-left-anchor",name:"left-anchor",point:k(u,"left"),onPointerDown:r},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-top-right-anchor",name:"top-right-anchor",point:k(u,"top-right"),onPointerDown:i},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-right-anchor",name:"right-anchor",point:k(u,"right"),onPointerDown:n},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-left-anchor",name:"bottom-left-anchor",point:k(u,"bottom-left"),onPointerDown:s},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-anchor",name:"bottom-anchor",point:k(u,"bottom"),onPointerDown:a},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-right-anchor",name:"bottom-right-anchor",point:k(u,"bottom-right"),onPointerDown:d},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-top-anchor",name:"top-anchor",point:k(u,"top"),onPointerDown:c},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-center-anchor",name:"center-anchor",point:w,onPointerDown:l},o("div",{class:f("bounds-default-anchor","bounds-center-anchor")})))};let E=class{constructor(o){t(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.viewRendered=e(this,"viewRendered",7),this.mode="",this.editAnchor="bottom-right",this.updateEditAnchor=(o,t)=>{this.resizeBounds=this.bounds,this.editAnchor=t,this.startMarkup(o)},this.updatePoints=o=>{var t;if(null!=this.bounds&&null!=this.startPosition&&null!=this.elementBounds&&this.pointerId===o.pointerId){const e=A(d(o,this.elementBounds),this.elementBounds);this.bounds=L(null!==(t=this.resizeBounds)&&void 0!==t?t:this.bounds,this.startPosition,e,this.editAnchor,o.shiftKey)}},this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.startMarkup=o=>{var t;if(""!==this.mode&&null!=this.elementBounds&&null==this.pointerId){const e=A(d(o,this.elementBounds),this.elementBounds);this.pointerId=o.pointerId,this.startPosition=e,this.bounds=null!==(t=this.bounds)&&void 0!==t?t:h.create(e.x,e.y,0,0),this.resizeBounds=this.bounds,this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=o=>{var t,e;this.pointerId===o.pointerId&&(""!==this.mode&&null!=this.bounds&&(null===(t=this.bounds)||void 0===t?void 0:t.width)>0&&(null===(e=this.bounds)||void 0===e?void 0:e.height)>0?(this.editAnchor="bottom-right",this.editEnd.emit()):this.bounds=void 0,this.pointerId=void 0,this.removeDrawingInteractionListeners())}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updateBoundsFromProps()}componentDidLoad(){this.updateBoundsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handleBoundsJsonChange(){this.updateBoundsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){const o=g(this.hostEl);this.elementBounds=o}updateBoundsFromProps(){var o;this.bounds=null!==(o=this.bounds)&&void 0!==o?o:v(this.boundsJson)}render(){if(null!=this.bounds&&null!=this.elementBounds){const t=y(this.bounds,this.elementBounds),e=h.center(t);return o(r,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"circle-shadow"})),o("g",{filter:"url(#circle-shadow)"},o("ellipse",{class:"ellipse",cx:e.x,cy:e.y,rx:t.width/2,ry:t.height/2,stroke:"#000ff0","stroke-width":4,fill:"none"}))),"edit"===this.mode&&o(I,{bounds:t,onTopLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"top-left"),onTopRightAnchorPointerDown:o=>this.updateEditAnchor(o,"top-right"),onTopAnchorPointerDown:o=>this.updateEditAnchor(o,"top"),onBottomLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-left"),onBottomRightAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-right"),onBottomAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom"),onLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"left"),onRightAnchorPointerDown:o=>this.updateEditAnchor(o,"right"),onCenterAnchorPointerDown:o=>this.updateEditAnchor(o,"center")}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}return o(r,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],bounds:["handleBoundsJsonChange"],mode:["handleModeChange"]}}};E.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-circle-ellipse-stroke-color:var(--red-700);--viewer-markup-circle-ellipse-stroke-width:4;--viewer-markup-circle-ellipse-fill-color:none;--viewer-markup-circle-ellipse-fill-opacity:0;--viewer-markup-circle-bounds-outline-border-color:var(--blue-400);--viewer-markup-circle-bounds-outline-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-circle-bounds-edge-anchor-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-background-color:white;--viewer-markup-circle-bounds-center-anchor-border-color:white;--viewer-markup-circle-bounds-center-anchor-border-width:1px;--viewer-markup-circle-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-circle-bounds-anchor-width:9px;--viewer-markup-circle-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.ellipse{pointer-events:auto;stroke:var(--viewer-markup-circle-ellipse-stroke-color);stroke-width:var(--viewer-markup-circle-ellipse-stroke-width);fill:var(--viewer-markup-circle-ellipse-fill-color);fill-opacity:var(--viewer-markup-circle-ellipse-fill-opacity);cursor:default}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-outline{position:absolute;border-width:var(--viewer-markup-circle-bounds-outline-border-width);border-color:var(--viewer-markup-circle-bounds-outline-border-color);border-style:solid;box-shadow:0 0 3px rgba(0, 0, 0, 0.3)}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-circle-bounds-anchor-width);height:var(--viewer-markup-circle-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-circle-bounds-center-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-circle-bounds-center-anchor-background-color)}.bounds-edge-anchor{border-width:var(--viewer-markup-circle-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-edge-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-circle-bounds-edge-anchor-background-color)}";let $=class{constructor(o){t(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.viewRendered=e(this,"viewRendered",7),this.mode="",this.editAnchor="bottom-right",this.screenPoints=[],this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.updateEditAnchor=(o,t)=>{null!=this.elementBounds&&(this.resizeBounds=this.bounds,this.resizePoints=this.points,this.editAnchor=t,this.resizeStartPosition=A(d(o,this.elementBounds),this.elementBounds),this.addEditingInteractionListeners())},this.updateBounds=o=>{var t,e,r;if(null!=this.resizeStartPosition&&null!=this.elementBounds&&null!=this.resizeBounds&&null!=this.resizePoints){const i=A(d(o,this.elementBounds),this.elementBounds),s=L(this.resizeBounds,this.resizeStartPosition,i,this.editAnchor,o.shiftKey);this.points=(e=this.resizeBounds,r=s,this.resizePoints.map((o=>n.add(n.scale(n.subtract(o,e),r.width/(e.width||1),r.height/(e.height||1)),r)))),this.screenPoints=null!==(t=this.convertPointsToScreen())&&void 0!==t?t:this.screenPoints,this.bounds=s}},this.updatePoints=o=>{if(this.pointerId===o.pointerId&&null!=this.points&&null!=this.elementBounds){const t=d(o,this.elementBounds),e=A(t,this.elementBounds);this.updateMinAndMax(e),this.points=[...this.points,e],this.screenPoints=[...this.screenPoints,t]}},this.startMarkup=o=>{var t,e;if(null==this.pointerId&&""!==this.mode&&null!=this.elementBounds){this.pointerId=o.pointerId;const r=d(o,this.elementBounds),i=A(r,this.elementBounds);this.updateMinAndMax(i),this.points=null!==(t=this.points)&&void 0!==t?t:[i],this.screenPoints=null!==(e=this.screenPoints)&&void 0!==e?e:[r],this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=o=>{if(this.pointerId===o.pointerId){if(""!==this.mode&&null!=this.points&&this.points.length>2&&null!=this.elementBounds){const t=d(o,this.elementBounds),e=A(t,this.elementBounds);this.updateMinAndMax(e),this.points=[...this.points,e],this.screenPoints=[...this.screenPoints,t],this.editEnd.emit()}else this.points=void 0;this.min=void 0,this.max=void 0,this.pointerId=void 0,this.removeDrawingInteractionListeners()}},this.endEdit=()=>{this.resizeBounds=void 0,this.removeEditingInteractionListeners(),this.editEnd.emit()}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updatePointsFromProps()}componentDidLoad(){new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handlePointsJsonChange(){this.updatePointsFromProps()}handleBoundsJsonChange(){this.updatePointsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){var o;const t=g(this.hostEl);this.elementBounds=t,this.screenPoints=null!==(o=this.convertPointsToScreen())&&void 0!==o?o:this.screenPoints}updatePointsFromProps(){var o,t,e;this.points=null!==(o=this.points)&&void 0!==o?o:m(this.pointsJson),this.screenPoints=null!==(t=this.convertPointsToScreen())&&void 0!==t?t:[],this.bounds=null!==(e=this.bounds)&&void 0!==e?e:v(this.boundsJson)}render(){return this.screenPoints.length>0&&null!=this.elementBounds?o(r,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"freeform-markup-shadow"})),o("g",{filter:"url(#freeform-markup-shadow)"},o("path",{class:"path",d:this.screenPoints.reduce(((o,t)=>`${o}L${t.x},${t.y}`),`M${this.screenPoints[0].x},${this.screenPoints[0].y}`),fill:"none"}))),"edit"===this.mode&&null!=this.bounds&&o(I,{bounds:y(this.bounds,this.elementBounds),onTopLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"top-left"),onTopRightAnchorPointerDown:o=>this.updateEditAnchor(o,"top-right"),onTopAnchorPointerDown:o=>this.updateEditAnchor(o,"top"),onBottomLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-left"),onBottomRightAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-right"),onBottomAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom"),onLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"left"),onRightAnchorPointerDown:o=>this.updateEditAnchor(o,"right"),onCenterAnchorPointerDown:o=>this.updateEditAnchor(o,"center")}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart})):o(r,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async addEditingInteractionListeners(){"edit"===this.mode&&(window.addEventListener("pointermove",this.updateBounds),window.addEventListener("pointerup",this.endEdit))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}async removeEditingInteractionListeners(){"edit"===this.mode&&(window.removeEventListener("pointermove",this.updateBounds),window.removeEventListener("pointerup",this.endEdit))}updateMinAndMax(o){this.min=null!=this.min?n.create(Math.min(this.min.x,o.x),Math.min(this.min.y,o.y)):o,this.max=null!=this.max?n.create(Math.max(this.max.x,o.x),Math.max(this.max.y,o.y)):o,this.bounds=h.create(this.min.x,this.min.y,this.max.x-this.min.x,this.max.y-this.min.y)}convertPointsToScreen(){var o;const t=this.elementBounds;if(null!=t)return null===(o=this.points)||void 0===o?void 0:o.map((o=>D(o,t)))}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],points:["handlePointsJsonChange"],bounds:["handleBoundsJsonChange"],mode:["handleModeChange"]}}};$.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-freeform-stroke-color:var(--red-800);--viewer-markup-freeform-stroke-width:4;--viewer-markup-freeform-line-join:round;--viewer-markup-freeform-line-cap:round;--viewer-markup-freeform-bounds-outline-border-color:var(--blue-400);--viewer-markup-freeform-bounds-outline-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-freeform-bounds-edge-anchor-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-background-color:white;--viewer-markup-freeform-bounds-center-anchor-border-color:white;--viewer-markup-freeform-bounds-center-anchor-border-width:1px;--viewer-markup-freeform-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-freeform-bounds-anchor-width:9px;--viewer-markup-freeform-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.path{pointer-events:auto;cursor:default;stroke:var(--viewer-markup-freeform-stroke-color);stroke-width:var(--viewer-markup-freeform-stroke-width);stroke-linejoin:var(--viewer-markup-freeform-line-join);stroke-linecap:var(--viewer-markup-freeform-line-cap)}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-outline{position:absolute;border-width:var(--viewer-markup-freeform-bounds-outline-border-width);border-color:var(--viewer-markup-freeform-bounds-outline-border-color);border-style:solid;box-shadow:0 0 3px rgba(0, 0, 0, 0.3)}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-freeform-bounds-anchor-width);height:var(--viewer-markup-freeform-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-freeform-bounds-center-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-freeform-bounds-center-anchor-background-color)}.bounds-edge-anchor{border-width:var(--viewer-markup-freeform-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-edge-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-freeform-bounds-edge-anchor-background-color)}";export{S as vertex_viewer_markup_arrow,E as vertex_viewer_markup_circle,$ as vertex_viewer_markup_freeform}
|
|
4
|
+
import{h as o,r as t,c as r,H as e,g as i}from"./p-cafa57a6.js";import{p as n,d as s,g as h,i as a}from"./p-0aba71fd.js";import{g as d}from"./p-439220c6.js";import{i as c,a as l,b as u,p as w,c as p,d as b,e as v,f as m}from"./p-7cad9bf4.js";import{c as f}from"./p-f482325b.js";import"./p-112455b1.js";function g(o){return o.getBoundingClientRect()}function k(o,t){switch(t){case"top-left":return n.create(o.x,o.y);case"top":return n.create(o.x+o.width/2,o.y);case"top-right":return n.create(o.x+o.width,o.y);case"right":return n.create(o.x+o.width,o.y+o.height/2);case"bottom-right":return n.create(o.x+o.width,o.y+o.height);case"bottom":return n.create(o.x+o.width/2,o.y+o.height);case"bottom-left":return n.create(o.x,o.y+o.height);case"left":return n.create(o.x,o.y+o.height/2);case"center":return h.center(o)}}function x(o){return Math.min(o.width,o.height)}function D(o,t){const r=x(t);return n.add(n.scale(o,r,r),s.center(t))}function P(o,t){const r=x(t);return s.scale(r,r,o)}function y(o,t){const r=D(o,t),e=P(o,t);return h.fromPointAndDimensions(r,e)}function A(o,t){const r=function(o){return 1/x(o)}(t);return n.scale(n.subtract(o,s.center(t)),r,r)}function C(o,t,r){const e=h.fromPoints(o,t);if(r){const r=Math.max(e.width,e.height),i=e.height>e.width;return h.create(t.x<=o.x?i?o.x-r:t.x:o.x,t.y<=o.y?i?t.y:o.y-r:o.y,r,r)}return e}function L(o,t,r,e,i){const s=n.subtract(r,t),{x:a,y:d,width:c,height:l}=o,u=a+c,w=d+l,p=n.create(a,d),b=n.create(a,w),v=n.create(u,d),m=n.create(u,w);switch(e){case"top-left":return C(m,r,!!i);case"top":return C(m,n.create(a,r.y),!!i);case"top-right":return C(b,r,!!i);case"right":return C(b,n.create(r.x,d),!!i);case"bottom-right":return C(p,r,!!i);case"bottom":return C(p,n.create(u,r.y),!!i);case"bottom-left":return C(v,r,!!i);case"left":return C(m,n.create(r.x,d),!!i);case"center":return h.create(o.x+s.x,o.y+s.y,o.width,o.height)}}function T(o){const t=o.target;return function(o){return c(o)||l(o)||u(o)}(t)&&"edit"!==t.mode}const B=({id:t,rotation:r,name:e,point:i,onPointerDown:n},s)=>o("div",{id:t,class:"bounds-anchor-position",style:{top:`${i.y}px`,left:`${i.x}px`},onTouchStart:o=>o.preventDefault(),onPointerDown:n},o("div",{class:"bounds-anchor",style:{transform:`rotateZ(${null!=r?r:0}deg)`}},o("slot",{name:e},s))),M=({id:t})=>o("filter",{id:t,filterUnits:"userSpaceOnUse"},o("feGaussianBlur",{in:"SourceAlpha",stdDeviation:"2"}),o("feOffset",{dx:"0",dy:"1",result:"offsetblur"}),o("feFlood",{"flood-color":"#000000","flood-opacity":"0.25"}),o("feComposite",{in2:"offsetblur",operator:"in"}),o("feMerge",null,o("feMergeNode",null),o("feMergeNode",{in:"SourceGraphic"}))),R=({start:t,end:r,onStartAnchorPointerDown:e,onCenterAnchorPointerDown:i,onEndAnchorPointerDown:s})=>{const h=a.normalize(a.toDegrees(a.fromPoints(t,r))-270),d=n.create((t.x+r.x)/2,(t.y+r.y)/2);return o("div",{class:"bounds-container"},o(B,{id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:h,point:t,onPointerDown:e},o("div",{class:f("bounds-default-anchor","bounds-cap-anchor")})),o(B,{id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:h,point:r,onPointerDown:s},o("div",{class:f("bounds-default-anchor","bounds-cap-anchor")})),o(B,{id:"bounding-box-1d-center-anchor",name:"center-anchor",point:d,onPointerDown:i},o("div",{class:f("bounds-default-anchor","bounds-center-anchor")})))};let S=class{constructor(o){t(this,o),this.editBegin=r(this,"editBegin",7),this.editEnd=r(this,"editEnd",7),this.viewRendered=r(this,"viewRendered",7),this.mode="",this.editAnchor="end",this.editStartPoint=o=>{this.editAnchor="start",this.startMarkup(o)},this.editCenterPoint=o=>{this.editAnchor="center",this.startMarkup(o)},this.editEndPoint=o=>{this.editAnchor="end",this.startMarkup(o)},this.updatePoints=o=>{if(null!=this.elementBounds&&this.pointerId===o.pointerId){const t=A(d(o,this.elementBounds),this.elementBounds);if("start"===this.editAnchor)this.start=t;else if("end"===this.editAnchor)this.end=t;else if(null!=this.start&&null!=this.end){const o=n.create((this.start.x+this.end.x)/2,(this.start.y+this.end.y)/2),r=o.x-t.x,e=o.y-t.y;this.start=n.create(this.start.x-r,this.start.y-e),this.end=n.create(this.end.x-r,this.end.y-e)}}},this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.startMarkup=o=>{var t;""!==this.mode&&null!=this.elementBounds&&null==this.pointerId&&(this.pointerId=o.pointerId,this.start=null!==(t=this.start)&&void 0!==t?t:A(d(o,this.elementBounds),this.elementBounds),this.editBegin.emit(),this.addDrawingInteractionListeners())},this.endMarkup=o=>{if(this.pointerId===o.pointerId){const o=null!=this.start&&null!=this.elementBounds?D(this.start,this.elementBounds):void 0,t=null!=this.end&&null!=this.elementBounds?D(this.end,this.elementBounds):void 0;""!==this.mode&&null!=o&&null!=t&&n.distance(o,t)>=2?this.editEnd.emit():(this.start=void 0,this.end=void 0),this.pointerId=void 0,this.removeDrawingInteractionListeners()}}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handleStartJsonChange(){this.updatePointsFromProps()}handleEndJsonChange(){this.updatePointsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){const o=g(this.hostEl);this.elementBounds=o}updatePointsFromProps(){this.start=this.start||w(this.startJson),this.end=this.end||w(this.endJson)}render(){if(null!=this.start&&null!=this.end&&null!=this.elementBounds){const t=D(this.start,this.elementBounds),r=D(this.end,this.elementBounds),i=p(t,r);return function(...o){return o.every((o=>!isNaN(o.x)&&!isNaN(o.y)))}(t,r)?o(e,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"arrow-shadow"})),o("g",{filter:"url(#arrow-shadow)"},o("polygon",{id:"arrow-head",class:"head",points:b(i)}),o("line",{id:"arrow-line",class:"line",x1:t.x,y1:t.y,x2:i.base.x,y2:i.base.y}),"edit"===this.mode&&o("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:t.x,y1:t.y,x2:r.x,y2:r.y}))),"edit"===this.mode&&o(R,{start:t,end:r,onStartAnchorPointerDown:this.editStartPoint,onCenterAnchorPointerDown:this.editCenterPoint,onEndAnchorPointerDown:this.editEndPoint}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart})):o(e,null)}return o(e,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],start:["handleStartJsonChange"],end:["handleEndJsonChange"],mode:["handleModeChange"]}}};S.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-arrow-line-stroke-color:var(--red-800);--viewer-markup-arrow-line-stroke-width:4;--viewer-markup-arrow-head-stroke-color:var(--red-800);--viewer-markup-arrow-head-stroke-width:4;--viewer-markup-arrow-head-fill-color:var(--red-800);--viewer-markup-arrow-head-fill-opacity:1;--viewer-markup-arrow-bounds-cap-border-color:var(--blue-400);--viewer-markup-arrow-bounds-cap-border-width:1px;--viewer-markup-arrow-bounds-cap-background-color:white;--viewer-markup-arrow-bounds-center-anchor-border-color:white;--viewer-markup-arrow-bounds-center-anchor-border-width:1px;--viewer-markup-arrow-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-arrow-bounds-outline-width:1px;--viewer-markup-arrow-bounds-outline-color:var(--blue-400);--viewer-markup-arrow-bounds-anchor-width:9px;--viewer-markup-arrow-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.line{pointer-events:auto;stroke:var(--viewer-markup-arrow-line-stroke-color);stroke-width:var(--viewer-markup-arrow-line-stroke-width);cursor:default}.head{pointer-events:auto;stroke:var(--viewer-markup-arrow-head-stroke-color);stroke-width:var(--viewer-markup-arrow-head-stroke-width);fill:var(--viewer-markup-arrow-head-fill-color);fill-opacity:var(--viewer-markup-arrow-head-fill-opacity);cursor:default}.bounds-line{pointer-events:auto;stroke:var(--viewer-markup-arrow-bounds-outline-color);stroke-width:var(--viewer-markup-arrow-bounds-outline-width)}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-arrow-bounds-anchor-width);height:var(--viewer-markup-arrow-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-arrow-bounds-center-anchor-border-width);border-color:var(--viewer-markup-arrow-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-center-anchor-background-color)}.bounds-cap-anchor{border-width:var(--viewer-markup-arrow-bounds-cap-border-width);border-color:var(--viewer-markup-arrow-bounds-cap-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-cap-background-color)}";const I=({bounds:t,onTopLeftAnchorPointerDown:r,onLeftAnchorPointerDown:e,onTopRightAnchorPointerDown:i,onRightAnchorPointerDown:n,onBottomLeftAnchorPointerDown:s,onBottomAnchorPointerDown:a,onBottomRightAnchorPointerDown:d,onTopAnchorPointerDown:c,onCenterAnchorPointerDown:l})=>{const u=h.pad(t,6),w=h.center(u);return o("div",{class:"bounds-container"},o("div",{class:"bounds-outline",style:{top:`${u.y}px`,left:`${u.x}px`,width:`${u.width}px`,height:`${u.height}px`}}),o(B,{id:"bounding-box-2d-top-left-anchor",name:"top-left-anchor",point:k(u,"top-left"),onPointerDown:r},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-left-anchor",name:"left-anchor",point:k(u,"left"),onPointerDown:e},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-top-right-anchor",name:"top-right-anchor",point:k(u,"top-right"),onPointerDown:i},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-right-anchor",name:"right-anchor",point:k(u,"right"),onPointerDown:n},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-left-anchor",name:"bottom-left-anchor",point:k(u,"bottom-left"),onPointerDown:s},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-anchor",name:"bottom-anchor",point:k(u,"bottom"),onPointerDown:a},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-right-anchor",name:"bottom-right-anchor",point:k(u,"bottom-right"),onPointerDown:d},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-top-anchor",name:"top-anchor",point:k(u,"top"),onPointerDown:c},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-center-anchor",name:"center-anchor",point:w,onPointerDown:l},o("div",{class:f("bounds-default-anchor","bounds-center-anchor")})))};let E=class{constructor(o){t(this,o),this.editBegin=r(this,"editBegin",7),this.editEnd=r(this,"editEnd",7),this.viewRendered=r(this,"viewRendered",7),this.mode="",this.editAnchor="bottom-right",this.updateEditAnchor=(o,t)=>{this.resizeBounds=this.bounds,this.editAnchor=t,this.startMarkup(o)},this.updatePoints=o=>{var t;if(null!=this.bounds&&null!=this.startPosition&&null!=this.elementBounds&&this.pointerId===o.pointerId){const r=A(d(o,this.elementBounds),this.elementBounds);this.bounds=L(null!==(t=this.resizeBounds)&&void 0!==t?t:this.bounds,this.startPosition,r,this.editAnchor,o.shiftKey)}},this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.startMarkup=o=>{var t;if(""!==this.mode&&null!=this.elementBounds&&null==this.pointerId){const r=A(d(o,this.elementBounds),this.elementBounds);this.pointerId=o.pointerId,this.startPosition=r,this.bounds=null!==(t=this.bounds)&&void 0!==t?t:h.create(r.x,r.y,0,0),this.resizeBounds=this.bounds,this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=o=>{var t,r;this.pointerId===o.pointerId&&(""!==this.mode&&null!=this.bounds&&(null===(t=this.bounds)||void 0===t?void 0:t.width)>0&&(null===(r=this.bounds)||void 0===r?void 0:r.height)>0?(this.editAnchor="bottom-right",this.editEnd.emit()):this.bounds=void 0,this.pointerId=void 0,this.removeDrawingInteractionListeners())}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updateBoundsFromProps()}componentDidLoad(){this.updateBoundsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handleBoundsJsonChange(){this.updateBoundsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){const o=g(this.hostEl);this.elementBounds=o}updateBoundsFromProps(){var o;this.bounds=null!==(o=this.bounds)&&void 0!==o?o:v(this.boundsJson)}render(){if(null!=this.bounds&&null!=this.elementBounds){const t=y(this.bounds,this.elementBounds),r=h.center(t);return o(e,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"circle-shadow"})),o("g",{filter:"url(#circle-shadow)"},o("ellipse",{class:"ellipse",cx:r.x,cy:r.y,rx:t.width/2,ry:t.height/2,stroke:"#000ff0","stroke-width":4,fill:"none"}))),"edit"===this.mode&&o(I,{bounds:t,onTopLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"top-left"),onTopRightAnchorPointerDown:o=>this.updateEditAnchor(o,"top-right"),onTopAnchorPointerDown:o=>this.updateEditAnchor(o,"top"),onBottomLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-left"),onBottomRightAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-right"),onBottomAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom"),onLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"left"),onRightAnchorPointerDown:o=>this.updateEditAnchor(o,"right"),onCenterAnchorPointerDown:o=>this.updateEditAnchor(o,"center")}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}return o(e,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],bounds:["handleBoundsJsonChange"],mode:["handleModeChange"]}}};E.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-circle-ellipse-stroke-color:var(--red-700);--viewer-markup-circle-ellipse-stroke-width:4;--viewer-markup-circle-ellipse-fill-color:none;--viewer-markup-circle-ellipse-fill-opacity:0;--viewer-markup-circle-bounds-outline-border-color:var(--blue-400);--viewer-markup-circle-bounds-outline-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-circle-bounds-edge-anchor-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-background-color:white;--viewer-markup-circle-bounds-center-anchor-border-color:white;--viewer-markup-circle-bounds-center-anchor-border-width:1px;--viewer-markup-circle-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-circle-bounds-anchor-width:9px;--viewer-markup-circle-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.ellipse{pointer-events:auto;stroke:var(--viewer-markup-circle-ellipse-stroke-color);stroke-width:var(--viewer-markup-circle-ellipse-stroke-width);fill:var(--viewer-markup-circle-ellipse-fill-color);fill-opacity:var(--viewer-markup-circle-ellipse-fill-opacity);cursor:default}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-outline{position:absolute;border-width:var(--viewer-markup-circle-bounds-outline-border-width);border-color:var(--viewer-markup-circle-bounds-outline-border-color);border-style:solid;box-shadow:0 0 3px rgba(0, 0, 0, 0.3)}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-circle-bounds-anchor-width);height:var(--viewer-markup-circle-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-circle-bounds-center-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-circle-bounds-center-anchor-background-color)}.bounds-edge-anchor{border-width:var(--viewer-markup-circle-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-edge-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-circle-bounds-edge-anchor-background-color)}";let $=class{constructor(o){t(this,o),this.editBegin=r(this,"editBegin",7),this.editEnd=r(this,"editEnd",7),this.viewRendered=r(this,"viewRendered",7),this.mode="",this.editAnchor="bottom-right",this.screenPoints=[],this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.updateEditAnchor=(o,t)=>{null!=this.elementBounds&&(this.resizeBounds=this.bounds,this.resizePoints=this.points,this.editAnchor=t,this.resizeStartPosition=A(d(o,this.elementBounds),this.elementBounds),this.addEditingInteractionListeners())},this.updateBounds=o=>{var t,r,e;if(null!=this.resizeStartPosition&&null!=this.elementBounds&&null!=this.resizeBounds&&null!=this.resizePoints){const i=A(d(o,this.elementBounds),this.elementBounds),s=L(this.resizeBounds,this.resizeStartPosition,i,this.editAnchor,o.shiftKey);this.points=(r=this.resizeBounds,e=s,this.resizePoints.map((o=>n.add(n.scale(n.subtract(o,r),e.width/(r.width||1),e.height/(r.height||1)),e)))),this.screenPoints=null!==(t=this.convertPointsToScreen())&&void 0!==t?t:this.screenPoints,this.bounds=s}},this.updatePoints=o=>{if(this.pointerId===o.pointerId&&null!=this.points&&null!=this.elementBounds){const t=d(o,this.elementBounds),r=A(t,this.elementBounds);this.updateMinAndMax(r),this.points=[...this.points,r],this.screenPoints=[...this.screenPoints,t]}},this.startMarkup=o=>{var t,r;if(null==this.pointerId&&""!==this.mode&&null!=this.elementBounds){this.pointerId=o.pointerId;const e=d(o,this.elementBounds),i=A(e,this.elementBounds);this.updateMinAndMax(i),this.points=null!==(t=this.points)&&void 0!==t?t:[i],this.screenPoints=null!==(r=this.screenPoints)&&void 0!==r?r:[e],this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=o=>{if(this.pointerId===o.pointerId){if(""!==this.mode&&null!=this.points&&this.points.length>2&&null!=this.elementBounds){const t=d(o,this.elementBounds),r=A(t,this.elementBounds);this.updateMinAndMax(r),this.points=[...this.points,r],this.screenPoints=[...this.screenPoints,t],this.editEnd.emit()}else this.points=void 0;this.min=void 0,this.max=void 0,this.pointerId=void 0,this.removeDrawingInteractionListeners()}},this.endEdit=()=>{this.resizeBounds=void 0,this.removeEditingInteractionListeners(),this.editEnd.emit()}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updatePointsFromProps()}componentDidLoad(){new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handlePointsJsonChange(){this.updatePointsFromProps()}handleBoundsJsonChange(){this.updatePointsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){var o;const t=g(this.hostEl);this.elementBounds=t,this.screenPoints=null!==(o=this.convertPointsToScreen())&&void 0!==o?o:this.screenPoints}updatePointsFromProps(){var o,t,r;this.points=null!==(o=this.points)&&void 0!==o?o:m(this.pointsJson),this.screenPoints=null!==(t=this.convertPointsToScreen())&&void 0!==t?t:[],this.bounds=null!==(r=this.bounds)&&void 0!==r?r:v(this.boundsJson)}render(){return this.screenPoints.length>0&&null!=this.elementBounds?o(e,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"freeform-markup-shadow"})),o("g",{filter:"url(#freeform-markup-shadow)"},o("path",{class:"path",d:this.screenPoints.reduce(((o,t)=>`${o}L${t.x},${t.y}`),`M${this.screenPoints[0].x},${this.screenPoints[0].y}`),fill:"none"}))),"edit"===this.mode&&null!=this.bounds&&o(I,{bounds:y(this.bounds,this.elementBounds),onTopLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"top-left"),onTopRightAnchorPointerDown:o=>this.updateEditAnchor(o,"top-right"),onTopAnchorPointerDown:o=>this.updateEditAnchor(o,"top"),onBottomLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-left"),onBottomRightAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-right"),onBottomAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom"),onLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"left"),onRightAnchorPointerDown:o=>this.updateEditAnchor(o,"right"),onCenterAnchorPointerDown:o=>this.updateEditAnchor(o,"center")}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart})):o(e,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async addEditingInteractionListeners(){"edit"===this.mode&&(window.addEventListener("pointermove",this.updateBounds),window.addEventListener("pointerup",this.endEdit))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}async removeEditingInteractionListeners(){"edit"===this.mode&&(window.removeEventListener("pointermove",this.updateBounds),window.removeEventListener("pointerup",this.endEdit))}updateMinAndMax(o){this.min=null!=this.min?n.create(Math.min(this.min.x,o.x),Math.min(this.min.y,o.y)):o,this.max=null!=this.max?n.create(Math.max(this.max.x,o.x),Math.max(this.max.y,o.y)):o,this.bounds=h.create(this.min.x,this.min.y,this.max.x-this.min.x,this.max.y-this.min.y)}convertPointsToScreen(){var o;const t=this.elementBounds;if(null!=t)return null===(o=this.points)||void 0===o?void 0:o.map((o=>D(o,t)))}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],points:["handlePointsJsonChange"],bounds:["handleBoundsJsonChange"],mode:["handleModeChange"]}}};$.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-freeform-stroke-color:var(--red-800);--viewer-markup-freeform-stroke-width:4;--viewer-markup-freeform-line-join:round;--viewer-markup-freeform-line-cap:round;--viewer-markup-freeform-bounds-outline-border-color:var(--blue-400);--viewer-markup-freeform-bounds-outline-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-freeform-bounds-edge-anchor-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-background-color:white;--viewer-markup-freeform-bounds-center-anchor-border-color:white;--viewer-markup-freeform-bounds-center-anchor-border-width:1px;--viewer-markup-freeform-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-freeform-bounds-anchor-width:9px;--viewer-markup-freeform-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.path{pointer-events:auto;cursor:default;stroke:var(--viewer-markup-freeform-stroke-color);stroke-width:var(--viewer-markup-freeform-stroke-width);stroke-linejoin:var(--viewer-markup-freeform-line-join);stroke-linecap:var(--viewer-markup-freeform-line-cap)}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-outline{position:absolute;border-width:var(--viewer-markup-freeform-bounds-outline-border-width);border-color:var(--viewer-markup-freeform-bounds-outline-border-color);border-style:solid;box-shadow:0 0 3px rgba(0, 0, 0, 0.3)}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-freeform-bounds-anchor-width);height:var(--viewer-markup-freeform-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-freeform-bounds-center-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-freeform-bounds-center-anchor-background-color)}.bounds-edge-anchor{border-width:var(--viewer-markup-freeform-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-edge-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-freeform-bounds-edge-anchor-background-color)}";export{S as vertex_viewer_markup_arrow,E as vertex_viewer_markup_circle,$ as vertex_viewer_markup_freeform}
|