@qaecy/cue-ui 0.0.1

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 (52) hide show
  1. package/README.md +254 -0
  2. package/document-viewer/130.js +1 -0
  3. package/document-viewer/160.js +1 -0
  4. package/document-viewer/241.js +1 -0
  5. package/document-viewer/266.js +1 -0
  6. package/document-viewer/315.js +1 -0
  7. package/document-viewer/344.js +1 -0
  8. package/document-viewer/376.js +1 -0
  9. package/document-viewer/3rdpartylicenses.txt +2153 -0
  10. package/document-viewer/523.js +1 -0
  11. package/document-viewer/560.js +1 -0
  12. package/document-viewer/734.js +1 -0
  13. package/document-viewer/829.js +1 -0
  14. package/document-viewer/83.js +1 -0
  15. package/document-viewer/843.js +1 -0
  16. package/document-viewer/888.js +1 -0
  17. package/document-viewer/common.js +1 -0
  18. package/document-viewer/index.html +54 -0
  19. package/document-viewer/main.js +1 -0
  20. package/document-viewer/polyfills.js +1 -0
  21. package/document-viewer/poppins-latin-400-normal.woff +0 -0
  22. package/document-viewer/poppins-latin-400-normal.woff2 +0 -0
  23. package/document-viewer/poppins-latin-ext-400-normal.woff +0 -0
  24. package/document-viewer/poppins-latin-ext-400-normal.woff2 +0 -0
  25. package/document-viewer/runtime.js +1 -0
  26. package/document-viewer/styles.css +1 -0
  27. package/id-builder/3rdpartylicenses.txt +505 -0
  28. package/id-builder/index.html +13 -0
  29. package/id-builder/main.js +1 -0
  30. package/id-builder/polyfills.js +1 -0
  31. package/id-builder/poppins-latin-400-normal.woff +0 -0
  32. package/id-builder/poppins-latin-400-normal.woff2 +0 -0
  33. package/id-builder/poppins-latin-ext-400-normal.woff +0 -0
  34. package/id-builder/poppins-latin-ext-400-normal.woff2 +0 -0
  35. package/id-builder/runtime.js +1 -0
  36. package/id-builder/styles.css +1 -0
  37. package/logo/3rdpartylicenses.txt +346 -0
  38. package/logo/index.html +13 -0
  39. package/logo/main.js +1 -0
  40. package/logo/polyfills.js +1 -0
  41. package/logo/runtime.js +1 -0
  42. package/package.json +35 -0
  43. package/project-documents/3rdpartylicenses.txt +830 -0
  44. package/project-documents/index.html +88 -0
  45. package/project-documents/main.js +1 -0
  46. package/project-documents/polyfills.js +1 -0
  47. package/project-documents/poppins-latin-400-normal.woff +0 -0
  48. package/project-documents/poppins-latin-400-normal.woff2 +0 -0
  49. package/project-documents/poppins-latin-ext-400-normal.woff +0 -0
  50. package/project-documents/poppins-latin-ext-400-normal.woff2 +0 -0
  51. package/project-documents/runtime.js +1 -0
  52. package/project-documents/styles.css +1 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkcue_ui=self.webpackChunkcue_ui||[]).push([[523],{3523(d,o,t){t.d(o,{TextViewer:()=>u});var l=t(467),r=t(7705),i=t(5802),c=t(2245),e=t(5547);let u=(()=>{class a{fileURL=r.hFB.required();html=(0,i.vPA)("");onFile=(0,i.QZP)((()=>{var _=this;return(0,l.A)(function*(){const s=yield(yield fetch(_.fileURL())).text();_.html.set(`<div class="page">\n <pre style="font-family: inherit; margin: 0;">${s}</pre>\n</div>`)})})());static \u0275fac=function(n){return new(n||a)};static \u0275cmp=e.VBU({type:a,selectors:[["cue-text-viewer"]],inputs:{fileURL:[1,"fileURL"]},decls:2,vars:1,consts:[[1,"page"],[3,"innerHTML"]],template:function(n,s){1&n&&(e.j41(0,"div",0),e.nrm(1,"cue-typography",1),e.k0s()),2&n&&(e.R7$(),e.Y8G("innerHTML",s.html(),e.npT))},dependencies:[c.o],styles:[".page[_ngcontent-%COMP%]{overflow-y:auto;height:100%}"],changeDetection:0})}return a})()}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkcue_ui=self.webpackChunkcue_ui||[]).push([[560],{5187($,F,_){_.d(F,{Z:()=>t});var s=_(7705),g=_(2271),E=_(5970),z=_(5547);const S=["*"];let t=(()=>{class w{style=(0,s.hFB)("");variant=(0,s.hFB)("default");shadow=(0,s.hFB)(!1);padded=(0,s.hFB)(!0);scrollable=(0,s.hFB)(!1);maxHeight=(0,s.hFB)(void 0);maxContentHeight=(0,s.hFB)(!1);isScrollable=(0,g.EW)(()=>this.scrollable()||void 0!==this.maxHeight());getClass=(0,g.EW)(()=>`variant-${this.variant()}`);getStyles=(0,g.EW)(()=>{const I="fade"===this.variant()?"neutral":this.variant(),C=[`\n color: var(--cue-${I}Contrast);\n --background-color: var(--cue-${I});\n background-color: var(--background-color);\n max-height: ${this.maxHeight()??"none"};\n position: ${this.isScrollable()?"relative":void 0};\n min-height: ${this.isScrollable()?void 0:"fit-content"};\n `];return"fade"===this.variant()&&C.push(`\n background-image: linear-gradient(to bottom,var(--cue-${I}),var(--cue-main-background));\n `),C.push(this.style()),C.join("")});innerDisplay=(0,g.EW)(()=>this.isScrollable()?"block":"contents");onResize(I){if(!this.maxContentHeight())return;const C=Array.from(I.element.children).reduce((k,A)=>A.getBoundingClientRect().height+k,0);I.element.parentElement.style.maxHeight=`calc(${C}px + var(--cue-card-padding-y) * 2 + 2px)`}static \u0275fac=function(C){return new(C||w)};static \u0275cmp=z.VBU({type:w,selectors:[["cue-card"]],hostVars:8,hostBindings:function(C,k){2&C&&(z.Aen(k.getStyles()),z.HbH(k.getClass()),z.AVh("padded",k.padded())("shadow",k.shadow()))},inputs:{style:[1,"style"],variant:[1,"variant"],shadow:[1,"shadow"],padded:[1,"padded"],scrollable:[1,"scrollable"],maxHeight:[1,"maxHeight"],maxContentHeight:[1,"maxContentHeight"]},ngContentSelectors:S,decls:2,vars:2,consts:[["cueResized","",1,"inner",3,"resized"]],template:function(C,k){1&C&&(z.NAR(),z.j41(0,"div",0),z.bIt("resized",function(X){return k.onResize(X)}),z.SdG(1),z.k0s()),2&C&&z.xc7("display",k.innerDisplay())},dependencies:[E.C],styles:["[_nghost-%COMP%]{display:block;border-radius:var(--cue-card-border-radius);border:1px solid var(--cue-card-border-color);box-sizing:border-box;overflow:hidden;--cue-scrollbar-thumb-color: var(--cue-color-lightgray)}.padded[_nghost-%COMP%]{padding:var(--cue-card-padding-y) var(--cue-card-padding-x)}.shadow[_nghost-%COMP%]{box-shadow:var(--cue-card-box-shadow)}.variant-default[_nghost-%COMP%]{--cue-paginator-text-color: var(--cue-paginator-text-color);--cue-input-border-bottom-color: var(--cue-main-foreground);--cue-input-placeholder-color: var(--cue-color-darkmidgray);--cue-input-label-color: var(--cue-main-foreground);--cue-input-value-color: var(--cue-main-foreground);--cue-stepper-border-color: var(--cue-main-foreground);--cue-stepper-fill-color: var(--cue-main-foreground);--cue-stepper-connector-color: var(--cue-main-foreground)}body.dark .variant-default[_nghost-%COMP%]{--cue-scrollbar-thumb-color: var(--cue-color-midgray);--cue-paginator-text-color: var(--cue-color-midgray)}.variant-secondary[_nghost-%COMP%], .variant-primary[_nghost-%COMP%]{--cue-button-primary-focus-color: var(--cue-color-ultralightgray);--cue-button-primary-foreground: var(--cue-color-blue);--cue-button-primary-border-color: var(--cue-color-ultralightgray);--cue-button-primary-background: var(--cue-color-ultralightgray);--cue-button-primary-disabled-foreground: var(--cue-color-midgray);--cue-button-primary-disabled-background: var(--cue-color-lightgray);--cue-button-primary-disabled-border-color: var(--cue-color-lightgray);--cue-button-secondary-disabled-foreground: var(--cue-color-midgray);--cue-button-secondary-disabled-border-color: var(--cue-color-midgray);--cue-input-value-color: var(--cue-color-ultralightgray);--cue-input-label-color: var(--cue-color-ultralightgray);--cue-input-placeholder-color: var(--cue-color-lightgray);--cue-input-border-bottom-color: var(--cue-color-ultralightgray);--cue-input-switch-background: rgba(255, 255, 255, .25);--cue-input-switch-checked-background: var(--cue-color-green);--cue-input-switch-checked-indicator-background: var(--cue-color-darkgray);--cue-stepper-border-color: var(--cue-color-ultralightgray);--cue-stepper-fill-color: var(--cue-color-ultralightgray);--cue-stepper-connector-color: var(--cue-color-ultralightgray);--cue-table-text-color: var(--cue-color-ultralightgray);--cue-table-secondary-text-color: var(--cue-color-lightgray);--cue-table-row-border-bottom-color: var(--cue-color-ultralightgray);--cue-chart-text-color: var(--cue-color-ultralightgray);--cue-paginator-text-color: var(--cue-color-ultralightgray)}:is(.variant-secondary[_nghost-%COMP%], .variant-primary[_nghost-%COMP%]) .ag-cell{--cue-input-value-color: var(--cue-table-text-color);--cue-input-placeholder-color: var(--cue-table-secondary-text-color)}.variant-secondary[_nghost-%COMP%]{--cue-input-switch-checked-background: var(--cue-color-blue);--cue-chart-border-background-color: var(--cue-secondary)}.variant-accent[_nghost-%COMP%]{--cue-chart-border-background-color: var(--cue-accent);--cue-chart-text-color: var(--cue-color-darkgray);--cue-chart-text-color-select: var(--cue-color-darkmidgray);--cue-input-value-color: var(--cue-color-darkgray);--cue-input-label-color: var(--cue-color-darkgray);--cue-input-placeholder-color: var(--cue-color-darkmidgray);--cue-input-border-bottom-color: var(--cue-color-darkgray);--cue-input-border-color: var(--cue-color-darkgray);--cue-stepper-border-color: var(--cue-color-darkgray);--cue-stepper-fill-color: var(--cue-color-darkgray);--cue-stepper-connector-color: var(--cue-color-darkgray)}.variant-primary[_nghost-%COMP%]{--cue-chart-border-background-color: var(--cue-primary);--cue-chart-text-color: var(--cue-color-ultralightgray);--cue-chart-text-color-select: var(--cue-color-lightgray)}[_nghost-%COMP%] > .inner[_ngcontent-%COMP%]{position:absolute;inset:var(--cue-card-padding-y) 0 0 var(--cue-card-padding-x);overflow:auto;padding-right:var(--cue-card-padding-x);padding-bottom:var(--cue-card-padding-y);scrollbar-width:thin;scrollbar-color:var(--cue-scrollbar-thumb-color) transparent}[_nghost-%COMP%] > .inner[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}[_nghost-%COMP%] > .inner[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:var(--cue-scrollbar-thumb-color);border-radius:2px}[_nghost-%COMP%] > .inner[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}"]})}return w})()},5600($,F,_){_.d(F,{F:()=>X,g:()=>A});var s=_(7705),g=_(2271),E=_(7089),z=_(5381),S=_(5187),B=_(1696),t=_(3319),w=_(5802),m=_(5547);function I(P,N){if(1&P){const f=m.RV6();m.j41(0,"cue-flexcontainer",3)(1,"cue-button",6),m.bIt("click",function(){w.eBV(f);const D=m.XpG();return w.Njj(D.activeTool.set("pan"))}),m.nrm(2,"cue-button-icon",7),m.k0s(),m.j41(3,"cue-button",8),m.bIt("click",function(){w.eBV(f);const D=m.XpG();return w.Njj(D.activeTool.set("select"))}),m.nrm(4,"cue-button-icon",9),m.k0s()()}if(2&P){const f=m.XpG();m.R7$(),m.Y8G("variant","pan"===f.activeTool()?"secondary":"tertiary"),m.R7$(2),m.Y8G("variant","select"===f.activeTool()?"secondary":"tertiary")}}function C(P,N){if(1&P){const f=m.RV6();m.j41(0,"cue-flexcontainer",3)(1,"cue-button",10),m.bIt("click",function(){w.eBV(f);const D=m.XpG();return w.Njj(D.handleZoomOut())}),m.nrm(2,"cue-button-icon",11),m.k0s(),m.j41(3,"cue-button",12),m.bIt("click",function(){w.eBV(f);const D=m.XpG();return w.Njj(D.handleZoomIn())}),m.nrm(4,"cue-button-icon",13),m.k0s(),m.j41(5,"cue-button",14),m.bIt("click",function(){w.eBV(f);const D=m.XpG();return w.Njj(D.handleZoomFit())}),m.nrm(6,"cue-button-icon",15),m.k0s()()}if(2&P){const f=m.XpG();m.AVh("border-left",f.options().displayPanSelectTools),m.R7$(),m.Y8G("disabled",f.zoom()<=f.minZoom())("cueTooltip",f.zoom()<=f.minZoom()?"Minimum zoom reached":"Zoom out")}}function k(P,N){if(1&P){const f=m.RV6();m.j41(0,"cue-button",16),m.bIt("click",function(){w.eBV(f);const D=m.XpG();return w.Njj(D.rotate.emit())}),m.nrm(1,"cue-button-icon",17),m.k0s()}if(2&P){const f=m.XpG();m.AVh("border-left",f.options().displayZoom&&f.options().displayRotate)}}class A{hidden=!1;position="bottom";margin="20px";displayZoom=!0;displayRotate=!0;displayPanSelectTools=!1}let X=(()=>{class P{options=(0,s.hFB)(new A);activeTool=(0,s.geq)("pan");panMode=(0,s.geq)(!1);zoom=(0,s.geq)(1);pan=(0,s.geq)({x:0,y:0});minZoom=(0,s.hFB)(1);maxZoom=(0,s.hFB)(10);rotate=(0,s.CGW)();zoomIn=(0,s.CGW)();zoomOut=(0,s.CGW)();zoomFit=(0,s.CGW)();selectMenuPositions=(0,g.EW)(()=>"top"===this.options().position?"bottomleft":"topleft");handleZoomIn(){this.zoomIn.emit()}handleZoomOut(){this.zoomOut.emit()}handleZoomFit(){this.zoomFit.emit()}static \u0275fac=function(V){return new(V||P)};static \u0275cmp=m.VBU({type:P,selectors:[["cue-image-toolbar"]],inputs:{options:[1,"options"],activeTool:[1,"activeTool"],panMode:[1,"panMode"],zoom:[1,"zoom"],pan:[1,"pan"],minZoom:[1,"minZoom"],maxZoom:[1,"maxZoom"]},outputs:{activeTool:"activeToolChange",panMode:"panModeChange",zoom:"zoomChange",pan:"panChange",rotate:"rotate",zoomIn:"zoomIn",zoomOut:"zoomOut",zoomFit:"zoomFit"},decls:6,vars:4,consts:[["justify","center",1,"container"],[1,"toolbar",3,"padded"],["align","center"],["align","center","gap","s"],["align","center","gap","s",3,"border-left"],["cueTooltip","Rotate","size","xs","variant","tertiary",3,"border-left"],["size","xs","cueTooltip","Pan mode \u2014 drag to move the view",3,"click","variant"],["icon","move-grab"],["size","xs","cueTooltip","Select mode \u2014 drag to draw a selection window",3,"click","variant"],["icon","move-click"],["size","xs","variant","tertiary",3,"click","disabled","cueTooltip"],["icon","zoom-out"],["cueTooltip","Zoom in","size","xs","variant","tertiary",3,"click"],["icon","zoom-in"],["cueTooltip","Zoom fit","size","xs","variant","tertiary",3,"click"],["icon","zoom-fit"],["cueTooltip","Rotate","size","xs","variant","tertiary",3,"click"],["icon","rotate-2d"]],template:function(V,D){1&V&&(m.j41(0,"cue-flexcontainer",0)(1,"cue-card",1)(2,"cue-flexcontainer",2),m.nVh(3,I,5,2,"cue-flexcontainer",3),m.nVh(4,C,7,4,"cue-flexcontainer",4),m.nVh(5,k,2,2,"cue-button",5),m.k0s()()()),2&V&&(m.R7$(),m.Y8G("padded",!1),m.R7$(2),m.vxM(D.options().displayPanSelectTools?3:-1),m.R7$(),m.vxM(D.options().displayZoom?4:-1),m.R7$(),m.vxM(D.options().displayRotate?5:-1))},dependencies:[z.n,S.Z,B.$,t.a,E.d],styles:[".container[_ngcontent-%COMP%]{width:100%;pointer-events:none}.toolbar[_ngcontent-%COMP%]{pointer-events:all;padding:5px 10px}.border-left[_ngcontent-%COMP%]{border-left:1px solid;padding-left:12px}"],changeDetection:0})}return P})()},8560($,F,_){_.d(F,{ImageViewer:()=>Ue});var s=_(5802),g=_(7705),E=_(2271),z=_(345),S=_(5600),B=_(9769),t=_(5547);let w=(()=>{class r{elementRef=(0,s.WQX)(t.aKT);cdr=(0,s.WQX)(g.gRc);zoom=(0,g.geq)(1);pan=(0,g.geq)({x:0,y:0});minZoom=(0,g.hFB)(1);maxZoom=(0,g.hFB)(10);zoomStep=(0,g.hFB)(.1);panMode=(0,g.hFB)(!0,{transform:e=>{const o=""===e||"false"!==e&&!!e;return!o&&(this.isPanning||this.isWaitingForPan)&&this.onMouseUp(),o}});longPressThreshold=(0,g.hFB)(150);dragThreshold=(0,g.hFB)(3);zoomChange=(0,g.CGW)();panChange=(0,g.CGW)();stateChange=(0,g.CGW)();isPanning=!1;lastPoint={x:0,y:0};isWaitingForPan=!1;downPoint={x:0,y:0};longPressTimer=null;moveListener;upListener;leaveListener;blurListener;visibilityListener;keyListener;contextMenuListener;pointerCancelListener;listenersAttached=!1;isMiddlePanning=!1;_midLastPoint={x:0,y:0};_midMoveListener;_midUpListener;_pinchStartDist=0;_pinchStartZoom=1;_touchStartListener;_touchMoveListener;_touchEndListener;constructor(){this.moveListener=this.onMouseMove.bind(this),this.upListener=this.onMouseUp.bind(this),this.leaveListener=this.onMouseUp.bind(this),this.blurListener=this.onMouseUp.bind(this),this.visibilityListener=()=>{document.hidden&&this.onMouseUp()},this.keyListener=e=>{"Escape"===e.key&&this.onMouseUp()},this.contextMenuListener=this.onMouseUp.bind(this),this.pointerCancelListener=this.onMouseUp.bind(this),this._midMoveListener=this._onMiddlePanMove.bind(this),this._midUpListener=this._onMiddlePanUp.bind(this)}ngOnInit(){this._attachTouchListeners()}ngOnDestroy(){this.removeListeners(),this.clearLongPressTimer(),this._detachTouchListeners(),this._stopMiddlePan()}addListeners(){this.listenersAttached||(this.listenersAttached=!0,window.addEventListener("mousemove",this.moveListener),window.addEventListener("mouseup",this.upListener,!0),window.addEventListener("blur",this.blurListener),document.addEventListener("visibilitychange",this.visibilityListener),document.addEventListener("keydown",this.keyListener),document.addEventListener("contextmenu",this.contextMenuListener),document.addEventListener("pointercancel",this.pointerCancelListener))}removeListeners(){this.listenersAttached=!1,window.removeEventListener("mousemove",this.moveListener),window.removeEventListener("mouseup",this.upListener,!0),window.removeEventListener("blur",this.blurListener),document.removeEventListener("visibilitychange",this.visibilityListener),document.removeEventListener("keydown",this.keyListener),document.removeEventListener("contextmenu",this.contextMenuListener),document.removeEventListener("pointercancel",this.pointerCancelListener)}clearLongPressTimer(){null!==this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}cursorStyle(){return this.isMiddlePanning?"grabbing":this.panMode()?this.isPanning?"grabbing":"grab":null}onMouseDown(e){if(1===e.button)return e.preventDefault(),this.isMiddlePanning=!0,this._midLastPoint={x:e.clientX,y:e.clientY},this.cdr.markForCheck(),window.addEventListener("mousemove",this._midMoveListener),void window.addEventListener("mouseup",this._midUpListener);!this.panMode()||0!==e.button||(e.composedPath?e.composedPath():[]).some(i=>i.hasAttribute&&i.hasAttribute("data-no-pan"))||((this.isPanning||this.isWaitingForPan)&&(this.clearLongPressTimer(),this.isWaitingForPan=!1,this.isPanning=!1,this.removeListeners()),this.isWaitingForPan=!0,this.downPoint={x:e.clientX,y:e.clientY},this.lastPoint={x:e.clientX,y:e.clientY},this.addListeners())}startPanning(){this.clearLongPressTimer(),this.isWaitingForPan=!1,this.isPanning=!0,this.cdr.markForCheck()}onMouseMove(e){if(!this.isWaitingForPan&&!this.isPanning)return;if(this.isWaitingForPan&&!this.isPanning){const l=e.clientX-this.downPoint.x,d=e.clientY-this.downPoint.y;if(Math.sqrt(l*l+d*d)>=this.dragThreshold()){e.preventDefault(),this.startPanning();const h=this.pan(),p={x:h.x+l,y:h.y+d};this.lastPoint={x:e.clientX,y:e.clientY},this.pan.set(p),this.panChange.emit(p),this.emitStateChange()}return}e.preventDefault();const o=e.clientX-this.lastPoint.x,n=e.clientY-this.lastPoint.y;this.lastPoint={x:e.clientX,y:e.clientY};const i=this.pan(),a={x:i.x+o,y:i.y+n};this.pan.set(a),this.panChange.emit(a),this.emitStateChange()}onMouseUp(e){this.clearLongPressTimer();const o=this.isPanning;if(this.isWaitingForPan=!1,this.isPanning=!1,this.removeListeners(),o){this.cdr.markForCheck();const n=i=>{i.stopImmediatePropagation(),i.preventDefault(),window.removeEventListener("click",n,!0)};window.addEventListener("click",n,!0),setTimeout(()=>window.removeEventListener("click",n,!0),50)}}_onMiddlePanMove(e){if(!this.isMiddlePanning)return;const o=e.clientX-this._midLastPoint.x,n=e.clientY-this._midLastPoint.y;this._midLastPoint={x:e.clientX,y:e.clientY};const i=this.pan(),a={x:i.x+o,y:i.y+n};this.pan.set(a),this.panChange.emit(a),this.emitStateChange()}_onMiddlePanUp(e){1===e.button&&this._stopMiddlePan()}_stopMiddlePan(){window.removeEventListener("mousemove",this._midMoveListener),window.removeEventListener("mouseup",this._midUpListener),this.isMiddlePanning&&(this.isMiddlePanning=!1,this.cdr.markForCheck())}onWheel(e){e.preventDefault();const o=this.zoomStep(),n=e.deltaY<0?1+o:1-o,a=this.elementRef.nativeElement.getBoundingClientRect(),l={x:e.clientX-a.left,y:e.clientY-a.top};this.zoomTo(this.zoom()*n,l)}zoomTo(e,o){const n=this.zoom(),i=this.pan(),a=Math.max(this.minZoom(),Math.min(this.maxZoom(),e));if(a===n)return;const l=a/n,d={x:o.x-(o.x-i.x)*l,y:o.y-(o.y-i.y)*l};this.zoom.set(a),this.pan.set(d),this.zoomChange.emit(a),this.panChange.emit(d),this.emitStateChange()}zoomIn(){this.zoomToCenter(this.zoom()+this.zoomStep())}zoomOut(){this.zoomToCenter(this.zoom()-this.zoomStep())}zoomToCenter(e){const o=this.elementRef.nativeElement;this.zoomTo(e,{x:o.clientWidth/2,y:o.clientHeight/2})}emitStateChange(){this.stateChange.emit({zoom:this.zoom(),pan:this.pan()})}static _touchDist(e,o){const n=o.clientX-e.clientX,i=o.clientY-e.clientY;return Math.sqrt(n*n+i*i)}_attachTouchListeners(){const e=this.elementRef.nativeElement;this._touchStartListener=o=>{2===o.touches.length&&(o.preventDefault(),this._pinchStartDist=r._touchDist(o.touches[0],o.touches[1]),this._pinchStartZoom=this.zoom())},this._touchMoveListener=o=>{if(2!==o.touches.length||(o.preventDefault(),0===this._pinchStartDist))return;const n=r._touchDist(o.touches[0],o.touches[1]),i=this._pinchStartZoom*(n/this._pinchStartDist),a=e.getBoundingClientRect();this.zoomTo(i,{x:(o.touches[0].clientX+o.touches[1].clientX)/2-a.left,y:(o.touches[0].clientY+o.touches[1].clientY)/2-a.top})},this._touchEndListener=o=>{o.touches.length<2&&(this._pinchStartDist=0)},e.addEventListener("touchstart",this._touchStartListener,{passive:!1}),e.addEventListener("touchmove",this._touchMoveListener,{passive:!1}),e.addEventListener("touchend",this._touchEndListener,{passive:!1})}_detachTouchListeners(){const e=this.elementRef.nativeElement;this._touchStartListener&&e.removeEventListener("touchstart",this._touchStartListener),this._touchMoveListener&&e.removeEventListener("touchmove",this._touchMoveListener),this._touchEndListener&&e.removeEventListener("touchend",this._touchEndListener)}static \u0275fac=function(o){return new(o||r)};static \u0275dir=t.FsC({type:r,selectors:[["","cuePanZoom",""]],hostVars:2,hostBindings:function(o,n){1&o&&t.bIt("mousedown",function(a){return n.onMouseDown(a)})("wheel",function(a){return n.onWheel(a)}),2&o&&t.xc7("cursor",n.cursorStyle())},inputs:{zoom:[1,"zoom"],pan:[1,"pan"],minZoom:[1,"minZoom"],maxZoom:[1,"maxZoom"],zoomStep:[1,"zoomStep"],panMode:[1,"panMode"],longPressThreshold:[1,"longPressThreshold"],dragThreshold:[1,"dragThreshold"]},outputs:{zoom:"zoomChange",pan:"panChange",zoomChange:"zoomChange",panChange:"panChange",stateChange:"stateChange"}})}return r})();const m=["container"],I=["*"];let C=(()=>{class r{panZoomDirective=(0,g.ebz)(w);containerRef=(0,g.ebz)("container");zoom=(0,g.geq)(1);pan=(0,g.geq)({x:0,y:0});minZoom=(0,g.hFB)(.1);maxZoom=(0,g.hFB)(10);zoomStep=(0,g.hFB)(.1);panMode=(0,g.hFB)(!0);modelChange=(0,g.CGW)();get transform(){const{x:e,y:o}=this.pan();return`translate(${e}px, ${o}px) scale(${this.zoom()})`}onZoomChange(e){this.zoom.set(e),this.emitModelChange()}onPanChange(e){this.pan.set(e),this.emitModelChange()}emitModelChange(){this.modelChange.emit({pan:{...this.pan()},zoom:this.zoom()})}zoomFit(){this.zoom.set(this.minZoom()),this.pan.set({x:0,y:0}),this.emitModelChange()}zoomIn(){this.panZoomDirective()?.zoomIn()}zoomOut(){this.panZoomDirective()?.zoomOut()}zoomTo(e,o){this.panZoomDirective()?.zoomTo(e,o)}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=t.VBU({type:r,selectors:[["cue-pan-zoom"]],viewQuery:function(o,n){1&o&&t.wEZ(n.panZoomDirective,w,5)(n.containerRef,m,5),2&o&&t.NyB(2)},hostAttrs:[2,"display","block","width","100%","height","100%"],inputs:{zoom:[1,"zoom"],pan:[1,"pan"],minZoom:[1,"minZoom"],maxZoom:[1,"maxZoom"],zoomStep:[1,"zoomStep"],panMode:[1,"panMode"]},outputs:{zoom:"zoomChange",pan:"panChange",modelChange:"modelChange"},ngContentSelectors:I,decls:5,vars:8,consts:[["container",""],["content",""],["cuePanZoom","",1,"pan-zoom-container",2,"width","100%","height","100%","overflow","hidden","position","relative","touch-action","none",3,"zoomChange","panChange","zoom","pan","minZoom","maxZoom","zoomStep","panMode"],[2,"position","absolute","left","0","top","0","transform-origin","0 0","backface-visibility","hidden"]],template:function(o,n){1&o&&(t.NAR(),t.j41(0,"div",2,0),t.bIt("zoomChange",function(a){return n.onZoomChange(a)})("panChange",function(a){return n.onPanChange(a)}),t.j41(2,"div",3,1),t.SdG(4),t.k0s()()),2&o&&(t.Y8G("zoom",n.zoom())("pan",n.pan())("minZoom",n.minZoom())("maxZoom",n.maxZoom())("zoomStep",n.zoomStep())("panMode",n.panMode()),t.R7$(2),t.xc7("transform",n.transform))},dependencies:[B.MD,w],encapsulation:2,changeDetection:0})}return r})();var k=_(2036),A=_(7023),X=_(4015),P=_(356),N=_(6279),f=_(5187),V=_(2245);class D{constructor(c=[],e=(o,n)=>o<n?-1:o>n?1:0){if(this.data=c,this.length=this.data.length,this.compare=e,this.length>0)for(let o=(this.length>>1)-1;o>=0;o--)this._down(o)}push(c){this.data.push(c),this._up(this.length++)}pop(){if(0===this.length)return;const c=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),c}peek(){return this.data[0]}_up(c){const{data:e,compare:o}=this,n=e[c];for(;c>0;){const i=c-1>>1,a=e[i];if(o(n,a)>=0)break;e[c]=a,c=i}e[c]=n}_down(c){const{data:e,compare:o}=this,n=this.length>>1,i=e[c];for(;c<n;){let a=1+(c<<1);const l=a+1;if(l<this.length&&o(e[l],e[a])<0&&(a=l),o(e[a],i)>=0)break;e[c]=e[a],c=a}e[c]=i}}function Z(r,c,e,o){this.x=r,this.y=c,this.h=e,this.d=function Y(r,c,e){let o=!1,n=1/0;for(const i of e)for(let a=0,l=i.length,d=l-1;a<l;d=a++){const u=i[a],h=i[d];u[1]>c!=h[1]>c&&r<(h[0]-u[0])*(c-u[1])/(h[1]-u[1])+u[0]&&(o=!o),n=Math.min(n,Q(r,c,u,h))}return 0===n?0:(o?1:-1)*Math.sqrt(n)}(r,c,o),this.max=this.d+this.h*Math.SQRT2}function Q(r,c,e,o){let n=e[0],i=e[1],a=o[0]-n,l=o[1]-i;if(0!==a||0!==l){const d=((r-n)*a+(c-i)*l)/(a*a+l*l);d>1?(n=o[0],i=o[1]):d>0&&(n+=a*d,i+=l*d)}return a=r-n,l=c-i,a*a+l*l}let K=(()=>{class r{extractPathD(e){const o=e.match(/d="([^"]*)"/);return o?o[1]:null}parsePathToPolygon(e){const o=[],n=e.trim().split(/\s+/);let i=0;for(;i<n.length;){const a=n[i];if("M"===a||"L"===a)i++,i+1<n.length&&(o.push([parseFloat(n[i]),parseFloat(n[i+1])]),i+=2);else{const l=parseFloat(a);!isNaN(l)&&i+1<n.length?(o.push([l,parseFloat(n[i+1])]),i+=2):i++}}return o}getLabelPosition(e){const o=this.extractPathD(e);if(!o)return null;const n=this.parsePathToPolygon(o);if(n.length<3)return null;try{const i=function H(r,c=1,e=!1){let o=1/0,n=1/0,i=-1/0,a=-1/0;for(const[M,x]of r[0])M<o&&(o=M),x<n&&(n=x),M>i&&(i=M),x>a&&(a=x);const l=i-o,d=a-n,u=Math.max(c,Math.min(l,d));if(u===c){const M=[o,n];return M.distance=0,M}const h=new D([],(M,x)=>x.max-M.max);let p=function U(r){let c=0,e=0,o=0;const n=r[0];for(let a=0,l=n.length,d=l-1;a<l;d=a++){const u=n[a],h=n[d],p=u[0]*h[1]-h[0]*u[1];e+=(u[0]+h[0])*p,o+=(u[1]+h[1])*p,c+=3*p}const i=new Z(e/c,o/c,0,r);return 0===c||i.d<0?new Z(n[0][0],n[0][1],0,r):i}(r);const b=new Z(o+l/2,n+d/2,0,r);b.d>p.d&&(p=b);let y=2;function T(M,x,j){const L=new Z(M,x,j,r);y++,L.max>p.d+c&&h.push(L),L.d>p.d&&(p=L,e&&console.log(`found best ${Math.round(1e4*L.d)/1e4} after ${y} probes`))}let v=u/2;for(let M=o;M<i;M+=u)for(let x=n;x<a;x+=u)T(M+v,x+v,v);for(;h.length;){const{max:M,x,y:j,h:L}=h.pop();if(M-p.d<=c)break;v=L/2,T(x-v,j-v,v),T(x+v,j-v,v),T(x-v,j+v,v),T(x+v,j+v,v)}e&&console.log(`num probes: ${y}\nbest distance: ${p.d}`);const R=[p.x,p.y];return R.distance=p.d,R}([n],.01);return{x:i[0],y:i[1]}}catch{return null}}getLabelFontSize(e){const o=this.extractPathD(e);if(!o)return.3;const n=this.parsePathToPolygon(o);if(n.length<3)return.3;const i=n.map(h=>h[0]),a=n.map(h=>h[1]),l=Math.max(...i)-Math.min(...i),d=Math.max(...a)-Math.min(...a),u=Math.min(l,d);return Math.max(u/5,.05)}static \u0275fac=function(o){return new(o||r)};static \u0275prov=s.jDH({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})(),G=(()=>{class r{editingArtefact=(0,s.vPA)(null);isEditing=(0,s.vPA)(!1);editStart=(0,s.vPA)(null);editHandle=(0,s.vPA)("body");hasDragged=!1;hasEdited=!1;originalArtefact=null;drawingArtefacts;mouseToImagePercent;parseXYWH;polygonService;artefactEdited;editMoveListener=this.onEditMouseMove.bind(this);editUpListener=this.onEditMouseUp.bind(this);init(e){this.drawingArtefacts=e.drawingArtefacts,this.mouseToImagePercent=e.mouseToImagePercent,this.parseXYWH=e.parseXYWH,this.polygonService=e.polygonService,this.artefactEdited=e.artefactEdited}startEditArtefact(e,o){this.editingArtefact.set({type:e,index:o});const n=this.drawingArtefacts();let i;"bbox"===e?i=n.xywhs[o]:"circle"===e?i=n.circles[o]:"polygon"===e&&(i=n.polygons[o]),this.originalArtefact=i?{...i}:null}cancelEdit(){const e=this.editingArtefact();if(e&&this.hasEdited&&this.originalArtefact){const o=this.drawingArtefacts();let n;"bbox"===e.type?n=o.xywhs[e.index]:"circle"===e.type?n=o.circles[e.index]:"polygon"===e.type&&(n=o.polygons[e.index]),n&&this.artefactEdited.emit({type:e.type,index:e.index,before:this.originalArtefact,after:n})}this.editingArtefact.set(null),this.isEditing.set(!1),this.editStart.set(null),this.editHandle.set("body"),this.hasEdited=!1,this.originalArtefact=null,window.removeEventListener("mousemove",this.editMoveListener),window.removeEventListener("mouseup",this.editUpListener)}onEditMouseDown(e,o="body"){if(!this.editingArtefact()||0!==e.button)return;e.preventDefault(),e.stopPropagation();const n=this.mouseToImagePercent(e);n&&(this.isEditing.set(!0),this.editStart.set(n),this.editHandle.set(o),this.hasDragged=!1,window.addEventListener("mousemove",this.editMoveListener),window.addEventListener("mouseup",this.editUpListener))}onEditMouseMove(e){if(!this.isEditing())return;e.preventDefault();const o=this.mouseToImagePercent(e),n=this.editStart(),i=this.editingArtefact();if(!o||!n||!i)return;const a=this.editHandle();if("string"==typeof a&&a.startsWith("vertex:")){const u=parseInt(a.split(":")[1],10);return this.polygonService.applyVertexDrag(i.index,u,o,e.shiftKey),this.editStart.set(o),this.hasDragged=!0,void(this.hasEdited=!0)}const l=o.x-n.x,d=o.y-n.y;this.editStart.set(o),this.hasDragged=!0,this.hasEdited=!0,this.applyEditDelta(i,l,d)}onEditMouseUp(e){if(this.isEditing()){if(window.removeEventListener("mousemove",this.editMoveListener),window.removeEventListener("mouseup",this.editUpListener),"body"===this.editHandle()&&!this.hasDragged)return void this.cancelEdit();if(this.isEditing.set(!1),this.editStart.set(null),this.hasEdited){const o=this.editingArtefact();if(o&&this.originalArtefact){const n=this.drawingArtefacts();let i;"bbox"===o.type?i=n.xywhs[o.index]:"circle"===o.type?i=n.circles[o.index]:"polygon"===o.type&&(i=n.polygons[o.index]),i&&(this.artefactEdited.emit({type:o.type,index:o.index,before:this.originalArtefact,after:i}),this.originalArtefact={...i},this.hasEdited=!1)}}}}applyEditDelta(e,o,n){const i=this.editHandle();"body"===i?this.applyMoveDelta(e,o,n):"radius"===i?this.applyCircleRadiusDelta(e.index,o,n):this.applyResizeDelta(e,i,o,n)}applyMoveDelta(e,o,n){this.drawingArtefacts.update(i=>{if("bbox"===e.type){const a=[...i.xywhs],l=a[e.index];if(!l)return i;const d=this.parseXYWH(l.xywhStr);if(!d)return i;const u=Math.max(0,d.x+o),h=Math.max(0,d.y+n);return a[e.index]={...l,xywhStr:`percent:${u.toFixed(2)},${h.toFixed(2)},${d.width.toFixed(2)},${d.height.toFixed(2)}`},{...i,xywhs:a}}if("circle"===e.type){const a=[...i.circles],l=a[e.index];return l?(a[e.index]={...l,cx:l.cx+o,cy:l.cy+n},{...i,circles:a}):i}if("polygon"===e.type){const a=[...i.polygons],l=a[e.index];return l?(a[e.index]={...l,points:l.points.map(([d,u])=>[d+o,u+n])},{...i,polygons:a}):i}return i})}applyResizeDelta(e,o,n,i){"bbox"===e.type&&this.drawingArtefacts.update(a=>{const l=[...a.xywhs],d=l[e.index];if(!d)return a;const u=this.parseXYWH(d.xywhStr);if(!u)return a;let{x:h,y:p,width:b,height:y}=u;return o.includes("w")&&(h+=n,b-=n),o.includes("e")&&(b+=n),o.includes("n")&&(p+=i,y-=i),o.includes("s")&&(y+=i),b<.5&&(b=.5),y<.5&&(y=.5),l[e.index]={...d,xywhStr:`percent:${h.toFixed(2)},${p.toFixed(2)},${b.toFixed(2)},${y.toFixed(2)}`},{...a,xywhs:l}})}applyCircleRadiusDelta(e,o,n){this.drawingArtefacts.update(i=>{const a=[...i.circles],l=a[e];if(!l)return i;const d=Math.sqrt(o*o+n*n)*Math.sign(o||n);return a[e]={...l,r:Math.max(.5,l.r+d)},{...i,circles:a}})}static \u0275fac=function(o){return new(o||r)};static \u0275prov=s.jDH({token:r,factory:r.\u0275fac})}return r})(),O=(()=>{class r{isDrawing=(0,s.vPA)(!1);drawStart=(0,s.vPA)(null);drawCurrent=(0,s.vPA)(null);drawMode;drawColor;drawnArtefactDef;artefactDrawn;mouseToImagePercent;imageDimensions;drawingArtefacts;drawMoveListener=this.onDrawMouseMove.bind(this);drawUpListener=this.onDrawMouseUp.bind(this);initialized=(0,s.vPA)(!1);drawPreview=(0,E.EW)(()=>{if(!this.initialized()||"xywh"!==this.drawMode())return null;const e=this.drawStart(),o=this.drawCurrent();if(!e||!o)return null;const n=Math.min(e.x,o.x),i=Math.min(e.y,o.y),a=Math.abs(o.x-e.x),l=Math.abs(o.y-e.y);return a<.1&&l<.1?null:{x:n,y:i,width:a,height:l,color:this.drawColor()}});circleDrawPreview=(0,E.EW)(()=>{if(!this.initialized()||"circle"!==this.drawMode())return null;const e=this.drawStart(),o=this.drawCurrent();if(!e||!o)return null;const n=Math.sqrt(Math.pow(o.x-e.x,2)+Math.pow(o.y-e.y,2));return n<.1?null:{cx:e.x,cy:e.y,r:n,color:this.drawColor()}});init(e){this.drawMode=e.drawMode,this.drawColor=e.drawColor,this.drawnArtefactDef=e.drawnArtefactDef,this.artefactDrawn=e.artefactDrawn,this.mouseToImagePercent=e.mouseToImagePercent,this.imageDimensions=e.imageDimensions,this.drawingArtefacts=e.drawingArtefacts,this.initialized.set(!0)}onDrawMouseDown(e){const o=this.drawMode();if("xywh"!==o&&"circle"!==o||0!==e.button)return;e.preventDefault(),e.stopPropagation();const n=this.mouseToImagePercent(e);n&&(this.isDrawing.set(!0),this.drawStart.set(n),this.drawCurrent.set(n),window.addEventListener("mousemove",this.drawMoveListener),window.addEventListener("mouseup",this.drawUpListener))}onDrawMouseMove(e){if(!this.isDrawing())return;e.preventDefault();const o=this.mouseToImagePercent(e);o&&this.drawCurrent.set(o)}onDrawMouseUp(e){if(!this.isDrawing())return;e?.preventDefault(),window.removeEventListener("mousemove",this.drawMoveListener),window.removeEventListener("mouseup",this.drawUpListener);const o=this.drawStart(),n=this.drawCurrent(),i=this.drawMode();if(o&&n)if("xywh"===i){const a=Math.min(o.x,n.x),l=Math.min(o.y,n.y),d=Math.abs(n.x-o.x),u=Math.abs(n.y-o.y);if(d>.5&&u>.5){const p={...this.drawnArtefactDef(),xywhStr:`percent:${a.toFixed(2)},${l.toFixed(2)},${d.toFixed(2)},${u.toFixed(2)}`,color:this.drawColor()},b={x:a,y:l,width:d,height:u};this.artefactDrawn.emit({type:"xywh",def:p,pct:b,abs:this.pctRectToAbs(b)}),this.drawingArtefacts.update(y=>({...y,xywhs:[...y.xywhs,p]}))}}else if("circle"===i){const a=Math.sqrt(Math.pow(n.x-o.x,2)+Math.pow(n.y-o.y,2));if(a>.5){const d={...this.drawnArtefactDef(),cx:o.x,cy:o.y,r:a,color:this.drawColor()},u=this.imageDimensions();this.artefactDrawn.emit({type:"circle",def:d,pct:{cx:o.x,cy:o.y,r:a},abs:{cx:u?o.x/100*u.width:o.x,cy:u?o.y/100*u.height:o.y,r:u?a/100*u.width:a}}),this.drawingArtefacts.update(h=>({...h,circles:[...h.circles,d]}))}}this.isDrawing.set(!1),this.drawStart.set(null),this.drawCurrent.set(null)}pctRectToAbs(e){const o=this.imageDimensions();return o?{x:e.x/100*o.width,y:e.y/100*o.height,width:e.width/100*o.width,height:e.height/100*o.height}:e}static \u0275fac=function(o){return new(o||r)};static \u0275prov=s.jDH({token:r,factory:r.\u0275fac})}return r})(),W=(()=>{class r{polygonPoints=(0,s.vPA)([]);polygonCursor=(0,s.vPA)(null);lastPolygonClickTime=0;axisSnapLines=(0,s.vPA)({});drawColor;drawnArtefactDef;artefactDrawn;mouseToImagePercent;imageAspectRatio;zoom;imageDimensions;drawingArtefacts;polygonMoveListener=this.onPolygonMouseMove.bind(this);polygonEscListener=this.onPolygonEsc.bind(this);initialized=(0,s.vPA)(!1);polygonDrawPreview=(0,E.EW)(()=>{if(!this.initialized())return null;const e=this.polygonPoints();if(0===e.length)return null;const o=this.polygonCursor();return{points:e,cursorPoint:o?[o.x,o.y]:null,color:this.drawColor()}});init(e){this.drawColor=e.drawColor,this.drawnArtefactDef=e.drawnArtefactDef,this.artefactDrawn=e.artefactDrawn,this.mouseToImagePercent=e.mouseToImagePercent,this.imageAspectRatio=e.imageAspectRatio,this.zoom=e.zoom,this.imageDimensions=e.imageDimensions,this.drawingArtefacts=e.drawingArtefacts,this.initialized.set(!0)}onPolygonClick(e){if(0!==e.button)return;const o=Date.now();if(o-this.lastPolygonClickTime<300)return;this.lastPolygonClickTime=o,e.preventDefault(),e.stopPropagation();const n=this.mouseToImagePercent(e);if(!n)return;const i=this.polygonPoints(),a=this.applySnapping(n,i,e.shiftKey);if(i.length>=3){const l=i[0],d=a.x-l[0],u=a.y-l[1];if(Math.sqrt(d*d+u*u)<this.closeThreshold)return void this.finishPolygon()}this.polygonPoints.update(l=>[...l,[a.x,a.y]]),this.polygonCursor.set(null),0===i.length&&(window.addEventListener("mousemove",this.polygonMoveListener),window.addEventListener("keydown",this.polygonEscListener))}cancelPolygon(){window.removeEventListener("mousemove",this.polygonMoveListener),window.removeEventListener("keydown",this.polygonEscListener),this.polygonPoints.set([]),this.polygonCursor.set(null),this.axisSnapLines.set({})}applyVertexDrag(e,o,n,i){this.drawingArtefacts.update(a=>{const l=[...a.polygons],d=l[e];if(!d)return a;const u=[...d.points.map(y=>[...y])];if(o<0||o>=u.length)return a;const h=u.filter((y,T)=>T!==o);let p=null;u.length>1&&(p=o>0?u[o-1]:u[o+1]);let b=n;return i&&p&&(b=this.snapTo45({x:p[0],y:p[1]},n)),b=this.snapToAxis(b,h,null,i?"none":"both"),u[o]=[b.x,b.y],l[e]={...d,points:u},{...a,polygons:l}})}snapTo45(e,o){const n=this.imageAspectRatio(),i=o.x-e.x,a=(o.y-e.y)/n,l=Math.atan2(a,i),d=Math.round(l/(Math.PI/4))*(Math.PI/4),u=Math.sqrt(i*i+a*a);return{x:e.x+u*Math.cos(d),y:e.y+u*Math.sin(d)*n}}get closeThreshold(){return 1.5/this.zoom()}get axisSnapThresholdX(){const e=this.imageDimensions?.();return e&&0!==e.width?24/(e.width*this.zoom()/100):1.5}get axisSnapThresholdY(){const e=this.imageDimensions?.();return e&&0!==e.height?24/(e.height*this.zoom()/100):1.5}applySnapping(e,o,n){const i=o.length>0?o[o.length-1]:null,a=o.length>1?o.slice(0,-1):[];if(!n||!i)return this.snapToAxis(e,a,i,"both");const l=this.snapTo45({x:i[0],y:i[1]},e),d=Math.abs(l.x-i[0]),u=Math.abs(l.y-i[1]),h=d+u+.001;let p;return p=d/h<.01?"y":u/h<.01?"x":"none",this.snapToAxis(l,a,i,p)}snapToAxis(e,o,n,i){if("none"===i||0===o.length)return this.axisSnapLines.set({}),e;let h,p,{x:a,y:l}=e,d=this.axisSnapThresholdX,u=this.axisSnapThresholdY;const b="x"===i||"both"===i,y="y"===i||"both"===i;for(const[T,v]of o){const R=n&&Math.abs(T-n[0])<.5,M=n&&Math.abs(v-n[1])<.5;if(b&&!R){const x=Math.abs(a-T);x<d&&(d=x,a=T,h=T)}if(y&&!M){const x=Math.abs(l-v);x<u&&(u=x,l=v,p=v)}}return this.axisSnapLines.set({x:h,y:p}),{x:a,y:l}}onPolygonMouseMove(e){const o=this.mouseToImagePercent(e);if(!o)return;const n=this.polygonPoints();this.polygonCursor.set(this.applySnapping(o,n,e.shiftKey))}finishPolygon(){const e=this.polygonPoints();if(e.length<3)return;window.removeEventListener("mousemove",this.polygonMoveListener),window.removeEventListener("keydown",this.polygonEscListener);const n={...this.drawnArtefactDef(),points:[...e],color:this.drawColor()},i=this.imageDimensions();this.artefactDrawn.emit({type:"polygon",def:n,pct:{points:[...e]},abs:{points:e.map(([a,l])=>[i?a/100*i.width:a,i?l/100*i.height:l])}}),this.polygonPoints.set([]),this.polygonCursor.set(null)}onPolygonEsc(e){"Escape"===e.key&&this.cancelPolygon()}static \u0275fac=function(o){return new(o||r)};static \u0275prov=s.jDH({token:r,factory:r.\u0275fac})}return r})();const q=["imageElement"],J=["*"],ee=(r,c)=>({artefact:r,type:"bbox",index:c}),te=(r,c)=>({artefact:r,type:"circle",index:c}),oe=(r,c)=>({artefact:r,type:"polygon",index:c}),ne=(r,c)=>({artefact:r,type:"svgPath",index:c}),ie=(r,c)=>e=>{const o=s.eBV(c).$implicit;return s.Njj(!e.visible||e.visible(o))},re=(r,c)=>c.label;function ae(r,c){if(1&r&&(t.j41(0,"cue-card",13),t.nrm(1,"cue-typography",14),t.k0s()),2&r){const e=t.XpG().$implicit,o=t.XpG();t.xc7("transform","scale("+1/o.zoom()+")"),t.R7$(),t.Y8G("noWrap",!0)("innerHTML",e.label,t.npT)}}function se(r,c){if(1&r){const e=t.RV6();t.j41(0,"div",11),t.bIt("contextMenuOpen",function(){s.eBV(e);const n=t.XpG();return s.Njj(n.isContextMenuOpen.set(!0))})("contextMenuClose",function(){s.eBV(e);const n=t.XpG();return s.Njj(n.isContextMenuOpen.set(!1))})("click",function(n){const i=s.eBV(e).$implicit,a=t.XpG();return s.Njj(a.handleBboxClick(i,n))}),t.nVh(1,ae,2,4,"cue-card",12),t.k0s()}if(2&r){const e=c.$implicit,o=t.XpG(),n=t.sdS(17);t.xc7("left",e.x,"%")("top",e.y,"%")("width",e.width,"%")("height",e.height,"%")("border-color",e.color||"rgba(255, 0, 0, 0.8)")("border-width",3/o.zoom()+"px")("background-color",!1===e.showFill?"transparent":o.getBgColor(e.color)),t.AVh("clickable",o.contextMenuItems().length>0||!!e.allowRemove||!!e.allowEdit)("removable",!!e.allowRemove),t.Y8G("title",e.label||"")("cueContextMenu",n)("contextMenuData",t.l_i(23,ee,e,e.sourceIndex))("cueContextEnabled",o.contextMenuItems().length>0||!!e.allowRemove||!!e.allowEdit),t.R7$(),t.vxM(e.label?1:-1)}}function ce(r,c){if(1&r&&t.nrm(0,"div",15),2&r){const e=c,o=t.XpG();t.xc7("left",e.x,"%")("top",e.y,"%")("width",e.width,"%")("height",e.height,"%")("border-color",e.color)("border-width",3/o.zoom()+"px")("background-color",o.getBgColor(e.color))}}function le(r,c){if(1&r){const e=t.RV6();s.qSk(),t.j41(0,"ellipse",17),t.bIt("contextMenuOpen",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.isContextMenuOpen.set(!0))})("contextMenuClose",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.isContextMenuOpen.set(!1))}),t.k0s()}if(2&r){const e=c.$implicit,o=c.$index,n=t.XpG(2),i=t.sdS(17);t.xc7("pointer-events",n.contextMenuItems().length>0||e.allowRemove||e.allowEdit?"all":"none")("cursor",n.contextMenuItems().length>0||e.allowRemove||e.allowEdit?"pointer":"default"),t.Y8G("cueContextMenu",i)("contextMenuData",t.l_i(14,te,e,o))("cueContextEnabled",n.contextMenuItems().length>0||!!e.allowRemove||!!e.allowEdit),t.BMQ("cx",e.cx)("cy",e.cy)("rx",e.r)("ry",e.r*n.imageAspectRatio())("stroke",e.color||"rgba(255, 0, 0, 0.8)")("fill",!1===e.showFill?"none":n.getBgColor(e.color))("stroke-width",3/n.zoom())}}function de(r,c){if(1&r&&(t.j41(0,"cue-card",13),t.nrm(1,"cue-typography",14),t.k0s()),2&r){const e=t.XpG().$implicit,o=t.XpG(2);t.xc7("left",e.cx,"%")("top",e.cy-e.r*o.imageAspectRatio(),"%")("transform","scale("+1/o.zoom()+")"),t.R7$(),t.Y8G("noWrap",!0)("innerHTML",e.label,t.npT)}}function ue(r,c){1&r&&t.nVh(0,de,2,8,"cue-card",18),2&r&&t.vxM(c.$implicit.label?0:-1)}function me(r,c){if(1&r&&(s.qSk(),t.j41(0,"svg",8),t.Z7z(1,le,1,17,":svg:ellipse",16,t.Vm6),t.k0s(),t.Z7z(3,ue,1,1,null,null,t.Vm6)),2&r){const e=t.XpG();t.R7$(),t.Dyx(e.drawingArtefacts().circles),t.R7$(2),t.Dyx(e.drawingArtefacts().circles)}}function he(r,c){if(1&r&&(s.qSk(),t.j41(0,"svg",8),t.nrm(1,"ellipse",19),t.k0s()),2&r){const e=c,o=t.XpG();t.R7$(),t.BMQ("cx",e.cx)("cy",e.cy)("rx",e.r)("ry",e.r*o.imageAspectRatio())("stroke",e.color)("fill",o.getBgColor(e.color))("stroke-width",3/o.zoom())}}function ge(r,c){if(1&r){const e=t.RV6();s.qSk(),t.j41(0,"polygon",21),t.bIt("contextMenuOpen",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.isContextMenuOpen.set(!0))})("contextMenuClose",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.isContextMenuOpen.set(!1))}),t.k0s()}if(2&r){const e=c.$implicit,o=c.$index,n=t.XpG(2),i=t.sdS(17);t.xc7("pointer-events",n.contextMenuItems().length>0||e.allowRemove||e.allowEdit?"all":"none")("cursor",n.contextMenuItems().length>0||e.allowRemove||e.allowEdit?"pointer":"default"),t.AVh("clickable",n.contextMenuItems().length>0||!!e.allowRemove||!!e.allowEdit),t.Y8G("cueContextMenu",i)("contextMenuData",t.l_i(13,oe,e,o))("cueContextEnabled",n.contextMenuItems().length>0||!!e.allowRemove||!!e.allowEdit),t.BMQ("points",n.pointsToAttr(e.points))("stroke",e.color||"rgba(255, 0, 0, 0.8)")("fill",!1===e.showFill?"none":n.getBgColor(e.color))("stroke-width",3/n.zoom())}}function pe(r,c){if(1&r&&(t.j41(0,"cue-card",13),t.nrm(1,"cue-typography",14),t.k0s()),2&r){const e=t.XpG().$implicit,o=t.XpG(2);t.xc7("left",o.polygonCentroid(e.points).x,"%")("top",o.polygonCentroid(e.points).y,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.Y8G("noWrap",!0)("innerHTML",e.label,t.npT)}}function _e(r,c){1&r&&t.nVh(0,pe,2,8,"cue-card",18),2&r&&t.vxM(c.$implicit.label?0:-1)}function fe(r,c){if(1&r&&(s.qSk(),t.j41(0,"svg",8),t.Z7z(1,ge,1,16,":svg:polygon",20,t.Vm6),t.k0s(),t.Z7z(3,_e,1,1,null,null,t.Vm6)),2&r){const e=t.XpG();t.R7$(),t.Dyx(e.drawingArtefacts().polygons),t.R7$(2),t.Dyx(e.drawingArtefacts().polygons)}}function ve(r,c){if(1&r&&(s.qSk(),t.nrm(0,"line",25)(1,"line",26)),2&r){const e=t.XpG(),o=t.XpG();t.BMQ("x1",e.points[e.points.length-1][0])("y1",e.points[e.points.length-1][1])("x2",e.cursorPoint[0])("y2",e.cursorPoint[1])("stroke",e.color)("stroke-width",2/o.zoom()),t.R7$(),t.BMQ("x1",e.cursorPoint[0])("y1",e.cursorPoint[1])("x2",e.points[0][0])("y2",e.points[0][1])("stroke",e.color)("stroke-width",1/o.zoom())}}function xe(r,c){if(1&r&&t.nrm(0,"div",27),2&r){const e=c.$implicit,o=t.XpG(),n=t.XpG();t.xc7("left",e[0],"%")("top",e[1],"%")("transform","translate(-50%, -50%) scale("+1/n.zoom()+")")("background",o.color)}}function we(r,c){if(1&r&&t.nrm(0,"div",28),2&r){const e=t.XpG(),o=t.XpG();t.xc7("left",e.cursorPoint[0],"%")("top",e.cursorPoint[1],"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")")("background",e.color)}}function be(r,c){if(1&r&&t.nrm(0,"div",31),2&r){const e=t.XpG();t.xc7("left",e.x,"%")}}function ye(r,c){if(1&r&&t.nrm(0,"div",32),2&r){const e=t.XpG();t.xc7("top",e.y,"%")}}function Me(r,c){if(1&r&&(t.nVh(0,be,1,2,"div",29),t.nVh(1,ye,1,2,"div",30)),2&r){const e=c;t.vxM(void 0!==e.x?0:-1),t.R7$(),t.vxM(void 0!==e.y?1:-1)}}function Ce(r,c){if(1&r&&(s.qSk(),t.j41(0,"svg",8),t.nrm(1,"polyline",22),t.nVh(2,ve,2,12),t.k0s(),t.Z7z(3,xe,1,8,"div",23,t.Vm6),t.nVh(5,we,1,8,"div",24),t.nVh(6,Me,2,2)),2&r){let e;const o=c,n=t.XpG();t.R7$(),t.BMQ("points",n.pointsToAttr(o.points))("stroke",o.color)("stroke-width",3/n.zoom()),t.R7$(),t.vxM(o.cursorPoint?2:-1),t.R7$(),t.Dyx(o.points),t.R7$(2),t.vxM(o.cursorPoint&&!n.isCursorOnVertex(o.cursorPoint,o.points)?5:-1),t.R7$(),t.vxM((e=n.polygonService.axisSnapLines())?6:-1,e)}}function De(r,c){if(1&r){const e=t.RV6();t.j41(0,"div",33),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG();return s.Njj("polygon"===i.drawMode()?i.polygonService.onPolygonClick(n):i.drawingService.onDrawMouseDown(n))})("keydown.escape",function(){s.eBV(e);const n=t.XpG();return s.Njj(n.polygonService.cancelPolygon())}),t.k0s()}}function Pe(r,c){if(1&r){const e=t.RV6();t.j41(0,"div",35),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"nw"))}),t.k0s(),t.j41(1,"div",36),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"ne"))}),t.k0s(),t.j41(2,"div",37),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"sw"))}),t.k0s(),t.j41(3,"div",38),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"se"))}),t.k0s(),t.j41(4,"div",39),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"n"))}),t.k0s(),t.j41(5,"div",40),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"s"))}),t.k0s(),t.j41(6,"div",41),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"w"))}),t.k0s(),t.j41(7,"div",42),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"e"))}),t.k0s()}if(2&r){const e=t.XpG().$implicit,o=t.XpG(3);t.xc7("left",e.x,"%")("top",e.y,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.x+e.width,"%")("top",e.y,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.x,"%")("top",e.y+e.height,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.x+e.width,"%")("top",e.y+e.height,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.x+e.width/2,"%")("top",e.y,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.x+e.width/2,"%")("top",e.y+e.height,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.x,"%")("top",e.y+e.height/2,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.x+e.width,"%")("top",e.y+e.height/2,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")")}}function ze(r,c){if(1&r&&t.nVh(0,Pe,8,48),2&r){const e=c.$index,o=t.XpG(2);t.vxM(e===o.index?0:-1)}}function Te(r,c){if(1&r&&t.Z7z(0,ze,1,1,null,null,t.Vm6),2&r){const e=t.XpG(2);t.Dyx(e.boundingBoxes())}}function Ee(r,c){if(1&r){const e=t.RV6();t.j41(0,"div",43),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"radius"))}),t.k0s(),t.j41(1,"div",43),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"radius"))}),t.k0s(),t.j41(2,"div",44),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"radius"))}),t.k0s(),t.j41(3,"div",44),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG(4);return s.Njj(i.editService.onEditMouseDown(n,"radius"))}),t.k0s()}if(2&r){const e=t.XpG().$implicit,o=t.XpG(3);t.xc7("left",e.cx+e.r,"%")("top",e.cy,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.cx-e.r,"%")("top",e.cy,"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.cx,"%")("top",e.cy-e.r*o.imageAspectRatio(),"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")"),t.R7$(),t.xc7("left",e.cx,"%")("top",e.cy+e.r*o.imageAspectRatio(),"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")")}}function Ie(r,c){if(1&r&&t.nVh(0,Ee,4,24),2&r){const e=c.$index,o=t.XpG(2);t.vxM(e===o.index?0:-1)}}function ke(r,c){if(1&r&&t.Z7z(0,Ie,1,1,null,null,t.Vm6),2&r){const e=t.XpG(2);t.Dyx(e.drawingArtefacts().circles)}}function Ve(r,c){if(1&r){const e=t.RV6();t.j41(0,"div",46),t.bIt("mousedown",function(n){const i=s.eBV(e).$index,a=t.XpG(5);return s.Njj(a.editService.onEditMouseDown(n,"vertex:"+i))}),t.k0s()}if(2&r){const e=c.$implicit,o=t.XpG(5);t.xc7("left",e[0],"%")("top",e[1],"%")("transform","translate(-50%, -50%) scale("+1/o.zoom()+")")}}function Ae(r,c){if(1&r&&t.Z7z(0,Ve,1,6,"div",45,t.Vm6),2&r){const e=t.XpG().$implicit;t.Dyx(e.points)}}function Le(r,c){if(1&r&&t.nVh(0,Ae,2,0),2&r){const e=c.$index,o=t.XpG(2);t.vxM(e===o.index?0:-1)}}function Se(r,c){if(1&r&&t.Z7z(0,Le,1,1,null,null,t.Vm6),2&r){const e=t.XpG(2);t.Dyx(e.drawingArtefacts().polygons)}}function Re(r,c){if(1&r){const e=t.RV6();t.j41(0,"div",34),t.bIt("mousedown",function(n){s.eBV(e);const i=t.XpG();return s.Njj(i.editService.onEditMouseDown(n,"body"))}),t.nVh(1,Te,2,0),t.nVh(2,ke,2,0),t.nVh(3,Se,2,0),t.k0s()}if(2&r){const e=c;t.R7$(),t.vxM("bbox"===e.type?1:-1),t.R7$(),t.vxM("circle"===e.type?2:-1),t.R7$(),t.vxM("polygon"===e.type?3:-1)}}function je(r,c){if(1&r){const e=t.RV6();s.qSk(),t.j41(0,"g",49),t.bIt("contextMenuOpen",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.isContextMenuOpen.set(!0))})("contextMenuClose",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.isContextMenuOpen.set(!1))})("click",function(n){const i=s.eBV(e).$implicit,a=t.XpG(2);return s.Njj(a.handleSvgPathClick(i,n))}),t.k0s()}if(2&r){const e=c.$implicit,o=c.$index,n=t.XpG(2),i=t.sdS(17);t.xc7("pointer-events",n.contextMenuItems().length>0||e.allowRemove||e.allowEdit?"all":"none")("cursor",n.contextMenuItems().length>0||e.allowRemove||e.allowEdit?"pointer":"default")("--dxf-sw",null!=e.strokeWidth&&n.zoom()?e.strokeWidth/n.zoom():null),t.AVh("clickable",n.contextMenuItems().length>0||!!e.allowRemove||!!e.allowEdit),t.Y8G("cueContextMenu",i)("contextMenuData",t.l_i(18,ne,e,o))("cueContextEnabled",n.contextMenuItems().length>0&&n.contextMenuItems().some(t._m7(17,ie,c))||!!e.allowRemove||!!e.allowEdit)("innerHTML",n.safeSvg(e.svg),t.npT),t.BMQ("title",e.label||"")("transform",e.transform||null)("stroke",e.color||"#ffa8a8")("fill",e.fillColor||"none")("stroke-dasharray",e.strokeDashArray||null)}}function Fe(r,c){if(1&r&&(t.j41(0,"cue-card",13),t.nrm(1,"cue-typography",14),t.k0s()),2&r){const e=c,o=t.XpG().$implicit,n=t.XpG(2);t.xc7("left",e.x,"%")("top",e.y,"%")("transform","translate(-50%, -50%) scale("+1/n.zoom()+")"),t.R7$(),t.Y8G("noWrap",!0)("innerHTML",o.label,t.npT)}}function Be(r,c){if(1&r&&t.nVh(0,Fe,2,8,"cue-card",18),2&r){let e;const o=c.$implicit,n=t.XpG(2);t.vxM((e=o.label&&n.getSvgLabelPositionPercent(o.svg,o.transform))?0:-1,e)}}function Xe(r,c){if(1&r&&(s.qSk(),t.j41(0,"svg",47),t.Z7z(1,je,1,21,":svg:g",48,t.Vm6),t.k0s(),t.Z7z(3,Be,1,1,null,null,t.Vm6)),2&r){const e=t.XpG();t.BMQ("viewBox",e.svgViewBox()),t.R7$(),t.Dyx(e.drawingArtefacts().svgPaths),t.R7$(2),t.Dyx(e.drawingArtefacts().svgPaths)}}function Ne(r,c){if(1&r){const e=t.RV6();t.j41(0,"cue-menu-item",50),t.bIt("click",function(){s.eBV(e);const n=t.XpG().$implicit,i=t.XpG(2).$implicit;return s.Njj(n.action(i.artefact))}),t.EFF(1),t.k0s()}if(2&r){const e=t.XpG().$implicit;t.R7$(),t.SpI(" ",e.label," ")}}function Ze(r,c){if(1&r&&t.nVh(0,Ne,2,1,"cue-menu-item"),2&r){const e=c.$implicit,o=t.XpG(2).$implicit;t.vxM(!e.visible||e.visible(o.artefact)?0:-1)}}function $e(r,c){if(1&r){const e=t.RV6();t.j41(0,"cue-menu-item",50),t.bIt("click",function(){s.eBV(e);const n=t.XpG(2).$implicit,i=t.XpG();return s.Njj(i.editService.startEditArtefact(n.type,"bbox"===n.type?n.artefact.sourceIndex:n.index))}),t.EFF(1),t.nI1(2,"transloco"),t.k0s()}2&r&&(t.R7$(),t.SpI(" ",t.bMT(2,1,"common.buttons.edit")," "))}function Ge(r,c){if(1&r){const e=t.RV6();t.j41(0,"cue-menu-item",50),t.bIt("click",function(){s.eBV(e);const n=t.XpG(2).$implicit,i=t.XpG();return s.Njj("bbox"===n.type?i.removeArtefact(n.artefact):"circle"===n.type?i.removeCircleArtefact(n.index):"polygon"===n.type?i.removePolygonArtefact(n.index):i.removeSvgPathArtefact(n.index))}),t.EFF(1),t.nI1(2,"transloco"),t.k0s()}2&r&&(t.R7$(),t.SpI(" ",t.bMT(2,1,"common.buttons.delete")," "))}function Oe(r,c){if(1&r&&(t.j41(0,"cue-menu-wrap"),t.Z7z(1,Ze,1,1,null,null,re),t.nVh(3,$e,3,3,"cue-menu-item"),t.nVh(4,Ge,3,3,"cue-menu-item"),t.k0s()),2&r){const e=t.XpG().$implicit,o=t.XpG();t.R7$(),t.Dyx(o.contextMenuItems()),t.R7$(2),t.vxM(!e.artefact.allowEdit||"bbox"!==e.type&&"circle"!==e.type&&"polygon"!==e.type?-1:3),t.R7$(),t.vxM(e.artefact.allowRemove?4:-1)}}function We(r,c){if(1&r&&t.nVh(0,Oe,5,2,"cue-menu-wrap"),2&r){const e=t.XpG();t.vxM(e.contextMenuItems().length>0?0:-1)}}function He(r,c){if(1&r){const e=t.RV6();t.j41(0,"cue-image-toolbar",52),t.mxI("zoomChange",function(n){s.eBV(e);const i=t.XpG(2);return t.DH7(i.zoom,n)||(i.zoom=n),s.Njj(n)})("panChange",function(n){s.eBV(e);const i=t.XpG(2);return t.DH7(i.pan,n)||(i.pan=n),s.Njj(n)})("activeToolChange",function(n){s.eBV(e);const i=t.XpG(2);return t.DH7(i.activeTool,n)||(i.activeTool=n),s.Njj(n)}),t.bIt("rotate",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.handleRotate())})("zoomIn",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.handleZoomIn())})("zoomOut",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.handleZoomOut())})("zoomFit",function(){s.eBV(e);const n=t.XpG(2);return s.Njj(n.calculateFitZoom())}),t.k0s()}if(2&r){const e=t.XpG(),o=t.XpG();t.Aen(o.toolbarStyle()),t.Y8G("options",e),t.R50("zoom",o.zoom)("pan",o.pan)("activeTool",o.activeTool),t.Y8G("minZoom",o.minZoom())("maxZoom",o.maxZoom())}}function Ye(r,c){1&r&&t.nVh(0,He,1,8,"cue-image-toolbar",51),2&r&&t.vxM(c.hidden?-1:0)}let Ue=(()=>{class r{svgHelpers=(0,s.WQX)(K);editService=(0,s.WQX)(G);drawingService=(0,s.WQX)(O);polygonService=(0,s.WQX)(W);sanitizer=(0,s.WQX)(z.up);onEscape(){this.polygonService.polygonPoints().length>0&&this.polygonService.cancelPolygon(),this.editService.editingArtefact()&&this.editService.cancelEdit()}onEnter(){this.editService.editingArtefact()&&this.editService.cancelEdit()}src=g.hFB.required();alt=(0,g.hFB)("");fitMode=(0,g.hFB)("contain");toolbarOptions=(0,g.hFB)(new S.g);drawMode=(0,g.hFB)("none");panDisabled=(0,g.hFB)(!1);zoomDisabled=(0,g.hFB)(!1);drawnArtefactDef=(0,g.hFB)({allowRemove:!0,allowEdit:!0,color:"rgba(255, 0, 0, 0.9)"});contextMenuItems=(0,g.hFB)([]);activeTool=(0,g.geq)("pan");drawingArtefacts=(0,g.geq)((0,k.x)());artefactSelected=(0,g.CGW)();artefactDrawn=(0,g.CGW)();artefactRemoved=(0,g.CGW)();artefactEdited=(0,g.CGW)();drawColor=(0,E.EW)(()=>this.drawnArtefactDef().color??"rgba(255, 0, 0, 0.9)");panModeActive=(0,E.EW)(()=>!this.panDisabled()&&"none"===this.drawMode()&&!this.editService.editingArtefact()&&!this.isContextMenuOpen()&&"select"!==this.activeTool());boundingBoxes=(0,E.EW)(()=>this.drawingArtefacts().xywhs.map((o,n)=>{const i=this.parseXYWH("string"==typeof o?o:o.xywhStr);return i&&0!==i.width&&0!==i.height?("object"==typeof o&&(i.color=o.color,i.label=o.label,i.showFill=o.showFill,i.allowRemove=o.allowRemove,i.allowEdit=o.allowEdit),i.sourceIndex=n,i):null}).filter(Boolean));panZoom=(0,g.ebz)(C);imageElement=(0,g.ebz)("imageElement");rotationAngle=(0,s.vPA)(0);pan=(0,s.vPA)({x:0,y:0});isContextMenuOpen=(0,s.vPA)(!1);isZooming=(0,s.vPA)(!1);_zoomEndTimer=null;constructor(){(0,s.QZP)(e=>{const o=this.panZoom();if(o){const n=o.containerRef()?.nativeElement;if(n){const i=new ResizeObserver(()=>{this.zoomDisabled()||this.calculateFitZoom()});i.observe(n),e(()=>i.disconnect())}}}),(0,s.QZP)(e=>{this.zoom(),this.isZooming.set(!0),this._zoomEndTimer&&clearTimeout(this._zoomEndTimer),this._zoomEndTimer=setTimeout(()=>this.isZooming.set(!1),150),e(()=>{this._zoomEndTimer&&clearTimeout(this._zoomEndTimer)})}),queueMicrotask(()=>{const e=this.mouseToImagePercent.bind(this),o=this.parseXYWH.bind(this);this.editService.init({drawingArtefacts:this.drawingArtefacts,mouseToImagePercent:e,parseXYWH:o,polygonService:this.polygonService,artefactEdited:this.artefactEdited}),this.drawingService.init({drawMode:this.drawMode,drawColor:this.drawColor,drawnArtefactDef:this.drawnArtefactDef,artefactDrawn:this.artefactDrawn,mouseToImagePercent:e,imageDimensions:this.imageDimensions,drawingArtefacts:this.drawingArtefacts}),this.polygonService.init({drawColor:this.drawColor,drawnArtefactDef:this.drawnArtefactDef,artefactDrawn:this.artefactDrawn,mouseToImagePercent:e,imageAspectRatio:this.imageAspectRatio,zoom:this.zoom,imageDimensions:this.imageDimensions,drawingArtefacts:this.drawingArtefacts})})}zoom=(0,s.vPA)(1);imageDimensions=(0,s.vPA)(null);imageAspectRatio=(0,E.EW)(()=>{const e=this.imageDimensions();return e&&0!==e.height?e.width/e.height:1});minZoom=(0,s.vPA)(1);maxZoom=(0,s.vPA)(10);toolbarStyle=(0,E.EW)(()=>{const e=this.toolbarOptions();return{position:"absolute",left:e.margin,right:e.margin,["top"===e.position?"top":"bottom"]:e.margin,"z-index":"1000",display:"flex","justify-content":"center"}});onImageLoad(){const e=this.imageElement()?.nativeElement;e&&(this.imageDimensions.set({width:e.naturalWidth,height:e.naturalHeight}),this.zoomDisabled()||this.calculateFitZoom())}calculateFitZoom(){const e=this.panZoom(),o=this.imageElement()?.nativeElement;!e||!o||requestAnimationFrame(()=>{const n=e.containerRef()?.nativeElement;if(!n)return;const i=n.getBoundingClientRect(),a=o.naturalWidth,l=o.naturalHeight;if(0===a||0===l)return;const d=i.width/a,u=i.height/l;let h=1;h="contain"===this.fitMode()?Math.min(d,u):"cover"===this.fitMode()?Math.max(d,u):1,this.minZoom.set(Math.min(h,1)),this.zoom.set(h),this.centerImage()})}centerImage(){const e=this.panZoom();e?requestAnimationFrame(()=>{const o=e.containerRef()?.nativeElement;if(!o)return;const n=o.getBoundingClientRect(),i=this.zoom(),a=this.imageDimensions()?.width||0,l=this.imageDimensions()?.height||0;this.pan.set({x:(n.width-a*i)/2,y:(n.height-l*i)/2})}):this.pan.set({x:0,y:0})}handleRotate(){this.rotationAngle.update(e=>(e-90)%360),this.pan.update(()=>({x:0,y:0}))}handleZoomIn(){this.panZoom()?.zoomIn()}handleZoomOut(){this.panZoom()?.zoomOut()}parseXYWH(e){try{const n=e.replace("percent:","").split(",").map(u=>parseFloat(u.trim()));if(4!==n.length||n.some(isNaN))return console.warn(`Invalid XYWH format: ${e}`),null;const[i,a,l,d]=n;return{x:i,y:a,width:l,height:d}}catch(o){return console.error(`Error parsing XYWH: ${e}`,o),null}}getBgColor(e){if(!e)return"rgba(255, 0, 0, 0.1)";const o=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);if(o)return`rgba(${o[1]}, ${o[2]}, ${o[3]}, 0.1)`;const n=e.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(n){const i=n[1];return`rgba(${parseInt(3===i.length?i[0]+i[0]:i.slice(0,2),16)}, ${parseInt(3===i.length?i[1]+i[1]:i.slice(2,4),16)}, ${parseInt(3===i.length?i[2]+i[2]:i.slice(4,6),16)}, 0.1)`}return e.replace(/rgba?\([^)]+\)/,"rgba(255, 0, 0, 0.1)")}mouseToImagePercent(e){const o=this.imageElement()?.nativeElement;if(!o)return null;const n=o.getBoundingClientRect(),a=(e.clientY-n.top)/n.height*100;return{x:Math.max(0,Math.min(100,(e.clientX-n.left)/n.width*100)),y:Math.max(0,Math.min(100,a))}}handleBboxClick(e,o){o.stopPropagation(),this.artefactSelected.emit(e)}removeArtefact(e){if(null==e.sourceIndex)return;const o=this.drawingArtefacts().xywhs[e.sourceIndex];this.drawingArtefacts.update(n=>({...n,xywhs:n.xywhs.filter((i,a)=>a!==e.sourceIndex)})),o&&this.artefactRemoved.emit(o)}removeCircleArtefact(e){const o=this.drawingArtefacts().circles[e];this.drawingArtefacts.update(n=>({...n,circles:n.circles.filter((i,a)=>a!==e)})),o&&this.artefactRemoved.emit(o)}removePolygonArtefact(e){const o=this.drawingArtefacts().polygons[e];this.drawingArtefacts.update(n=>({...n,polygons:n.polygons.filter((i,a)=>a!==e)})),o&&this.artefactRemoved.emit(o)}handleSvgPathClick(e,o){o.stopPropagation(),this.artefactSelected.emit(e)}removeSvgPathArtefact(e){const o=this.drawingArtefacts().svgPaths[e];this.drawingArtefacts.update(n=>({...n,svgPaths:n.svgPaths.filter((i,a)=>a!==e)})),o&&this.artefactRemoved.emit(o)}svgViewBox=(0,E.EW)(()=>{const e=this.imageDimensions();if(e&&e.width>0&&e.height>0)return`0 0 ${e.width} ${e.height}`;const o=this.drawingArtefacts().svgPaths;if(o.length>0){const i=o[0].svg.match(/viewBox="([^"]+)"/);if(i)return i[1]}return"0 0 100 100"});getSvgLabelPositionPercent(e,o){const n=this.svgHelpers.getLabelPosition(e);if(!n)return null;const i=this.imageDimensions();if(!i||0===i.width||0===i.height)return null;let{x:a,y:l}=n;if(o){const d=o.match(/matrix\(\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*\)/);if(d){const[,u,h,p,b,y,T]=d.map(Number),R=h*a+b*l+T;a=u*a+p*l+y,l=R}}return{x:a/i.width*100,y:l/i.height*100}}pointsToAttr(e){return e.map(o=>o[0]+","+o[1]).join(" ")}polygonCentroid(e){let o=0,n=0;for(const i of e)o+=i[0],n+=i[1];return{x:o/e.length,y:n/e.length}}isCursorOnVertex(e,o){for(const n of o)if(Math.abs(e[0]-n[0])<.5&&Math.abs(e[1]-n[1])<.5)return!0;return!1}safeSvg(e){let o=e.trim();if(o.startsWith("<svg")){const i=(new DOMParser).parseFromString(o,"image/svg+xml"),a=i.querySelector("parsererror");a&&console.warn("[ImageViewer] safeSvg: SVG parse error",a.textContent),o=i.documentElement.innerHTML}return this.sanitizer.bypassSecurityTrustHtml(o)}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=t.VBU({type:r,selectors:[["cue-image-viewer"]],viewQuery:function(o,n){1&o&&t.wEZ(n.panZoom,C,5)(n.imageElement,q,5),2&o&&t.NyB(2)},hostBindings:function(o,n){1&o&&t.bIt("keydown.escape",function(){return n.onEscape()},t.EBC)("keydown.enter",function(){return n.onEnter()},t.EBC)},inputs:{src:[1,"src"],alt:[1,"alt"],fitMode:[1,"fitMode"],toolbarOptions:[1,"toolbarOptions"],drawMode:[1,"drawMode"],panDisabled:[1,"panDisabled"],zoomDisabled:[1,"zoomDisabled"],drawnArtefactDef:[1,"drawnArtefactDef"],contextMenuItems:[1,"contextMenuItems"],activeTool:[1,"activeTool"],drawingArtefacts:[1,"drawingArtefacts"]},outputs:{activeTool:"activeToolChange",drawingArtefacts:"drawingArtefactsChange",artefactSelected:"artefactSelected",artefactDrawn:"artefactDrawn",artefactRemoved:"artefactRemoved",artefactEdited:"artefactEdited"},features:[t.Jv_([G,O,W])],ngContentSelectors:J,decls:19,vars:19,consts:[["imageElement",""],["artefactContextMenu",""],[1,"container"],[2,"width","100%","height","100%",3,"zoomChange","panChange","minZoom","maxZoom","zoom","pan","zoomStep","panMode"],[1,"image-container"],["draggable","false",2,"max-width","none","height","auto","display","block","user-select","none",3,"load","src","alt"],["trigger","leftclick",1,"bounding-box-overlay",3,"clickable","removable","left","top","width","height","border-color","border-width","background-color","title","cueContextMenu","contextMenuData","cueContextEnabled"],[1,"bounding-box-overlay","draw-preview",3,"left","top","width","height","border-color","border-width","background-color"],["viewBox","0 0 100 100","preserveAspectRatio","none",1,"svg-overlay",2,"position","absolute","top","0","left","0","width","100%","height","100%","pointer-events","none","overflow","visible"],["tabindex","0",1,"draw-overlay"],[1,"draw-overlay","edit-overlay"],["trigger","leftclick",1,"bounding-box-overlay",3,"contextMenuOpen","contextMenuClose","click","title","cueContextMenu","contextMenuData","cueContextEnabled"],[1,"bbox-label",3,"transform"],[1,"bbox-label"],["size","xs","weight","medium",3,"noWrap","innerHTML"],[1,"bounding-box-overlay","draw-preview"],["vector-effect","non-scaling-stroke","trigger","leftclick",1,"clickable",3,"pointer-events","cursor","cueContextMenu","contextMenuData","cueContextEnabled"],["vector-effect","non-scaling-stroke","trigger","leftclick",1,"clickable",3,"contextMenuOpen","contextMenuClose","cueContextMenu","contextMenuData","cueContextEnabled"],[1,"bbox-label",3,"left","top","transform"],["vector-effect","non-scaling-stroke","stroke-dasharray","6 4"],["vector-effect","non-scaling-stroke","trigger","leftclick",3,"pointer-events","cursor","clickable","cueContextMenu","contextMenuData","cueContextEnabled"],["vector-effect","non-scaling-stroke","trigger","leftclick",3,"contextMenuOpen","contextMenuClose","cueContextMenu","contextMenuData","cueContextEnabled"],["fill","none","vector-effect","non-scaling-stroke","stroke-dasharray","6 4"],[1,"polygon-vertex",3,"left","top","transform","background"],[1,"polygon-vertex","cursor-preview",3,"left","top","transform","background"],["vector-effect","non-scaling-stroke","stroke-dasharray","4 4","opacity","0.6"],["vector-effect","non-scaling-stroke","stroke-dasharray","2 4","opacity","0.3"],[1,"polygon-vertex"],[1,"polygon-vertex","cursor-preview"],[1,"snap-guide","vertical",3,"left"],[1,"snap-guide","horizontal",3,"top"],[1,"snap-guide","vertical"],[1,"snap-guide","horizontal"],["tabindex","0",1,"draw-overlay",3,"mousedown","keydown.escape"],[1,"draw-overlay","edit-overlay",3,"mousedown"],[1,"resize-handle","nw",3,"mousedown"],[1,"resize-handle","ne",3,"mousedown"],[1,"resize-handle","sw",3,"mousedown"],[1,"resize-handle","se",3,"mousedown"],[1,"resize-handle","n",3,"mousedown"],[1,"resize-handle","s",3,"mousedown"],[1,"resize-handle","w",3,"mousedown"],[1,"resize-handle","e",3,"mousedown"],[1,"resize-handle","radius",3,"mousedown"],[1,"resize-handle","radius-v",3,"mousedown"],[1,"resize-handle","vertex",3,"left","top","transform"],[1,"resize-handle","vertex",3,"mousedown"],["preserveAspectRatio","none",1,"svg-overlay",2,"position","absolute","top","0","left","0","width","100%","height","100%","pointer-events","none","overflow","visible"],["trigger","leftclick",3,"clickable","pointer-events","cursor","cueContextMenu","contextMenuData","cueContextEnabled","--dxf-sw","innerHTML"],["trigger","leftclick",3,"contextMenuOpen","contextMenuClose","click","cueContextMenu","contextMenuData","cueContextEnabled","innerHTML"],[3,"click"],[3,"options","style","zoom","pan","activeTool","minZoom","maxZoom"],[3,"zoomChange","panChange","activeToolChange","rotate","zoomIn","zoomOut","zoomFit","options","zoom","pan","activeTool","minZoom","maxZoom"]],template:function(o,n){if(1&o){const i=t.RV6();t.NAR(),t.j41(0,"div",2)(1,"cue-pan-zoom",3),t.mxI("zoomChange",function(l){return s.eBV(i),t.DH7(n.zoom,l)||(n.zoom=l),s.Njj(l)})("panChange",function(l){return s.eBV(i),t.DH7(n.pan,l)||(n.pan=l),s.Njj(l)}),t.j41(2,"div",4)(3,"img",5,0),t.bIt("load",function(){return n.onImageLoad()}),t.k0s(),t.Z7z(5,se,2,26,"div",6,t.Vm6),t.nVh(7,ce,1,14,"div",7),t.nVh(8,me,5,0),t.nVh(9,he,2,7,":svg:svg",8),t.nVh(10,fe,5,0),t.nVh(11,Ce,7,6),t.nVh(12,De,1,0,"div",9),t.nVh(13,Re,4,3,"div",10),t.nVh(14,Xe,5,1),t.SdG(15),t.DNE(16,We,1,1,"ng-template",null,1,t.C5r),t.k0s()(),t.nVh(18,Ye,1,1),t.k0s()}if(2&o){let i,a,l,d,u;t.R7$(),t.Y8G("minZoom",n.zoomDisabled()?n.zoom():n.minZoom())("maxZoom",n.zoomDisabled()?n.zoom():n.maxZoom()),t.R50("zoom",n.zoom)("pan",n.pan),t.Y8G("zoomStep",.1)("panMode",n.panModeActive()),t.R7$(),t.xc7("transform","rotate("+n.rotationAngle()+"deg)"),t.R7$(),t.Y8G("src",n.src(),t.B4B)("alt",n.alt()),t.R7$(2),t.Dyx(n.boundingBoxes()),t.R7$(2),t.vxM((i=n.drawingService.drawPreview())?7:-1,i),t.R7$(),t.vxM(n.drawingArtefacts().circles.length>0?8:-1),t.R7$(),t.vxM((a=n.drawingService.circleDrawPreview())?9:-1,a),t.R7$(),t.vxM(n.drawingArtefacts().polygons.length>0?10:-1),t.R7$(),t.vxM((l=n.polygonService.polygonDrawPreview())?11:-1,l),t.R7$(),t.vxM("none"!==n.drawMode()?12:-1),t.R7$(),t.vxM((d=n.editService.editingArtefact())?13:-1,d),t.R7$(),t.vxM(n.drawingArtefacts().svgPaths.length>0&&!n.isZooming()?14:-1),t.R7$(4),t.vxM((u=n.toolbarOptions())?18:-1,u)}},dependencies:[B.MD,S.F,C,A.Q,P.M,N.D,f.Z,V.o,X.Kj],styles:["[_nghost-%COMP%]{display:contents}.container[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column}.image-container[_ngcontent-%COMP%]{position:relative;height:auto}.bounding-box-overlay[_ngcontent-%COMP%]{position:absolute;border:3px solid rgba(255,0,0,.8);background-color:#ff00001a;box-sizing:border-box;pointer-events:none;z-index:5;transition:border-width .2s ease,background-color .2s ease}.bounding-box-overlay.clickable[_ngcontent-%COMP%]{pointer-events:auto;cursor:pointer}.bounding-box-overlay.clickable[_ngcontent-%COMP%]:hover{border-width:3px;background-color:#ff000040}.bbox-label[_ngcontent-%COMP%]{position:absolute;top:-12px;left:-28px;transform-origin:bottom left;pointer-events:none;z-index:6;--cue-card-padding-x: 8px;--cue-card-padding-y: 4px}cue-image-toolbar[_ngcontent-%COMP%]{position:absolute;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:center}.draw-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair;z-index:6}.edit-overlay[_ngcontent-%COMP%]{cursor:move;z-index:8}.resize-handle[_ngcontent-%COMP%]{position:absolute;width:8px;height:8px;background:#fff;border:2px solid rgba(0,120,215,.9);border-radius:2px;z-index:9;pointer-events:auto}.resize-handle.nw[_ngcontent-%COMP%]{cursor:nw-resize}.resize-handle.ne[_ngcontent-%COMP%]{cursor:ne-resize}.resize-handle.sw[_ngcontent-%COMP%]{cursor:sw-resize}.resize-handle.se[_ngcontent-%COMP%]{cursor:se-resize}.resize-handle.n[_ngcontent-%COMP%]{cursor:n-resize}.resize-handle.s[_ngcontent-%COMP%]{cursor:s-resize}.resize-handle.e[_ngcontent-%COMP%]{cursor:e-resize}.resize-handle.w[_ngcontent-%COMP%]{cursor:w-resize}.resize-handle.radius[_ngcontent-%COMP%]{cursor:ew-resize;border-radius:50%}.resize-handle.radius-v[_ngcontent-%COMP%]{cursor:ns-resize;border-radius:50%}.draw-preview[_ngcontent-%COMP%]{border-style:dashed!important;pointer-events:none;z-index:7}.bounding-box-overlay.removable[_ngcontent-%COMP%]{pointer-events:auto}.polygon-vertex[_ngcontent-%COMP%]{position:absolute;width:8px;height:8px;border-radius:50%;border:2px solid white;pointer-events:none;z-index:7}.polygon-vertex.cursor-preview[_ngcontent-%COMP%]{opacity:.6}.snap-guide[_ngcontent-%COMP%]{position:absolute;pointer-events:none;z-index:6}.snap-guide.vertical[_ngcontent-%COMP%]{top:0;bottom:0;width:0;border-left:1px dashed rgba(0,200,255,.7)}.snap-guide.horizontal[_ngcontent-%COMP%]{left:0;right:0;height:0;border-top:1px dashed rgba(0,200,255,.7)}"],changeDetection:0})}return r})()}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkcue_ui=self.webpackChunkcue_ui||[]).push([[734],{536(x,m,l){l.d(m,{X:()=>S});var a=l(6780),f=l(8359);const _={schedule(d){let n=requestAnimationFrame,u=cancelAnimationFrame;const{delegate:g}=_;g&&(n=g.requestAnimationFrame,u=g.cancelAnimationFrame);const C=n(E=>{u=void 0,d(E)});return new f.yU(()=>u?.(C))},requestAnimationFrame(...d){const{delegate:n}=_;return(n?.requestAnimationFrame||requestAnimationFrame)(...d)},cancelAnimationFrame(...d){const{delegate:n}=_;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...d)},delegate:void 0};var p=l(9687);const S=new class s extends p.q{flush(n){let u;this._active=!0,n?u=n.id:(u=this._scheduled,this._scheduled=void 0);const{actions:g}=this;let C;n=n||g.shift();do{if(C=n.execute(n.state,n.delay))break}while((n=g[0])&&n.id===u&&g.shift());if(this._active=!1,C){for(;(n=g[0])&&n.id===u&&g.shift();)n.unsubscribe();throw C}}}(class h extends a.R{constructor(n,u){super(n,u),this.scheduler=n,this.work=u}requestAsyncId(n,u,g=0){return null!==g&&g>0?super.requestAsyncId(n,u,g):(n.actions.push(this),n._scheduled||(n._scheduled=_.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,u,g=0){var C;if(null!=g?g>0:this.delay>0)return super.recycleAsyncId(n,u,g);const{actions:E}=n;null!=u&&u===n._scheduled&&(null===(C=E[E.length-1])||void 0===C?void 0:C.id)!==u&&(_.cancelAnimationFrame(u),n._scheduled=void 0)}})},7523(x,m,l){function a(f){return Array.isArray(f)?f:[f]}l.d(m,{F:()=>a})},9752(x,m,l){l.d(m,{dS:()=>p});var a=l(5802);const f=new a.nKC("cdk-dir-doc",{providedIn:"root",factory:()=>(0,a.WQX)(a.qQL)}),_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let p=(()=>{class s{get value(){return this.valueSignal()}valueSignal=(0,a.vPA)("ltr");change=new a.bkB;constructor(){const w=(0,a.WQX)(f,{optional:!0});w&&this.valueSignal.set(function h(s){const S=s?.toLowerCase()||"";return"auto"===S&&typeof navigator<"u"&&navigator?.language?_.test(navigator.language)?"rtl":"ltr":"rtl"===S?"rtl":"ltr"}((w.body?w.body.dir:null)||(w.documentElement?w.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static \u0275fac=function(d){return new(d||s)};static \u0275prov=a.jDH({token:s,factory:s.\u0275fac,providedIn:"root"})}return s})()},7384(x,m,l){l.d(m,{OE:()=>f,i8:()=>h});var a=l(5547);function f(p,s=0){return function _(p){return!isNaN(parseFloat(p))&&!isNaN(Number(p))}(p)?Number(p):2===arguments.length?s:0}function h(p){return p instanceof a.aKT?p.nativeElement:p}},3531(x,m,l){l.d(m,{g:()=>h});var a=l(5802),f=l(5547);const _={};class h{_appId=(0,a.WQX)(f.sZ2);static _infix=`a${Math.floor(1e5*Math.random()).toString()}`;getId(s,S=!1){return"ng"!==this._appId&&(s+=this._appId),_.hasOwnProperty(s)||(_[s]=0),`${s}${S?h._infix+"-":""}${_[s]++}`}static \u0275fac=function(S){return new(S||h)};static \u0275prov=a.jDH({token:h,factory:h.\u0275fac,providedIn:"root"})}},7421(x,m,l){l.d(m,{O:()=>p});var a=l(5802),f=l(5547),_=l(177);let h;try{h=typeof Intl<"u"&&Intl.v8BreakIterator}catch{h=!1}let p=(()=>{class s{_platformId=(0,a.WQX)(f.Agw);isBrowser=this._platformId?(0,_.UE)(this._platformId):"object"==typeof document&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!(!window.chrome&&!h)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(d){return new(d||s)};static \u0275prov=a.jDH({token:s,factory:s.\u0275fac,providedIn:"root"})}return s})()},9867(x,m,l){let a;function _(s){if(function f(){if(null==a){const s=typeof document<"u"?document.head:null;a=!(!s||!s.createShadowRoot&&!s.attachShadow)}return a}()){const S=s.getRootNode?s.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&S instanceof ShadowRoot)return S}return null}function p(s){return s.composedPath?s.composedPath()[0]:s.target}l.d(m,{Fb:()=>p,KT:()=>_})},3293(x,m,l){l.d(m,{l:()=>p});var a=l(5802),f=l(7705),_=l(5547);const h=new WeakMap;let p=(()=>{class s{_appRef;_injector=(0,a.WQX)(a.zZn);_environmentInjector=(0,a.WQX)(a.uvJ);load(w){const d=this._appRef=this._appRef||this._injector.get(_.o8S);let n=h.get(d);n||(n={loaders:new Set,refs:[]},h.set(d,n),d.onDestroy(()=>{h.get(d)?.refs.forEach(u=>u.destroy()),h.delete(d)})),n.loaders.has(w)||(n.loaders.add(w),n.refs.push((0,f.a0P)(w,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(d){return new(d||s)};static \u0275prov=a.jDH({token:s,factory:s.\u0275fac,providedIn:"root"})}return s})()},8203(x,m,l){l.d(m,{jI:()=>d});var s=l(5802),S=l(5547);let d=(()=>{class n{static \u0275fac=function(C){return new(C||n)};static \u0275mod=S.$C({type:n});static \u0275inj=s.G2t({})}return n})()},6535(x,m,l){l.d(m,{R:()=>Q,E9:()=>Y,Xj:()=>$});var a=l(5802),f=l(5547),_=l(1413),h=l(7673),p=l(4226),S=(l(536),l(6780));let d,w=1;const n={};function u(o){return o in n&&(delete n[o],!0)}const g={setImmediate(o){const r=w++;return n[r]=!0,d||(d=Promise.resolve()),d.then(()=>u(r)&&o()),r},clearImmediate(o){u(o)}},{setImmediate:E,clearImmediate:A}=g,b={setImmediate(...o){const{delegate:r}=b;return(r?.setImmediate||E)(...o)},clearImmediate(o){const{delegate:r}=b;return(r?.clearImmediate||A)(o)},delegate:void 0};var L=l(9687);new class z extends L.q{flush(r){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:t}=this;let i;r=r||t.shift();do{if(i=r.execute(r.state,r.delay))break}while((r=t[0])&&r.id===e&&t.shift());if(this._active=!1,i){for(;(r=t[0])&&r.id===e&&t.shift();)r.unsubscribe();throw i}}}(class F extends S.R{constructor(r,e){super(r,e),this.scheduler=r,this.work=e}requestAsyncId(r,e,t=0){return null!==t&&t>0?super.requestAsyncId(r,e,t):(r.actions.push(this),r._scheduled||(r._scheduled=b.setImmediate(r.flush.bind(r,void 0))))}recycleAsyncId(r,e,t=0){var i;if(null!=t?t>0:this.delay>0)return super.recycleAsyncId(r,e,t);const{actions:c}=r;null!=e&&(null===(i=c[c.length-1])||void 0===i?void 0:i.id)!==e&&(b.clearImmediate(e),r._scheduled===e&&(r._scheduled=void 0))}});var B=l(3236),P=l(9974),N=l(8750),k=l(4360),j=l(1584);function T(o,r=B.E){return function W(o){return(0,P.N)((r,e)=>{let t=!1,i=null,c=null,v=!1;const D=()=>{if(c?.unsubscribe(),c=null,t){t=!1;const y=i;i=null,e.next(y)}v&&e.complete()},R=()=>{c=null,v&&e.complete()};r.subscribe((0,k._)(e,y=>{t=!0,i=y,c||(0,N.Tg)(o(y)).subscribe(c=(0,k._)(e,D,R))},()=>{v=!0,(!t||!c||c.closed)&&e.complete()}))})}(()=>(0,j.O)(o,r))}var U=l(5964),H=l(7384),O=l(7421),V=l(8203);let Q=(()=>{class o{_ngZone=(0,a.WQX)(a.SKi);_platform=(0,a.WQX)(O.O);_renderer=(0,a.WQX)(f._9s).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new _.B;_scrolledCount=0;scrollContainers=new Map;register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const t=this.scrollContainers.get(e);t&&(t.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new p.c(t=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));const i=e>0?this._scrolled.pipe(T(e)).subscribe(t):this._scrolled.subscribe(t);return this._scrolledCount++,()=>{i.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):(0,h.of)()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,t)=>this.deregister(t)),this._scrolled.complete()}ancestorScrolled(e,t){const i=this.getAncestorScrollContainers(e);return this.scrolled(t).pipe((0,U.p)(c=>!c||i.indexOf(c)>-1))}getAncestorScrollContainers(e){const t=[];return this.scrollContainers.forEach((i,c)=>{this._scrollableContainsElement(c,e)&&t.push(c)}),t}_scrollableContainsElement(e,t){let i=(0,H.i8)(t),c=e.getElementRef().nativeElement;do{if(i==c)return!0}while(i=i.parentElement);return!1}static \u0275fac=function(t){return new(t||o)};static \u0275prov=a.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),$=(()=>{class o{_platform=(0,a.WQX)(O.O);_listeners;_viewportSize=null;_change=new _.B;_document=(0,a.WQX)(a.qQL);constructor(){const e=(0,a.WQX)(a.SKi),t=(0,a.WQX)(f._9s).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){const i=c=>this._change.next(c);this._listeners=[t.listen("window","resize",i),t.listen("window","orientationchange",i)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:t,height:i}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+i,right:e.left+t,height:i,width:t}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,t=this._getWindow(),i=e.documentElement,c=i.getBoundingClientRect();return{top:-c.top||e.body?.scrollTop||t.scrollY||i.scrollTop||0,left:-c.left||e.body?.scrollLeft||t.scrollX||i.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(T(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static \u0275fac=function(t){return new(t||o)};static \u0275prov=a.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),I=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=f.$C({type:o});static \u0275inj=a.G2t({})}return o})(),Y=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=f.$C({type:o});static \u0275inj=a.G2t({imports:[V.jI,I,V.jI,I]})}return o})()}}]);