@vertexvis/viewer 0.10.2-canary.7 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/cjs/{browser.esm-ae55f058.js → browser.esm-17419694.js} +25 -25
  2. package/dist/cjs/{bundle.esm-c457ad4d.js → bundle.esm-b79513ef.js} +231 -207
  3. package/dist/cjs/{constants-4277684a.js → constants-1d65ed39.js} +1 -1
  4. package/dist/cjs/{cursors-b93b43ef.js → cursors-8aaf500f.js} +1 -1
  5. package/dist/cjs/{dom-cdb50ebc.js → dom-40804039.js} +1 -1
  6. package/dist/cjs/index.cjs.js +8 -7
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{markup-3dac4cef.js → markup-e84a143f.js} +11 -2
  9. package/dist/cjs/{measurement-b494bf55.js → measurement-4579193b.js} +2 -2
  10. package/dist/cjs/{orientation-42cc9e8d.js → orientation-09d0f3ef.js} +14 -7
  11. package/dist/cjs/{png-decoder-2add73dd.js → png-decoder-97ea96ba.js} +3 -3
  12. package/dist/cjs/{scene-23a0a330.js → scene-4397373a.js} +28524 -2446
  13. package/dist/cjs/{utils-6933381f.js → utils-414e6cfe.js} +2 -2
  14. package/dist/cjs/utils-440f0f7d.js +61 -0
  15. package/dist/cjs/vertex-scene-tree.cjs.entry.js +6 -5
  16. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
  17. package/dist/cjs/{vertex-viewer-markup-arrow_2.cjs.entry.js → vertex-viewer-markup-arrow_3.cjs.entry.js} +267 -4
  18. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +43 -9
  19. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +25 -5
  20. package/dist/cjs/vertex-viewer-measurement-distance_2.cjs.entry.js +8 -8
  21. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +5 -5
  22. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +5 -5
  23. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +3 -3
  24. package/dist/cjs/vertex-viewer.cjs.entry.js +141 -48
  25. package/dist/cjs/viewer.cjs.js +1 -1
  26. package/dist/cjs/{viewport-e69f8223.js → viewport-fc405a48.js} +31 -7
  27. package/dist/collection/collection-manifest.json +1 -0
  28. package/dist/collection/components/scene-tree/scene-tree.js +3 -2
  29. package/dist/collection/components/viewer/viewer.js +28 -3
  30. package/dist/collection/components/viewer-markup/utils.js +65 -1
  31. package/dist/collection/components/viewer-markup/viewer-markup.js +72 -16
  32. package/dist/collection/components/viewer-markup-circle/utils.js +2 -55
  33. package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js +4 -4
  34. package/dist/collection/components/viewer-markup-freeform.tsx/utils.js +10 -0
  35. package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.css +157 -0
  36. package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.js +413 -0
  37. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js +63 -9
  38. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance-components.js +1 -1
  39. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +2 -2
  40. package/dist/collection/lib/cursors.js +1 -1
  41. package/dist/collection/lib/interactions/baseInteractionHandler.js +5 -4
  42. package/dist/collection/lib/interactions/flyToPartKeyInteraction.js +1 -1
  43. package/dist/collection/lib/interactions/interactionApi.js +101 -22
  44. package/dist/collection/lib/interactions/mouseInteractions.js +17 -15
  45. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +2 -2
  46. package/dist/collection/lib/mappers.js +4 -3
  47. package/dist/collection/lib/scenes/camera.js +8 -2
  48. package/dist/collection/lib/scenes/operations.js +1 -1
  49. package/dist/collection/lib/scenes/scene.js +5 -2
  50. package/dist/collection/lib/types/frame.js +8 -2
  51. package/dist/collection/lib/types/markup.js +9 -1
  52. package/dist/collection/lib/types/stencilBuffer.js +2 -2
  53. package/dist/collection/lib/types/viewport.js +32 -8
  54. package/dist/collection/testing/fixtures.js +2 -1
  55. package/dist/esm/{browser.esm-7dbdf78a.js → browser.esm-e4fb17dc.js} +25 -25
  56. package/dist/esm/{bundle.esm-590d2273.js → bundle.esm-d891316f.js} +232 -208
  57. package/dist/esm/{constants-083f6b2c.js → constants-037e417f.js} +1 -1
  58. package/dist/esm/{cursors-39294365.js → cursors-00835249.js} +1 -1
  59. package/dist/esm/{dom-43682375.js → dom-d0877f90.js} +1 -1
  60. package/dist/esm/index.js +7 -7
  61. package/dist/esm/index.mjs +7 -7
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm/loader.mjs +1 -1
  64. package/dist/esm/{markup-3ce3dccd.js → markup-9b29aa94.js} +11 -3
  65. package/dist/esm/{measurement-78bd27fc.js → measurement-8430d5d6.js} +2 -2
  66. package/dist/esm/{orientation-c3e2af18.js → orientation-bb34b652.js} +14 -7
  67. package/dist/esm/{png-decoder-dfb97536.js → png-decoder-c4745070.js} +3 -3
  68. package/dist/esm/{scene-30ac6229.js → scene-72760305.js} +28532 -2454
  69. package/dist/esm/utils-5fe43b8a.js +52 -0
  70. package/dist/esm/{utils-b857bd7c.js → utils-f8e0baf7.js} +2 -2
  71. package/dist/esm/vertex-scene-tree.entry.js +6 -5
  72. package/dist/esm/vertex-viewer-dom-element_3.entry.js +4 -4
  73. package/dist/esm/{vertex-viewer-markup-arrow_2.entry.js → vertex-viewer-markup-arrow_3.entry.js} +267 -5
  74. package/dist/esm/vertex-viewer-markup-tool.entry.js +43 -9
  75. package/dist/esm/vertex-viewer-markup.entry.js +25 -5
  76. package/dist/esm/vertex-viewer-measurement-distance_2.entry.js +8 -8
  77. package/dist/esm/vertex-viewer-measurement-tool.entry.js +5 -5
  78. package/dist/esm/vertex-viewer-measurements.entry.js +5 -5
  79. package/dist/esm/vertex-viewer-view-cube.entry.js +3 -3
  80. package/dist/esm/vertex-viewer.entry.js +141 -48
  81. package/dist/esm/viewer.js +1 -1
  82. package/dist/esm/{viewport-8fea0743.js → viewport-d6f5cd7b.js} +31 -7
  83. package/dist/types/components/viewer/viewer.d.ts +4 -0
  84. package/dist/types/components/viewer-markup/utils.d.ts +8 -0
  85. package/dist/types/components/viewer-markup/viewer-markup.d.ts +13 -6
  86. package/dist/types/components/viewer-markup-circle/utils.d.ts +1 -4
  87. package/dist/types/components/viewer-markup-freeform.tsx/utils.d.ts +3 -0
  88. package/dist/types/components/viewer-markup-freeform.tsx/viewer-markup-freeform.d.ts +116 -0
  89. package/dist/types/components/viewer-markup-tool/viewer-markup-tool.d.ts +13 -1
  90. package/dist/types/components.d.ts +107 -10
  91. package/dist/types/lib/interactions/interactionApi.d.ts +22 -6
  92. package/dist/types/lib/interactions/mouseInteractions.d.ts +7 -6
  93. package/dist/types/lib/scenes/camera.d.ts +5 -1
  94. package/dist/types/lib/scenes/scene.d.ts +1 -1
  95. package/dist/types/lib/types/frame.d.ts +4 -1
  96. package/dist/types/lib/types/markup.d.ts +12 -1
  97. package/dist/types/lib/types/viewport.d.ts +17 -0
  98. package/dist/viewer/index.esm.js +1 -1
  99. package/dist/viewer/p-012fb54f.js +4 -0
  100. package/dist/viewer/{p-3dc15d99.entry.js → p-117324c0.entry.js} +1 -1
  101. package/dist/viewer/{p-1ee75110.entry.js → p-1c772ec1.entry.js} +1 -1
  102. package/dist/viewer/p-1f8a238b.js +4 -0
  103. package/dist/viewer/p-21e8510d.js +4 -0
  104. package/dist/viewer/{p-e3105f9a.entry.js → p-3c2aff67.entry.js} +1 -1
  105. package/dist/viewer/p-5389e9d4.js +4 -0
  106. package/dist/viewer/p-59d075d4.js +17 -0
  107. package/dist/viewer/{p-5b078339.js → p-62c6f482.js} +1 -1
  108. package/dist/viewer/p-640cb5f8.js +18 -0
  109. package/dist/viewer/p-68aaf1f8.entry.js +4 -0
  110. package/dist/viewer/{p-05b2444e.js → p-75682963.js} +1 -1
  111. package/dist/viewer/{p-4183c421.entry.js → p-79c45c02.entry.js} +1 -1
  112. package/dist/viewer/p-835e158e.js +4 -0
  113. package/dist/viewer/p-8c255868.entry.js +4 -0
  114. package/dist/viewer/{p-f4a492e1.js → p-9faabd97.js} +1 -1
  115. package/dist/viewer/p-b122ee39.js +4 -0
  116. package/dist/viewer/p-b36b3d1a.js +4 -0
  117. package/dist/viewer/{p-7c71db57.entry.js → p-bc9e6919.entry.js} +1 -1
  118. package/dist/viewer/{p-f090a3f3.entry.js → p-c818c80e.entry.js} +1 -1
  119. package/dist/viewer/{p-e96bc9a2.js → p-d42a482c.js} +1 -1
  120. package/dist/viewer/p-f43e8cc2.entry.js +4 -0
  121. package/dist/viewer/p-f75436be.entry.js +4 -0
  122. package/dist/viewer/viewer.esm.js +1 -1
  123. package/package.json +18 -16
  124. package/readme.md +6 -6
  125. package/dist/cjs/utils-96f244e1.js +0 -104
  126. package/dist/esm/utils-a550c58f.js +0 -96
  127. package/dist/viewer/p-11bdd2c4.js +0 -4
  128. package/dist/viewer/p-14182324.entry.js +0 -4
  129. package/dist/viewer/p-2768474e.js +0 -4
  130. package/dist/viewer/p-2e11803d.js +0 -4
  131. package/dist/viewer/p-6d4ab5fc.js +0 -17
  132. package/dist/viewer/p-964642c6.js +0 -4
  133. package/dist/viewer/p-9e856d0a.entry.js +0 -4
  134. package/dist/viewer/p-a717d9ff.js +0 -4
  135. package/dist/viewer/p-a9434d8e.entry.js +0 -4
  136. package/dist/viewer/p-af806858.js +0 -4
  137. package/dist/viewer/p-b5c350a7.js +0 -4
  138. package/dist/viewer/p-d912dd24.js +0 -18
  139. package/dist/viewer/p-f6d75616.entry.js +0 -4
@@ -0,0 +1,4 @@
1
+ /**!
2
+ * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import{h as o,r,c as e,H as t,g as i}from"./p-c9d8a379.js";import{k as n,p as s,f as h,g as a}from"./p-640cb5f8.js";import{g as d}from"./p-75682963.js";import{p as c,c as l,d as u,e as w,f as p}from"./p-835e158e.js";import{c as b}from"./p-f482325b.js";import"./p-112455b1.js";const v=({id:r,rotation:e,name:t,point:i,onPointerDown:n},s)=>o("div",{id:r,class:"bounds-anchor-position",style:{top:`${i.y}px`,left:`${i.x}px`},onPointerDown:n},o("div",{class:"bounds-anchor",style:{transform:`rotateZ(${null!=e?e:0}deg)`}},o("slot",{name:t},s))),m=({id:r})=>o("filter",{id:r,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"}))),f=({start:r,end:e,onStartAnchorPointerDown:t,onCenterAnchorPointerDown:i,onEndAnchorPointerDown:h})=>{const a=n.normalize(n.toDegrees(n.fromPoints(r,e))-270),d=s.create((r.x+e.x)/2,(r.y+e.y)/2);return o("div",{class:"bounds-container"},o(v,{id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:a,point:r,onPointerDown:t},o("div",{class:b("bounds-default-anchor","bounds-cap-anchor")})),o(v,{id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:a,point:e,onPointerDown:h},o("div",{class:b("bounds-default-anchor","bounds-cap-anchor")})),o(v,{id:"bounding-box-1d-center-anchor",name:"center-anchor",point:d,onPointerDown:i},o("div",{class:b("bounds-default-anchor","bounds-center-anchor")})))};function g(o,r){switch(r){case"top-left":return s.create(o.x,o.y);case"top":return s.create(o.x+o.width/2,o.y);case"top-right":return s.create(o.x+o.width,o.y);case"right":return s.create(o.x+o.width,o.y+o.height/2);case"bottom-right":return s.create(o.x+o.width,o.y+o.height);case"bottom":return s.create(o.x+o.width/2,o.y+o.height);case"bottom-left":return s.create(o.x,o.y+o.height);case"left":return s.create(o.x,o.y+o.height/2);case"center":return a.center(o)}}function k(o){return Math.min(o.width,o.height)}function x(o,r){const e=k(r);return s.add(s.scale(o,e,e),h.center(r))}function D(o,r){const e=k(r);return h.scale(e,e,o)}function P(o,r){const e=x(o,r),t=D(o,r);return a.fromPointAndDimensions(e,t)}function y(o,r){const e=function(o){return 1/k(o)}(r);return s.scale(s.subtract(o,h.center(r)),e,e)}function A(o,r,e){const t=a.fromPoints(o,r);if(e){const e=Math.max(t.width,t.height),i=t.height>t.width;return a.create(r.x<=o.x?i?o.x-e:r.x:o.x,r.y<=o.y?i?r.y:o.y-e:o.y,e,e)}return t}function L(o,r,e,t,i){const n=s.subtract(e,r),{x:h,y:d,width:c,height:l}=o,u=h+c,w=d+l,p=s.create(h,d),b=s.create(h,w),v=s.create(u,d),m=s.create(u,w);switch(t){case"top-left":return A(m,e,!!i);case"top":return A(m,s.create(h,e.y),!!i);case"top-right":return A(b,e,!!i);case"right":return A(b,s.create(e.x,d),!!i);case"bottom-right":return A(p,e,!!i);case"bottom":return A(p,s.create(u,e.y),!!i);case"bottom-left":return A(v,e,!!i);case"left":return A(m,s.create(e.x,d),!!i);case"center":return a.create(o.x+n.x,o.y+n.y,o.width,o.height)}}function C(o){return o.getBoundingClientRect()}const B=class{constructor(o){r(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.editCancel=e(this,"editCancel",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){const r=y(d(o,this.elementBounds),this.elementBounds);if("start"===this.editAnchor)this.start=r;else if("end"===this.editAnchor)this.end=r;else if(null!=this.start&&null!=this.end){const o=s.create((this.start.x+this.end.x)/2,(this.start.y+this.end.y)/2),e=o.x-r.x,t=o.y-r.y;this.start=s.create(this.start.x-e,this.start.y-t),this.end=s.create(this.end.x-e,this.end.y-t)}}},this.startMarkup=o=>{var r;""!==this.mode&&null!=this.elementBounds&&(this.start=null!==(r=this.start)&&void 0!==r?r:y(d(o,this.elementBounds),this.elementBounds),this.editBegin.emit(),this.addDrawingInteractionListeners())},this.endMarkup=()=>{""!==this.mode&&null!=this.end?this.editEnd.emit():(this.start=void 0,this.editCancel.emit()),this.removeDrawingInteractionListeners()}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners()}handleViewerChanged(o,r){null!=r&&this.removeInteractionListeners(r),null!=o&&this.addInteractionListeners(o)}handleStartJsonChange(){this.updatePointsFromProps()}handleEndJsonChange(){this.updatePointsFromProps()}updateViewport(){const o=C(this.hostEl);this.elementBounds=o}updatePointsFromProps(){this.start=this.start||c(this.startJson),this.end=this.end||c(this.endJson)}render(){if(null!=this.start&&null!=this.end&&null!=this.elementBounds){const r=x(this.start,this.elementBounds),e=x(this.end,this.elementBounds),i=l(r,e);return o(t,null,o("svg",{class:"svg"},o("defs",null,o(m,{id:"arrow-shadow"})),o("g",{filter:"url(#arrow-shadow)"},o("polygon",{id:"arrow-head",class:"head",points:u(i)}),o("line",{id:"arrow-line",class:"line",x1:r.x,y1:r.y,x2:i.base.x,y2:i.base.y}),"edit"===this.mode&&o("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:r.x,y1:r.y,x2:e.x,y2:e.y}))),"edit"===this.mode&&o(f,{start:r,end:e,onStartAnchorPointerDown:this.editStartPoint,onCenterAnchorPointerDown:this.editCenterPoint,onEndAnchorPointerDown:this.editEndPoint}))}return o(t,null,o("div",{class:"create-overlay",onPointerDown:o=>this.startMarkup(o)}))}async addInteractionListeners(o){const r=await o.getInteractionTarget();"create"===this.mode&&r.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"]}}};B.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:r,onTopLeftAnchorPointerDown:e,onLeftAnchorPointerDown:t,onTopRightAnchorPointerDown:i,onRightAnchorPointerDown:n,onBottomLeftAnchorPointerDown:s,onBottomAnchorPointerDown:h,onBottomRightAnchorPointerDown:d,onTopAnchorPointerDown:c,onCenterAnchorPointerDown:l})=>{const u=a.pad(r,6),w=a.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(v,{id:"bounding-box-2d-top-left-anchor",name:"top-left-anchor",point:g(u,"top-left"),onPointerDown:e},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-left-anchor",name:"left-anchor",point:g(u,"left"),onPointerDown:t},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-top-right-anchor",name:"top-right-anchor",point:g(u,"top-right"),onPointerDown:i},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-right-anchor",name:"right-anchor",point:g(u,"right"),onPointerDown:n},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-bottom-left-anchor",name:"bottom-left-anchor",point:g(u,"bottom-left"),onPointerDown:s},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-bottom-anchor",name:"bottom-anchor",point:g(u,"bottom"),onPointerDown:h},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-bottom-right-anchor",name:"bottom-right-anchor",point:g(u,"bottom-right"),onPointerDown:d},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-top-anchor",name:"top-anchor",point:g(u,"top"),onPointerDown:c},o("div",{class:b("bounds-default-anchor","bounds-edge-anchor")})),o(v,{id:"bounding-box-2d-center-anchor",name:"center-anchor",point:w,onPointerDown:l},o("div",{class:b("bounds-default-anchor","bounds-center-anchor")})))},E=class{constructor(o){r(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.editCancel=e(this,"editCancel",7),this.mode="",this.editAnchor="bottom-right",this.updateEditAnchor=(o,r)=>{this.resizeBounds=this.bounds,this.editAnchor=r,this.startMarkup(o)},this.updatePoints=o=>{var r;if(null!=this.bounds&&null!=this.startPosition&&null!=this.elementBounds){const e=y(d(o,this.elementBounds),this.elementBounds);this.bounds=L(null!==(r=this.resizeBounds)&&void 0!==r?r:this.bounds,this.startPosition,e,this.editAnchor,o.shiftKey)}},this.startMarkup=o=>{var r;if(""!==this.mode&&null!=this.elementBounds){const e=y(d(o,this.elementBounds),this.elementBounds);this.startPosition=e,this.bounds=null!==(r=this.bounds)&&void 0!==r?r:a.create(e.x,e.y,0,0),this.resizeBounds=this.bounds,this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=()=>{var o,r;""!==this.mode&&null!=this.bounds&&(null===(o=this.bounds)||void 0===o?void 0:o.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.editCancel.emit()),this.removeDrawingInteractionListeners()}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updateBoundsFromProps()}componentDidLoad(){this.updateBoundsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners()}handleViewerChanged(o,r){null!=r&&this.removeInteractionListeners(r),null!=o&&this.addInteractionListeners(o)}handleBoundsJsonChange(){this.updateBoundsFromProps()}updateViewport(){const o=C(this.hostEl);this.elementBounds=o}updateBoundsFromProps(){var o;this.bounds=null!==(o=this.bounds)&&void 0!==o?o:w(this.boundsJson)}render(){if(null!=this.bounds&&null!=this.elementBounds){const r=P(this.bounds,this.elementBounds),e=a.center(r);return o(t,null,o("svg",{class:"svg"},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:r.width/2,ry:r.height/2,stroke:"#000ff0","stroke-width":4,fill:"none"}))),"edit"===this.mode&&o(I,{bounds:r,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")}))}return o(t,null,o("div",{class:"create-overlay",onPointerDown:o=>this.startMarkup(o)}))}async addInteractionListeners(o){const r=await o.getInteractionTarget();"create"===this.mode&&r.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"]}}};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)}";const M=class{constructor(o){r(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.editCancel=e(this,"editCancel",7),this.mode="",this.editAnchor="bottom-right",this.screenPoints=[],this.updateEditAnchor=(o,r)=>{null!=this.elementBounds&&(this.resizeBounds=this.bounds,this.resizePoints=this.points,this.editAnchor=r,this.resizeStartPosition=y(d(o,this.elementBounds),this.elementBounds),this.addEditingInteractionListeners())},this.updateBounds=o=>{var r,e,t;if(null!=this.resizeStartPosition&&null!=this.elementBounds&&null!=this.resizeBounds&&null!=this.resizePoints){const i=y(d(o,this.elementBounds),this.elementBounds),n=L(this.resizeBounds,this.resizeStartPosition,i,this.editAnchor,o.shiftKey);this.points=(e=this.resizeBounds,t=n,this.resizePoints.map((o=>s.add(s.scale(s.subtract(o,e),t.width/(e.width||1),t.height/(e.height||1)),t)))),this.screenPoints=null!==(r=this.convertPointsToScreen())&&void 0!==r?r:this.screenPoints,this.bounds=n}},this.updatePoints=o=>{if(null!=this.points&&null!=this.elementBounds){const r=d(o,this.elementBounds),e=y(r,this.elementBounds);this.updateMinAndMax(e),this.points=[...this.points,e],this.screenPoints=[...this.screenPoints,r]}},this.startMarkup=o=>{var r,e;if(""!==this.mode&&null!=this.elementBounds){const t=d(o,this.elementBounds),i=y(t,this.elementBounds);this.updateMinAndMax(i),this.points=null!==(r=this.points)&&void 0!==r?r:[i],this.screenPoints=null!==(e=this.screenPoints)&&void 0!==e?e:[t],this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=o=>{if(""!==this.mode&&null!=this.points&&this.points.length>1&&null!=this.elementBounds){const r=d(o,this.elementBounds),e=y(r,this.elementBounds);this.updateMinAndMax(e),this.points=[...this.points,e],this.screenPoints=[...this.screenPoints,r],this.editEnd.emit()}else this.points=void 0,this.editCancel.emit();this.min=void 0,this.max=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(){this.updatePointsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners()}handleViewerChanged(o,r){null!=r&&this.removeInteractionListeners(r),null!=o&&this.addInteractionListeners(o)}handlePointsJsonChange(){this.updatePointsFromProps()}handleBoundsJsonChange(){this.updatePointsFromProps()}updateViewport(){var o;const r=C(this.hostEl);this.elementBounds=r,this.screenPoints=null!==(o=this.convertPointsToScreen())&&void 0!==o?o:this.screenPoints}updatePointsFromProps(){var o,r,e;this.points=null!==(o=this.points)&&void 0!==o?o:p(this.pointsJson),this.screenPoints=null!==(r=this.convertPointsToScreen())&&void 0!==r?r:[],this.bounds=null!==(e=this.bounds)&&void 0!==e?e:w(this.boundsJson)}render(){return this.screenPoints.length>0&&null!=this.elementBounds?o(t,null,o("svg",{class:"svg"},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,r)=>`${o}L${r.x},${r.y}`),`M${this.screenPoints[0].x},${this.screenPoints[0].y}`),fill:"none"}))),"edit"===this.mode&&null!=this.bounds&&o(I,{bounds:P(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")})):o(t,null,o("div",{class:"create-overlay",onPointerDown:o=>this.startMarkup(o)}))}async addInteractionListeners(o){const r=await o.getInteractionTarget();"create"===this.mode&&r.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?s.create(Math.min(this.min.x,o.x),Math.min(this.min.y,o.y)):o,this.max=null!=this.max?s.create(Math.max(this.max.x,o.x),Math.max(this.max.y,o.y)):o,this.bounds=a.create(this.min.x,this.min.y,this.max.x-this.min.x,this.max.y-this.min.y)}convertPointsToScreen(){var o;const r=this.elementBounds;if(null!=r)return null===(o=this.points)||void 0===o?void 0:o.map((o=>x(o,r)))}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],points:["handlePointsJsonChange"],bounds:["handleBoundsJsonChange"]}}};M.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{B as vertex_viewer_markup_arrow,E as vertex_viewer_markup_circle,M as vertex_viewer_markup_freeform}
@@ -1,4 +1,4 @@
1
1
  /**!
2
2
  * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{E as s}from"./p-6d4ab5fc.js";class t{constructor(){this.onChanged=new s,this.cursors=[],this.nextId=0}add(s,h=t.NORMAL_PRIORITY){const a=++this.nextId,i={id:a,cursor:s,priority:h,dispose:()=>this.remove(a)};return this.cursors.push(i),this.onChanged.emit(),i}remove(s){const t=this.cursors.findIndex((({id:t})=>t===s));t>=0&&(this.cursors.splice(t,1),this.onChanged.emit())}getActiveCursor(){var s;return null===(s=this.cursors.concat().reverse().sort(((s,t)=>t.priority-s.priority))[0])||void 0===s?void 0:s.cursor}}t.LOW_PRIORITY=0,t.NORMAL_PRIORITY=10,t.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};export{t as C,h as m}
4
+ import{E as s}from"./p-59d075d4.js";class t{constructor(){this.onChanged=new s,this.cursors=[],this.nextId=0}add(s,h=t.NORMAL_PRIORITY){const i=++this.nextId,a={id:i,cursor:s,priority:h,dispose:()=>this.remove(i)};return this.cursors.push(a),this.onChanged.emit(),a}remove(s){const t=this.cursors.findIndex((({id:t})=>t===s));t>=0&&(this.cursors.splice(t,1),this.onChanged.emit())}getActiveCursor(){var s;return null===(s=this.cursors.concat().reverse().sort(((s,t)=>t.priority-s.priority))[0])||void 0===s?void 0:s.cursor}}t.LOW_PRIORITY=0,t.NORMAL_PRIORITY=10,t.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};export{t as C,h as m}