kritzel-stencil 0.1.0 → 0.1.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 (35) hide show
  1. package/dist/cjs/{default-line-tool.config-7eJND6Jb.js → default-line-tool.config-SdMGkNhv.js} +68 -15
  2. package/dist/cjs/index.cjs.js +1 -1
  3. package/dist/cjs/kritzel-color_22.cjs.entry.js +66 -46
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/stencil.cjs.js +1 -1
  6. package/dist/collection/classes/handlers/move.handler.js +6 -0
  7. package/dist/collection/classes/objects/line.class.js +62 -15
  8. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +66 -0
  9. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +66 -44
  10. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  11. package/dist/components/index.js +1 -1
  12. package/dist/components/kritzel-controls.js +1 -1
  13. package/dist/components/kritzel-editor.js +1 -1
  14. package/dist/components/kritzel-engine.js +1 -1
  15. package/dist/components/kritzel-utility-panel.js +1 -1
  16. package/dist/components/p-D4n7UbGY.js +1 -0
  17. package/dist/components/{p-DB5s1NY4.js → p-XGgKC_Fe.js} +1 -1
  18. package/dist/components/p-exWKDgI8.js +9 -0
  19. package/dist/esm/{default-line-tool.config-CD5sTKH-.js → default-line-tool.config-Cw8mdDpt.js} +68 -15
  20. package/dist/esm/index.js +2 -2
  21. package/dist/esm/kritzel-color_22.entry.js +66 -46
  22. package/dist/esm/loader.js +1 -1
  23. package/dist/esm/stencil.js +1 -1
  24. package/dist/stencil/index.esm.js +1 -1
  25. package/dist/stencil/p-Cw8mdDpt.js +1 -0
  26. package/dist/stencil/p-d21a009f.entry.js +9 -0
  27. package/dist/stencil/stencil.esm.js +1 -1
  28. package/dist/types/classes/managers/anchor.manager.d.ts +1 -1
  29. package/dist/types/classes/objects/line.class.d.ts +2 -0
  30. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +6 -0
  31. package/package.json +1 -1
  32. package/dist/components/p-B7Fdo5QJ.js +0 -1
  33. package/dist/components/p-D3LRBk2t.js +0 -9
  34. package/dist/stencil/p-381c0e9c.entry.js +0 -9
  35. package/dist/stencil/p-CD5sTKH-.js +0 -1
@@ -0,0 +1,9 @@
1
+ import{r as t,h as e,H as i,c as n,g as r}from"./p-BqhmuUH2.js";import{Z as o,J as s,P as a,_ as c,$ as l,a0 as h,a1 as u,a2 as f,a3 as d,a4 as p,a5 as b,a6 as v,a7 as g,a8 as k,a9 as y,aa as m,ab as w,ac as x,R as z,W as C,Y as S,L as M,M as I,X as j,N as _,U as T,ad as A,ae as $,af as E,ag as O,I as F,F as D,K as W,G as R,E as P,ah as L,ai as U,aj as K,Q as V,T as B,V as H,ak as Y,al as N}from"./p-Cw8mdDpt.js";var q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};const X=class{constructor(e){t(this,e)}value;size=24;isLightColor(t){if(!t)return!1;let e=0,i=0,n=0,r=t.startsWith("#")?t.slice(1):t;if(3===r.length)e=parseInt(r[0]+r[0],16),i=parseInt(r[1]+r[1],16),n=parseInt(r[2]+r[2],16);else{if(6!==r.length)return!1;e=parseInt(r.substring(0,2),16),i=parseInt(r.substring(2,4),16),n=parseInt(r.substring(4,6),16)}return!(isNaN(e)||isNaN(i)||isNaN(n))&&.299*e+.587*i+.114*n>220}render(){const t=this.isLightColor(this.value);return e(i,{key:"edf5d94f476d72d0be74886b362fd37db789c517"},e("div",{key:"d8af2373616b9bc6f4ddea0822d737f073563bf9",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},e("div",{key:"6b587f7926884e7c38fe36eaef41b0c8cd213c6d",class:{"color-circle":!0,white:t},style:{backgroundColor:this.value,width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",position:"absolute",top:"0",left:"0",display:"inline-block"}})))}};X.style=":host{display:flex}.checkerboard-bg{background:repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;position:relative;overflow:hidden}.color-circle{width:24px;height:24px;border-radius:50%;box-sizing:border-box;display:block}.color-circle.white{border:1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc)}";const G=class{constructor(e){t(this,e),this.colorChange=n(this,"colorChange")}colors=[];selectedColor=null;isExpanded=!1;isOpaque=!1;colorChange;handleColorClick(t){this.selectedColor=t,this.colorChange.emit(t)}handleKeyDown(t,e){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.handleColorClick(e))}calculateHeight(){const t=Math.ceil(this.colors.length/6);return 32*t+8*(t-1)+"px"}render(){const t=this.isExpanded?this.colors:this.colors.slice(0,6),n=this.isExpanded?this.calculateHeight():"32px";return e(i,{key:"83e3aa70f68e1bab337a031c2d00ac152f924fe1"},e("div",{key:"86a6198500ea5bef3ed399fc8f7ec0275899eb79",class:{"color-grid":!0,expanded:this.isExpanded},style:{height:n}},t.map((t=>e("div",{tabIndex:0,class:{"color-container":!0,selected:this.selectedColor===t},onClick:()=>this.handleColorClick(t),onKeyDown:e=>this.handleKeyDown(e,t)},e("kritzel-color",{value:t}))))))}};G.style=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;width:100%;box-sizing:border-box}.color-grid{width:100%;display:grid;grid-template-columns:repeat(6, 32px);gap:8px;justify-items:center;overflow:hidden;height:40px;transition:height 0.1s ease-in-out}.color-grid.expanded{height:500px}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.color-container:hover{background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.color-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-color-palette-selected-background-color)}";const Z=class{constructor(e){t(this,e),this.actionSelected=n(this,"actionSelected"),this.close=n(this,"close")}get host(){return r(this)}items;onItemsChanged(){this.updateMenuItems()}objects;actionSelected;close;processedItems=[];handleOutsideClick(t){t.composedPath().includes(this.host)||this.close.emit()}componentWillLoad(){this.updateMenuItems()}componentDidLoad(){this.adjustPositionToViewport()}componentDidUpdate(){this.adjustPositionToViewport()}adjustPositionToViewport(){const t=this.host.getBoundingClientRect(),e=window.innerWidth,i=window.innerHeight,n=parseFloat(this.host.style.left)||0,r=parseFloat(this.host.style.top)||0;let o=n,s=r;t.right>e-8&&(o=e-t.width-8),t.bottom>i-8&&(s=i-t.height-8),o<8&&(o=8),s<8&&(s=8),o===n&&s===r||(this.host.style.left=`${o}px`,this.host.style.top=`${s}px`)}handleItemClick(t,e){e||this.actionSelected.emit(t)}async updateMenuItems(){const t=[];for(const e of this.items)if(await this.evaluateProperty(e.visible,!0)){const i=await this.evaluateProperty(e.disabled,!1);t.push({item:e,isDisabled:i})}this.processedItems=t}async evaluateProperty(t,e){return"boolean"==typeof t?t:"function"==typeof t?await Promise.resolve(t(null,this.objects)):e}render(){return e(i,{key:"f57688eb3c0921c0a2d85cab7bbe9273ecf4fdab"},e("div",{key:"8082568dd09f4ad5ef07885308d752e8c924f02e",class:"menu-container"},this.processedItems.map((({item:t,isDisabled:i},n)=>e("button",{key:`${t.label}-${n}`,class:{"menu-item":!0,disabled:i},onClick:()=>this.handleItemClick(t,i),disabled:i},t.icon&&e("kritzel-icon",{name:t.icon,size:16}),e("span",{class:"label"},t.label))))))}static get watchers(){return{items:[{onItemsChanged:0}]}}};Z.style=":host{display:block}.menu-container{display:flex;flex-direction:column;background-color:var(--kritzel-context-menu-background-color, #ffffff);border-radius:var(--kritzel-context-menu-border-radius, 12px);box-shadow:var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));border:var(--kritzel-context-menu-border, 1px solid #ebebeb);padding:var(--kritzel-context-menu-padding,4px)}.menu-item{display:flex;align-items:center;gap:var(--kritzel-context-menu-item-gap, 8px);background:none;border:none;text-align:left;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 12px);cursor:var(--kritzel-pointer-cursor, pointer);font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);white-space:nowrap;-webkit-tap-highlight-color:transparent}.menu-item:not(.disabled):hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa)}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.label{flex-grow:1}";const J=class{constructor(e){t(this,e),this.toolChange=n(this,"toolChange")}tool;handleToolChange(t){this.palette=t.palettes[t.type]}isExpanded=!1;toolChange;palette=[];componentWillLoad(){this.palette=this.tool.palettes[this.tool.type]}handleToggleExpand(){this.isExpanded=!this.isExpanded}handleTypeChange(t){this.palette=this.tool.palettes[t.detail],this.tool.type=t.detail,this.tool.color=this.palette[0],this.toolChange.emit(this.tool)}handleColorChange(t){this.tool.color=t.detail,this.toolChange.emit(this.tool)}handleSizeChange(t){this.tool.size=t.detail,this.toolChange.emit(this.tool)}render(){return e(i,{key:"ce2ac77db22f52239a45b62f690d54009f2c6954"},e("div",{key:"5f6c50853e876c3612bb5c270bccc468c2c9a726",style:{display:"flex",flexDirection:"row",alignItems:this.isExpanded?"flex-start":"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-color-palette",{key:"bfa24bb8683027c37f200ad65e4e6787d7224c56",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:!0,onColorChange:t=>this.handleColorChange(t)}),e("button",{key:"8e2c55c6d16ca3911c5f068c354bdce5a4f7e844",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},e("kritzel-icon",{key:"33610ada109fe5d1d9cb2da4c70a60d672e3d6cb",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-stroke-size",{key:"9b095dd9436e46dd88a3485ceb2dafa5d06d1bc4",selectedSize:this.tool.size,onSizeChange:t=>this.handleSizeChange(t)}))}static get watchers(){return{tool:[{handleToolChange:0}]}}};J.style=":host{display:flex;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:var(--kritzel-pointer-cursor, pointer);font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const Q=class{constructor(e){t(this,e),this.toolChange=n(this,"toolChange")}tool;isExpanded=!1;toolChange;handleToggleExpand(){this.isExpanded=!this.isExpanded}handleFamilyChange(t){this.tool.fontFamily=t.detail,this.toolChange.emit(this.tool)}handleColorChange(t){this.tool.fontColor=t.detail,this.toolChange.emit(this.tool)}handleSizeChange(t){this.tool.fontSize=t.detail,this.toolChange.emit(this.tool)}render(){return e(i,{key:"4a0027969b183fef77c374eb114d9d30104e5ad7"},e("div",{key:"9f49eb3a95080447b938fdfeb256fafbe5ff9ddc",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-font-family",{key:"4e75cda048f8b8c04e6cb5568e7cdcde91e28112",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:t=>this.handleFamilyChange(t)}),e("button",{key:"05c6ce98bd700e9e9d2e676cbcf191b943a2980e",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",tabindex:"0"},e("kritzel-icon",{key:"ce30d48dd5ce5eefeee7702dff81ca8f96e0872d",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-color-palette",{key:"a3d313bf01dafc15c8cf39a129d8c0c35741a3ca",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:t=>this.handleColorChange(t)}),e("kritzel-font-size",{key:"954db891b80fb244083de24dc87255b1239ff913",selectedSize:this.tool.fontSize,fontFamily:this.tool.fontFamily,onSizeChange:t=>this.handleSizeChange(t)}))}};Q.style=":host{display:block;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:var(--kritzel-pointer-cursor, pointer);font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const tt=class{constructor(e){t(this,e),this.isControlsReady=n(this,"isControlsReady")}get host(){return r(this)}controls=[];activeControl=null;isUtilityPanelVisible=!0;undoState=null;isControlsReady;firstConfig=null;isTooltipVisible=!1;isTouchDevice=o.isTouchDevice();selectedSubOptions=new Map;openSubMenuControl=null;canScrollLeft=!1;canScrollRight=!1;handleDocumentClick(t){this.kritzelEngine&&!t.target.closest(".kritzel-tooltip")&&(this.isTooltipVisible=!1)}handleKeyDown(t){"Escape"===t.key&&(t.preventDefault(),this.closeTooltip(),this.openSubMenuControl=null,this.kritzelEngine?.enable())}async handleActiveToolChange(t){this.activeControl=this.controls.find((e=>e.tool===t.detail))||null}async closeTooltip(){this.isTooltipVisible=!1}kritzelEngine=null;tooltipRef=null;toolsScrollRef=null;get activeToolAsTextTool(){return this.activeControl?.tool}get activeToolAsBrushTool(){return this.activeControl?.tool}async componentWillLoad(){await this.initializeEngine(),await this.initializeTools(),this.isControlsReady.emit()}componentDidLoad(){this.updateScrollIndicators()}updateScrollIndicators(){if(!this.toolsScrollRef)return;const{scrollLeft:t,scrollWidth:e,clientWidth:i}=this.toolsScrollRef;this.canScrollLeft=t>2,this.canScrollRight=t+i<e-2}handleToolsScroll=()=>{this.updateScrollIndicators()};async initializeEngine(){if(await customElements.whenDefined("kritzel-engine"),this.kritzelEngine=this.host.parentElement.querySelector("kritzel-engine"),!this.kritzelEngine)throw new Error("kritzel-engine not found in parent element.")}async initializeTools(){for(const t of this.controls)"tool"===t.type&&t.tool&&(t.tool=await this.kritzelEngine.registerTool(t.name,t.tool,t.config)),"tool"===t.type&&t.isDefault&&t.tool&&(await this.kritzelEngine.changeActiveTool(t.tool),this.activeControl=t),"config"===t.type&&(null===this.firstConfig?this.firstConfig=t:console.warn("Only one config control is allowed. The first one will be used."))}async handleControlClick(t){this.activeControl=t,"tool"===this.activeControl.type&&await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}handleConfigClick(t){t.stopPropagation(),this.isTooltipVisible=!this.isTooltipVisible,this.isTooltipVisible?this.kritzelEngine?.disable():this.kritzelEngine?.enable(),setTimeout((()=>{this.tooltipRef?.focusContent()}),100)}async handleToolChange(t){this.activeControl={...this.activeControl,tool:t.detail},await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}handleTooltipClosed(){this.isTooltipVisible=!1,this.kritzelEngine?.enable()}getSelectedSubOption(t){if(t.subOptions?.length)return this.selectedSubOptions.get(t.name)||t.subOptions[0]}toggleSubMenu(t,e){t.stopPropagation(),this.openSubMenuControl=this.openSubMenuControl?.name===e.name?null:e}async selectSubOption(t,e){const i=new Map(this.selectedSubOptions);i.set(t.name,e),this.selectedSubOptions=i,t.tool&&"function"!=typeof t.tool&&(t.tool[e.toolProperty]=e.value),this.openSubMenuControl=null,await this.handleControlClick(t)}render(){const t=this.activeControl?.tool instanceof s||this.activeControl?.tool instanceof a,n=this.controls.filter((t=>"tool"===t.type)),r=this.controls.find((t=>"config"===t.type&&t.name===this.firstConfig?.name));return e(i,{key:"78858516fdd1ccec007c9c8ddfc846d7907df664",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&e("kritzel-utility-panel",{key:"f24a6dc28e86a543a6e9d6ed2d3a5ca552eb7c48",style:{position:"absolute",bottom:"56px",left:"12px"},undoState:this.undoState,onUndo:()=>this.kritzelEngine?.undo(),onRedo:()=>this.kritzelEngine?.redo(),onDelete:()=>this.kritzelEngine?.delete()}),e("div",{key:"50dfa80ac8f76a2a00f3fa171a3d6d8503fb0857",class:"kritzel-controls"},e("div",{key:"75230491b29899e3e08ecf7cf0adae274bd34728",class:{"scroll-indicator-left":!0,visible:this.canScrollLeft}}),e("div",{key:"be5939db03ffe6bb72c38c1c753963f120bf9c58",class:"kritzel-tools-scroll",ref:t=>{this.toolsScrollRef=t,t&&this.updateScrollIndicators()},onScroll:this.handleToolsScroll},n.map((t=>{if(t.subOptions?.length){const i=this.getSelectedSubOption(t),n=this.activeControl?.name===t.name,r=this.openSubMenuControl?.name===t.name;return e("div",{class:{"kritzel-control-split":!0,selected:n},key:t.name,ref:e=>{e&&(t._anchorRef=e)}},e("button",{class:"kritzel-control-main",onClick:()=>this.handleControlClick(t),title:i?.label},e("kritzel-icon",{name:i?.icon||t.icon})),e("button",{class:{"kritzel-control-dropdown":!0,visible:n},onClick:e=>this.toggleSubMenu(e,t),"aria-label":"Select shape type","aria-expanded":r?"true":"false",tabIndex:n?0:-1},e("kritzel-icon",{name:"chevron-down",size:12})),e("kritzel-tooltip",{isVisible:r,anchorElement:t._anchorRef,onTooltipClosed:()=>{this.openSubMenuControl=null}},e("div",{class:"kritzel-submenu-content"},t.subOptions.map((n=>e("button",{class:{"kritzel-submenu-item":!0,active:n.id===i?.id},key:n.id,onClick:()=>this.selectSubOption(t,n)},e("kritzel-icon",{name:n.icon,size:20}),e("span",null,n.label)))))))}return e("button",{class:{"kritzel-control":!0,selected:this.activeControl?.name===t?.name},key:t.name,onClick:()=>this.handleControlClick?.(t)},e("kritzel-icon",{name:t.icon}))}))),e("div",{key:"27aa7dd0f1a93a435eebc78c8abe6bc4c8b578f0",class:{"scroll-indicator-right":!0,visible:this.canScrollRight}}),r&&this.activeControl&&e("div",{class:{"kritzel-config-container":!0,visible:t},key:r.name},e("div",{key:"68c28268a98d4cc3bf949acbdea50ed2ec83c0db",class:"config-gradient-left"}),e("kritzel-tooltip",{key:"76af8159e08e78b32ab6798ef408e9246e77afbf",ref:t=>this.tooltipRef=t,isVisible:this.isTooltipVisible,anchorElement:this.host.shadowRoot?.querySelector(".kritzel-config-container"),onTooltipClosed:()=>this.handleTooltipClosed()},e("div",{key:"32cce44dd99f5bdbc730a66997af6930e8da4110",style:{width:"294px",height:"100%"}},"brush"===this.activeControl.name&&e("kritzel-control-brush-config",{key:"da8ce6b563e276cd1566f31e96146e58b3cfa21f",tool:this.activeToolAsBrushTool,onToolChange:t=>this.handleToolChange?.(t)}),"text"===this.activeControl.name&&e("kritzel-control-text-config",{key:"f7f9d55e52feba674521d5f8a20d4e7f62b14347",tool:this.activeToolAsTextTool,onToolChange:t=>this.handleToolChange?.(t)}))),e("div",{key:"59082cc78fabaf11468c41c5333ebc21f9e491c1",tabIndex:t?0:-1,class:"kritzel-config",onClick:t=>this.handleConfigClick?.(t),onKeyDown:t=>{"Enter"===t.key&&this.handleConfigClick?.(t)},style:{cursor:"pointer"}},this.activeControl.tool instanceof s&&e("div",{key:"d77c688e9f92293e8a7e63ad63483552479a96ef",class:"color-container"},e("kritzel-color",{key:"42272e42b004f8de4711032f47c5ac2b2724953f",value:this.activeToolAsBrushTool?.color,size:this.activeToolAsBrushTool?.size,style:{borderRadius:"50%",border:"none"}})),this.activeControl.tool instanceof a&&e("div",{key:"6f9d8bc06a57717c3a683f20610395f7ea4df48e",class:"font-container"},e("kritzel-font",{key:"6079881df1283fd176b223506deb9ac5ee9c81e3",fontFamily:this.activeToolAsTextTool?.fontFamily,size:this.activeToolAsTextTool?.fontSize,color:this.activeToolAsTextTool?.fontColor}))))))}static get assetsDirs(){return["../assets"]}};tt.style=":host{display:flex;flex-direction:column;user-select:none;max-width:calc(100vw - 28px)}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative;max-width:100%;overflow:hidden}.kritzel-tools-scroll{display:flex;flex-direction:row;align-items:center;gap:var(--kritzel-controls-gap, 8px);overflow-x:auto;overflow-y:hidden;flex:1 1 auto;min-width:0;scrollbar-width:none;-ms-overflow-style:none}.kritzel-tools-scroll::-webkit-scrollbar{display:none}.scroll-indicator-left,.scroll-indicator-right{position:absolute;top:0;bottom:0;width:24px;pointer-events:none;opacity:0;transition:opacity 0.2s ease-out;z-index:1}.scroll-indicator-left{left:0;background:linear-gradient(to right, var(--kritzel-controls-background-color, #ffffff), transparent);border-radius:var(--kritzel-controls-border-radius, 16px) 0 0 var(--kritzel-controls-border-radius, 16px)}.scroll-indicator-right{right:0;background:linear-gradient(to left, var(--kritzel-controls-background-color, #ffffff), transparent);border-radius:0 var(--kritzel-controls-border-radius, 16px) var(--kritzel-controls-border-radius, 16px) 0}.scroll-indicator-left.visible,.scroll-indicator-right.visible{opacity:1}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;font-weight:bold}.kritzel-control:focus,.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control.selected,.kritzel-control.selected:hover,.kritzel-control.selected:active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control.selected:focus{background-color:var(--kritzel-controls-control-selected-background-color, #007bffe3) !important}.kritzel-control-split{position:relative;display:flex;align-items:center;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:var(--kritzel-controls-control-color, #000000)}.kritzel-control-split .kritzel-control-main{display:flex;justify-content:center;align-items:center;padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:inherit}.kritzel-control-split.selected .kritzel-control-main{border-radius:var(--kritzel-controls-control-border-radius, 12px) 0 0 var(--kritzel-controls-control-border-radius, 12px)}.kritzel-control-split .kritzel-control-dropdown{display:flex;justify-content:center;align-items:center;align-self:stretch;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:0 var(--kritzel-controls-control-border-radius, 12px) var(--kritzel-controls-control-border-radius, 12px) 0;color:inherit;width:0;padding:0;opacity:0;overflow:hidden;pointer-events:none;transition:width 0.15s ease-out, padding 0.15s ease-out, opacity 0.15s ease-out}.kritzel-control-split .kritzel-control-dropdown.visible{width:auto;padding:0 6px;opacity:1;pointer-events:auto}.kritzel-control-split .kritzel-control-main:focus,.kritzel-control-split .kritzel-control-main:hover,.kritzel-control-split .kritzel-control-dropdown:focus,.kritzel-control-split .kritzel-control-dropdown:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control-split .kritzel-control-main:active,.kritzel-control-split .kritzel-control-dropdown:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control-split.selected{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control-split.selected .kritzel-control-main:hover,.kritzel-control-split.selected .kritzel-control-dropdown:hover{background-color:rgba(255, 255, 255, 0.15)}.kritzel-submenu-content{display:flex;flex-direction:column;gap:var(--kritzel-submenu-gap, 4px);min-width:140px}.kritzel-submenu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:8px;color:var(--kritzel-controls-control-color, #000000);font-size:14px;text-align:left;white-space:nowrap;-webkit-tap-highlight-color:transparent}.kritzel-submenu-item:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-submenu-item.active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF);color:var(--kritzel-controls-control-selected-color, #ffffff)}.kritzel-submenu-item.active:hover{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF)}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent;flex-shrink:0;width:0;opacity:0;overflow:hidden;pointer-events:none;margin-left:calc(-1 * var(--kritzel-controls-gap, 8px));transition:width 0.2s ease-out, opacity 0.2s ease-out, margin-left 0.2s ease-out}.kritzel-config-container.visible{width:40px;opacity:1;pointer-events:auto;margin-left:0;overflow:visible}.config-gradient-left{position:absolute;top:0;bottom:0;left:-16px;width:16px;background:linear-gradient(to right, transparent, var(--kritzel-controls-background-color, #ffffff));pointer-events:none;z-index:1}.kritzel-config{display:flex;justify-content:center;align-items:center;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:50%}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.font-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{z-index:10001}";const et=class{constructor(e){t(this,e)}core;cursorTrailPoints=[];isLeftButtonDown=!1;handleMouseDown(t){"mouse"===t.pointerType&&t.button===c.Left&&(this.isLeftButtonDown=!0,this.cursorTrailPoints=[]),"touch"===t.pointerType&&1===this.core.store.state.pointers.size&&(this.isLeftButtonDown=!0,this.cursorTrailPoints=[])}handlePointerMove(t){if(!this.isLeftButtonDown)return;const e=[{x:t.clientX,y:t.clientY,timestamp:Date.now()},...this.cursorTrailPoints];this.cursorTrailPoints=e.length>this.MAX_TRAIL_POINTS?e.slice(0,this.MAX_TRAIL_POINTS):e}handlePointerUp(t){"mouse"===t.pointerType&&t.button===c.Left&&(this.isLeftButtonDown=!1,this.cursorTrailPoints=[]),"touch"===t.pointerType&&0===this.core.store.state.pointers.size&&(this.isLeftButtonDown=!1,this.cursorTrailPoints=[])}trailCleanupIntervalId;TRAIL_DURATION_MS=100;MAX_TRAIL_POINTS=50;componentDidLoad(){this.trailCleanupIntervalId=window.setInterval((()=>{const t=Date.now(),e=this.cursorTrailPoints.filter((e=>t-e.timestamp<this.TRAIL_DURATION_MS));e.length!==this.cursorTrailPoints.length&&(this.cursorTrailPoints=e)}),50)}disconnectedCallback(){this.trailCleanupIntervalId&&window.clearInterval(this.trailCleanupIntervalId)}render(){return e(i,{key:"556238ffd7eeda2d400039333a37853ebfcca1b6"},this.cursorTrailPoints.length>1&&e("svg",{key:"a3f451cc9f142f018d0025eb7a68c1bdff5fc0d9",class:"cursor-trail-svg",xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",opacity:"var(--kritzel-cursor-trail-opacity, 0.6)",zIndex:"9000"}},this.cursorTrailPoints.slice(1).map(((t,i)=>{const n=this.cursorTrailPoints[i],r=Date.now(),o=Math.max(0,Math.min(1,(r-t.timestamp)/this.TRAIL_DURATION_MS));if(o>=1)return null;const s=Math.max(2,15*(1-o));return e("line",{key:`trail-segment-${t.timestamp}`,x1:n.x.toString(),y1:n.y.toString(),x2:t.x.toString(),y2:t.y.toString(),stroke:"var(--kritzel-cursor-trail-color, rgb(228, 228, 228))","stroke-width":s.toString(),"stroke-linecap":"round"})}))))}};et.style=":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";const it=class{constructor(e){t(this,e),this.valueChanged=n(this,"valueChanged")}get el(){return r(this)}options=[];optionsChanged(){this.updateInternalValue(this.internalValue,!0)}value;externalValueChanged(t){t!==this.internalValue&&this.updateInternalValue(t,!1)}width;selectStyles={};internalValue;hasSuffixContent=!1;hasPrefixContent=!1;isOpen=!1;focusedIndex=-1;openDirection="down";valueChanged;suffixSlotElement;prefixSlotElement;triggerElement;menuElement;wrapperElement;componentWillLoad(){this.updateInternalValue(this.value,!1),this.evaluateSuffixContent(),this.evaluatePrefixContent()}handleDocumentClick(t){this.isOpen&&!this.el.contains(t.target)&&this.closeMenu()}handleDocumentKeydown(t){this.isOpen&&"Escape"===t.key&&(t.stopPropagation(),t.preventDefault(),this.closeMenu(),this.triggerElement?.focus())}updateInternalValue(t,e){let i=t;if(this.options&&this.options.length>0){const t=this.options.some((t=>t.value===i));i&&t||(i=this.options[0].value)}else i=void 0;this.internalValue!==i&&(this.internalValue=i,(e||t!==i&&void 0!==t)&&this.valueChanged.emit(this.internalValue))}toggleMenu=()=>{this.isOpen?this.closeMenu():this.openMenu()};openMenu=()=>{this.calculateMenuDirection(),this.isOpen=!0;const t=this.options.findIndex((t=>t.value===this.internalValue));this.focusedIndex=t>=0?t:0,requestAnimationFrame((()=>{this.menuElement?.focus()}))};calculateMenuDirection=()=>{if(!this.wrapperElement)return void(this.openDirection="down");const t=this.wrapperElement.getBoundingClientRect(),e=window.innerHeight-t.bottom,i=t.top,n=Math.min(240,36*this.options.length+8);this.openDirection=e<n&&i>e?"up":"down"};closeMenu=()=>{this.isOpen=!1,this.focusedIndex=-1};selectOption=t=>{this.internalValue!==t.value&&(this.internalValue=t.value,this.valueChanged.emit(this.internalValue)),this.closeMenu(),this.triggerElement?.focus()};handleTriggerKeyDown=t=>{switch(t.key){case"Enter":case" ":case"ArrowDown":case"ArrowUp":t.preventDefault(),this.openMenu()}};handleMenuKeyDown=t=>{switch(t.key){case"ArrowDown":t.preventDefault(),this.focusedIndex=Math.min(this.focusedIndex+1,this.options.length-1),this.scrollFocusedOptionIntoView();break;case"ArrowUp":t.preventDefault(),this.focusedIndex=Math.max(this.focusedIndex-1,0),this.scrollFocusedOptionIntoView();break;case"Enter":case" ":t.preventDefault(),this.focusedIndex>=0&&this.focusedIndex<this.options.length&&this.selectOption(this.options[this.focusedIndex]);break;case"Home":t.preventDefault(),this.focusedIndex=0,this.scrollFocusedOptionIntoView();break;case"End":t.preventDefault(),this.focusedIndex=this.options.length-1,this.scrollFocusedOptionIntoView();break;case"Tab":this.closeMenu()}};scrollFocusedOptionIntoView=()=>{!this.menuElement||this.focusedIndex<0||requestAnimationFrame((()=>{const t=this.menuElement?.querySelector(".dropdown-option.is-focused");t&&t.scrollIntoView({block:"nearest",behavior:"smooth"})}))};handleOptionMouseEnter=t=>{this.focusedIndex=t};evaluateSuffixContent=()=>{if(this.suffixSlotElement){const t=this.suffixSlotElement.assignedNodes({flatten:!0}).length>0;this.hasSuffixContent!==t&&(this.hasSuffixContent=t)}else!1!==this.hasSuffixContent&&(this.hasSuffixContent=!1)};evaluatePrefixContent=()=>{if(this.prefixSlotElement){const t=this.prefixSlotElement.assignedNodes({flatten:!0}).length>0;this.hasPrefixContent!==t&&(this.hasPrefixContent=t)}else!1!==this.hasPrefixContent&&(this.hasPrefixContent=!1)};getSelectedLabel(){const t=this.options.find((t=>t.value===this.internalValue));return t?.label??""}getSelectedStyle(){const t=this.options.find((t=>t.value===this.internalValue));return t?.style}render(){const t={"dropdown-trigger":!0,"has-suffix-border":this.hasSuffixContent,"has-prefix-border":this.hasPrefixContent,"is-open":this.isOpen,"open-up":"up"===this.openDirection},n={"dropdown-menu":!0,"is-open":this.isOpen,"open-up":"up"===this.openDirection,"open-down":"down"===this.openDirection};return e(i,{key:"29d076eb2ef76527c0930ab82ace0d05c896ab6c"},e("div",{key:"1afac5cc0b7f408849670b8cb62fe0bd0f3b27f1",class:"dropdown-wrapper",ref:t=>this.wrapperElement=t},e("slot",{key:"3cfcf787c3b3eedbd6bf30c7506a0a4912429672",name:"prefix",ref:t=>this.prefixSlotElement=t,onSlotchange:this.evaluatePrefixContent}),e("div",{key:"b88120ed3e44871220e6ba61e8bef457651a2086",class:"dropdown-container",style:{width:this.width}},e("button",{key:"79082189066f3d0b4f5797420ec222847792fe52",type:"button",class:t,style:{...this.selectStyles,...this.getSelectedStyle()},onClick:this.toggleMenu,onKeyDown:this.handleTriggerKeyDown,"aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false",ref:t=>this.triggerElement=t},e("span",{key:"a490bb6689ec1820144fe82f6833bee82e6ead0e",class:"dropdown-trigger-label"},this.getSelectedLabel()),e("span",{key:"8bd7768f6fdd3c507bbca54d7d135adabe04901f",class:"dropdown-trigger-arrow","aria-hidden":"true"},e("svg",{key:"e1b854d2c93e3067181108f8d782e1393ddb615c",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e("polyline",{key:"3622cbf8964f4e50aa55be5209240dfd252f1d84",points:"6 9 12 15 18 9"}))))),e("slot",{key:"b91317736904cbeee0f87058b822bd77c6b163ca",name:"suffix",ref:t=>this.suffixSlotElement=t,onSlotchange:this.evaluateSuffixContent}),e("ul",{key:"0ca8690345974e9b7ad184f4c7ab7cf5367b183c",class:n,role:"listbox",tabindex:"-1",onKeyDown:this.handleMenuKeyDown,ref:t=>this.menuElement=t},this.options.map(((t,i)=>{const n=t.value===this.internalValue;return e("li",{class:{"dropdown-option":!0,"is-selected":n,"is-focused":i===this.focusedIndex},role:"option","aria-selected":n?"true":"false",style:t.style,onClick:()=>this.selectOption(t),onMouseEnter:()=>this.handleOptionMouseEnter(i)},t.label,n&&e("span",{class:"dropdown-option-check","aria-hidden":"true"},e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e("polyline",{points:"20 6 9 17 4 12"}))))})))))}static get watchers(){return{options:[{optionsChanged:0}],value:[{externalValueChanged:0}]}}};var nt;it.style=":host{display:inline-flex;vertical-align:middle;width:100%;position:relative}.dropdown-wrapper{display:flex;align-items:center;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);overflow:visible;height:32px;width:100%;position:relative}.dropdown-container{flex:1;height:100%;min-width:0}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;height:100%;width:100%;box-sizing:border-box;border-radius:var(--kritzel-controls-control-border-radius, 12px);border:none;background-color:#fff;cursor:var(--kritzel-pointer-cursor, pointer);outline:none;font-size:inherit;font-family:inherit;color:var(--kritzel-controls-text-color, #333333);-webkit-tap-highlight-color:transparent;text-align:left}.dropdown-trigger:focus-visible{outline:revert}.dropdown-trigger.has-suffix-border{border-right:1px solid #333333;border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-trigger.has-prefix-border{border-left:1px solid #333333;border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dropdown-trigger-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform 0.2s ease}.dropdown-trigger-arrow svg{width:100%;height:100%}.dropdown-trigger.is-open .dropdown-trigger-arrow{transform:rotate(180deg)}.dropdown-trigger.is-open.open-up .dropdown-trigger-arrow{transform:rotate(0deg)}.dropdown-menu{position:absolute;left:0;right:0;margin:0;padding:4px 0;list-style:none;background-color:#fff;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);z-index:1000;max-height:240px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;outline:none}.dropdown-menu.open-down{top:calc(100% + 4px);bottom:auto;transform:translateY(-8px)}.dropdown-menu.open-up{bottom:calc(100% + 4px);top:auto;transform:translateY(8px)}.dropdown-menu.is-open{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu.open-up{box-shadow:0 -4px 12px rgba(0, 0, 0, 0.15)}.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;cursor:var(--kritzel-pointer-cursor, pointer);color:var(--kritzel-dropdown-text-color, #333333);transition:background-color 0.1s ease;-webkit-tap-highlight-color:transparent}.dropdown-option.is-focused{background-color:var(--kritzel-dropdown-hover-bg, #f0f0f0)}.dropdown-option.is-selected{font-weight:600;background-color:var(--kritzel-dropdown-selected-bg, #007bff1a)}.dropdown-option-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--kritzel-dropdown-accent-color, #007bff)}.dropdown-option-check svg{width:100%;height:100%}.dropdown-menu{scrollbar-color:#ebebeb transparent;scrollbar-width:thin}::slotted(*){height:100%;box-sizing:border-box}",function(t){t.Rectangle="rectangle",t.Ellipse="ellipse",t.Triangle="triangle"}(nt||(nt={}));class rt extends l{__class__="KritzelShape";shapeType=nt.Rectangle;fillColor="transparent";strokeColor="#000000";strokeWidth=4;fontFamily="Arial";fontSize=16;fontColor="#000000";x=0;y=0;scale=1;scaleFactor=1;isDebugInfoVisible=!0;isEditable=!0;isEditing=!1;editor=null;content=null;_schema=new h({nodes:f(u.spec.nodes,"paragraph block*","block"),marks:u.spec.marks});uneditedObject=null;get viewBox(){return`${this.x} ${this.y} ${this.width} ${this.height}`}constructor(t){super(),t&&(this.x=t.x??0,this.y=t.y??0,this.translateX=t.translateX??0,this.translateY=t.translateY??0,this.width=t.width??100,this.height=t.height??100,this.shapeType=t.shapeType??nt.Rectangle,this.fillColor=t.fillColor??"transparent",this.strokeColor=t.strokeColor??"#000000",this.strokeWidth=t.strokeWidth??4,this.fontSize=t.fontSize??16,this.fontFamily=t.fontFamily??"Arial",this.fontColor=t.fontColor??"#000000",this.scale=t.scale??1,this.scaleFactor=t.scaleX??1)}static create(t,e){const i=new rt;return i._core=t,i.id=i.generateId(),i.workspaceId=t.store.state.activeWorkspace.id,i.x=e?.x??0,i.y=e?.y??0,i.translateX=e?.translateX??0,i.translateY=e?.translateY??0,i.width=e?.width??100,i.height=e?.height??100,i.shapeType=e?.shapeType??nt.Rectangle,i.fillColor=e?.fillColor??"transparent",i.strokeColor=e?.strokeColor??"#000000",i.strokeWidth=e?.strokeWidth??4,i.fontSize=e?.fontSize??16,i.fontFamily=e?.fontFamily??"Arial",i.fontColor=e?.fontColor??"#000000",i.backgroundColor="transparent",i.scaleFactor=1,i.scale=t.store.state.scale,i.zIndex=t.store.currentZIndex,i.editor=i.createEditor(),i.updateDimensions(),i}updateDimensions(){this.translateX=(this.x+this.translateX)/this.scale,this.translateY=(this.y+this.translateY)/this.scale}mount(t){null!==t&&!1!==this.isInViewport()&&(this.isMounted&&this.elementRef===t&&this.editor.dom.parentElement===t||(this.elementRef=t,this.isMounted=!0))}mountTextEditor(t){null!==t&&this.editor.dom.parentElement!==t&&(t.style.fontFamily=this.fontFamily,t.style.fontSize=`${this.fontSize}pt`,t.style.color=this.fontColor,t.style.whiteSpace="pre-wrap",t.style.wordWrap="break-word",t.innerHTML="",t.appendChild(this.editor.dom))}createEditor(){const t=this._schema.node("doc",null,[this._schema.node("paragraph")]);return new d(null,{state:p.create({doc:t,plugins:[b(m)]}),editable:()=>!1,dispatchTransaction:t=>{const e=this.editor.state.apply(t);this.editor.updateState(e),t.docChanged&&(this.content=e.doc.toJSON(),t.getMeta("fromRemote")||this._core.store.state.objects.update(this,{temporary:!0}))}})}setContent(t){if(this.content=t,this.editor&&t){const e=this.editor.state.schema.nodeFromJSON(t),i=this.editor.state.tr.replaceWith(0,this.editor.state.doc.content.size,e.content);i.setMeta("fromRemote",!0),this.editor.dispatch(i)}}resize(t,e,i,n){i<=1||n<=1||(this.width=i,this.height=n,this.translateX=t,this.translateY=e,this._core.store.state.objects.update(this))}focus(t){if(this.editor){const e=this.editor.state.doc;if(t?.x&&t?.y){const i=this.editor.posAtCoords({left:t.x,top:t.y});if(i)return this.editor.dispatch(this.editor.state.tr.setSelection(v.create(e,i.pos))),this.editor.focus(),void(o.isIOS()&&this.scrollIntoViewOnIOS())}const i=Math.max(1,e.content.size-1);this.editor.dispatch(this.editor.state.tr.setSelection(v.create(e,i))),this.editor.focus(),o.isIOS()&&this.scrollIntoViewOnIOS()}}scrollIntoViewOnIOS(){setTimeout((()=>{this.editor&&this.editor.dom&&this.editor.dom.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})}),300)}edit(t){g.disableInteractiveWidget(),this.uneditedObject=this.clone(),this._core.store.setState("activeTool",k.getTool("shape")),this.editor.setProps({editable:()=>!0}),this.isEditing=!0,this._core.rerender(),this.focus({x:t?.clientX,y:t?.clientY}),g.enableInteractiveWidget()}save(){this.content=this.editor.state.doc.toJSON(),this.editor.setProps({editable:()=>!1}),this.editor.dom.blur(),this.isEditing=!1,this._core.store.state.objects.consolidateTemporaryItems(),this._core.store.state.objects.update(this),this._core.engine.emitObjectsChange()}handlePointerDown(t){this.isEditing&&t.stopPropagation()}handlePointerMove(t){this.isEditing&&t.stopPropagation()}handlePointerUp(t){this.isEditing&&t.stopPropagation()}copy(){const t=super.copy();return t.editor=t.createEditor(),this.content&&t.setContent(this.content),t}serialize(){const{_core:t,_elementRef:e,_schema:i,element:n,totalWidth:r,totalHeight:o,editor:s,uneditedObject:a,...c}=this,l=structuredClone(c);return n&&"object"==typeof n&&"nodeType"in n&&1===n.nodeType&&(l.element=n.cloneNode(!0)),l}deserialize(t){return super.deserialize(t),t.content&&this.setContent(t.content),this}getClipPolygon(){const t=this.totalWidth/this.scale,e=this.totalHeight/this.scale,i=this.translateX+t/2,n=this.translateY+e/2,r=this.strokeWidth/this.scale/2;switch(this.shapeType){case nt.Ellipse:return y.getEllipsePolygonApproximation(i,n,t/2+r,e/2+r,32,this.rotation);case nt.Triangle:const o=(t,e)=>{const o=t-i,s=e-n,a=Math.sqrt(o*o+s*s);if(0===a)return{x:t,y:e};const c=(a+r)/a;return{x:i+o*c,y:n+s*c}},s=this.translateX,a=this.translateY+e,c=this.translateX+t,l=this.translateY+e,h=o(this.translateX+t/2,this.translateY),u=o(c,l),f=o(s,a);if(0!==this.rotation){const t=Math.cos(this.rotation),e=Math.sin(this.rotation),r=r=>{const o=r.x-i,s=r.y-n;return{x:i+o*t-s*e,y:n+o*e+s*t}};return[r(h),r(u),r(f)]}return[h,u,f];default:return null}}getSvgPath(){const t=this.width,e=this.height;switch(this.shapeType){case nt.Rectangle:return`M ${this.x} ${this.y} L ${this.x+t} ${this.y} L ${this.x+t} ${this.y+e} L ${this.x} ${this.y+e} Z`;case nt.Ellipse:const i=this.x+t/2,n=this.y+e/2,r=t/2,o=e/2;return`M ${i-r} ${n} A ${r} ${o} 0 1 0 ${i+r} ${n} A ${r} ${o} 0 1 0 ${i-r} ${n}`;case nt.Triangle:return`M ${this.x+t/2} ${this.y} L ${this.x+t} ${this.y+e} L ${this.x} ${this.y+e} Z`;default:return`M ${this.x} ${this.y} L ${this.x+t} ${this.y} L ${this.x+t} ${this.y+e} L ${this.x} ${this.y+e} Z`}}}class ot extends w{shapeType=nt.Rectangle;fillColor="transparent";strokeColor="#000000";strokeWidth=4;fontFamily="Arial";fontSize=16;fontColor="#000000";palette=["#000000","#FFFFFF","#FF0000","#00FF00","#0000FF","#FFFF00","#FF00FF","#00FFFF","#808080","#C0C0C0","#800000","#008000","#000080","#808000","#800080"];startX=0;startY=0;isDrawing=!1;currentShape=null;constructor(t){super(t)}handlePointerDown(t){if(t.cancelable&&t.preventDefault(),"mouse"===t.pointerType){const e=t.composedPath().slice(1).find((t=>t.classList&&t.classList.contains("object"))),i=this._core.findObjectById(e?.id),n=this._core.store.activeShape;if(null===n&&i instanceof rt)return void i.edit(t);if(null!==n&&i instanceof rt)return n.save(),void i.edit(t);if(null!==n&&i instanceof rt==0)return this._core.resetActiveShape(),void this._core.store.setState("activeTool",k.getTool("selection"));if(!1===x.isLeftClick(t))return;this.startDrawing(t.clientX,t.clientY)}if("touch"===t.pointerType){const e=Array.from(this._core.store.state.pointers.values()),i=t.composedPath().slice(1).find((t=>t.classList&&t.classList.contains("object"))),n=this._core.findObjectById(i?.id),r=this._core.store.activeShape;if(null===r&&n instanceof rt)return void n.edit(t);if(null!==r&&n instanceof rt)return r.save(),void n.edit(t);if(null!==r&&n instanceof rt==0)return this._core.resetActiveShape(),void this._core.store.setState("activeTool",k.getTool("selection"));if(e.length>1)return;const o=Math.round(e[0].clientX),s=Math.round(e[0].clientY);this.startDrawing(o,s)}}handlePointerMove(t){if(t.cancelable&&t.preventDefault(),this.isDrawing&&this.currentShape&&("mouse"===t.pointerType&&this.updateShapeSize(t.clientX,t.clientY),"touch"===t.pointerType)){const t=Array.from(this._core.store.state.pointers.values());if(1===t.length){const e=Math.round(t[0].clientX),i=Math.round(t[0].clientY);this.updateShapeSize(e,i)}}}handlePointerUp(t){t.cancelable&&t.preventDefault(),this.isDrawing&&this.currentShape&&this.finishDrawing()}startDrawing(t,e){this.startX=t-this._core.store.offsetX,this.startY=e-this._core.store.offsetY,this.isDrawing=!0,this.currentShape=rt.create(this._core,{x:this.startX,y:this.startY,translateX:-this._core.store.state.translateX,translateY:-this._core.store.state.translateY,width:1,height:1,shapeType:this.shapeType,fillColor:this.fillColor,strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor}),this._core.store.state.objects.insert(this.currentShape),this._core.rerender()}updateShapeSize(t,e){if(!this.currentShape)return;const i=t-this._core.store.offsetX,n=e-this._core.store.offsetY,r=Math.min(this.startX,i),o=Math.min(this.startY,n),s=Math.abs(i-this.startX),a=Math.abs(n-this.startY);this.currentShape.x=r,this.currentShape.y=o,this.currentShape.width=Math.max(1,s),this.currentShape.height=Math.max(1,a),this.currentShape.translateX=-this._core.store.state.translateX,this.currentShape.translateY=-this._core.store.state.translateY,this.currentShape.updateDimensions(),this._core.store.state.objects.update(this.currentShape)}finishDrawing(){if(this.currentShape){if(this.currentShape.width<10&&this.currentShape.height<10){const t=this.currentShape.id;this._core.store.state.objects.remove((e=>e.id===t))}else this.currentShape.zIndex=this._core.store.currentZIndex,this._core.store.state.objects.update(this.currentShape),this._core.engine.emitObjectsChange(),this._core.selectObjects([this.currentShape]),this._core.store.setState("activeTool",k.getTool("selection"));this.isDrawing=!1,this.currentShape=null,this._core.rerender()}}}const st={shapeType:nt.Rectangle,fillColor:"transparent",strokeColor:"#000000",strokeWidth:4,fontColor:"#000000",fontSize:16,fontFamily:"Arial",palette:["#000000","#ff5252","#ffbc00","#00c853","#0000FF","#d500f9","#fafafa","#a52714","#ee8100","#558b2f","#01579b","#8e24aa","#90a4ae"]},at=1e3,ct=1e-4,lt=class{constructor(e){t(this,e),this.isReady=n(this,"isReady"),this.objectsChange=n(this,"objectsChange"),this.undoStateChange=n(this,"undoStateChange")}get host(){return r(this)}scaleMax=at;scaleMin=ct;controls=[{name:"selection",type:"tool",isDefault:!0,tool:z,icon:"cursor"},{name:"brush",type:"tool",tool:s,icon:"pen",config:C},{name:"line",type:"tool",tool:M,icon:"arrow",config:S},{name:"eraser",type:"tool",tool:I,icon:"eraser"},{name:"text",type:"tool",tool:a,icon:"type",config:j},{name:"shape",type:"tool",tool:ot,icon:"shape-rectangle",config:st,subOptions:[{id:"rectangle",icon:"shape-rectangle",label:"Rectangle",value:nt.Rectangle,toolProperty:"shapeType"},{id:"ellipse",icon:"shape-ellipse",label:"Ellipse",value:nt.Ellipse,toolProperty:"shapeType"},{id:"triangle",icon:"shape-triangle",label:"Triangle",value:nt.Triangle,toolProperty:"shapeType"}]},{name:"image",type:"tool",tool:_,icon:"image"},{name:"config",type:"config"}];globalContextMenuItems=[{label:"Paste",icon:"paste",disabled:async()=>0===(await this.engineRef.getCopiedObjects()).length,action:t=>this.engineRef.paste(t.x,t.y)},{label:"Select All",icon:"select-all",action:()=>this.selectAllObjectsInViewport()}];objectContextMenuItems=[{label:"Copy",icon:"copy",action:()=>this.engineRef.copy()},{label:"Paste",icon:"paste",disabled:async()=>0===(await this.engineRef.getCopiedObjects()).length,action:t=>this.engineRef.paste(t.x,t.y)},{label:"Delete",icon:"delete",action:()=>this.engineRef.delete()},{label:"Bring to Front",icon:"bring-to-front",action:()=>this.engineRef.bringToFront()},{label:"Send to Back",icon:"send-to-back",action:()=>this.engineRef.sendToBack()},{label:"Group",icon:"group",disabled:async()=>(await this.engineRef.getSelectedObjects()).length<2,action:()=>this.engineRef.group()},{label:"Ungroup",icon:"ungroup",disabled:async()=>!(await this.engineRef.getSelectedObjects()).some((t=>"KritzelGroup"===t.__class__)),action:()=>this.engineRef.ungroup()}];customSvgIcons={};isControlsVisible=!0;isUtilityPanelVisible=!0;syncConfig;isReady;objectsChange;undoStateChange;isEngineReady=!1;isControlsReady=!1;isWorkspaceManagerReady=!1;workspaces=[];activeWorkspace;isVirtualKeyboardOpen=!1;undoState=null;onIsEngineReady(t){t&&this.isControlsReady&&this.checkIsReady()}onIsControlsReady(t){t&&this.isEngineReady&&this.checkIsReady()}onWorkspacesChange(t){if(this.activeWorkspace){const e=t.find((t=>t.id===this.activeWorkspace.id));e&&e!==this.activeWorkspace&&(this.activeWorkspace=e)}}onTouchStart(t){t.cancelable&&t.preventDefault()}async getObjectById(t){return this.engineRef.getObjectById(t)}async addObject(t){return this.engineRef.addObject(t)}async updateObject(t,e){return this.engineRef.updateObject(t,e)}async removeObject(t){return this.engineRef.removeObject(t)}async getSelectedObjects(){return this.engineRef.getSelectedObjects()}async selectObjects(t){return this.engineRef.selectObjects(t)}async selectAllObjectsInViewport(){return this.engineRef.selectAllObjectsInViewport()}async clearSelection(){this.engineRef.clearSelection()}async centerObjectInViewport(t){return this.engineRef.centerObjectInViewport(t)}async createWorkspace(t,e){const i=new T(`workspace-${Date.now()}`,t,e);return this.engineRef.createWorkspace(i)}async updateWorkspace(t){return this.engineRef.updateWorkspace(t)}async deleteWorkspace(t){return this.engineRef.deleteWorkspace(t)}async getWorkspaces(){return this.engineRef.getWorkspaces()}async getActiveWorkspace(){return this.engineRef.getActiveWorkspace()}engineRef;controlsRef;splitButtonRef;componentDidLoad(){this.registerCustomSvgIcons(),this.listenForMobileKeyboard(),this.setOsSpecificCssVariables()}async checkIsReady(){await customElements.whenDefined("kritzel-editor"),await customElements.whenDefined("kritzel-workspace-manager"),await customElements.whenDefined("kritzel-controls"),await customElements.whenDefined("kritzel-engine"),this.isEngineReady&&this.isControlsReady&&this.isWorkspaceManagerReady&&this.isReady.emit(this.host)}onEngineReady(t){this.isEngineReady=!0,this.activeWorkspace=t.detail.activeWorkspace,this.workspaces=t.detail.workspaces}handleWorkspacesChange(t){this.workspaces=t.detail}handleObjectsChange(t){this.objectsChange.emit(t.detail)}handleUndoStateChange(t){this.undoStateChange.emit(t.detail),this.undoState=t.detail}registerCustomSvgIcons(){for(const[t,e]of Object.entries(this.customSvgIcons))A.register(t,e)}listenForMobileKeyboard(){g.onKeyboardVisibleChanged((t=>{this.isVirtualKeyboardOpen=t}))}setOsSpecificCssVariables(){switch(o.detectOS()){case"iOS":this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px"),this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px"),this.host.style.setProperty("--kritzel-editor-controls-bottom","14px"),this.host.style.setProperty("--kritzel-editor-controls-transition","cubic-bezier(0.25, 0.1, 0.25, 1.0)"),this.host.style.setProperty("--kritzel-editor-controls-transform","translateY(200%)"),this.host.style.setProperty("--kritzel-editor-controls-transition-duration","0.25s");break;case"Android":this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px"),this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px"),this.host.style.setProperty("--kritzel-editor-controls-bottom","24px");break;default:this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px"),this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px"),this.host.style.setProperty("--kritzel-editor-controls-bottom","14px")}}render(){return e(i,{key:"dd67bea86f807f0ccd5905183e73713a015d6bee"},e("kritzel-workspace-manager",{key:"557edc7e3a131d338be6df91698ba6923e7bc50e",workspaces:this.workspaces,activeWorkspace:this.activeWorkspace,onWorkspaceChange:t=>this.activeWorkspace=t.detail,onIsWorkspaceManagerReady:()=>this.isWorkspaceManagerReady=!0}),e("kritzel-engine",{key:"98969d0f2bb5a9a365885fb4765e0c04c1394caa",ref:t=>this.engineRef=t,workspace:this.activeWorkspace,syncConfig:this.syncConfig,scaleMax:this.scaleMax,scaleMin:this.scaleMin,globalContextMenuItems:this.globalContextMenuItems,objectContextMenuItems:this.objectContextMenuItems,onIsEngineReady:t=>this.onEngineReady(t),onWorkspacesChange:t=>this.handleWorkspacesChange(t),onObjectsChange:t=>this.handleObjectsChange(t),onUndoStateChange:t=>this.handleUndoStateChange(t)}),e("kritzel-controls",{key:"6092f393562af07643622c07d432f6100497aaf0",class:{"keyboard-open":this.isVirtualKeyboardOpen},style:{display:this.isControlsVisible?"flex":"none"},ref:t=>this.controlsRef=t,controls:this.controls,isUtilityPanelVisible:this.isUtilityPanelVisible,undoState:this.undoState,onIsControlsReady:()=>this.isControlsReady=!0}))}static get watchers(){return{isEngineReady:[{onIsEngineReady:0}],isControlsReady:[{onIsControlsReady:0}],workspaces:[{onWorkspacesChange:0}]}}};lt.style="kritzel-editor{display:flex;margin:0;position:relative;overflow:hidden;width:100%;height:100%;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}kritzel-workspace-manager{position:absolute;top:var(--kritzel-editor-workspace-manager-top, 14px);left:var(--kritzel-editor-workspace-manager-left, 14px)}kritzel-controls{position:absolute;bottom:var(--kritzel-editor-controls-bottom, 14px);transition:transform var(--kritzel-editor-controls-transition-duration, 0.1s) var(--kritzel-editor-controls-transition, ease-in-out)}kritzel-controls.keyboard-open{transform:var(--kritzel-editor-controls-transform, translateY(300%))}";var ht,ut,ft,dt={exports:{}},pt=(ht||(ht=1,ut=dt,ft=dt.exports,function(){var t,e="Expected a function",i="__lodash_hash_undefined__",n="__lodash_placeholder__",r=32,o=128,s=1/0,a=9007199254740991,c=NaN,l=4294967295,h=[["ary",o],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",r],["partialRight",64],["rearg",256]],u="[object Arguments]",f="[object Array]",d="[object Boolean]",p="[object Date]",b="[object Error]",v="[object Function]",g="[object GeneratorFunction]",k="[object Map]",y="[object Number]",m="[object Object]",w="[object Promise]",x="[object RegExp]",z="[object Set]",C="[object String]",S="[object Symbol]",M="[object WeakMap]",I="[object ArrayBuffer]",j="[object DataView]",_="[object Float32Array]",T="[object Float64Array]",A="[object Int8Array]",$="[object Int16Array]",E="[object Int32Array]",O="[object Uint8Array]",F="[object Uint8ClampedArray]",D="[object Uint16Array]",W="[object Uint32Array]",R=/\b__p \+= '';/g,P=/\b(__p \+=) '' \+/g,L=/(__e\(.*?\)|\b__t\)) \+\n'';/g,U=/&(?:amp|lt|gt|quot|#39);/g,K=/[&<>"']/g,V=RegExp(U.source),B=RegExp(K.source),H=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,N=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,G=/^\w*$/,Z=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/[\\^$.*+?()[\]{}|]/g,Q=RegExp(J.source),tt=/^\s+/,et=/\s/,it=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,nt=/\{\n\/\* \[wrapped with (.+)\] \*/,rt=/,? & /,ot=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,st=/[()=,{}\[\]\/\s]/,at=/\\(\\)?/g,ct=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,lt=/\w*$/,ht=/^[-+]0x[0-9a-f]+$/i,dt=/^0b[01]+$/i,pt=/^\[object .+?Constructor\]$/,bt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,kt=/($^)/,yt=/['\n\r\u2028\u2029\\]/g,mt="\\ud800-\\udfff",wt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",xt="\\u2700-\\u27bf",zt="a-z\\xdf-\\xf6\\xf8-\\xff",Ct="A-Z\\xc0-\\xd6\\xd8-\\xde",St="\\ufe0e\\ufe0f",Mt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",It="["+mt+"]",jt="["+Mt+"]",_t="["+wt+"]",Tt="\\d+",At="["+xt+"]",$t="["+zt+"]",Et="[^"+mt+Mt+Tt+xt+zt+Ct+"]",Ot="\\ud83c[\\udffb-\\udfff]",Ft="[^"+mt+"]",Dt="(?:\\ud83c[\\udde6-\\uddff]){2}",Wt="[\\ud800-\\udbff][\\udc00-\\udfff]",Rt="["+Ct+"]",Pt="\\u200d",Lt="(?:"+$t+"|"+Et+")",Ut="(?:"+Rt+"|"+Et+")",Kt="(?:['’](?:d|ll|m|re|s|t|ve))?",Vt="(?:['’](?:D|LL|M|RE|S|T|VE))?",Bt="(?:"+_t+"|"+Ot+")?",Ht="["+St+"]?",Yt=Ht+Bt+"(?:"+Pt+"(?:"+[Ft,Dt,Wt].join("|")+")"+Ht+Bt+")*",Nt="(?:"+[At,Dt,Wt].join("|")+")"+Yt,qt="(?:"+[Ft+_t+"?",_t,Dt,Wt,It].join("|")+")",Xt=RegExp("['’]","g"),Gt=RegExp(_t,"g"),Zt=RegExp(Ot+"(?="+Ot+")|"+qt+Yt,"g"),Jt=RegExp([Rt+"?"+$t+"+"+Kt+"(?="+[jt,Rt,"$"].join("|")+")",Ut+"+"+Vt+"(?="+[jt,Rt+Lt,"$"].join("|")+")",Rt+"?"+Lt+"+"+Kt,Rt+"+"+Vt,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Tt,Nt].join("|"),"g"),Qt=RegExp("["+Pt+mt+wt+St+"]"),te=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ee=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ie=-1,ne={};ne[_]=ne[T]=ne[A]=ne[$]=ne[E]=ne[O]=ne[F]=ne[D]=ne[W]=!0,ne[u]=ne[f]=ne[I]=ne[d]=ne[j]=ne[p]=ne[b]=ne[v]=ne[k]=ne[y]=ne[m]=ne[x]=ne[z]=ne[C]=ne[M]=!1;var re={};re[u]=re[f]=re[I]=re[j]=re[d]=re[p]=re[_]=re[T]=re[A]=re[$]=re[E]=re[k]=re[y]=re[m]=re[x]=re[z]=re[C]=re[S]=re[O]=re[F]=re[D]=re[W]=!0,re[b]=re[v]=re[M]=!1;var oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},se=parseFloat,ae=parseInt,ce="object"==typeof q&&q&&q.Object===Object&&q,le="object"==typeof self&&self&&self.Object===Object&&self,he=ce||le||Function("return this")(),ue=ft&&!ft.nodeType&&ft,fe=ue&&ut&&!ut.nodeType&&ut,de=fe&&fe.exports===ue,pe=de&&ce.process,be=function(){try{return fe&&fe.require&&fe.require("util").types||pe&&pe.binding&&pe.binding("util")}catch(t){}}(),ve=be&&be.isArrayBuffer,ge=be&&be.isDate,ke=be&&be.isMap,ye=be&&be.isRegExp,me=be&&be.isSet,we=be&&be.isTypedArray;function xe(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)}function ze(t,e,i,n){for(var r=-1,o=null==t?0:t.length;++r<o;){var s=t[r];e(n,s,i(s),t)}return n}function Ce(t,e){for(var i=-1,n=null==t?0:t.length;++i<n&&!1!==e(t[i],i,t););return t}function Se(t,e){for(var i=null==t?0:t.length;i--&&!1!==e(t[i],i,t););return t}function Me(t,e){for(var i=-1,n=null==t?0:t.length;++i<n;)if(!e(t[i],i,t))return!1;return!0}function Ie(t,e){for(var i=-1,n=null==t?0:t.length,r=0,o=[];++i<n;){var s=t[i];e(s,i,t)&&(o[r++]=s)}return o}function je(t,e){return!(null==t||!t.length)&&Re(t,e,0)>-1}function _e(t,e,i){for(var n=-1,r=null==t?0:t.length;++n<r;)if(i(e,t[n]))return!0;return!1}function Te(t,e){for(var i=-1,n=null==t?0:t.length,r=Array(n);++i<n;)r[i]=e(t[i],i,t);return r}function Ae(t,e){for(var i=-1,n=e.length,r=t.length;++i<n;)t[r+i]=e[i];return t}function $e(t,e,i,n){var r=-1,o=null==t?0:t.length;for(n&&o&&(i=t[++r]);++r<o;)i=e(i,t[r],r,t);return i}function Ee(t,e,i,n){var r=null==t?0:t.length;for(n&&r&&(i=t[--r]);r--;)i=e(i,t[r],r,t);return i}function Oe(t,e){for(var i=-1,n=null==t?0:t.length;++i<n;)if(e(t[i],i,t))return!0;return!1}var Fe=Ke("length");function De(t,e,i){var n;return i(t,(function(t,i,r){if(e(t,i,r))return n=i,!1})),n}function We(t,e,i,n){for(var r=t.length,o=i+(n?1:-1);n?o--:++o<r;)if(e(t[o],o,t))return o;return-1}function Re(t,e,i){return e==e?function(t,e,i){for(var n=i-1,r=t.length;++n<r;)if(t[n]===e)return n;return-1}(t,e,i):We(t,Le,i)}function Pe(t,e,i,n){for(var r=i-1,o=t.length;++r<o;)if(n(t[r],e))return r;return-1}function Le(t){return t!=t}function Ue(t,e){var i=null==t?0:t.length;return i?He(t,e)/i:c}function Ke(e){return function(i){return null==i?t:i[e]}}function Ve(e){return function(i){return null==e?t:e[i]}}function Be(t,e,i,n,r){return r(t,(function(t,r,o){i=n?(n=!1,t):e(i,t,r,o)})),i}function He(e,i){for(var n,r=-1,o=e.length;++r<o;){var s=i(e[r]);s!==t&&(n=n===t?s:n+s)}return n}function Ye(t,e){for(var i=-1,n=Array(t);++i<t;)n[i]=e(i);return n}function Ne(t){return t?t.slice(0,hi(t)+1).replace(tt,""):t}function qe(t){return function(e){return t(e)}}function Xe(t,e){return Te(e,(function(e){return t[e]}))}function Ge(t,e){return t.has(e)}function Ze(t,e){for(var i=-1,n=t.length;++i<n&&Re(e,t[i],0)>-1;);return i}function Je(t,e){for(var i=t.length;i--&&Re(e,t[i],0)>-1;);return i}var Qe=Ve({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),ti=Ve({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function ei(t){return"\\"+oe[t]}function ii(t){return Qt.test(t)}function ni(t){var e=-1,i=Array(t.size);return t.forEach((function(t,n){i[++e]=[n,t]})),i}function ri(t,e){return function(i){return t(e(i))}}function oi(t,e){for(var i=-1,r=t.length,o=0,s=[];++i<r;){var a=t[i];a!==e&&a!==n||(t[i]=n,s[o++]=i)}return s}function si(t){var e=-1,i=Array(t.size);return t.forEach((function(t){i[++e]=t})),i}function ai(t){var e=-1,i=Array(t.size);return t.forEach((function(t){i[++e]=[t,t]})),i}function ci(t){return ii(t)?function(t){for(var e=Zt.lastIndex=0;Zt.test(t);)++e;return e}(t):Fe(t)}function li(t){return ii(t)?function(t){return t.match(Zt)||[]}(t):function(t){return t.split("")}(t)}function hi(t){for(var e=t.length;e--&&et.test(t.charAt(e)););return e}var ui=Ve({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),fi=function q(et){var ut,ft=(et=null==et?he:fi.defaults(he.Object(),et,fi.pick(he,ee))).Array,mt=et.Date,wt=et.Error,xt=et.Function,zt=et.Math,Ct=et.Object,St=et.RegExp,Mt=et.String,It=et.TypeError,jt=ft.prototype,_t=Ct.prototype,Tt=et["__core-js_shared__"],At=xt.prototype.toString,$t=_t.hasOwnProperty,Et=0,Ot=(ut=/[^.]+$/.exec(Tt&&Tt.keys&&Tt.keys.IE_PROTO||""))?"Symbol(src)_1."+ut:"",Ft=_t.toString,Dt=At.call(Ct),Wt=he._,Rt=St("^"+At.call($t).replace(J,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Pt=de?et.Buffer:t,Lt=et.Symbol,Ut=et.Uint8Array,Kt=Pt?Pt.allocUnsafe:t,Vt=ri(Ct.getPrototypeOf,Ct),Bt=Ct.create,Ht=_t.propertyIsEnumerable,Yt=jt.splice,Nt=Lt?Lt.isConcatSpreadable:t,qt=Lt?Lt.iterator:t,Zt=Lt?Lt.toStringTag:t,Qt=function(){try{var t=ao(Ct,"defineProperty");return t({},"",{}),t}catch(t){}}(),oe=et.clearTimeout!==he.clearTimeout&&et.clearTimeout,ce=mt&&mt.now!==he.Date.now&&mt.now,le=et.setTimeout!==he.setTimeout&&et.setTimeout,ue=zt.ceil,fe=zt.floor,pe=Ct.getOwnPropertySymbols,be=Pt?Pt.isBuffer:t,Fe=et.isFinite,Ve=jt.join,di=ri(Ct.keys,Ct),pi=zt.max,bi=zt.min,vi=mt.now,gi=et.parseInt,ki=zt.random,yi=jt.reverse,mi=ao(et,"DataView"),wi=ao(et,"Map"),xi=ao(et,"Promise"),zi=ao(et,"Set"),Ci=ao(et,"WeakMap"),Si=ao(Ct,"create"),Mi=Ci&&new Ci,Ii={},ji=Do(mi),_i=Do(wi),Ti=Do(xi),Ai=Do(zi),$i=Do(Ci),Ei=Lt?Lt.prototype:t,Oi=Ei?Ei.valueOf:t,Fi=Ei?Ei.toString:t;function Di(t){if(Qs(t)&&!Ks(t)&&!(t instanceof Li)){if(t instanceof Pi)return t;if($t.call(t,"__wrapped__"))return Wo(t)}return new Pi(t)}var Wi=function(){function e(){}return function(i){if(!Js(i))return{};if(Bt)return Bt(i);e.prototype=i;var n=new e;return e.prototype=t,n}}();function Ri(){}function Pi(e,i){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!i,this.__index__=0,this.__values__=t}function Li(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=l,this.__views__=[]}function Ui(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}function Ki(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}function Vi(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}function Bi(t){var e=-1,i=null==t?0:t.length;for(this.__data__=new Vi;++e<i;)this.add(t[e])}function Hi(t){var e=this.__data__=new Ki(t);this.size=e.size}function Yi(t,e){var i=Ks(t),n=!i&&Us(t),r=!i&&!n&&Ys(t),o=!i&&!n&&!r&&aa(t),s=i||n||r||o,a=s?Ye(t.length,Mt):[],c=a.length;for(var l in t)!e&&!$t.call(t,l)||s&&("length"==l||r&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||bo(l,c))||a.push(l);return a}function Ni(e){var i=e.length;return i?e[Bn(0,i-1)]:t}function qi(t,e){return Ao(Sr(t),rn(e,0,t.length))}function Xi(t){return Ao(Sr(t))}function Gi(e,i,n){(n!==t&&!Rs(e[i],n)||n===t&&!(i in e))&&en(e,i,n)}function Zi(e,i,n){var r=e[i];$t.call(e,i)&&Rs(r,n)&&(n!==t||i in e)||en(e,i,n)}function Ji(t,e){for(var i=t.length;i--;)if(Rs(t[i][0],e))return i;return-1}function Qi(t,e,i,n){return ln(t,(function(t,r,o){e(n,t,i(t),o)})),n}function tn(t,e){return t&&Mr(e,_a(e),t)}function en(t,e,i){"__proto__"==e&&Qt?Qt(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}function nn(e,i){for(var n=-1,r=i.length,o=ft(r),s=null==e;++n<r;)o[n]=s?t:Ca(e,i[n]);return o}function rn(e,i,n){return e==e&&(n!==t&&(e=e<=n?e:n),i!==t&&(e=e>=i?e:i)),e}function on(e,i,n,r,o,s){var a,c=1&i,l=2&i,h=4&i;if(n&&(a=o?n(e,r,o,s):n(e)),a!==t)return a;if(!Js(e))return e;var f=Ks(e);if(f){if(a=function(t){var e=t.length,i=new t.constructor(e);return e&&"string"==typeof t[0]&&$t.call(t,"index")&&(i.index=t.index,i.input=t.input),i}(e),!c)return Sr(e,a)}else{var b=ho(e),w=b==v||b==g;if(Ys(e))return yr(e,c);if(b==m||b==u||w&&!o){if(a=l||w?{}:fo(e),!c)return l?function(t,e){return Mr(t,lo(t),e)}(e,function(t,e){return t&&Mr(e,Ta(e),t)}(a,e)):function(t,e){return Mr(t,co(t),e)}(e,tn(a,e))}else{if(!re[b])return o?e:{};a=function(t,e,i){var n=t.constructor;switch(e){case I:return mr(t);case d:case p:return new n(+t);case j:return function(t,e){var i=e?mr(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}(t,i);case _:case T:case A:case $:case E:case O:case F:case D:case W:return wr(t,i);case k:return new n;case y:case C:return new n(t);case x:return function(t){var e=new t.constructor(t.source,lt.exec(t));return e.lastIndex=t.lastIndex,e}(t);case z:return new n;case S:return Oi?Ct(Oi.call(t)):{}}}(e,b,c)}}s||(s=new Hi);var M=s.get(e);if(M)return M;s.set(e,a),ra(e)?e.forEach((function(t){a.add(on(t,i,n,t,e,s))})):ta(e)&&e.forEach((function(t,r){a.set(r,on(t,i,n,r,e,s))}));var R=f?t:(h?l?to:Qr:l?Ta:_a)(e);return Ce(R||e,(function(t,r){R&&(t=e[r=t]),Zi(a,r,on(t,i,n,r,e,s))})),a}function sn(e,i,n){var r=n.length;if(null==e)return!r;for(e=Ct(e);r--;){var o=n[r],s=e[o];if(s===t&&!(o in e)||!(0,i[o])(s))return!1}return!0}function an(i,n,r){if("function"!=typeof i)throw new It(e);return Io((function(){i.apply(t,r)}),n)}function cn(t,e,i,n){var r=-1,o=je,s=!0,a=t.length,c=[],l=e.length;if(!a)return c;i&&(e=Te(e,qe(i))),n?(o=_e,s=!1):e.length>=200&&(o=Ge,s=!1,e=new Bi(e));t:for(;++r<a;){var h=t[r],u=null==i?h:i(h);if(h=n||0!==h?h:0,s&&u==u){for(var f=l;f--;)if(e[f]===u)continue t;c.push(h)}else o(e,u,n)||c.push(h)}return c}Di.templateSettings={escape:H,evaluate:Y,interpolate:N,variable:"",imports:{_:Di}},(Di.prototype=Ri.prototype).constructor=Di,(Pi.prototype=Wi(Ri.prototype)).constructor=Pi,(Li.prototype=Wi(Ri.prototype)).constructor=Li,Ui.prototype.clear=function(){this.__data__=Si?Si(null):{},this.size=0},Ui.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Ui.prototype.get=function(e){var n=this.__data__;if(Si){var r=n[e];return r===i?t:r}return $t.call(n,e)?n[e]:t},Ui.prototype.has=function(e){var i=this.__data__;return Si?i[e]!==t:$t.call(i,e)},Ui.prototype.set=function(e,n){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Si&&n===t?i:n,this},Ki.prototype.clear=function(){this.__data__=[],this.size=0},Ki.prototype.delete=function(t){var e=this.__data__,i=Ji(e,t);return!(i<0||(i==e.length-1?e.pop():Yt.call(e,i,1),--this.size,0))},Ki.prototype.get=function(e){var i=this.__data__,n=Ji(i,e);return n<0?t:i[n][1]},Ki.prototype.has=function(t){return Ji(this.__data__,t)>-1},Ki.prototype.set=function(t,e){var i=this.__data__,n=Ji(i,t);return n<0?(++this.size,i.push([t,e])):i[n][1]=e,this},Vi.prototype.clear=function(){this.size=0,this.__data__={hash:new Ui,map:new(wi||Ki),string:new Ui}},Vi.prototype.delete=function(t){var e=oo(this,t).delete(t);return this.size-=e?1:0,e},Vi.prototype.get=function(t){return oo(this,t).get(t)},Vi.prototype.has=function(t){return oo(this,t).has(t)},Vi.prototype.set=function(t,e){var i=oo(this,t),n=i.size;return i.set(t,e),this.size+=i.size==n?0:1,this},Bi.prototype.add=Bi.prototype.push=function(t){return this.__data__.set(t,i),this},Bi.prototype.has=function(t){return this.__data__.has(t)},Hi.prototype.clear=function(){this.__data__=new Ki,this.size=0},Hi.prototype.delete=function(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i},Hi.prototype.get=function(t){return this.__data__.get(t)},Hi.prototype.has=function(t){return this.__data__.has(t)},Hi.prototype.set=function(t,e){var i=this.__data__;if(i instanceof Ki){var n=i.__data__;if(!wi||n.length<199)return n.push([t,e]),this.size=++i.size,this;i=this.__data__=new Vi(n)}return i.set(t,e),this.size=i.size,this};var ln=_r(gn),hn=_r(kn,!0);function un(t,e){var i=!0;return ln(t,(function(t,n,r){return i=!!e(t,n,r)})),i}function fn(e,i,n){for(var r=-1,o=e.length;++r<o;){var s=e[r],a=i(s);if(null!=a&&(c===t?a==a&&!sa(a):n(a,c)))var c=a,l=s}return l}function dn(t,e){var i=[];return ln(t,(function(t,n,r){e(t,n,r)&&i.push(t)})),i}function pn(t,e,i,n,r){var o=-1,s=t.length;for(i||(i=po),r||(r=[]);++o<s;){var a=t[o];e>0&&i(a)?e>1?pn(a,e-1,i,n,r):Ae(r,a):n||(r[r.length]=a)}return r}var bn=Tr(),vn=Tr(!0);function gn(t,e){return t&&bn(t,e,_a)}function kn(t,e){return t&&vn(t,e,_a)}function yn(t,e){return Ie(e,(function(e){return Xs(t[e])}))}function mn(e,i){for(var n=0,r=(i=br(i,e)).length;null!=e&&n<r;)e=e[Fo(i[n++])];return n&&n==r?e:t}function wn(t,e,i){var n=e(t);return Ks(t)?n:Ae(n,i(t))}function xn(e){return null==e?e===t?"[object Undefined]":"[object Null]":Zt&&Zt in Ct(e)?function(e){var i=$t.call(e,Zt),n=e[Zt];try{e[Zt]=t;var r=!0}catch(t){}var o=Ft.call(e);return r&&(i?e[Zt]=n:delete e[Zt]),o}(e):function(t){return Ft.call(t)}(e)}function zn(t,e){return t>e}function Cn(t,e){return null!=t&&$t.call(t,e)}function Sn(t,e){return null!=t&&e in Ct(t)}function Mn(e,i,n){for(var r=n?_e:je,o=e[0].length,s=e.length,a=s,c=ft(s),l=1/0,h=[];a--;){var u=e[a];a&&i&&(u=Te(u,qe(i))),l=bi(u.length,l),c[a]=!n&&(i||o>=120&&u.length>=120)?new Bi(a&&u):t}u=e[0];var f=-1,d=c[0];t:for(;++f<o&&h.length<l;){var p=u[f],b=i?i(p):p;if(p=n||0!==p?p:0,!(d?Ge(d,b):r(h,b,n))){for(a=s;--a;){var v=c[a];if(!(v?Ge(v,b):r(e[a],b,n)))continue t}d&&d.push(b),h.push(p)}}return h}function In(e,i,n){var r=null==(e=Co(e,i=br(i,e)))?e:e[Fo(qo(i))];return null==r?t:xe(r,e,n)}function jn(t){return Qs(t)&&xn(t)==u}function _n(e,i,n,r,o){return e===i||(null==e||null==i||!Qs(e)&&!Qs(i)?e!=e&&i!=i:function(e,i,n,r,o,s){var a=Ks(e),c=Ks(i),l=a?f:ho(e),h=c?f:ho(i),v=(l=l==u?m:l)==m,g=(h=h==u?m:h)==m,w=l==h;if(w&&Ys(e)){if(!Ys(i))return!1;a=!0,v=!1}if(w&&!v)return s||(s=new Hi),a||aa(e)?Zr(e,i,n,r,o,s):function(t,e,i,n,r,o,s){switch(i){case j:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case I:return!(t.byteLength!=e.byteLength||!o(new Ut(t),new Ut(e)));case d:case p:case y:return Rs(+t,+e);case b:return t.name==e.name&&t.message==e.message;case x:case C:return t==e+"";case k:var a=ni;case z:if(a||(a=si),t.size!=e.size&&!(1&n))return!1;var c=s.get(t);if(c)return c==e;n|=2,s.set(t,e);var l=Zr(a(t),a(e),n,r,o,s);return s.delete(t),l;case S:if(Oi)return Oi.call(t)==Oi.call(e)}return!1}(e,i,l,n,r,o,s);if(!(1&n)){var M=v&&$t.call(e,"__wrapped__"),_=g&&$t.call(i,"__wrapped__");if(M||_){var T=M?e.value():e,A=_?i.value():i;return s||(s=new Hi),o(T,A,n,r,s)}}return!!w&&(s||(s=new Hi),function(e,i,n,r,o,s){var a=1&n,c=Qr(e),l=c.length;if(l!=Qr(i).length&&!a)return!1;for(var h=l;h--;){var u=c[h];if(!(a?u in i:$t.call(i,u)))return!1}var f=s.get(e),d=s.get(i);if(f&&d)return f==i&&d==e;var p=!0;s.set(e,i),s.set(i,e);for(var b=a;++h<l;){var v=e[u=c[h]],g=i[u];if(r)var k=a?r(g,v,u,i,e,s):r(v,g,u,e,i,s);if(!(k===t?v===g||o(v,g,n,r,s):k)){p=!1;break}b||(b="constructor"==u)}if(p&&!b){var y=e.constructor,m=i.constructor;y==m||!("constructor"in e)||!("constructor"in i)||"function"==typeof y&&y instanceof y&&"function"==typeof m&&m instanceof m||(p=!1)}return s.delete(e),s.delete(i),p}(e,i,n,r,o,s))}(e,i,n,r,_n,o))}function Tn(e,i,n,r){var o=n.length,s=o,a=!r;if(null==e)return!s;for(e=Ct(e);o--;){var c=n[o];if(a&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++o<s;){var l=(c=n[o])[0],h=e[l],u=c[1];if(a&&c[2]){if(h===t&&!(l in e))return!1}else{var f=new Hi;if(r)var d=r(h,u,l,e,i,f);if(!(d===t?_n(u,h,3,r,f):d))return!1}}return!0}function An(t){return!(!Js(t)||(e=t,Ot&&Ot in e))&&(Xs(t)?Rt:pt).test(Do(t));var e}function $n(t){return"function"==typeof t?t:null==t?ec:"object"==typeof t?Ks(t)?Wn(t[0],t[1]):Dn(t):hc(t)}function En(t){if(!mo(t))return di(t);var e=[];for(var i in Ct(t))$t.call(t,i)&&"constructor"!=i&&e.push(i);return e}function On(t,e){return t<e}function Fn(t,e){var i=-1,n=Bs(t)?ft(t.length):[];return ln(t,(function(t,r,o){n[++i]=e(t,r,o)})),n}function Dn(t){var e=so(t);return 1==e.length&&e[0][2]?xo(e[0][0],e[0][1]):function(i){return i===t||Tn(i,t,e)}}function Wn(e,i){return go(e)&&wo(i)?xo(Fo(e),i):function(n){var r=Ca(n,e);return r===t&&r===i?Sa(n,e):_n(i,r,3)}}function Rn(e,i,n,r,o){e!==i&&bn(i,(function(s,a){if(o||(o=new Hi),Js(s))!function(e,i,n,r,o,s,a){var c=So(e,n),l=So(i,n),h=a.get(l);if(h)Gi(e,n,h);else{var u=s?s(c,l,n+"",e,i,a):t,f=u===t;if(f){var d=Ks(l),p=!d&&Ys(l),b=!d&&!p&&aa(l);u=l,d||p||b?Ks(c)?u=c:Hs(c)?u=Sr(c):p?(f=!1,u=yr(l,!0)):b?(f=!1,u=wr(l,!0)):u=[]:ia(l)||Us(l)?(u=c,Us(c)?u=ba(c):Js(c)&&!Xs(c)||(u=fo(l))):f=!1}f&&(a.set(l,u),o(u,l,r,s,a),a.delete(l)),Gi(e,n,u)}}(e,i,a,n,Rn,r,o);else{var c=r?r(So(e,a),s,a+"",e,i,o):t;c===t&&(c=s),Gi(e,a,c)}}),Ta)}function Pn(e,i){var n=e.length;if(n)return bo(i+=i<0?n:0,n)?e[i]:t}function Ln(t,e,i){e=e.length?Te(e,(function(t){return Ks(t)?function(e){return mn(e,1===t.length?t[0]:t)}:t})):[ec];var n=-1;e=Te(e,qe(ro()));var r=Fn(t,(function(t){var i=Te(e,(function(e){return e(t)}));return{criteria:i,index:++n,value:t}}));return function(t){var e=t.length;for(t.sort((function(t,e){return function(t,e,i){for(var n=-1,r=t.criteria,o=e.criteria,s=r.length,a=i.length;++n<s;){var c=xr(r[n],o[n]);if(c)return n>=a?c:c*("desc"==i[n]?-1:1)}return t.index-e.index}(t,e,i)}));e--;)t[e]=t[e].value;return t}(r)}function Un(t,e,i){for(var n=-1,r=e.length,o={};++n<r;){var s=e[n],a=mn(t,s);i(a,s)&&Xn(o,br(s,t),a)}return o}function Kn(t,e,i,n){var r=n?Pe:Re,o=-1,s=e.length,a=t;for(t===e&&(e=Sr(e)),i&&(a=Te(t,qe(i)));++o<s;)for(var c=0,l=e[o],h=i?i(l):l;(c=r(a,h,c,n))>-1;)a!==t&&Yt.call(a,c,1),Yt.call(t,c,1);return t}function Vn(t,e){for(var i=t?e.length:0,n=i-1;i--;){var r=e[i];if(i==n||r!==o){var o=r;bo(r)?Yt.call(t,r,1):ar(t,r)}}return t}function Bn(t,e){return t+fe(ki()*(e-t+1))}function Hn(t,e){var i="";if(!t||e<1||e>a)return i;do{e%2&&(i+=t),(e=fe(e/2))&&(t+=t)}while(e);return i}function Yn(t,e){return jo(zo(t,e,ec),t+"")}function Nn(t){return Ni(Ra(t))}function qn(t,e){var i=Ra(t);return Ao(i,rn(e,0,i.length))}function Xn(e,i,n,r){if(!Js(e))return e;for(var o=-1,s=(i=br(i,e)).length,a=s-1,c=e;null!=c&&++o<s;){var l=Fo(i[o]),h=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=a){var u=c[l];(h=r?r(u,l,c):t)===t&&(h=Js(u)?u:bo(i[o+1])?[]:{})}Zi(c,l,h),c=c[l]}return e}var Gn=Mi?function(t,e){return Mi.set(t,e),t}:ec,Zn=Qt?function(t,e){return Qt(t,"toString",{configurable:!0,enumerable:!1,value:Ja(e),writable:!0})}:ec;function Jn(t){return Ao(Ra(t))}function Qn(t,e,i){var n=-1,r=t.length;e<0&&(e=-e>r?0:r+e),(i=i>r?r:i)<0&&(i+=r),r=e>i?0:i-e>>>0,e>>>=0;for(var o=ft(r);++n<r;)o[n]=t[n+e];return o}function tr(t,e){var i;return ln(t,(function(t,n,r){return!(i=e(t,n,r))})),!!i}function er(t,e,i){var n=0,r=null==t?n:t.length;if("number"==typeof e&&e==e&&r<=2147483647){for(;n<r;){var o=n+r>>>1,s=t[o];null!==s&&!sa(s)&&(i?s<=e:s<e)?n=o+1:r=o}return r}return ir(t,e,ec,i)}function ir(e,i,n,r){var o=0,s=null==e?0:e.length;if(0===s)return 0;for(var a=(i=n(i))!=i,c=null===i,l=sa(i),h=i===t;o<s;){var u=fe((o+s)/2),f=n(e[u]),d=f!==t,p=null===f,b=f==f,v=sa(f);if(a)var g=r||b;else g=h?b&&(r||d):c?b&&d&&(r||!p):l?b&&d&&!p&&(r||!v):!p&&!v&&(r?f<=i:f<i);g?o=u+1:s=u}return bi(s,4294967294)}function nr(t,e){for(var i=-1,n=t.length,r=0,o=[];++i<n;){var s=t[i],a=e?e(s):s;if(!i||!Rs(a,c)){var c=a;o[r++]=0===s?0:s}}return o}function rr(t){return"number"==typeof t?t:sa(t)?c:+t}function or(t){if("string"==typeof t)return t;if(Ks(t))return Te(t,or)+"";if(sa(t))return Fi?Fi.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function sr(t,e,i){var n=-1,r=je,o=t.length,s=!0,a=[],c=a;if(i)s=!1,r=_e;else if(o>=200){var l=e?null:Hr(t);if(l)return si(l);s=!1,r=Ge,c=new Bi}else c=e?[]:a;t:for(;++n<o;){var h=t[n],u=e?e(h):h;if(h=i||0!==h?h:0,s&&u==u){for(var f=c.length;f--;)if(c[f]===u)continue t;e&&c.push(u),a.push(h)}else r(c,u,i)||(c!==a&&c.push(u),a.push(h))}return a}function ar(t,e){return null==(t=Co(t,e=br(e,t)))||delete t[Fo(qo(e))]}function cr(t,e,i,n){return Xn(t,e,i(mn(t,e)),n)}function lr(t,e,i,n){for(var r=t.length,o=n?r:-1;(n?o--:++o<r)&&e(t[o],o,t););return i?Qn(t,n?0:o,n?o+1:r):Qn(t,n?o+1:0,n?r:o)}function hr(t,e){var i=t;return i instanceof Li&&(i=i.value()),$e(e,(function(t,e){return e.func.apply(e.thisArg,Ae([t],e.args))}),i)}function ur(t,e,i){var n=t.length;if(n<2)return n?sr(t[0]):[];for(var r=-1,o=ft(n);++r<n;)for(var s=t[r],a=-1;++a<n;)a!=r&&(o[r]=cn(o[r]||s,t[a],e,i));return sr(pn(o,1),e,i)}function fr(e,i,n){for(var r=-1,o=e.length,s=i.length,a={};++r<o;)n(a,e[r],r<s?i[r]:t);return a}function dr(t){return Hs(t)?t:[]}function pr(t){return"function"==typeof t?t:ec}function br(t,e){return Ks(t)?t:go(t,e)?[t]:Oo(va(t))}var vr=Yn;function gr(e,i,n){var r=e.length;return n=n===t?r:n,!i&&n>=r?e:Qn(e,i,n)}var kr=oe||function(t){return he.clearTimeout(t)};function yr(t,e){if(e)return t.slice();var i=t.length,n=Kt?Kt(i):new t.constructor(i);return t.copy(n),n}function mr(t){var e=new t.constructor(t.byteLength);return new Ut(e).set(new Ut(t)),e}function wr(t,e){var i=e?mr(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}function xr(e,i){if(e!==i){var n=e!==t,r=null===e,o=e==e,s=sa(e),a=i!==t,c=null===i,l=i==i,h=sa(i);if(!c&&!h&&!s&&e>i||s&&a&&l&&!c&&!h||r&&a&&l||!n&&l||!o)return 1;if(!r&&!s&&!h&&e<i||h&&n&&o&&!r&&!s||c&&n&&o||!a&&o||!l)return-1}return 0}function zr(t,e,i,n){for(var r=-1,o=t.length,s=i.length,a=-1,c=e.length,l=pi(o-s,0),h=ft(c+l),u=!n;++a<c;)h[a]=e[a];for(;++r<s;)(u||r<o)&&(h[i[r]]=t[r]);for(;l--;)h[a++]=t[r++];return h}function Cr(t,e,i,n){for(var r=-1,o=t.length,s=-1,a=i.length,c=-1,l=e.length,h=pi(o-a,0),u=ft(h+l),f=!n;++r<h;)u[r]=t[r];for(var d=r;++c<l;)u[d+c]=e[c];for(;++s<a;)(f||r<o)&&(u[d+i[s]]=t[r++]);return u}function Sr(t,e){var i=-1,n=t.length;for(e||(e=ft(n));++i<n;)e[i]=t[i];return e}function Mr(e,i,n,r){var o=!n;n||(n={});for(var s=-1,a=i.length;++s<a;){var c=i[s],l=r?r(n[c],e[c],c,n,e):t;l===t&&(l=e[c]),o?en(n,c,l):Zi(n,c,l)}return n}function Ir(t,e){return function(i,n){var r=Ks(i)?ze:Qi,o=e?e():{};return r(i,t,ro(n,2),o)}}function jr(e){return Yn((function(i,n){var r=-1,o=n.length,s=o>1?n[o-1]:t,a=o>2?n[2]:t;for(s=e.length>3&&"function"==typeof s?(o--,s):t,a&&vo(n[0],n[1],a)&&(s=o<3?t:s,o=1),i=Ct(i);++r<o;){var c=n[r];c&&e(i,c,r,s)}return i}))}function _r(t,e){return function(i,n){if(null==i)return i;if(!Bs(i))return t(i,n);for(var r=i.length,o=e?r:-1,s=Ct(i);(e?o--:++o<r)&&!1!==n(s[o],o,s););return i}}function Tr(t){return function(e,i,n){for(var r=-1,o=Ct(e),s=n(e),a=s.length;a--;){var c=s[t?a:++r];if(!1===i(o[c],c,o))break}return e}}function Ar(e){return function(i){var n=ii(i=va(i))?li(i):t,r=n?n[0]:i.charAt(0),o=n?gr(n,1).join(""):i.slice(1);return r[e]()+o}}function $r(t){return function(e){return $e(Xa(Ua(e).replace(Xt,"")),t,"")}}function Er(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var i=Wi(t.prototype),n=t.apply(i,e);return Js(n)?n:i}}function Or(e){return function(i,n,r){var o=Ct(i);if(!Bs(i)){var s=ro(n,3);i=_a(i),n=function(t){return s(o[t],t,o)}}var a=e(i,n,r);return a>-1?o[s?i[a]:a]:t}}function Fr(i){return Jr((function(n){var r=n.length,o=r,s=Pi.prototype.thru;for(i&&n.reverse();o--;){var a=n[o];if("function"!=typeof a)throw new It(e);if(s&&!c&&"wrapper"==io(a))var c=new Pi([],!0)}for(o=c?o:r;++o<r;){var l=io(a=n[o]),h="wrapper"==l?eo(a):t;c=h&&ko(h[0])&&424==h[1]&&!h[4].length&&1==h[9]?c[io(h[0])].apply(c,h[3]):1==a.length&&ko(a)?c[l]():c.thru(a)}return function(){var t=arguments,e=t[0];if(c&&1==t.length&&Ks(e))return c.plant(e).value();for(var i=0,o=r?n[i].apply(this,t):e;++i<r;)o=n[i].call(this,o);return o}}))}function Dr(e,i,n,r,s,a,c,l,h,u){var f=i&o,d=1&i,p=2&i,b=24&i,v=512&i,g=p?t:Er(e);return function o(){for(var k=arguments.length,y=ft(k),m=k;m--;)y[m]=arguments[m];if(b)var w=no(o),x=function(t,e){for(var i=t.length,n=0;i--;)t[i]===e&&++n;return n}(y,w);if(r&&(y=zr(y,r,s,b)),a&&(y=Cr(y,a,c,b)),k-=x,b&&k<u){var z=oi(y,w);return Vr(e,i,Dr,o.placeholder,n,y,z,l,h,u-k)}var C=d?n:this,S=p?C[e]:e;return k=y.length,l?y=function(e,i){for(var n=e.length,r=bi(i.length,n),o=Sr(e);r--;){var s=i[r];e[r]=bo(s,n)?o[s]:t}return e}(y,l):v&&k>1&&y.reverse(),f&&h<k&&(y.length=h),this&&this!==he&&this instanceof o&&(S=g||Er(S)),S.apply(C,y)}}function Wr(t,e){return function(i,n){return function(t,e,i,n){return gn(t,(function(t,r,o){e(n,i(t),r,o)})),n}(i,t,e(n),{})}}function Rr(e,i){return function(n,r){var o;if(n===t&&r===t)return i;if(n!==t&&(o=n),r!==t){if(o===t)return r;"string"==typeof n||"string"==typeof r?(n=or(n),r=or(r)):(n=rr(n),r=rr(r)),o=e(n,r)}return o}}function Pr(t){return Jr((function(e){return e=Te(e,qe(ro())),Yn((function(i){var n=this;return t(e,(function(t){return xe(t,n,i)}))}))}))}function Lr(e,i){var n=(i=i===t?" ":or(i)).length;if(n<2)return n?Hn(i,e):i;var r=Hn(i,ue(e/ci(i)));return ii(i)?gr(li(r),0,e).join(""):r.slice(0,e)}function Ur(e){return function(i,n,r){return r&&"number"!=typeof r&&vo(i,n,r)&&(n=r=t),i=ua(i),n===t?(n=i,i=0):n=ua(n),function(t,e,i,n){for(var r=-1,o=pi(ue((e-t)/(i||1)),0),s=ft(o);o--;)s[n?o:++r]=t,t+=i;return s}(i,n,r=r===t?i<n?1:-1:ua(r),e)}}function Kr(t){return function(e,i){return"string"==typeof e&&"string"==typeof i||(e=pa(e),i=pa(i)),t(e,i)}}function Vr(e,i,n,o,s,a,c,l,h,u){var f=8&i;i|=f?r:64,4&(i&=~(f?64:r))||(i&=-4);var d=[e,i,s,f?a:t,f?c:t,f?t:a,f?t:c,l,h,u],p=n.apply(t,d);return ko(e)&&Mo(p,d),p.placeholder=o,_o(p,e,i)}function Br(t){var e=zt[t];return function(t,i){if(t=pa(t),(i=null==i?0:bi(fa(i),292))&&Fe(t)){var n=(va(t)+"e").split("e");return+((n=(va(e(n[0]+"e"+(+n[1]+i)))+"e").split("e"))[0]+"e"+(+n[1]-i))}return e(t)}}var Hr=zi&&1/si(new zi([,-0]))[1]==s?function(t){return new zi(t)}:sc;function Yr(t){return function(e){var i=ho(e);return i==k?ni(e):i==z?ai(e):function(t,e){return Te(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Nr(i,s,a,c,l,h,u,f){var d=2&s;if(!d&&"function"!=typeof i)throw new It(e);var p=c?c.length:0;if(p||(s&=-97,c=l=t),u=u===t?u:pi(fa(u),0),f=f===t?f:fa(f),p-=l?l.length:0,64&s){var b=c,v=l;c=l=t}var g=d?t:eo(i),k=[i,s,a,c,l,b,v,h,u,f];if(g&&function(t,e){var i=t[1],r=e[1],s=i|r;if(!(s<131||(r==o&&8==i||r==o&&256==i&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==i)))return t;1&r&&(t[2]=e[2],s|=1&i?0:4);var a=e[3];if(a){var c=t[3];t[3]=c?zr(c,a,e[4]):a,t[4]=c?oi(t[3],n):e[4]}(a=e[5])&&(t[5]=(c=t[5])?Cr(c,a,e[6]):a,t[6]=c?oi(t[5],n):e[6]),(a=e[7])&&(t[7]=a),r&o&&(t[8]=null==t[8]?e[8]:bi(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=s}(k,g),i=k[0],s=k[1],a=k[2],c=k[3],l=k[4],!(f=k[9]=k[9]===t?d?0:i.length:pi(k[9]-p,0))&&24&s&&(s&=-25),s&&1!=s)y=8==s||16==s?function(e,i,n){var r=Er(e);return function o(){for(var s=arguments.length,a=ft(s),c=s,l=no(o);c--;)a[c]=arguments[c];var h=s<3&&a[0]!==l&&a[s-1]!==l?[]:oi(a,l);return(s-=h.length)<n?Vr(e,i,Dr,o.placeholder,t,a,h,t,t,n-s):xe(this&&this!==he&&this instanceof o?r:e,this,a)}}(i,s,f):s!=r&&33!=s||l.length?Dr.apply(t,k):function(t,e,i,n){var r=1&e,o=Er(t);return function e(){for(var s=-1,a=arguments.length,c=-1,l=n.length,h=ft(l+a),u=this&&this!==he&&this instanceof e?o:t;++c<l;)h[c]=n[c];for(;a--;)h[c++]=arguments[++s];return xe(u,r?i:this,h)}}(i,s,a,c);else var y=function(t,e,i){var n=1&e,r=Er(t);return function e(){return(this&&this!==he&&this instanceof e?r:t).apply(n?i:this,arguments)}}(i,s,a);return _o((g?Gn:Mo)(y,k),i,s)}function qr(e,i,n,r){return e===t||Rs(e,_t[n])&&!$t.call(r,n)?i:e}function Xr(e,i,n,r,o,s){return Js(e)&&Js(i)&&(s.set(i,e),Rn(e,i,t,Xr,s),s.delete(i)),e}function Gr(e){return ia(e)?t:e}function Zr(e,i,n,r,o,s){var a=1&n,c=e.length,l=i.length;if(c!=l&&!(a&&l>c))return!1;var h=s.get(e),u=s.get(i);if(h&&u)return h==i&&u==e;var f=-1,d=!0,p=2&n?new Bi:t;for(s.set(e,i),s.set(i,e);++f<c;){var b=e[f],v=i[f];if(r)var g=a?r(v,b,f,i,e,s):r(b,v,f,e,i,s);if(g!==t){if(g)continue;d=!1;break}if(p){if(!Oe(i,(function(t,e){if(!Ge(p,e)&&(b===t||o(b,t,n,r,s)))return p.push(e)}))){d=!1;break}}else if(b!==v&&!o(b,v,n,r,s)){d=!1;break}}return s.delete(e),s.delete(i),d}function Jr(e){return jo(zo(e,t,Vo),e+"")}function Qr(t){return wn(t,_a,co)}function to(t){return wn(t,Ta,lo)}var eo=Mi?function(t){return Mi.get(t)}:sc;function io(t){for(var e=t.name+"",i=Ii[e],n=$t.call(Ii,e)?i.length:0;n--;){var r=i[n],o=r.func;if(null==o||o==t)return r.name}return e}function no(t){return($t.call(Di,"placeholder")?Di:t).placeholder}function ro(){var t=Di.iteratee||ic;return t=t===ic?$n:t,arguments.length?t(arguments[0],arguments[1]):t}function oo(t,e){var i,n,r=t.__data__;return("string"==(n=typeof(i=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==i:null===i)?r["string"==typeof e?"string":"hash"]:r.map}function so(t){for(var e=_a(t),i=e.length;i--;){var n=e[i],r=t[n];e[i]=[n,r,wo(r)]}return e}function ao(e,i){var n=function(e,i){return null==e?t:e[i]}(e,i);return An(n)?n:t}var co=pe?function(t){return null==t?[]:(t=Ct(t),Ie(pe(t),(function(e){return Ht.call(t,e)})))}:dc,lo=pe?function(t){for(var e=[];t;)Ae(e,co(t)),t=Vt(t);return e}:dc,ho=xn;function uo(t,e,i){for(var n=-1,r=(e=br(e,t)).length,o=!1;++n<r;){var s=Fo(e[n]);if(!(o=null!=t&&i(t,s)))break;t=t[s]}return o||++n!=r?o:!!(r=null==t?0:t.length)&&Zs(r)&&bo(s,r)&&(Ks(t)||Us(t))}function fo(t){return"function"!=typeof t.constructor||mo(t)?{}:Wi(Vt(t))}function po(t){return Ks(t)||Us(t)||!!(Nt&&t&&t[Nt])}function bo(t,e){var i=typeof t;return!!(e=null==e?a:e)&&("number"==i||"symbol"!=i&&vt.test(t))&&t>-1&&t%1==0&&t<e}function vo(t,e,i){if(!Js(i))return!1;var n=typeof e;return!!("number"==n?Bs(i)&&bo(e,i.length):"string"==n&&e in i)&&Rs(i[e],t)}function go(t,e){if(Ks(t))return!1;var i=typeof t;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=t&&!sa(t))||G.test(t)||!X.test(t)||null!=e&&t in Ct(e)}function ko(t){var e=io(t),i=Di[e];if("function"!=typeof i||!(e in Li.prototype))return!1;if(t===i)return!0;var n=eo(i);return!!n&&t===n[0]}(mi&&ho(new mi(new ArrayBuffer(1)))!=j||wi&&ho(new wi)!=k||xi&&ho(xi.resolve())!=w||zi&&ho(new zi)!=z||Ci&&ho(new Ci)!=M)&&(ho=function(e){var i=xn(e),n=i==m?e.constructor:t,r=n?Do(n):"";if(r)switch(r){case ji:return j;case _i:return k;case Ti:return w;case Ai:return z;case $i:return M}return i});var yo=Tt?Xs:pc;function mo(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||_t)}function wo(t){return t==t&&!Js(t)}function xo(e,i){return function(n){return null!=n&&n[e]===i&&(i!==t||e in Ct(n))}}function zo(e,i,n){return i=pi(i===t?e.length-1:i,0),function(){for(var t=arguments,r=-1,o=pi(t.length-i,0),s=ft(o);++r<o;)s[r]=t[i+r];r=-1;for(var a=ft(i+1);++r<i;)a[r]=t[r];return a[i]=n(s),xe(e,this,a)}}function Co(t,e){return e.length<2?t:mn(t,Qn(e,0,-1))}function So(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var Mo=To(Gn),Io=le||function(t,e){return he.setTimeout(t,e)},jo=To(Zn);function _o(t,e,i){var n=e+"";return jo(t,function(t,e){var i=e.length;if(!i)return t;var n=i-1;return e[n]=(i>1?"& ":"")+e[n],e=e.join(i>2?", ":" "),t.replace(it,"{\n/* [wrapped with "+e+"] */\n")}(n,function(t,e){return Ce(h,(function(i){var n="_."+i[0];e&i[1]&&!je(t,n)&&t.push(n)})),t.sort()}(function(t){var e=t.match(nt);return e?e[1].split(rt):[]}(n),i)))}function To(e){var i=0,n=0;return function(){var r=vi(),o=16-(r-n);if(n=r,o>0){if(++i>=800)return arguments[0]}else i=0;return e.apply(t,arguments)}}function Ao(e,i){var n=-1,r=e.length,o=r-1;for(i=i===t?r:i;++n<i;){var s=Bn(n,o),a=e[s];e[s]=e[n],e[n]=a}return e.length=i,e}var $o,Eo,Oo=($o=$s((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Z,(function(t,i,n,r){e.push(n?r.replace(at,"$1"):i||t)})),e}),(function(t){return 500===Eo.size&&Eo.clear(),t})),Eo=$o.cache,$o);function Fo(t){if("string"==typeof t||sa(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Do(t){if(null!=t){try{return At.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Wo(t){if(t instanceof Li)return t.clone();var e=new Pi(t.__wrapped__,t.__chain__);return e.__actions__=Sr(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var Ro=Yn((function(t,e){return Hs(t)?cn(t,pn(e,1,Hs,!0)):[]})),Po=Yn((function(e,i){var n=qo(i);return Hs(n)&&(n=t),Hs(e)?cn(e,pn(i,1,Hs,!0),ro(n,2)):[]})),Lo=Yn((function(e,i){var n=qo(i);return Hs(n)&&(n=t),Hs(e)?cn(e,pn(i,1,Hs,!0),t,n):[]}));function Uo(t,e,i){var n=null==t?0:t.length;if(!n)return-1;var r=null==i?0:fa(i);return r<0&&(r=pi(n+r,0)),We(t,ro(e,3),r)}function Ko(e,i,n){var r=null==e?0:e.length;if(!r)return-1;var o=r-1;return n!==t&&(o=fa(n),o=n<0?pi(r+o,0):bi(o,r-1)),We(e,ro(i,3),o,!0)}function Vo(t){return null!=t&&t.length?pn(t,1):[]}function Bo(e){return e&&e.length?e[0]:t}var Ho=Yn((function(t){var e=Te(t,dr);return e.length&&e[0]===t[0]?Mn(e):[]})),Yo=Yn((function(e){var i=qo(e),n=Te(e,dr);return i===qo(n)?i=t:n.pop(),n.length&&n[0]===e[0]?Mn(n,ro(i,2)):[]})),No=Yn((function(e){var i=qo(e),n=Te(e,dr);return(i="function"==typeof i?i:t)&&n.pop(),n.length&&n[0]===e[0]?Mn(n,t,i):[]}));function qo(e){var i=null==e?0:e.length;return i?e[i-1]:t}var Xo=Yn(Go);function Go(t,e){return t&&t.length&&e&&e.length?Kn(t,e):t}var Zo=Jr((function(t,e){var i=null==t?0:t.length,n=nn(t,e);return Vn(t,Te(e,(function(t){return bo(t,i)?+t:t})).sort(xr)),n}));function Jo(t){return null==t?t:yi.call(t)}var Qo=Yn((function(t){return sr(pn(t,1,Hs,!0))})),ts=Yn((function(e){var i=qo(e);return Hs(i)&&(i=t),sr(pn(e,1,Hs,!0),ro(i,2))})),es=Yn((function(e){var i=qo(e);return i="function"==typeof i?i:t,sr(pn(e,1,Hs,!0),t,i)}));function is(t){if(!t||!t.length)return[];var e=0;return t=Ie(t,(function(t){if(Hs(t))return e=pi(t.length,e),!0})),Ye(e,(function(e){return Te(t,Ke(e))}))}function ns(e,i){if(!e||!e.length)return[];var n=is(e);return null==i?n:Te(n,(function(e){return xe(i,t,e)}))}var rs=Yn((function(t,e){return Hs(t)?cn(t,e):[]})),os=Yn((function(t){return ur(Ie(t,Hs))})),ss=Yn((function(e){var i=qo(e);return Hs(i)&&(i=t),ur(Ie(e,Hs),ro(i,2))})),as=Yn((function(e){var i=qo(e);return i="function"==typeof i?i:t,ur(Ie(e,Hs),t,i)})),cs=Yn(is),ls=Yn((function(e){var i=e.length,n=i>1?e[i-1]:t;return n="function"==typeof n?(e.pop(),n):t,ns(e,n)}));function hs(t){var e=Di(t);return e.__chain__=!0,e}function us(t,e){return e(t)}var fs=Jr((function(e){var i=e.length,n=i?e[0]:0,r=this.__wrapped__,o=function(t){return nn(t,e)};return!(i>1||this.__actions__.length)&&r instanceof Li&&bo(n)?((r=r.slice(n,+n+(i?1:0))).__actions__.push({func:us,args:[o],thisArg:t}),new Pi(r,this.__chain__).thru((function(e){return i&&!e.length&&e.push(t),e}))):this.thru(o)})),ds=Ir((function(t,e,i){$t.call(t,i)?++t[i]:en(t,i,1)})),ps=Or(Uo),bs=Or(Ko);function vs(t,e){return(Ks(t)?Ce:ln)(t,ro(e,3))}function gs(t,e){return(Ks(t)?Se:hn)(t,ro(e,3))}var ks=Ir((function(t,e,i){$t.call(t,i)?t[i].push(e):en(t,i,[e])})),ys=Yn((function(t,e,i){var n=-1,r="function"==typeof e,o=Bs(t)?ft(t.length):[];return ln(t,(function(t){o[++n]=r?xe(e,t,i):In(t,e,i)})),o})),ms=Ir((function(t,e,i){en(t,i,e)}));function ws(t,e){return(Ks(t)?Te:Fn)(t,ro(e,3))}var xs=Ir((function(t,e,i){t[i?0:1].push(e)}),(function(){return[[],[]]})),zs=Yn((function(t,e){if(null==t)return[];var i=e.length;return i>1&&vo(t,e[0],e[1])?e=[]:i>2&&vo(e[0],e[1],e[2])&&(e=[e[0]]),Ln(t,pn(e,1),[])})),Cs=ce||function(){return he.Date.now()};function Ss(e,i,n){return i=n?t:i,Nr(e,o,t,t,t,t,i=e&&null==i?e.length:i)}function Ms(i,n){var r;if("function"!=typeof n)throw new It(e);return i=fa(i),function(){return--i>0&&(r=n.apply(this,arguments)),i<=1&&(n=t),r}}var Is=Yn((function(t,e,i){var n=1;if(i.length){var o=oi(i,no(Is));n|=r}return Nr(t,n,e,i,o)})),js=Yn((function(t,e,i){var n=3;if(i.length){var o=oi(i,no(js));n|=r}return Nr(e,n,t,i,o)}));function _s(i,n,r){var o,s,a,c,l,h,u=0,f=!1,d=!1,p=!0;if("function"!=typeof i)throw new It(e);function b(e){var n=o,r=s;return o=s=t,u=e,c=i.apply(r,n)}function v(e){var i=e-h;return h===t||i>=n||i<0||d&&e-u>=a}function g(){var t=Cs();if(v(t))return k(t);l=Io(g,function(t){var e=n-(t-h);return d?bi(e,a-(t-u)):e}(t))}function k(e){return l=t,p&&o?b(e):(o=s=t,c)}function y(){var e=Cs(),i=v(e);if(o=arguments,s=this,h=e,i){if(l===t)return function(t){return u=t,l=Io(g,n),f?b(t):c}(h);if(d)return kr(l),l=Io(g,n),b(h)}return l===t&&(l=Io(g,n)),c}return n=pa(n)||0,Js(r)&&(f=!!r.leading,a=(d="maxWait"in r)?pi(pa(r.maxWait)||0,n):a,p="trailing"in r?!!r.trailing:p),y.cancel=function(){l!==t&&kr(l),u=0,o=h=s=l=t},y.flush=function(){return l===t?c:k(Cs())},y}var Ts=Yn((function(t,e){return an(t,1,e)})),As=Yn((function(t,e,i){return an(t,pa(e)||0,i)}));function $s(t,i){if("function"!=typeof t||null!=i&&"function"!=typeof i)throw new It(e);var n=function(){var e=arguments,r=i?i.apply(this,e):e[0],o=n.cache;if(o.has(r))return o.get(r);var s=t.apply(this,e);return n.cache=o.set(r,s)||o,s};return n.cache=new($s.Cache||Vi),n}function Es(t){if("function"!=typeof t)throw new It(e);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}$s.Cache=Vi;var Os=vr((function(t,e){var i=(e=1==e.length&&Ks(e[0])?Te(e[0],qe(ro())):Te(pn(e,1),qe(ro()))).length;return Yn((function(n){for(var r=-1,o=bi(n.length,i);++r<o;)n[r]=e[r].call(this,n[r]);return xe(t,this,n)}))})),Fs=Yn((function(e,i){var n=oi(i,no(Fs));return Nr(e,r,t,i,n)})),Ds=Yn((function(e,i){var n=oi(i,no(Ds));return Nr(e,64,t,i,n)})),Ws=Jr((function(e,i){return Nr(e,256,t,t,t,i)}));function Rs(t,e){return t===e||t!=t&&e!=e}var Ps=Kr(zn),Ls=Kr((function(t,e){return t>=e})),Us=jn(function(){return arguments}())?jn:function(t){return Qs(t)&&$t.call(t,"callee")&&!Ht.call(t,"callee")},Ks=ft.isArray,Vs=ve?qe(ve):function(t){return Qs(t)&&xn(t)==I};function Bs(t){return null!=t&&Zs(t.length)&&!Xs(t)}function Hs(t){return Qs(t)&&Bs(t)}var Ys=be||pc,Ns=ge?qe(ge):function(t){return Qs(t)&&xn(t)==p};function qs(t){if(!Qs(t))return!1;var e=xn(t);return e==b||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ia(t)}function Xs(t){if(!Js(t))return!1;var e=xn(t);return e==v||e==g||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Gs(t){return"number"==typeof t&&t==fa(t)}function Zs(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=a}function Js(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Qs(t){return null!=t&&"object"==typeof t}var ta=ke?qe(ke):function(t){return Qs(t)&&ho(t)==k};function ea(t){return"number"==typeof t||Qs(t)&&xn(t)==y}function ia(t){if(!Qs(t)||xn(t)!=m)return!1;var e=Vt(t);if(null===e)return!0;var i=$t.call(e,"constructor")&&e.constructor;return"function"==typeof i&&i instanceof i&&At.call(i)==Dt}var na=ye?qe(ye):function(t){return Qs(t)&&xn(t)==x},ra=me?qe(me):function(t){return Qs(t)&&ho(t)==z};function oa(t){return"string"==typeof t||!Ks(t)&&Qs(t)&&xn(t)==C}function sa(t){return"symbol"==typeof t||Qs(t)&&xn(t)==S}var aa=we?qe(we):function(t){return Qs(t)&&Zs(t.length)&&!!ne[xn(t)]},ca=Kr(On),la=Kr((function(t,e){return t<=e}));function ha(t){if(!t)return[];if(Bs(t))return oa(t)?li(t):Sr(t);if(qt&&t[qt])return function(t){for(var e,i=[];!(e=t.next()).done;)i.push(e.value);return i}(t[qt]());var e=ho(t);return(e==k?ni:e==z?si:Ra)(t)}function ua(t){return t?(t=pa(t))===s||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function fa(t){var e=ua(t),i=e%1;return e==e?i?e-i:e:0}function da(t){return t?rn(fa(t),0,l):0}function pa(t){if("number"==typeof t)return t;if(sa(t))return c;if(Js(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Js(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ne(t);var i=dt.test(t);return i||bt.test(t)?ae(t.slice(2),i?2:8):ht.test(t)?c:+t}function ba(t){return Mr(t,Ta(t))}function va(t){return null==t?"":or(t)}var ga=jr((function(t,e){if(mo(e)||Bs(e))Mr(e,_a(e),t);else for(var i in e)$t.call(e,i)&&Zi(t,i,e[i])})),ka=jr((function(t,e){Mr(e,Ta(e),t)})),ya=jr((function(t,e,i,n){Mr(e,Ta(e),t,n)})),ma=jr((function(t,e,i,n){Mr(e,_a(e),t,n)})),wa=Jr(nn),xa=Yn((function(e,i){e=Ct(e);var n=-1,r=i.length,o=r>2?i[2]:t;for(o&&vo(i[0],i[1],o)&&(r=1);++n<r;)for(var s=i[n],a=Ta(s),c=-1,l=a.length;++c<l;){var h=a[c],u=e[h];(u===t||Rs(u,_t[h])&&!$t.call(e,h))&&(e[h]=s[h])}return e})),za=Yn((function(e){return e.push(t,Xr),xe($a,t,e)}));function Ca(e,i,n){var r=null==e?t:mn(e,i);return r===t?n:r}function Sa(t,e){return null!=t&&uo(t,e,Sn)}var Ma=Wr((function(t,e,i){null!=e&&"function"!=typeof e.toString&&(e=Ft.call(e)),t[e]=i}),Ja(ec)),Ia=Wr((function(t,e,i){null!=e&&"function"!=typeof e.toString&&(e=Ft.call(e)),$t.call(t,e)?t[e].push(i):t[e]=[i]}),ro),ja=Yn(In);function _a(t){return Bs(t)?Yi(t):En(t)}function Ta(t){return Bs(t)?Yi(t,!0):function(t){if(!Js(t))return function(t){var e=[];if(null!=t)for(var i in Ct(t))e.push(i);return e}(t);var e=mo(t),i=[];for(var n in t)("constructor"!=n||!e&&$t.call(t,n))&&i.push(n);return i}(t)}var Aa=jr((function(t,e,i){Rn(t,e,i)})),$a=jr((function(t,e,i,n){Rn(t,e,i,n)})),Ea=Jr((function(t,e){var i={};if(null==t)return i;var n=!1;e=Te(e,(function(e){return e=br(e,t),n||(n=e.length>1),e})),Mr(t,to(t),i),n&&(i=on(i,7,Gr));for(var r=e.length;r--;)ar(i,e[r]);return i})),Oa=Jr((function(t,e){return null==t?{}:function(t,e){return Un(t,e,(function(e,i){return Sa(t,i)}))}(t,e)}));function Fa(t,e){if(null==t)return{};var i=Te(to(t),(function(t){return[t]}));return e=ro(e),Un(t,i,(function(t,i){return e(t,i[0])}))}var Da=Yr(_a),Wa=Yr(Ta);function Ra(t){return null==t?[]:Xe(t,_a(t))}var Pa=$r((function(t,e,i){return e=e.toLowerCase(),t+(i?La(e):e)}));function La(t){return qa(va(t).toLowerCase())}function Ua(t){return(t=va(t))&&t.replace(gt,Qe).replace(Gt,"")}var Ka=$r((function(t,e,i){return t+(i?"-":"")+e.toLowerCase()})),Va=$r((function(t,e,i){return t+(i?" ":"")+e.toLowerCase()})),Ba=Ar("toLowerCase"),Ha=$r((function(t,e,i){return t+(i?"_":"")+e.toLowerCase()})),Ya=$r((function(t,e,i){return t+(i?" ":"")+qa(e)})),Na=$r((function(t,e,i){return t+(i?" ":"")+e.toUpperCase()})),qa=Ar("toUpperCase");function Xa(e,i,n){return e=va(e),(i=n?t:i)===t?function(t){return te.test(t)}(e)?function(t){return t.match(Jt)||[]}(e):function(t){return t.match(ot)||[]}(e):e.match(i)||[]}var Ga=Yn((function(e,i){try{return xe(e,t,i)}catch(t){return qs(t)?t:new wt(t)}})),Za=Jr((function(t,e){return Ce(e,(function(e){e=Fo(e),en(t,e,Is(t[e],t))})),t}));function Ja(t){return function(){return t}}var Qa=Fr(),tc=Fr(!0);function ec(t){return t}function ic(t){return $n("function"==typeof t?t:on(t,1))}var nc=Yn((function(t,e){return function(i){return In(i,t,e)}})),rc=Yn((function(t,e){return function(i){return In(t,i,e)}}));function oc(t,e,i){var n=_a(e),r=yn(e,n);null!=i||Js(e)&&(r.length||!n.length)||(i=e,e=t,t=this,r=yn(e,_a(e)));var o=!(Js(i)&&"chain"in i&&!i.chain),s=Xs(t);return Ce(r,(function(i){var n=e[i];t[i]=n,s&&(t.prototype[i]=function(){var e=this.__chain__;if(o||e){var i=t(this.__wrapped__);return(i.__actions__=Sr(this.__actions__)).push({func:n,args:arguments,thisArg:t}),i.__chain__=e,i}return n.apply(t,Ae([this.value()],arguments))})})),t}function sc(){}var ac=Pr(Te),cc=Pr(Me),lc=Pr(Oe);function hc(t){return go(t)?Ke(Fo(t)):function(t){return function(e){return mn(e,t)}}(t)}var uc=Ur(),fc=Ur(!0);function dc(){return[]}function pc(){return!1}var bc,vc=Rr((function(t,e){return t+e}),0),gc=Br("ceil"),kc=Rr((function(t,e){return t/e}),1),yc=Br("floor"),mc=Rr((function(t,e){return t*e}),1),wc=Br("round"),xc=Rr((function(t,e){return t-e}),0);return Di.after=function(t,i){if("function"!=typeof i)throw new It(e);return t=fa(t),function(){if(--t<1)return i.apply(this,arguments)}},Di.ary=Ss,Di.assign=ga,Di.assignIn=ka,Di.assignInWith=ya,Di.assignWith=ma,Di.at=wa,Di.before=Ms,Di.bind=Is,Di.bindAll=Za,Di.bindKey=js,Di.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ks(t)?t:[t]},Di.chain=hs,Di.chunk=function(e,i,n){i=(n?vo(e,i,n):i===t)?1:pi(fa(i),0);var r=null==e?0:e.length;if(!r||i<1)return[];for(var o=0,s=0,a=ft(ue(r/i));o<r;)a[s++]=Qn(e,o,o+=i);return a},Di.compact=function(t){for(var e=-1,i=null==t?0:t.length,n=0,r=[];++e<i;){var o=t[e];o&&(r[n++]=o)}return r},Di.concat=function(){var t=arguments.length;if(!t)return[];for(var e=ft(t-1),i=arguments[0],n=t;n--;)e[n-1]=arguments[n];return Ae(Ks(i)?Sr(i):[i],pn(e,1))},Di.cond=function(t){var i=null==t?0:t.length,n=ro();return t=i?Te(t,(function(t){if("function"!=typeof t[1])throw new It(e);return[n(t[0]),t[1]]})):[],Yn((function(e){for(var n=-1;++n<i;){var r=t[n];if(xe(r[0],this,e))return xe(r[1],this,e)}}))},Di.conforms=function(t){return function(t){var e=_a(t);return function(i){return sn(i,t,e)}}(on(t,1))},Di.constant=Ja,Di.countBy=ds,Di.create=function(t,e){var i=Wi(t);return null==e?i:tn(i,e)},Di.curry=function e(i,n,r){var o=Nr(i,8,t,t,t,t,t,n=r?t:n);return o.placeholder=e.placeholder,o},Di.curryRight=function e(i,n,r){var o=Nr(i,16,t,t,t,t,t,n=r?t:n);return o.placeholder=e.placeholder,o},Di.debounce=_s,Di.defaults=xa,Di.defaultsDeep=za,Di.defer=Ts,Di.delay=As,Di.difference=Ro,Di.differenceBy=Po,Di.differenceWith=Lo,Di.drop=function(e,i,n){var r=null==e?0:e.length;return r?Qn(e,(i=n||i===t?1:fa(i))<0?0:i,r):[]},Di.dropRight=function(e,i,n){var r=null==e?0:e.length;return r?Qn(e,0,(i=r-(i=n||i===t?1:fa(i)))<0?0:i):[]},Di.dropRightWhile=function(t,e){return t&&t.length?lr(t,ro(e,3),!0,!0):[]},Di.dropWhile=function(t,e){return t&&t.length?lr(t,ro(e,3),!0):[]},Di.fill=function(e,i,n,r){var o=null==e?0:e.length;return o?(n&&"number"!=typeof n&&vo(e,i,n)&&(n=0,r=o),function(e,i,n,r){var o=e.length;for((n=fa(n))<0&&(n=-n>o?0:o+n),(r=r===t||r>o?o:fa(r))<0&&(r+=o),r=n>r?0:da(r);n<r;)e[n++]=i;return e}(e,i,n,r)):[]},Di.filter=function(t,e){return(Ks(t)?Ie:dn)(t,ro(e,3))},Di.flatMap=function(t,e){return pn(ws(t,e),1)},Di.flatMapDeep=function(t,e){return pn(ws(t,e),s)},Di.flatMapDepth=function(e,i,n){return n=n===t?1:fa(n),pn(ws(e,i),n)},Di.flatten=Vo,Di.flattenDeep=function(t){return null!=t&&t.length?pn(t,s):[]},Di.flattenDepth=function(e,i){return null!=e&&e.length?pn(e,i=i===t?1:fa(i)):[]},Di.flip=function(t){return Nr(t,512)},Di.flow=Qa,Di.flowRight=tc,Di.fromPairs=function(t){for(var e=-1,i=null==t?0:t.length,n={};++e<i;){var r=t[e];n[r[0]]=r[1]}return n},Di.functions=function(t){return null==t?[]:yn(t,_a(t))},Di.functionsIn=function(t){return null==t?[]:yn(t,Ta(t))},Di.groupBy=ks,Di.initial=function(t){return null!=t&&t.length?Qn(t,0,-1):[]},Di.intersection=Ho,Di.intersectionBy=Yo,Di.intersectionWith=No,Di.invert=Ma,Di.invertBy=Ia,Di.invokeMap=ys,Di.iteratee=ic,Di.keyBy=ms,Di.keys=_a,Di.keysIn=Ta,Di.map=ws,Di.mapKeys=function(t,e){var i={};return e=ro(e,3),gn(t,(function(t,n,r){en(i,e(t,n,r),t)})),i},Di.mapValues=function(t,e){var i={};return e=ro(e,3),gn(t,(function(t,n,r){en(i,n,e(t,n,r))})),i},Di.matches=function(t){return Dn(on(t,1))},Di.matchesProperty=function(t,e){return Wn(t,on(e,1))},Di.memoize=$s,Di.merge=Aa,Di.mergeWith=$a,Di.method=nc,Di.methodOf=rc,Di.mixin=oc,Di.negate=Es,Di.nthArg=function(t){return t=fa(t),Yn((function(e){return Pn(e,t)}))},Di.omit=Ea,Di.omitBy=function(t,e){return Fa(t,Es(ro(e)))},Di.once=function(t){return Ms(2,t)},Di.orderBy=function(e,i,n,r){return null==e?[]:(Ks(i)||(i=null==i?[]:[i]),Ks(n=r?t:n)||(n=null==n?[]:[n]),Ln(e,i,n))},Di.over=ac,Di.overArgs=Os,Di.overEvery=cc,Di.overSome=lc,Di.partial=Fs,Di.partialRight=Ds,Di.partition=xs,Di.pick=Oa,Di.pickBy=Fa,Di.property=hc,Di.propertyOf=function(e){return function(i){return null==e?t:mn(e,i)}},Di.pull=Xo,Di.pullAll=Go,Di.pullAllBy=function(t,e,i){return t&&t.length&&e&&e.length?Kn(t,e,ro(i,2)):t},Di.pullAllWith=function(e,i,n){return e&&e.length&&i&&i.length?Kn(e,i,t,n):e},Di.pullAt=Zo,Di.range=uc,Di.rangeRight=fc,Di.rearg=Ws,Di.reject=function(t,e){return(Ks(t)?Ie:dn)(t,Es(ro(e,3)))},Di.remove=function(t,e){var i=[];if(!t||!t.length)return i;var n=-1,r=[],o=t.length;for(e=ro(e,3);++n<o;){var s=t[n];e(s,n,t)&&(i.push(s),r.push(n))}return Vn(t,r),i},Di.rest=function(i,n){if("function"!=typeof i)throw new It(e);return Yn(i,n=n===t?n:fa(n))},Di.reverse=Jo,Di.sampleSize=function(e,i,n){return i=(n?vo(e,i,n):i===t)?1:fa(i),(Ks(e)?qi:qn)(e,i)},Di.set=function(t,e,i){return null==t?t:Xn(t,e,i)},Di.setWith=function(e,i,n,r){return r="function"==typeof r?r:t,null==e?e:Xn(e,i,n,r)},Di.shuffle=function(t){return(Ks(t)?Xi:Jn)(t)},Di.slice=function(e,i,n){var r=null==e?0:e.length;return r?(n&&"number"!=typeof n&&vo(e,i,n)?(i=0,n=r):(i=null==i?0:fa(i),n=n===t?r:fa(n)),Qn(e,i,n)):[]},Di.sortBy=zs,Di.sortedUniq=function(t){return t&&t.length?nr(t):[]},Di.sortedUniqBy=function(t,e){return t&&t.length?nr(t,ro(e,2)):[]},Di.split=function(e,i,n){return n&&"number"!=typeof n&&vo(e,i,n)&&(i=n=t),(n=n===t?l:n>>>0)?(e=va(e))&&("string"==typeof i||null!=i&&!na(i))&&!(i=or(i))&&ii(e)?gr(li(e),0,n):e.split(i,n):[]},Di.spread=function(t,i){if("function"!=typeof t)throw new It(e);return i=null==i?0:pi(fa(i),0),Yn((function(e){var n=e[i],r=gr(e,0,i);return n&&Ae(r,n),xe(t,this,r)}))},Di.tail=function(t){var e=null==t?0:t.length;return e?Qn(t,1,e):[]},Di.take=function(e,i,n){return e&&e.length?Qn(e,0,(i=n||i===t?1:fa(i))<0?0:i):[]},Di.takeRight=function(e,i,n){var r=null==e?0:e.length;return r?Qn(e,(i=r-(i=n||i===t?1:fa(i)))<0?0:i,r):[]},Di.takeRightWhile=function(t,e){return t&&t.length?lr(t,ro(e,3),!1,!0):[]},Di.takeWhile=function(t,e){return t&&t.length?lr(t,ro(e,3)):[]},Di.tap=function(t,e){return e(t),t},Di.throttle=function(t,i,n){var r=!0,o=!0;if("function"!=typeof t)throw new It(e);return Js(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),_s(t,i,{leading:r,maxWait:i,trailing:o})},Di.thru=us,Di.toArray=ha,Di.toPairs=Da,Di.toPairsIn=Wa,Di.toPath=function(t){return Ks(t)?Te(t,Fo):sa(t)?[t]:Sr(Oo(va(t)))},Di.toPlainObject=ba,Di.transform=function(t,e,i){var n=Ks(t),r=n||Ys(t)||aa(t);if(e=ro(e,4),null==i){var o=t&&t.constructor;i=r?n?new o:[]:Js(t)&&Xs(o)?Wi(Vt(t)):{}}return(r?Ce:gn)(t,(function(t,n,r){return e(i,t,n,r)})),i},Di.unary=function(t){return Ss(t,1)},Di.union=Qo,Di.unionBy=ts,Di.unionWith=es,Di.uniq=function(t){return t&&t.length?sr(t):[]},Di.uniqBy=function(t,e){return t&&t.length?sr(t,ro(e,2)):[]},Di.uniqWith=function(e,i){return i="function"==typeof i?i:t,e&&e.length?sr(e,t,i):[]},Di.unset=function(t,e){return null==t||ar(t,e)},Di.unzip=is,Di.unzipWith=ns,Di.update=function(t,e,i){return null==t?t:cr(t,e,pr(i))},Di.updateWith=function(e,i,n,r){return r="function"==typeof r?r:t,null==e?e:cr(e,i,pr(n),r)},Di.values=Ra,Di.valuesIn=function(t){return null==t?[]:Xe(t,Ta(t))},Di.without=rs,Di.words=Xa,Di.wrap=function(t,e){return Fs(pr(e),t)},Di.xor=os,Di.xorBy=ss,Di.xorWith=as,Di.zip=cs,Di.zipObject=function(t,e){return fr(t||[],e||[],Zi)},Di.zipObjectDeep=function(t,e){return fr(t||[],e||[],Xn)},Di.zipWith=ls,Di.entries=Da,Di.entriesIn=Wa,Di.extend=ka,Di.extendWith=ya,oc(Di,Di),Di.add=vc,Di.attempt=Ga,Di.camelCase=Pa,Di.capitalize=La,Di.ceil=gc,Di.clamp=function(e,i,n){return n===t&&(n=i,i=t),n!==t&&(n=(n=pa(n))==n?n:0),i!==t&&(i=(i=pa(i))==i?i:0),rn(pa(e),i,n)},Di.clone=function(t){return on(t,4)},Di.cloneDeep=function(t){return on(t,5)},Di.cloneDeepWith=function(e,i){return on(e,5,i="function"==typeof i?i:t)},Di.cloneWith=function(e,i){return on(e,4,i="function"==typeof i?i:t)},Di.conformsTo=function(t,e){return null==e||sn(t,e,_a(e))},Di.deburr=Ua,Di.defaultTo=function(t,e){return null==t||t!=t?e:t},Di.divide=kc,Di.endsWith=function(e,i,n){e=va(e),i=or(i);var r=e.length,o=n=n===t?r:rn(fa(n),0,r);return(n-=i.length)>=0&&e.slice(n,o)==i},Di.eq=Rs,Di.escape=function(t){return(t=va(t))&&B.test(t)?t.replace(K,ti):t},Di.escapeRegExp=function(t){return(t=va(t))&&Q.test(t)?t.replace(J,"\\$&"):t},Di.every=function(e,i,n){var r=Ks(e)?Me:un;return n&&vo(e,i,n)&&(i=t),r(e,ro(i,3))},Di.find=ps,Di.findIndex=Uo,Di.findKey=function(t,e){return De(t,ro(e,3),gn)},Di.findLast=bs,Di.findLastIndex=Ko,Di.findLastKey=function(t,e){return De(t,ro(e,3),kn)},Di.floor=yc,Di.forEach=vs,Di.forEachRight=gs,Di.forIn=function(t,e){return null==t?t:bn(t,ro(e,3),Ta)},Di.forInRight=function(t,e){return null==t?t:vn(t,ro(e,3),Ta)},Di.forOwn=function(t,e){return t&&gn(t,ro(e,3))},Di.forOwnRight=function(t,e){return t&&kn(t,ro(e,3))},Di.get=Ca,Di.gt=Ps,Di.gte=Ls,Di.has=function(t,e){return null!=t&&uo(t,e,Cn)},Di.hasIn=Sa,Di.head=Bo,Di.identity=ec,Di.includes=function(t,e,i,n){t=Bs(t)?t:Ra(t),i=i&&!n?fa(i):0;var r=t.length;return i<0&&(i=pi(r+i,0)),oa(t)?i<=r&&t.indexOf(e,i)>-1:!!r&&Re(t,e,i)>-1},Di.indexOf=function(t,e,i){var n=null==t?0:t.length;if(!n)return-1;var r=null==i?0:fa(i);return r<0&&(r=pi(n+r,0)),Re(t,e,r)},Di.inRange=function(e,i,n){return i=ua(i),n===t?(n=i,i=0):n=ua(n),function(t,e,i){return t>=bi(e,i)&&t<pi(e,i)}(e=pa(e),i,n)},Di.invoke=ja,Di.isArguments=Us,Di.isArray=Ks,Di.isArrayBuffer=Vs,Di.isArrayLike=Bs,Di.isArrayLikeObject=Hs,Di.isBoolean=function(t){return!0===t||!1===t||Qs(t)&&xn(t)==d},Di.isBuffer=Ys,Di.isDate=Ns,Di.isElement=function(t){return Qs(t)&&1===t.nodeType&&!ia(t)},Di.isEmpty=function(t){if(null==t)return!0;if(Bs(t)&&(Ks(t)||"string"==typeof t||"function"==typeof t.splice||Ys(t)||aa(t)||Us(t)))return!t.length;var e=ho(t);if(e==k||e==z)return!t.size;if(mo(t))return!En(t).length;for(var i in t)if($t.call(t,i))return!1;return!0},Di.isEqual=function(t,e){return _n(t,e)},Di.isEqualWith=function(e,i,n){var r=(n="function"==typeof n?n:t)?n(e,i):t;return r===t?_n(e,i,t,n):!!r},Di.isError=qs,Di.isFinite=function(t){return"number"==typeof t&&Fe(t)},Di.isFunction=Xs,Di.isInteger=Gs,Di.isLength=Zs,Di.isMap=ta,Di.isMatch=function(t,e){return t===e||Tn(t,e,so(e))},Di.isMatchWith=function(e,i,n){return n="function"==typeof n?n:t,Tn(e,i,so(i),n)},Di.isNaN=function(t){return ea(t)&&t!=+t},Di.isNative=function(t){if(yo(t))throw new wt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return An(t)},Di.isNil=function(t){return null==t},Di.isNull=function(t){return null===t},Di.isNumber=ea,Di.isObject=Js,Di.isObjectLike=Qs,Di.isPlainObject=ia,Di.isRegExp=na,Di.isSafeInteger=function(t){return Gs(t)&&t>=-9007199254740991&&t<=a},Di.isSet=ra,Di.isString=oa,Di.isSymbol=sa,Di.isTypedArray=aa,Di.isUndefined=function(e){return e===t},Di.isWeakMap=function(t){return Qs(t)&&ho(t)==M},Di.isWeakSet=function(t){return Qs(t)&&"[object WeakSet]"==xn(t)},Di.join=function(t,e){return null==t?"":Ve.call(t,e)},Di.kebabCase=Ka,Di.last=qo,Di.lastIndexOf=function(e,i,n){var r=null==e?0:e.length;if(!r)return-1;var o=r;return n!==t&&(o=(o=fa(n))<0?pi(r+o,0):bi(o,r-1)),i==i?function(t,e,i){for(var n=i+1;n--;)if(t[n]===e)return n;return n}(e,i,o):We(e,Le,o,!0)},Di.lowerCase=Va,Di.lowerFirst=Ba,Di.lt=ca,Di.lte=la,Di.max=function(e){return e&&e.length?fn(e,ec,zn):t},Di.maxBy=function(e,i){return e&&e.length?fn(e,ro(i,2),zn):t},Di.mean=function(t){return Ue(t,ec)},Di.meanBy=function(t,e){return Ue(t,ro(e,2))},Di.min=function(e){return e&&e.length?fn(e,ec,On):t},Di.minBy=function(e,i){return e&&e.length?fn(e,ro(i,2),On):t},Di.stubArray=dc,Di.stubFalse=pc,Di.stubObject=function(){return{}},Di.stubString=function(){return""},Di.stubTrue=function(){return!0},Di.multiply=mc,Di.nth=function(e,i){return e&&e.length?Pn(e,fa(i)):t},Di.noConflict=function(){return he._===this&&(he._=Wt),this},Di.noop=sc,Di.now=Cs,Di.pad=function(t,e,i){t=va(t);var n=(e=fa(e))?ci(t):0;if(!e||n>=e)return t;var r=(e-n)/2;return Lr(fe(r),i)+t+Lr(ue(r),i)},Di.padEnd=function(t,e,i){t=va(t);var n=(e=fa(e))?ci(t):0;return e&&n<e?t+Lr(e-n,i):t},Di.padStart=function(t,e,i){t=va(t);var n=(e=fa(e))?ci(t):0;return e&&n<e?Lr(e-n,i)+t:t},Di.parseInt=function(t,e,i){return i||null==e?e=0:e&&(e=+e),gi(va(t).replace(tt,""),e||0)},Di.random=function(e,i,n){if(n&&"boolean"!=typeof n&&vo(e,i,n)&&(i=n=t),n===t&&("boolean"==typeof i?(n=i,i=t):"boolean"==typeof e&&(n=e,e=t)),e===t&&i===t?(e=0,i=1):(e=ua(e),i===t?(i=e,e=0):i=ua(i)),e>i){var r=e;e=i,i=r}if(n||e%1||i%1){var o=ki();return bi(e+o*(i-e+se("1e-"+((o+"").length-1))),i)}return Bn(e,i)},Di.reduce=function(t,e,i){var n=Ks(t)?$e:Be,r=arguments.length<3;return n(t,ro(e,4),i,r,ln)},Di.reduceRight=function(t,e,i){var n=Ks(t)?Ee:Be,r=arguments.length<3;return n(t,ro(e,4),i,r,hn)},Di.repeat=function(e,i,n){return i=(n?vo(e,i,n):i===t)?1:fa(i),Hn(va(e),i)},Di.replace=function(){var t=arguments,e=va(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Di.result=function(e,i,n){var r=-1,o=(i=br(i,e)).length;for(o||(o=1,e=t);++r<o;){var s=null==e?t:e[Fo(i[r])];s===t&&(r=o,s=n),e=Xs(s)?s.call(e):s}return e},Di.round=wc,Di.runInContext=q,Di.sample=function(t){return(Ks(t)?Ni:Nn)(t)},Di.size=function(t){if(null==t)return 0;if(Bs(t))return oa(t)?ci(t):t.length;var e=ho(t);return e==k||e==z?t.size:En(t).length},Di.snakeCase=Ha,Di.some=function(e,i,n){var r=Ks(e)?Oe:tr;return n&&vo(e,i,n)&&(i=t),r(e,ro(i,3))},Di.sortedIndex=function(t,e){return er(t,e)},Di.sortedIndexBy=function(t,e,i){return ir(t,e,ro(i,2))},Di.sortedIndexOf=function(t,e){var i=null==t?0:t.length;if(i){var n=er(t,e);if(n<i&&Rs(t[n],e))return n}return-1},Di.sortedLastIndex=function(t,e){return er(t,e,!0)},Di.sortedLastIndexBy=function(t,e,i){return ir(t,e,ro(i,2),!0)},Di.sortedLastIndexOf=function(t,e){if(null!=t&&t.length){var i=er(t,e,!0)-1;if(Rs(t[i],e))return i}return-1},Di.startCase=Ya,Di.startsWith=function(t,e,i){return t=va(t),i=null==i?0:rn(fa(i),0,t.length),e=or(e),t.slice(i,i+e.length)==e},Di.subtract=xc,Di.sum=function(t){return t&&t.length?He(t,ec):0},Di.sumBy=function(t,e){return t&&t.length?He(t,ro(e,2)):0},Di.template=function(e,i,n){var r=Di.templateSettings;n&&vo(e,i,n)&&(i=t),e=va(e),i=ya({},i,r,qr);var o,s,a=ya({},i.imports,r.imports,qr),c=_a(a),l=Xe(a,c),h=0,u=i.interpolate||kt,f="__p += '",d=St((i.escape||kt).source+"|"+u.source+"|"+(u===N?ct:kt).source+"|"+(i.evaluate||kt).source+"|$","g"),p="//# sourceURL="+($t.call(i,"sourceURL")?(i.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++ie+"]")+"\n";e.replace(d,(function(t,i,n,r,a,c){return n||(n=r),f+=e.slice(h,c).replace(yt,ei),i&&(o=!0,f+="' +\n__e("+i+") +\n'"),a&&(s=!0,f+="';\n"+a+";\n__p += '"),n&&(f+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"),h=c+t.length,t})),f+="';\n";var b=$t.call(i,"variable")&&i.variable;if(b){if(st.test(b))throw new wt("Invalid `variable` option passed into `_.template`")}else f="with (obj) {\n"+f+"\n}\n";f=(s?f.replace(R,""):f).replace(P,"$1").replace(L,"$1;"),f="function("+(b||"obj")+") {\n"+(b?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var v=Ga((function(){return xt(c,p+"return "+f).apply(t,l)}));if(v.source=f,qs(v))throw v;return v},Di.times=function(t,e){if((t=fa(t))<1||t>a)return[];var i=l,n=bi(t,l);e=ro(e),t-=l;for(var r=Ye(n,e);++i<t;)e(i);return r},Di.toFinite=ua,Di.toInteger=fa,Di.toLength=da,Di.toLower=function(t){return va(t).toLowerCase()},Di.toNumber=pa,Di.toSafeInteger=function(t){return t?rn(fa(t),-9007199254740991,a):0===t?t:0},Di.toString=va,Di.toUpper=function(t){return va(t).toUpperCase()},Di.trim=function(e,i,n){if((e=va(e))&&(n||i===t))return Ne(e);if(!e||!(i=or(i)))return e;var r=li(e),o=li(i);return gr(r,Ze(r,o),Je(r,o)+1).join("")},Di.trimEnd=function(e,i,n){if((e=va(e))&&(n||i===t))return e.slice(0,hi(e)+1);if(!e||!(i=or(i)))return e;var r=li(e);return gr(r,0,Je(r,li(i))+1).join("")},Di.trimStart=function(e,i,n){if((e=va(e))&&(n||i===t))return e.replace(tt,"");if(!e||!(i=or(i)))return e;var r=li(e);return gr(r,Ze(r,li(i))).join("")},Di.truncate=function(e,i){var n=30,r="...";if(Js(i)){var o="separator"in i?i.separator:o;n="length"in i?fa(i.length):n,r="omission"in i?or(i.omission):r}var s=(e=va(e)).length;if(ii(e)){var a=li(e);s=a.length}if(n>=s)return e;var c=n-ci(r);if(c<1)return r;var l=a?gr(a,0,c).join(""):e.slice(0,c);if(o===t)return l+r;if(a&&(c+=l.length-c),na(o)){if(e.slice(c).search(o)){var h,u=l;for(o.global||(o=St(o.source,va(lt.exec(o))+"g")),o.lastIndex=0;h=o.exec(u);)var f=h.index;l=l.slice(0,f===t?c:f)}}else if(e.indexOf(or(o),c)!=c){var d=l.lastIndexOf(o);d>-1&&(l=l.slice(0,d))}return l+r},Di.unescape=function(t){return(t=va(t))&&V.test(t)?t.replace(U,ui):t},Di.uniqueId=function(t){var e=++Et;return va(t)+e},Di.upperCase=Na,Di.upperFirst=qa,Di.each=vs,Di.eachRight=gs,Di.first=Bo,oc(Di,(bc={},gn(Di,(function(t,e){$t.call(Di.prototype,e)||(bc[e]=t)})),bc),{chain:!1}),Di.VERSION="4.17.21",Ce(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Di[t].placeholder=Di})),Ce(["drop","take"],(function(e,i){Li.prototype[e]=function(n){n=n===t?1:pi(fa(n),0);var r=this.__filtered__&&!i?new Li(this):this.clone();return r.__filtered__?r.__takeCount__=bi(n,r.__takeCount__):r.__views__.push({size:bi(n,l),type:e+(r.__dir__<0?"Right":"")}),r},Li.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Ce(["filter","map","takeWhile"],(function(t,e){var i=e+1,n=1==i||3==i;Li.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:ro(t,3),type:i}),e.__filtered__=e.__filtered__||n,e}})),Ce(["head","last"],(function(t,e){var i="take"+(e?"Right":"");Li.prototype[t]=function(){return this[i](1).value()[0]}})),Ce(["initial","tail"],(function(t,e){var i="drop"+(e?"":"Right");Li.prototype[t]=function(){return this.__filtered__?new Li(this):this[i](1)}})),Li.prototype.compact=function(){return this.filter(ec)},Li.prototype.find=function(t){return this.filter(t).head()},Li.prototype.findLast=function(t){return this.reverse().find(t)},Li.prototype.invokeMap=Yn((function(t,e){return"function"==typeof t?new Li(this):this.map((function(i){return In(i,t,e)}))})),Li.prototype.reject=function(t){return this.filter(Es(ro(t)))},Li.prototype.slice=function(e,i){e=fa(e);var n=this;return n.__filtered__&&(e>0||i<0)?new Li(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),i!==t&&(n=(i=fa(i))<0?n.dropRight(-i):n.take(i-e)),n)},Li.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Li.prototype.toArray=function(){return this.take(l)},gn(Li.prototype,(function(e,i){var n=/^(?:filter|find|map|reject)|While$/.test(i),r=/^(?:head|last)$/.test(i),o=Di[r?"take"+("last"==i?"Right":""):i],s=r||/^find/.test(i);o&&(Di.prototype[i]=function(){var i=this.__wrapped__,a=r?[1]:arguments,c=i instanceof Li,l=a[0],h=c||Ks(i),u=function(t){var e=o.apply(Di,Ae([t],a));return r&&f?e[0]:e};h&&n&&"function"==typeof l&&1!=l.length&&(c=h=!1);var f=this.__chain__,d=s&&!f,p=c&&!this.__actions__.length;if(!s&&h){i=p?i:new Li(this);var b=e.apply(i,a);return b.__actions__.push({func:us,args:[u],thisArg:t}),new Pi(b,f)}return d&&p?e.apply(this,a):(b=this.thru(u),d?r?b.value()[0]:b.value():b)})})),Ce(["pop","push","shift","sort","splice","unshift"],(function(t){var e=jt[t],i=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);Di.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var r=this.value();return e.apply(Ks(r)?r:[],t)}return this[i]((function(i){return e.apply(Ks(i)?i:[],t)}))}})),gn(Li.prototype,(function(t,e){var i=Di[e];if(i){var n=i.name+"";$t.call(Ii,n)||(Ii[n]=[]),Ii[n].push({name:e,func:i})}})),Ii[Dr(t,2).name]=[{name:"wrapper",func:t}],Li.prototype.clone=function(){var t=new Li(this.__wrapped__);return t.__actions__=Sr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Sr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Sr(this.__views__),t},Li.prototype.reverse=function(){if(this.__filtered__){var t=new Li(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Li.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,i=Ks(t),n=e<0,r=i?t.length:0,o=function(t,e,i){for(var n=-1,r=i.length;++n<r;){var o=i[n],s=o.size;switch(o.type){case"drop":t+=s;break;case"dropRight":e-=s;break;case"take":e=bi(e,t+s);break;case"takeRight":t=pi(t,e-s)}}return{start:t,end:e}}(0,r,this.__views__),s=o.start,a=o.end,c=a-s,l=n?a:s-1,h=this.__iteratees__,u=h.length,f=0,d=bi(c,this.__takeCount__);if(!i||!n&&r==c&&d==c)return hr(t,this.__actions__);var p=[];t:for(;c--&&f<d;){for(var b=-1,v=t[l+=e];++b<u;){var g=h[b],k=g.type,y=(0,g.iteratee)(v);if(2==k)v=y;else if(!y){if(1==k)continue t;break t}}p[f++]=v}return p},Di.prototype.at=fs,Di.prototype.chain=function(){return hs(this)},Di.prototype.commit=function(){return new Pi(this.value(),this.__chain__)},Di.prototype.next=function(){this.__values__===t&&(this.__values__=ha(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?t:this.__values__[this.__index__++]}},Di.prototype.plant=function(e){for(var i,n=this;n instanceof Ri;){var r=Wo(n);r.__index__=0,r.__values__=t,i?o.__wrapped__=r:i=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,i},Di.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Li){var i=e;return this.__actions__.length&&(i=new Li(this)),(i=i.reverse()).__actions__.push({func:us,args:[Jo],thisArg:t}),new Pi(i,this.__chain__)}return this.thru(Jo)},Di.prototype.toJSON=Di.prototype.valueOf=Di.prototype.value=function(){return hr(this.__wrapped__,this.__actions__)},Di.prototype.first=Di.prototype.head,qt&&(Di.prototype[qt]=function(){return this}),Di}();fe?((fe.exports=fi)._=fi,ue._=fi):he._=fi}.call(dt.exports)),dt.exports);
2
+ /**
3
+ * @license
4
+ * Lodash <https://lodash.com/>
5
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
6
+ * Released under MIT license <https://lodash.com/license>
7
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
8
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
9
+ */class bt{_core;_debounceUpdate;_debounceEndScaling;initialTouchDistance=0;startX=0;startY=0;constructor(t,e){this._core=t,this._core.store.state.host=e,this._core.store.state.viewportWidth=e.clientWidth,this._core.store.state.viewportHeight=e.clientHeight,this._core.store.state.startX=0,this._core.store.state.startY=0,this._core.store.state.translateX=0,this._core.store.state.translateY=0,this._debounceUpdate=pt.debounce((()=>{this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}),300),this._debounceEndScaling=pt.debounce((()=>{this._core.store.state.isScaling=!1,this._core.rerender()}),100)}cancelPendingUpdates(){this._debounceUpdate.cancel()}handleResize(){this._core.store.state.viewportWidth=this._core.store.state.host.clientWidth,this._core.store.state.viewportHeight=this._core.store.state.host.clientHeight,this._core.store.state.hasViewportChanged=!0,this._core.rerender()}handlePointerDown(t){if("mouse"===t.pointerType){const e=t.clientX-this._core.store.offsetX,i=t.clientY-this._core.store.offsetY;t.button===c.Right&&(this._core.store.state.isPanning=!0,this._core.store.state.startX=e,this._core.store.state.startY=i)}if("touch"===t.pointerType){const t=Array.from(this._core.store.state.pointers.values());if(2===t.length){const e=this._core.store.currentPath;e&&this._core.store.state.objects.remove((t=>t.id===e.id)),this._core.store.state.isScaling=!0;const i=t[0].clientX-this._core.store.offsetX,n=t[0].clientY-this._core.store.offsetY,r=t[1].clientX-this._core.store.offsetX,o=t[1].clientY-this._core.store.offsetY;this.initialTouchDistance=Math.sqrt(Math.pow(i-r,2)+Math.pow(n-o,2)),this.startX=(i+r)/2,this.startY=(n+o)/2,this._core.rerender()}}}handlePointerMove(t){if("mouse"===t.pointerType){const e=this._core.store.state.host.getBoundingClientRect(),i=t.clientX-e.left,n=t.clientY-e.top;if(this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale,this._core.store.state.pointerY=(n-this._core.store.state.translateY)/this._core.store.state.scale,this._core.store.state.isPanning){const t=n-this._core.store.state.startY;this._core.store.state.translateX+=i-this._core.store.state.startX,this._core.store.state.translateY+=t,this._core.store.state.startX=i,this._core.store.state.startY=n,this._core.store.state.hasViewportChanged=!0,this._core.store.state.skipContextMenu=!0,this._core.rerender(),this._debounceUpdate()}}if("touch"===t.pointerType){const e=this._core.store.state.host.getBoundingClientRect(),i=t.clientY-e.top;this._core.store.state.pointerX=(t.clientX-e.left-this._core.store.state.translateX)/this._core.store.state.scale,this._core.store.state.pointerY=(i-this._core.store.state.translateY)/this._core.store.state.scale;const n=Array.from(this._core.store.state.pointers.values());if(2===n.length){const t=n[0].clientX-this._core.store.offsetX,e=n[0].clientY-this._core.store.offsetY,i=n[1].clientX-this._core.store.offsetX,r=n[1].clientY-this._core.store.offsetY,o=Math.sqrt(Math.pow(t-i,2)+Math.pow(e-r,2)),s=(t+i)/2,a=(e+r)/2,c=o/this.initialTouchDistance,l=this._core.store.state.scale*c;if(l>this._core.store.state.scaleMax||l<this._core.store.state.scaleMin)this._core.store.state.translateX=this._core.store.state.translateX+s-this.startX,this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY;else{const t=(a-this._core.store.state.translateY)*(c-1);this._core.store.state.translateX=this._core.store.state.translateX+s-this.startX-(s-this._core.store.state.translateX)*(c-1),this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY-t,this._core.store.state.scale=l,this.initialTouchDistance=o}this.startX=s,this.startY=a,this._core.store.state.hasViewportChanged=!0,this._core.rerender(),this._debounceUpdate()}}}handlePointerUp(t){"mouse"===t.pointerType&&this._core.store.state.isPanning&&(this._core.store.state.isPanning=!1,this._core.rerender()),"touch"===t.pointerType&&0===this._core.store.state.pointers.size&&this._debounceEndScaling()}handleWheel(t){t.preventDefault(),!0===t.ctrlKey&&Math.abs(t.deltaY)>0&&0===Math.abs(t.deltaX)&&this.handleZoom(t),t.ctrlKey||this.handlePan(t)}centerInViewport(t){const{scale:e,viewportWidth:i,viewportHeight:n}=this._core.store.state,{x:r,y:o,width:s,height:a}=t.rotatedBoundingBox,c=o+a/2;this._core.store.state.translateX=i/2-(r+s/2)*e,this._core.store.state.translateY=n/2-c*e,this._core.store.state.hasViewportChanged=!0,this._core.rerender(),this._debounceUpdate()}centerFitInViewport(t){const e=Math.min(this._core.store.state.viewportWidth/(1.1*t.rotatedBoundingBox.width),this._core.store.state.viewportHeight/(1.1*t.rotatedBoundingBox.height),this._core.store.state.scaleMax),i=Math.max(e,this._core.store.state.scaleMin);this._core.store.state.scale=i,this.centerInViewport(t)}handleZoom(t){this._core.store.state.isScaling=!0;const e=this._core.store.state.host.getBoundingClientRect(),i=t.clientX-e.left,n=t.clientY-e.top;this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale,this._core.store.state.pointerY=(n-this._core.store.state.translateY)/this._core.store.state.scale;const r=Math.max(.8,Math.min(1.2,1+-.012*t.deltaY)),o=Math.min(this._core.store.state.scaleMax,Math.max(this._core.store.state.scaleMin,this._core.store.state.scale*r)),s=o/this._core.store.state.scale,a=(i-this._core.store.state.translateX)*(s-1),c=(n-this._core.store.state.translateY)*(s-1);this._core.store.state.scale=o,this._core.store.state.translateX=this._core.store.state.translateX-a,this._core.store.state.translateY=this._core.store.state.translateY-c,this._core.store.state.hasViewportChanged=!0,this._core.rerender(),this._debounceUpdate(),this._debounceEndScaling()}handlePan(t){this._core.store.state.translateX=this._core.store.state.translateX-.8*t.deltaX,this._core.store.state.translateY=this._core.store.state.translateY-.8*t.deltaY,this._core.store.state.hasViewportChanged=!0,this._core.rerender(),this._debounceUpdate()}}class vt extends ${shortcuts=[{key:"Escape",condition:t=>!!t.store.selectionGroup,action:t=>t.clearSelection()},{key:"Delete",condition:t=>!!t.store.selectionGroup,action:t=>t.delete()},{key:"z",ctrl:!0,action:t=>t.undo()},{key:"y",ctrl:!0,action:t=>t.redo()},{key:"s",ctrl:!0,action:()=>this.switchTool("selection")},{key:"b",ctrl:!0,action:()=>this.switchTool("brush")},{key:"e",ctrl:!0,action:()=>this.switchTool("eraser")},{key:"i",ctrl:!0,action:()=>this.switchTool("image")},{key:"x",ctrl:!0,action:()=>this.switchTool("text")},{key:"c",ctrl:!0,condition:t=>!!t.store.selectionGroup,action:t=>{t.copy(),t.rerender()}},{key:"v",ctrl:!0,condition:t=>!!t.store.state.copiedObjects&&!t.store.activeText,action:t=>t.paste()},{key:"+",ctrl:!0,condition:t=>!!t.store.selectionGroup,action:t=>t.bringForward()},{key:"-",ctrl:!0,condition:t=>!!t.store.selectionGroup,action:t=>t.sendBackward()},{key:"*",shift:!0,condition:t=>!!t.store.selectionGroup,action:t=>t.bringToFront()},{key:"_",shift:!0,condition:t=>!!t.store.selectionGroup,action:t=>t.sendToBack()},{key:"g",ctrl:!0,condition:t=>!!t.store.selectionGroup&&t.store.selectionGroup.objects.length>=2,action:t=>t.group()},{key:"G",ctrl:!0,shift:!0,condition:t=>!!t.store.selectionGroup,action:t=>t.ungroup()}];constructor(t){super(t)}switchTool(t){const e=k.getTool(t);this._core.store.setState("activeTool",e),this._core.deselectAllObjects(),e.onActivate()}handleKeyDown(t){this._core.store.state.isCtrlKeyPressed=t.ctrlKey;const e=this.shortcuts.find((e=>e.key===t.key&&!!e.ctrl===t.ctrlKey&&!!e.shift===t.shiftKey&&(!e.condition||e.condition(this._core))));e&&(t.preventDefault(),e.action(this._core))}handleKeyUp(t){this._core.store.state.isCtrlKeyPressed=t.ctrlKey}}class gt extends ${globalContextMenuItems=[];objectContextMenuItems=[];constructor(t,e,i){super(t),this.globalContextMenuItems=e,this.objectContextMenuItems=i}handleContextMenu(t){if(!(this._core.store.state.activeTool instanceof z))return;if(this._core.store.state.skipContextMenu)return void(this._core.store.state.skipContextMenu=!1);const e=this._core.store.state.activeTool;e?.moveHandler?.cancelPendingDrag(),this._core.store.selectionBox&&(this._core.store.state.objects.remove((t=>t instanceof E)),this._core.store.state.isSelecting=!1);const i=this._core.getObjectFromPointerEvent(t,".object");if(i&&!(i instanceof O)&&!(i instanceof E)){const t=O.create(this._core);t.addOrRemove(i),t.isSelected=!0,t.rotation=i.rotation,this._core.store.state.isSelecting=!1,this._core.store.selectionGroup&&this._core.removeSelectionGroup(),this._core.addSelectionGroup(t),this._core.rerender()}this._core.store.state.contextMenuItems=this._core.store.selectionGroup?this.objectContextMenuItems:this.globalContextMenuItems;let n=t.clientX-this._core.store.offsetX,r=t.clientY-this._core.store.offsetY;const o=10;n+150>window.innerWidth-o&&(n=window.innerWidth-150-o),r+200>window.innerHeight-o&&(r=window.innerHeight-200-o),n=Math.max(o,n),r=Math.max(o,r),this._core.store.state.contextMenuX=n,this._core.store.state.contextMenuY=r,this._core.store.state.isContextMenuVisible=!0,this._core.store.state.isEnabled=!1,this._core.rerender()}}const kt={activeWorkspace:null,activeTool:null,copiedObjects:null,objects:null,snapCandidate:null,resizeHandleType:null,lineHandleType:null,hasViewportChanged:!1,hasObjectsChanged:!1,isReady:!1,isEnabled:!0,isScaling:!1,isPanning:!1,isSelecting:!1,isResizing:!1,isResizeHandleHovered:!1,isResizeHandleSelected:!1,isRotating:!1,isRotationHandleHovered:!1,isRotationHandleSelected:!1,isLineHandleSelected:!1,isLineHandleDragging:!1,isDragging:!1,isDrawing:!1,isErasing:!1,isWriting:!1,isCtrlKeyPressed:!1,isContextMenuVisible:!1,contextMenuItems:[],contextMenuX:0,contextMenuY:0,skipContextMenu:!1,debugInfo:{showObjectInfo:!1,showViewportInfo:!1},host:null,pointerX:0,pointerY:0,scale:1,scaleMax:1,scaleMin:1,startX:0,startY:0,translateX:0,translateXMax:400,translateXMin:0,translateY:0,translateYMax:400,translateYMin:0,viewportWidth:0,viewportHeight:0,longTouchTimeout:null,longTouchDelay:300,pointers:new Map,workspaces:[],cursor:{icon:"default",iconActive:"default"}};class yt extends l{__class__="KritzelCustomElement";element;isInteractive=!0;constructor(t){super(),t&&(this.translateX=t.translateX||0,this.translateY=t.translateY||0,this.scale=t.scale||1,this.element=t.element,this.height=t.height||0,this.width=t.width||0)}static create(t,e){const i=new yt(e);return i._core=t,i.id=i.generateId(),i.workspaceId=t.store.state.activeWorkspace.id,i}mount(t){null!==t&&(this.isMounted&&this.elementRef===t&&this.element.parentElement===t||(this.elementRef=t,this.isMounted=!0,this.elementRef.innerHTML="",this.elementRef.appendChild(this.element)))}resize(t,e,i,n){i<=1||n<=1||(this.width=i,this.height=n,this.translateX=t,this.translateY=e,this.element&&(this.element.style.width=`${i}px`,this.element.style.height=`${n}px`),this._core.store.state.objects.update(this))}copy(){const t=Object.create(Object.getPrototypeOf(this));return Object.assign(t,this),t.id=this.generateId(),t.isMounted=!1,t.element=this.element.cloneNode(!0),t}}class mt{_core;constructor(t){this._core=t}revive(t){if(t&&"object"==typeof t){if(t.__class__){let e;switch(t.__class__){case"KritzelPath":e=P.create(this._core).deserialize(t);break;case"KritzelLine":e=R.create(this._core).deserialize(t);break;case"KritzelText":e=W.create(this._core,t.fontSize,t.fontFamily).deserialize(t);break;case"KritzelShape":e=rt.create(this._core,{shapeType:t.shapeType,fillColor:t.fillColor,strokeColor:t.strokeColor,strokeWidth:t.strokeWidth,fontSize:t.fontSize,fontFamily:t.fontFamily,fontColor:t.fontColor}).deserialize(t);break;case"KritzelImage":e=D.create(this._core).deserialize(t);break;case"KritzelCustomElement":e=yt.create(this._core).deserialize(t);break;case"KritzelSelectionGroup":e=O.create(this._core).deserialize(t);break;case"KritzelGroup":e=F.create(this._core).deserialize(t);break;case"KritzelWorkspace":e=T.create(this._core,t).deserialize(t);break;case"KritzelBrushTool":e=new s(this._core);break;case"KritzelEraserTool":e=new I(this._core);break;case"KritzelImageTool":e=new _(this._core);break;case"KritzelSelectionTool":e=new z(this._core);break;case"KritzelTextTool":e=new a(this._core);break;case"KritzelLineTool":e=new M(this._core);break;case"KritzelShapeTool":e=new ot(this._core);break;default:e=t}return e}const e=Array.isArray(t)?[]:{};for(const i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=this.revive(t[i]));return e}return t}}class wt{bounds;capacity;objects=[];children=null;constructor(t,e=16){this.bounds=t,this.capacity=e}reset(){this.objects=[],this.children=null}insert(t){if(!this.intersects(t.rotatedBoundingBox,this.bounds))return!1;if(this.objects.length<this.capacity&&null===this.children)return this.objects.push(t),!0;null===this.children&&this.subdivide();for(const e of this.children)if(e.insert(t))return!0;return!1}update(t){const e=this.objects.findIndex((e=>e.id===t.id));if(-1!==e)return this.objects[e]=t,!0;if(null!==this.children)for(const e of this.children)if(e.update(t))return!0;return!1}remove(t){const e=this.objects.findIndex((e=>t(e)));if(-1!==e&&this.objects.splice(e,1),null!==this.children)for(const e of this.children)e.remove(t)}query(t){const e=[];if(!this.intersects(t,this.bounds))return e;for(const i of this.objects)this.intersects(i.rotatedBoundingBox,t)&&e.push(i);if(null!==this.children)for(const i of this.children)e.push(...i.query(t));return e}filter(t){const e=this.objects.filter((e=>t(e)));if(null!==this.children)for(const i of this.children)e.push(...i.filter(t));return e}allObjects(){const t=[...this.objects];if(null!==this.children)for(const e of this.children)t.push(...e.allObjects());return t}subdivide(){const{x:t,y:e,z:i,width:n,height:r}=this.bounds,o=n/2,s=r/2;this.children=[new wt({x:t,y:e,z:i,width:o,height:s},this.capacity),new wt({x:t+o,y:e,z:i,width:o,height:s},this.capacity),new wt({x:t,y:e+s,z:i,width:o,height:s},this.capacity),new wt({x:t+o,y:e+s,z:i,width:o,height:s},this.capacity)]}intersects(t,e){return!(t.x>=e.x+e.width||t.x+t.width<=e.x||t.y>=e.y+e.height||t.y+t.height<=e.y)}}class xt{quadtree;_ydoc=null;_objectsMap=null;_providers=[];_undoManager=null;_reviver=null;_core=null;_workspaceId=null;_isReady=!1;_temporaryItemsCount=0;get isReady(){return this._isReady}get undoManager(){return this._undoManager}get workspaceId(){return this._workspaceId}get undoState(){return{canUndo:!!this._undoManager&&this._undoManager.canUndo(),canRedo:!!this._undoManager&&this._undoManager.canRedo(),undoStackSize:this._undoManager?this._undoManager.undoStack.length:0,redoStackSize:this._undoManager?this._undoManager.redoStack.length:0}}constructor(){this.quadtree=new wt({x:-1/0,y:-1/0,z:0,width:1/0,height:1/0},8)}async initialize(t,e,i){this._core=t,this._workspaceId=e,this._reviver=new mt(t),this._ydoc=new L,this._objectsMap=this._ydoc.getMap("objects");const n=`kritzel-workspace-${e}`,r=i??U;for(const t of r.providers){let e;e="function"==typeof t?new t(n,this._ydoc):t.create(n,this._ydoc),this._providers.push(e)}this._undoManager=new K([this._objectsMap],{captureTimeout:200,trackedOrigins:new Set(["local","temporary"]),ignoreRemoteMapChanges:!0}),this._undoManager.on("stack-item-added",(t=>{"undo"===t.type&&"temporary"===t.origin&&this._temporaryItemsCount++})),this._undoManager.on("stack-item-popped",(t=>{"undo"===t.type&&"temporary"===t.origin&&this._temporaryItemsCount>0&&this._temporaryItemsCount--})),this._objectsMap.observe((t=>{this.handleObjectsChange(t)})),await Promise.all(this._providers.map((t=>t.connect()))),this._isReady=!0,this.loadFromYjs()}handleObjectsChange(t){if("local"===t.transaction.origin||"temporary"===t.transaction.origin)return void this._core?.rerender();const e=Array.from(t.keysChanged),i=[],n=[],r=[];e.forEach((e=>{const o=t.changes.keys.get(e);if(o&&"delete"===o.action)r.push(e);else{const t=this._objectsMap.get(e);if(t){const e=this._reviver.revive(t);e instanceof O?n.push(e):i.push(e)}}})),r.forEach((t=>{this.quadtree.remove((e=>e.id===t))})),i.forEach((t=>{this.quadtree.filter((e=>e.id===t.id)).length>0?this.quadtree.update(t):this.quadtree.insert(t)})),n.forEach((t=>{this.quadtree.filter((e=>e.id===t.id)).length>0?this.quadtree.update(t):this.quadtree.insert(t)})),this._core?.rerender()}transaction(t){this._ydoc&&this._ydoc.transact(t,"local")}loadFromYjs(){this._objectsMap&&this._reviver&&(this.quadtree.reset(),this._objectsMap.forEach((t=>{const e=this._reviver.revive(t);this.quadtree.insert(e)})))}reset(){this.quadtree.reset(),this._ydoc.transact((()=>{this._objectsMap.clear()}),"local")}insert(t){if(!t.id)return!1;if(this.quadtree.insert(t),this._objectsMap&&this.isPersistable(t)){const e=t.serialize();this._ydoc.transact((()=>{this._objectsMap.set(t.id,e)}),"local")}return!0}update(t,e={}){if(!t.id)return!1;if(!(this.quadtree.filter((e=>e.id===t.id)).length>0))return!1;if(this.quadtree.update(t),this._objectsMap&&this.isPersistable(t)){const i=t.serialize();this._ydoc.transact((()=>{this._objectsMap.set(t.id,i)}),e.temporary?"temporary":"local")}return!0}remove(t){const e=this.quadtree.filter(t);for(const t of e)this.quadtree.remove((e=>e.id===t.id)),this._objectsMap&&this.isPersistable(t)&&this._ydoc.transact((()=>{this._objectsMap.delete(t.id)}),"local")}filter(t){return this.quadtree.filter(t)}allObjects(){return this.quadtree.allObjects()}query(t){return this.quadtree.query(t)}isPersistable(t){return!(t instanceof E)}undo(){this._undoManager&&this._undoManager.canUndo()&&(this._undoManager.undo(),this._core.engine.emitObjectsChange())}redo(){this._undoManager&&this._undoManager.canRedo()&&(this._undoManager.redo(),this._core.engine.emitObjectsChange())}canUndo(){return!!this._undoManager&&this._undoManager.canUndo()}canRedo(){return!!this._undoManager&&this._undoManager.canRedo()}clearHistory(){this._undoManager&&(this._undoManager.clear(),this._temporaryItemsCount=0)}consolidateTemporaryItems(){if(!this._undoManager||0===this._temporaryItemsCount)return;const t=this._undoManager.undoStack.length;if(0===t)return void(this._temporaryItemsCount=0);this._undoManager.stopCapturing();const e=Math.min(this._temporaryItemsCount,t);if(e>1){for(let t=0;t<e;t++)this._undoManager.canUndo()&&this._undoManager.undo();this._ydoc.transact((()=>{for(let t=e-1;t>=0;t--)this._undoManager.canRedo()&&this._undoManager.redo()}),"local")}this._temporaryItemsCount=0}clearTemporaryItems(){if(!this._undoManager||0===this._temporaryItemsCount)return;const t=Math.min(this._temporaryItemsCount,this._undoManager.undoStack.length);for(let e=0;e<t;e++)this._undoManager.undoStack.length>0&&this._undoManager.undoStack.pop();this._temporaryItemsCount=0}destroy(){this._providers.forEach((t=>t.destroy())),this._providers=[],this._ydoc&&this._ydoc.destroy()}}class zt{_state;_listeners=new Map;get state(){return this._state}get currentZIndex(){return Math.max(0,...this._state.objects.filter((t=>!(t instanceof O||t instanceof E))).map((t=>t.zIndex)))+1}get allObjects(){return this._state.objects.allObjects()}get allNonSelectionObjects(){return this._state.objects.allObjects().filter((t=>!(t instanceof O||t instanceof E)))}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof O))).filter((t=>t.isSelected))}get selectionBox(){const t=this._state.objects.filter((t=>t instanceof E));return t.length>0?t[0]:null}get selectionGroup(){const t=this._state.objects.filter((t=>t instanceof O));return t.length>0?t[0]:null}get activeText(){const t=this._state.objects.filter((t=>t instanceof W&&t.isEditing));return t.length>0?t[0]:null}get activeShape(){const t=this._state.objects.filter((t=>t instanceof rt&&t.isEditing));return t.length>0?t[0]:null}get currentPath(){const t=this._state.objects.filter((t=>t instanceof P&&!1===t.isCompleted));return t.length>0?t[0]:null}get currentLine(){const t=this._state.objects.filter((t=>t instanceof R&&!1===t.isCompleted));return t.length>0?t[0]:null}get offsetX(){return this._state.host.getBoundingClientRect().left}get offsetY(){return this._state.host.getBoundingClientRect().top}get isDisabled(){return!1===this._state.isEnabled||!1===this._state.isReady||null===this._state.activeWorkspace}get isPointerDown(){return this._state.pointers.size>0}constructor(t){this._state=t,this._state.objects=new xt}onStateChange(t,e){this._listeners.has(t)||this._listeners.set(t,new Set),this._listeners.get(t).add(e)}getState(t){return this._state[t]}setState(t,e){const i=this._state[t];i!==e&&(this._state[t]=e,this._listeners.has(t)&&this._listeners.get(t).forEach((n=>n(e,i,String(t)))))}}class Ct{_core;_targetElement=null;_shadowRoot=null;constructor(t){this._core=t}setTargetElement(t){this._targetElement&&(this._targetElement.style.cursor="",this._targetElement.style.removeProperty("--kritzel-pointer-cursor")),this._targetElement=t,this._targetElement&&this._targetElement.style.setProperty("--kritzel-pointer-cursor",V.getPointerCursor())}getTargetElement(){return this._targetElement}setShadowRoot(t){this._shadowRoot=t}resetToDefault(){this._core.store.state.cursor={icon:"default",iconActive:"default"}}updateHoverState(t){if(this._core.store.isPointerDown)return;if(!this._shadowRoot)return;const e=this._shadowRoot.elementsFromPoint(t.clientX,t.clientY);if(!e||0===e.length)return;const i=e.find((t=>t.classList.contains("resize-handle-overlay")));if(i){const t=this._core.store.selectionGroup,e=t?.rotationDegrees??0,n=i.classList.contains("top-left"),r=i.classList.contains("bottom-right");this._core.store.state.cursor={icon:"move-vertical",rotation:e+(n||r?-45:45)}}else this._core.store.state.cursor=e.find((t=>t.classList.contains("rotation-handle-overlay")))||e.find((t=>t.classList.contains("selection-line-handle-overlay")))?{icon:"hand",iconActive:"hand-grab"}:{icon:"default",iconActive:"default"}}applyCursor(){const t=this._core.store.state,e=this._core.store.isPointerDown,i=t.cursor?.icon,n=t.cursor?.iconActive??i,r=t.cursor?.rotation,o=V.getCursor({iconName:e?n:i,rotation:r});this._targetElement&&(this._targetElement.style.cursor=o)}cleanup(){this._targetElement&&(this._targetElement.style.cursor="",this._targetElement.style.removeProperty("--kritzel-pointer-cursor")),this._targetElement=null,this._shadowRoot=null}}class St{_kritzelEngine;_store;_syncConfig;_appStateMap;_anchorManager;_cursorManager;get engine(){return this._kritzelEngine}get store(){return this._store}get appStateMap(){return this._appStateMap}get anchorManager(){return this._anchorManager}get cursorManager(){return this._cursorManager}constructor(t){this._kritzelEngine=t,this._store=new zt(kt),this._appStateMap=new B,this._anchorManager=new H(this),this._cursorManager=new Ct(this)}setSyncConfig(t){this._syncConfig=t}async initializeYjs(){await this._appStateMap.initialize(this,this._syncConfig)}loadWorkspacesFromAppState(){return this._appStateMap.allWorkspaces()}saveWorkspaceToAppState(t){this._appStateMap.has(t.id)?this._appStateMap.update(t):this._appStateMap.insert(t)}deleteWorkspaceFromAppState(t){this._appStateMap.remove((e=>e.id===t))}async initializeWorkspace(t){const e=this.loadWorkspacesFromAppState(),i=e.length>0?[...e].sort(((t,e)=>e.updatedAt.getTime()-t.updatedAt.getTime()))[0]:null,n=localStorage.getItem("kritzel-active-workspace-id"),r=n?e.find((t=>t.id===n)):null;let o;t?(o=t,e.find((e=>e.id===t.id))||(o._core=this,this.saveWorkspaceToAppState(o))):r?o=r:i?o=i:(o=new T(Y.generateUUID(),"New Workspace"),o._core=this,this.saveWorkspaceToAppState(o)),localStorage.setItem("kritzel-active-workspace-id",o.id),this._store.state.objects&&this._store.state.objects.isReady&&this._store.state.objects.destroy();const s=new xt;this._store.state.objects=s,this._store.state.activeWorkspace=o,this._store.state.workspaces=this.loadWorkspacesFromAppState();const a=o.viewport??{translateX:0,translateY:0,scale:1};this._store.state.translateX=a.translateX??0,this._store.state.translateY=a.translateY??0,this._store.state.scale=a.scale??1,await s.initialize(this,o.id,this._syncConfig),this._anchorManager.rebuildIndex(),this.engine.emitObjectsChange(),this.rerender()}rerender(){this._kritzelEngine&&this._kritzelEngine.forceUpdate++}findObjectById(t){for(const e of this._store.allObjects)if(e.id===t)return e;return null}getWorkspaces(){return this.loadWorkspacesFromAppState()}createWorkspace(t){t._core=this,t.createdAt=new Date,t.updatedAt=new Date,this.saveWorkspaceToAppState(t),this._store.state.workspaces=this.loadWorkspacesFromAppState()}updateWorkspace(t){t.updatedAt=new Date,this.saveWorkspaceToAppState(t);const e=this._store.state.workspaces,i=e.findIndex((e=>e.id===t.id));-1!==i&&(e[i]=t,this._store.state.workspaces=e)}deleteWorkspace(t){this._store.state.activeWorkspace?.id===t.id&&this._store.state.objects?.destroy(),this.deleteWorkspaceFromAppState(t.id),this._store.state.workspaces=this.loadWorkspacesFromAppState(),window.indexedDB.deleteDatabase(`kritzel-workspace-${t.id}`)}updateWorkspaceViewport(t,e,i){const n=this._store.state.activeWorkspace;n&&(n.viewport={translateX:t,translateY:e,scale:i},n.updatedAt=new Date,this.saveWorkspaceToAppState(n))}addObject(t){this._store.state.objects.insert(t)}removeObject(t,e=!1){t instanceof F&&!e&&[...t.children].forEach((t=>{this.removeObject(t)})),t instanceof R?this._anchorManager.handleLineDeleted(t.id):this._anchorManager.handleObjectDeleted(t.id),t.isMounted=!1,this._store.state.objects.remove((e=>e.id===t.id))}updateObject(t,e){for(const i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);this._store.state.objects.update(t)}addSelectionGroup(t){this.removeSelectionGroup(),this.removeSelectionBox(),this._store.state.objects.insert(t)}removeSelectionGroup(){const t=this._store.selectionGroup;t&&this._store.state.objects.remove((e=>e.id===t.id))}removeSelectionBox(){const t=this._store.selectionBox;t&&this._store.state.objects.remove((e=>e.id===t.id))}deselectAllObjects(){this.removeSelectionGroup(),this.rerender()}delete(){const t=this._store.selectionGroup;t&&(t.objects.forEach((t=>this.removeObject(t))),this.removeSelectionGroup(),this.rerender())}undo(){this._store.state.objects?.undo()}redo(){this._store.state.objects?.redo()}deleteObject(t){const e=this.findObjectById(t);e&&(this.removeObject(e),this.rerender())}copy(){const t=this._store.selectionGroup;if(t){const e=new Map,i=t.objects.sort(((t,e)=>t.zIndex-e.zIndex)).map((t=>{const i=t.copy();return e.set(i.id,t.id),i}));this._store.state.copiedObjects=i,this._store.state.copiedObjectIdMapping=e}}paste(t,e){const i=this._store.state.copiedObjects;if(!i||0===i.length)return;const n=this._store.state.activeWorkspace,r=this._store.state.copiedObjectIdMapping,o=i.some((t=>t.workspaceId!==n.id)),s=Math.min(...i.map((t=>t.translateX))),a=Math.min(...i.map((t=>t.translateY)));let c,l;void 0!==t&&void 0!==e?(c=t,l=e):o?(c=s,l=a):(c=s+25/this._store.state.scale,l=a+25/this._store.state.scale);const h=c-s,u=l-a;this.removeSelectionGroup(),this.removeSelectionBox();const f=O.create(this),d=new Map;r&&r.forEach(((t,e)=>{d.set(t,e)})),i.forEach(((t,e)=>{if(t.workspaceId!==n.id&&(t.workspaceId=n.id),t.updatePosition(t.translateX+h,t.translateY+u),t.zIndex=this._store.currentZIndex+e,t instanceof F){const i=t._pendingChildren;i&&(i.forEach(((t,i)=>{t.workspaceId!==n.id&&(t.workspaceId=n.id),t.updatePosition(t.translateX+h,t.translateY+u),t.zIndex=this._store.currentZIndex+e+i,this.addObject(t)})),delete t._pendingChildren,t.finalize())}this.addObject(t),f.addOrRemove(t)})),i.forEach((t=>{if(t instanceof R){let e=!1;t.startAnchor&&d.has(t.startAnchor.objectId)&&(t.startAnchor={objectId:d.get(t.startAnchor.objectId)},e=!0),t.endAnchor&&d.has(t.endAnchor.objectId)&&(t.endAnchor={objectId:d.get(t.endAnchor.objectId)},e=!0),e&&this._store.state.objects.update(t)}})),this._anchorManager.rebuildIndex(),f.isSelected=!0,1===i.length&&(f.rotation=i[0].rotation),this.addSelectionGroup(f),o&&(void 0!==t&&void 0!==e?f.updatePosition(t,e):f.centerInViewport(),this.engine.viewport.centerFitInViewport(f)),this._store.state.isSelecting=!1;const p=this._store.selectionGroup;if(p){const t=new Map,e=p.objects.sort(((t,e)=>t.zIndex-e.zIndex)).map((e=>{const i=e.copy();return t.set(i.id,e.id),i}));this._store.state.copiedObjects=e,this._store.state.copiedObjectIdMapping=t}this._store.setState("activeTool",k.getTool("selection")),this.engine.emitObjectsChange(),this.rerender()}bringForward(t){const e=this._store.selectionGroup,i=t?[t]:e?.objects||[],n=this._store.allNonSelectionObjects.filter((t=>-1===i.findIndex((e=>e.id===t.id)))),r=n.length>0?Math.max(...n.map((t=>t.zIndex)))+1:0;i.forEach((t=>{t.zIndex!==r&&this.updateObject(t,{zIndex:t.zIndex+1})})),this.rerender()}sendBackward(t){const e=this._store.selectionGroup,i=t?[t]:e?.objects||[],n=this._store.allNonSelectionObjects.filter((t=>-1===i.findIndex((e=>e.id===t.id)))),r=n.length>0?Math.min(...n.map((t=>t.zIndex)))-1:0;i.forEach((t=>{t.zIndex!==r&&this.updateObject(t,{zIndex:t.zIndex-1})})),this.rerender()}bringToFront(t){const e=this._store.selectionGroup,i=t?[t]:e?.objects||[],n=this._store.allNonSelectionObjects.filter((t=>-1===i.findIndex((e=>e.id===t.id)))),r=Math.max(...n.map((t=>t.zIndex)))+1;i.forEach((t=>{this.updateObject(t,{zIndex:r})})),this.rerender()}sendToBack(t){const e=this._store.selectionGroup,i=t?[t]:e?.objects||[],n=this._store.allNonSelectionObjects.filter((t=>-1===i.findIndex((e=>e.id===t.id)))),r=Math.min(...n.map((t=>t.zIndex)))-1;i.forEach((t=>{this.updateObject(t,{zIndex:r})})),this.rerender()}group(){const t=this._store.selectionGroup;if(!t||t.objects.length<2)return;const e=F.createFromObjects(this,t.objects);this.addObject(e),this.removeSelectionGroup();const i=O.create(this);i.addOrRemove(e),i.isSelected=!0,i.rotation=e.rotation,this.addSelectionGroup(i),this.engine.emitObjectsChange(),this.rerender()}ungroup(){const t=this._store.selectionGroup;if(!t)return;const e=t.objects.filter((t=>t instanceof F));if(0===e.length)return;const i=[],n=t.objects.filter((t=>!(t instanceof F)));e.forEach((t=>{const e=t.ungroup();i.push(...e),this.removeObject(t,!0)})),this.removeSelectionGroup();const r=O.create(this);[...i,...n].forEach((t=>{r.addOrRemove(t)})),r.isSelected=!0,this.addSelectionGroup(r),this.engine.emitObjectsChange(),this.rerender()}selectObjects(t){if(0===t.length)return;const e=O.create(this);t.forEach((t=>{t.isSelected=!1,e.addOrRemove(t)})),e.isSelected=!0,1===t.length&&(e.rotation=e.objects[0].rotation),this.addSelectionGroup(e),this.rerender()}selectAllObjectsInViewport(){const t=this._store.state.objects.query({x:-this._store.state.translateX/this._store.state.scale,y:-this._store.state.translateY/this._store.state.scale,z:this._store.state.scale,width:this._store.state.viewportWidth/this._store.state.scale,height:this._store.state.viewportHeight/this._store.state.scale,depth:100}).filter((t=>t.isInViewport())).filter((t=>!(t instanceof O||t instanceof E||t instanceof Z)));if(t.length>0){const e=O.create(this);t.forEach((t=>{t.isSelected=!1,e.addOrRemove(t)})),e.isSelected=!0,this._store.state.isSelecting=!1,1===t.length&&(e.rotation=e.objects[0].rotation),this.addSelectionGroup(e),this._store.setState("activeTool",k.getTool("selection")),this.rerender()}}clearSelection(){this.removeSelectionGroup(),this._store.state.objects.remove((t=>t instanceof E||t instanceof O)),this._store.state.isSelecting=!1,this._store.state.isResizeHandleSelected=!1,this._store.state.isRotationHandleSelected=!1,this._store.state.isLineHandleSelected=!1,this._store.state.isLineHandleDragging=!1,this._store.state.lineHandleType=null,this.rerender()}resetActiveText(){const t=this._store.activeText;t&&(t.isEmpty?this.deleteObject(t.id):t.save())}resetActiveShape(){const t=this._store.activeShape;t&&t.save()}getObjectFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return null;const n=t.clientX,r=t.clientY,o=i.elementFromPoint(n,r);if(!o)return null;const s=o.closest(e);if(s){const t=this._store.allObjects.find((t=>s.id===t.id)),e=t?.hitTest(n,r);return e?t:null}return null}getObjectsFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return[];const n=i.elementsFromPoint(t.clientX,t.clientY);if(!n||0===n.length)return[];const r=new Set;return n.forEach((t=>{const i=t.closest(e);i&&i.id&&r.add(i.id)})),r.size>0?this._store.allObjects.filter((t=>r.has(t.id))).sort(((t,e)=>e.zIndex-t.zIndex)):[]}getElementsAtPoint(t,e){const i=this._store.state.host?.shadowRoot;if(!i)return[];const n=i.elementsFromPoint(t.clientX,t.clientY);return n&&0!==n.length?n.filter((t=>t.matches(e))):[]}isPointerOverElement(t,e){return this.getElementsAtPoint(t,e).length>0}getCanvasPoint(t){if(!this._store.state.host)return{x:0,y:0};const e=this._store.state.host.getBoundingClientRect();return{x:(t.clientX-e.left-this._store.state.translateX)/this._store.state.scale,y:(t.clientY-e.top-this._store.state.translateY)/this._store.state.scale}}beforeWorkspaceChange(){this._kritzelEngine.viewport?.cancelPendingUpdates(),this._store.state.activeWorkspace&&this.updateWorkspaceViewport(this._store.state.translateX,this._store.state.translateY,this._store.state.scale),this.resetActiveText(),this.clearSelection(),this._store.setState("activeTool",k.getTool("selection"))}displaySelectionGroupUI(t){if(!t.isSelected)return!1;const e=this._store.selectionGroup;return e?e.objects.length>1||(1!==e.objects.length||!(e.objects[0]instanceof R)):!(t instanceof R)}displaySelectionLineUI(t){if(!(t instanceof R))return!1;const e=this._store.selectionGroup;if(!e)return t.isSelected;if(!e.isSelected)return!1;if(1===e.objects.length){const i=e.objects[0];return i instanceof R&&i.id===t.id}return!1}}const Mt=class{get host(){return r(this)}workspace;syncConfig;onWorkspaceChange(t){const e=this.core.store.state.activeWorkspace?.id,i=t?.id;e!==i&&(this.core.beforeWorkspaceChange(),this.core.initializeWorkspace(t))}activeTool;globalContextMenuItems;objectContextMenuItems;scaleMax=at;validateScaleMax(t){t>at?(console.warn("scaleMax cannot be greater than 1000."),this.scaleMax=at,this.core.store.state.scaleMax=this.scaleMax):this.core.store.state.scaleMax=t}scaleMin=ct;validateScaleMin(t){t<ct?(console.warn("scaleMin cannot be less than 0.0001."),this.scaleMin=ct,this.core.store.state.scaleMin=this.scaleMin):this.core.store.state.scaleMin=t}cursorTarget;onCursorTargetChange(t){this.core.cursorManager.setTargetElement(t||document.body)}isEngineReady;activeToolChange;workspacesChange;longpress;objectsChange;undoStateChange;forceUpdate=0;throttledWheel=pt.throttle((t=>{this.viewport.handleWheel(t),this.core.store.state?.activeTool?.handleWheel(t)}),16);handleWheel(t){this.core.store.isDisabled||(this.core.store.state.isContextMenuVisible&&this.hideContextMenu(),this.throttledWheel(t))}handlePointerDown(t){this.core.store.isDisabled||(o.isTouchDevice()&&x.onLongPress(t,(t=>this.longpress.emit(t))),this.host.setPointerCapture(t.pointerId),this.core.store.state.pointers.set(t.pointerId,t),this.viewport.handlePointerDown(t),this.core.store.state?.activeTool?.handlePointerDown(t))}throttledPointerMoveMulti=pt.throttle((t=>{this.viewport.handlePointerMove(t),this.core.store.state?.activeTool?.handlePointerMove(t)}),16);handlePointerMove(t){this.core.store.isDisabled||(this.core.store.state.pointers.has(t.pointerId)&&this.core.store.state.pointers.set(t.pointerId,t),this.core.store.state.pointers.size>1&&this.throttledPointerMoveMulti(t),this.core.cursorManager.updateHoverState(t),this.viewport.handlePointerMove(t),this.core.store.state?.activeTool?.handlePointerMove(t))}handlePointerUp(t){this.core.store.isDisabled||(this.core.store.state.pointers.delete(t.pointerId),this.host.releasePointerCapture(t.pointerId),0===this.core.store.state.pointers.size&&this.core.cursorManager.resetToDefault(),this.viewport.handlePointerUp(t),this.core.store.state?.activeTool?.handlePointerUp(t))}handlePointerCancel(t){this.core.store.isDisabled||(this.host.releasePointerCapture(t.pointerId),this.core.store.state.pointers.delete(t.pointerId),0===this.core.store.state.pointers.size&&this.core.cursorManager.resetToDefault(),this.viewport.handlePointerUp(t),this.core.store.state?.activeTool?.handlePointerUp(t))}handleLongPress(t){this.contextMenuHandler.handleContextMenu(t.detail)}handleContextMenu(t){t.preventDefault(),this.core.store.isDisabled||"touch"!==t.pointerType&&this.contextMenuHandler.handleContextMenu(t)}handleResize(){this.viewport.handleResize()}handleKeyDown(t){this.core.store.isDisabled||this.keyHandler.handleKeyDown(t)}handleKeyUp(t){this.core.store.isDisabled||this.keyHandler.handleKeyUp(t)}preventDoubleTapZoomOnTouchDevices(t){t.preventDefault()}async registerTool(t,e,i){if("function"!=typeof e||!(e.prototype instanceof w))return console.error(`Failed to register tool "${t}": Tool class must be a constructor function`),null;const n=k.registerTool(t,e,this.core);return i&&Object.entries(i).forEach((([t,e])=>{n[t]=e})),Promise.resolve(n)}async changeActiveTool(t){this.core.store.state.activeTool?.onDeactivate(),this.core.store.setState("activeTool",t),this.core.deselectAllObjects(),t?.onActivate()}async disable(){this.core.store.state.isEnabled=!1,this.core.rerender()}async enable(){this.core.store.state.isEnabled=!0,this.core.rerender()}async delete(){this.core.delete()}async copy(){this.core.copy()}async paste(t,e){this.core.paste(t,e)}async bringForward(t){this.core.bringForward(t)}async sendBackward(t){this.core.sendBackward(t)}async bringToFront(t){this.core.bringToFront(t)}async sendToBack(t){this.core.sendToBack(t)}async group(){this.core.group()}async ungroup(){this.core.ungroup()}async undo(){this.core.undo()}async redo(){this.core.redo()}async hideContextMenu(){this.core.store.state.pointers.clear(),this.core.store.state.isContextMenuVisible=!1,this.core.store.state.objects.remove((t=>t instanceof E)),this.core.store.state.isSelecting=!1,this.core.store.state.isEnabled=!0,this.core.rerender()}async getObjectById(t){return this.core.store.allObjects.find((e=>e.id===t))||null}async addObject(t){return this.core.deselectAllObjects(),t.id=t.generateId(),t._core=this.core,t.scale=t.scale?t.scale:this.core.store.state.scale,t.zIndex=this.core.store.currentZIndex,this.core.addObject(t),this.core.rerender(),t}async updateObject(t,e){return this.core.deselectAllObjects(),this.core.updateObject(t,e),this.core.rerender(),t}async removeObject(t){return this.core.deselectAllObjects(),this.core.store.state.objects.remove((e=>e.id===t.id)),this.core.rerender(),t}async getSelectedObjects(){const t=this.core.store.selectionGroup;return t?t.objects:[]}async selectObjects(t){this.core.store.state.activeTool?.onDeactivate(),this.core.store.setState("activeTool",k.getTool("selection")),this.core.deselectAllObjects(),this.core.selectObjects(t)}async selectAllObjectsInViewport(){this.core.store.state.activeTool?.onDeactivate(),this.core.store.setState("activeTool",k.getTool("selection")),this.core.deselectAllObjects(),this.core.selectAllObjectsInViewport()}async clearSelection(){this.core.clearSelection()}async centerObjectInViewport(t){return t.centerInViewport(),this.core.updateObject(t,t),this.core.rerender(),t}async getCopiedObjects(){return this.core.store.state.copiedObjects||[]}async createWorkspace(t){return await this.core.createWorkspace(t),this.workspacesChange.emit(this.core.store.state.workspaces),t}async updateWorkspace(t){await this.core.updateWorkspace(t),this.workspacesChange.emit(this.core.store.state.workspaces)}async deleteWorkspace(t){await this.core.deleteWorkspace(t),this.workspacesChange.emit(this.core.store.state.workspaces)}async getWorkspaces(){return await this.core.getWorkspaces()}async getActiveWorkspace(){return this.core.store.state.activeWorkspace}core;viewport;contextMenuHandler;keyHandler;contextMenuElement=null;get isSelecting(){return this.core.store.state.activeTool instanceof z&&this.core.store.state.isSelecting}get isSelectionActive(){return this.core.store.state.activeTool instanceof z&&null!==this.core.store.selectionGroup}constructor(e){t(this,e),this.isEngineReady=n(this,"isEngineReady"),this.activeToolChange=n(this,"activeToolChange"),this.workspacesChange=n(this,"workspacesChange"),this.longpress=n(this,"longpress"),this.objectsChange=n(this,"objectsChange"),this.undoStateChange=n(this,"undoStateChange"),this.core=new St(this)}disconnectedCallback(){this.throttledWheel.cancel(),this.throttledPointerMoveMulti.cancel(),this.core.cursorManager.cleanup()}componentWillLoad(){this.validateScaleMax(this.scaleMax),this.validateScaleMin(this.scaleMin)}async componentDidLoad(){this.contextMenuHandler=new gt(this.core,this.globalContextMenuItems,this.objectContextMenuItems),this.keyHandler=new vt(this.core),this.viewport=new bt(this.core,this.host),this.core.cursorManager.setTargetElement(this.cursorTarget||document.body),this.core.cursorManager.setShadowRoot(this.host.shadowRoot),this.syncConfig&&this.core.setSyncConfig(this.syncConfig),await this.core.initializeYjs(),await this.core.initializeWorkspace(this.workspace),this.core.appStateMap.onRemoteChange((()=>{this.workspacesChange.emit(this.core.store.state.workspaces)})),this._registerStateChangeListeners(),!1===this.core.store.state.isReady&&(this.core.store.state.isReady=!0,this.isEngineReady.emit(this.core.store.state))}emitObjectsChange(){const t=this.core.store.state.objects.undoState;this.objectsChange.emit(this.core.store.allObjects),this.undoStateChange.emit(t)}_registerStateChangeListeners(){this.core.store.onStateChange("activeTool",this._handleActiveToolChange.bind(this))}_handleActiveToolChange(t){t instanceof z||(this.core.clearSelection(),this.core.store.state.objects.remove((t=>t instanceof E)),this.core.store.state.isSelecting=!1,this.core.store.state.isResizeHandleSelected=!1,this.core.store.state.isRotationHandleSelected=!1),this.core.store.state.skipContextMenu=!1,this.core.store.state.copiedObjects=null,this.activeToolChange.emit(t),g.forceHideKeyboard(),this.core.rerender()}render(){const t=window.getComputedStyle(this.host).getPropertyValue("--kritzel-selection-handle-size").trim()||"6px",n=parseFloat(t),r=2*n<14?14:n,s=this.core.store.state.viewportWidth/2+this.core.store.state.translateX,a=this.core.store.state.viewportHeight/2+this.core.store.state.translateY,c=this.core.store.state.objects.query({x:-this.core.store.state.translateX/this.core.store.state.scale,y:-this.core.store.state.translateY/this.core.store.state.scale,z:this.core.store.state.scale,width:this.core.store.state.viewportWidth/this.core.store.state.scale,height:this.core.store.state.viewportHeight/this.core.store.state.scale,depth:100}).sort(((t,e)=>t.zIndex-e.zIndex));return this.core.cursorManager.applyCursor(),e(i,{key:"cf63f71e5ab763750f0857595a6b2d56e99b29fd"},this.core.store.state.debugInfo.showViewportInfo&&e("div",{key:"cf6d5221edb666692bbed086d1fa5bb57f591442",class:"debug-panel"},e("div",{key:"d1e94a59352063d08412c13bee8632b468229431"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"0eeff49b2c3bd703ef3b0fa574a323822ecef8a3"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"884aaab5f8c10a21541139cbc1c824a80233c7bb"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"6633c2b83830bc5091825b9c51af2aa82fbc935e"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"905bf21fed43acbada2e5d18dd9eb33979d368a4"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"d2abcda891791cee5386fe065de9b781c2db2e0a"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"9f64a19ac4510a2eae4d605dfdbb9a855b001b19"},"PointerCount: ",this.core.store.state.pointers.size),e("div",{key:"25634969756ec8505e2b169c4f8f77fa5260932a"},"Scale: ",this.core.store.state?.scale),e("div",{key:"2aea36a0521a5e59154836da290e7c615e4dc36d"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"599bafe7e87b23df191849ad23f56eea0009272f"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"d5e466d0b64b0f64a808dc8f08dba21530579a49"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"6143b384caa285cd850111b3d6d3fe95f3a468db"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"5695722e2e07e024fe1b5db1be22c890fa16b7d9"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"93c2d1a6669b397637d6918055fc14c96493cc65"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"2245f5894f7460d9d31ee33125260334920c6847"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"57fd33a984b7975198d87285658ec4de2824aa34"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"257cc4badaa694f04c839ca68ee79d1b695a006b"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"c00f461af4e4b1523e7e5feccfb0abfc6d45f5b7"},"IsRotationHandleHovered: ",this.core.store.state.isRotationHandleHovered?"true":"false"),e("div",{key:"3f1bd888dfa360153b930fc5e498ccb348879d81"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"4b33ce03143d6f96e359bc0a21697a3788fa6d3e"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"d603a0a226357378889c87d1bda5dd194388a81c"},"IsPointerDown: ",this.core.store.isPointerDown?"true":"false"),e("div",{key:"e0cb4c098e14c44c7c4d96a35f75a609a5d83144"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"d663eff93d7884aa36da56a46e06cb65f0b14c54"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"fe44809fc10454d605bad012300e8a46a8f180c9"},"SelectedObjects: ",this.core.store.selectionGroup?.objects.length||0),e("div",{key:"d69d570660f6ec9d37d842f24f61e534d4f349e1"},"ViewportCenter: (",s.toFixed(2),", ",a.toFixed(2),")")),e("div",{key:"aa6674f91511007c52f7faba849dd82f206e20ed",id:"origin",class:"origin",style:{transform:`matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`}},c?.map((t=>e("div",{key:t.id,style:{transform:t?.transformationMatrix,transformOrigin:"top left",position:"absolute",pointerEvents:this.core.store.state.isScaling?"none":"auto"}},e("svg",{xmlns:"http://www.w3.org/2000/svg",id:t.id,class:"object",style:{zIndex:t.zIndex.toString(),height:t?.totalHeight+"px",width:t?.totalWidth+"px",left:"0",top:"0",position:"absolute",transform:0!==t.rotationDegrees?`rotate(${t.rotationDegrees}deg)`:void 0,transformOrigin:0!==t.rotationDegrees?`${t.totalWidth/2}px ${t.totalHeight/2}px`:void 0,opacity:t.markedForRemoval?"0.5":t.opacity.toString(),pointerEvents:t.markedForRemoval?"none":"auto"}},N.isInstanceOf(t,"KritzelPath")&&e("svg",{ref:e=>t.mount(e),xmlns:"http://www.w3.org/2000/svg",style:{overflow:"visible"},viewBox:t?.viewBox},e("path",{d:t?.d,fill:t.fill,stroke:t?.stroke,"shape-rendering":t.isLowRes()?"optimizeSpeed":"auto"})),N.isInstanceOf(t,"KritzelLine")&&e("svg",{ref:e=>t.mount(e),xmlns:"http://www.w3.org/2000/svg",style:{overflow:"visible"},viewBox:t?.viewBox},e("defs",null,t.hasStartArrow&&e("marker",{id:t.startMarkerId,markerWidth:t.getArrowSize("start"),markerHeight:t.getArrowSize("start"),refX:0,refY:t.getArrowSize("start")/2,orient:"auto-start-reverse",markerUnits:"userSpaceOnUse"},e("path",{d:t.getArrowPath(t.arrows?.start?.style),fill:t.getArrowFill("start"),transform:`scale(${t.getArrowSize("start")/10})`})),t.hasEndArrow&&e("marker",{id:t.endMarkerId,markerWidth:t.getArrowSize("end"),markerHeight:t.getArrowSize("end"),refX:0,refY:t.getArrowSize("end")/2,orient:"auto",markerUnits:"userSpaceOnUse"},e("path",{d:t.getArrowPath(t.arrows?.end?.style),fill:t.getArrowFill("end"),transform:`scale(${t.getArrowSize("end")/10})`}))),e("path",{d:this.core.anchorManager.computeClippedLinePath(t),fill:"none",stroke:"transparent","stroke-width":Math.max(t?.strokeWidth||0,10),"stroke-linecap":"round"}),e("path",{d:this.core.anchorManager.computeClippedLinePath(t),fill:"none",stroke:t?.stroke,"stroke-width":t?.strokeWidth,"stroke-linecap":"round","marker-start":t.hasStartArrow?`url(#${t.startMarkerId})`:void 0,"marker-end":t.hasEndArrow?`url(#${t.endMarkerId})`:void 0})),e("foreignObject",{x:"0",y:"0",width:t.totalWidth.toString(),height:t.totalHeight.toString(),style:{minHeight:"0",minWidth:"0",backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth+"px",borderStyle:"solid",padding:t.padding+"px",overflow:"visible",display:N.isInstanceOf(t,"KritzelLine")||N.isInstanceOf(t,"KritzelPath")?"none":"block"}},N.isInstanceOf(t,"KritzelImage")&&e("img",{ref:e=>t.mount(e),src:t.src,style:{width:"100%",height:"100%",userSelect:"none",pointerEvents:"none",imageRendering:this.core.store.state.isScaling||this.core.store.state.isPanning?"pixelated":"auto"},draggable:!1,onDragStart:t=>t.preventDefault()}),N.isInstanceOf(t,"KritzelText")&&e("div",{id:"text-object",ref:e=>t.mount(e),onPointerDown:e=>t.handlePointerDown(e),onPointerMove:e=>t.handlePointerMove(e),onPointerUp:e=>t.handlePointerUp(e),style:{minWidth:t.initialWidth+"px",minHeight:t.initialHeight+"px",maxWidth:"500px",height:"auto",width:"max-content",transformOrigin:"top left",transform:`scale(${t.scaleFactor})`,backgroundColor:t.backgroundColor,overflow:"visible",textRendering:this.core.store.state.isScaling||this.core.store.state.isPanning?"optimizeSpeed":"auto"}}),N.isInstanceOf(t,"KritzelShape")&&e("div",{ref:e=>t.mount(e),onPointerDown:e=>t.handlePointerDown(e),onPointerMove:e=>t.handlePointerMove(e),onPointerUp:e=>t.handlePointerUp(e),style:{width:"100%",height:"100%",position:"relative",overflow:"visible"}},e("svg",{xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},viewBox:t.viewBox,preserveAspectRatio:"none"},e("path",{d:t.getSvgPath(),fill:t.fillColor,stroke:t.strokeColor,"stroke-width":t.strokeWidth})),e("div",{ref:e=>t.mountTextEditor(e),style:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",overflow:"hidden",pointerEvents:t.isEditing?"auto":"none"}})),N.isInstanceOf(t,"KritzelCustomElement")&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),N.isInstanceOf(t,"KritzelSelectionGroup")&&!this.core.displaySelectionLineUI(t)&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%"}}),N.isInstanceOf(t,"KritzelSelectionBox")&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%",backgroundColor:o.isFirefox()?t.backgroundColor:"transparent",borderWidth:o.isFirefox()?t.borderWidth+"px":"0",borderStyle:o.isFirefox()?"solid":"none",borderColor:o.isFirefox()?t.borderColor:"transparent"}}))),this.core.store.state.debugInfo.showObjectInfo&&t.isDebugInfoVisible&&e("div",{style:{pointerEvents:"none",position:"absolute",left:`${t.totalWidth}px`,top:"0",zIndex:(t.zIndex+2).toString()}},e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"Id: ",t.id),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"width: ",t.width),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"height: ",t.height),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"translateX: ",t.translateX),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"translateY: ",t.translateY),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"rotationDegrees: ",t.rotationDegrees),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"zIndex: ",t.zIndex)),e("svg",{xmlns:"http://www.w3.org/2000/svg",style:{zIndex:(t.zIndex+1).toString(),height:t?.totalHeight.toString(),width:t?.totalWidth.toString(),left:"0",top:"0",position:"absolute",transform:`rotate(${t.rotationDegrees}deg)`,transformOrigin:`${t.totalWidth/2}px ${t.totalHeight/2}px`,overflow:"visible",pointerEvents:"none"}},this.core.displaySelectionGroupUI(t)&&e("g",{class:"selection-group-ui",style:{pointerEvents:"none"}},e("g",{class:"selection-group-borders"},e("line",{x1:"0",y1:"0",x2:t.totalWidth,y2:"0",style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}}),e("line",{x1:"0",y1:"0",x2:"0",y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}}),e("line",{x1:"0",y1:t.totalHeight,x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}}),e("line",{x1:t.totalWidth,y1:"0",x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}})),!this.isSelecting&&e("g",{class:"selection-group-handles",style:{pointerEvents:"auto"}},e("circle",{class:"resize-handle top-left",cx:"0",cy:"0",r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay top-left",cx:"0",cy:"0",r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"resize-handle top-right",cx:t.totalWidth,cy:"0",r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay top-right",cx:t.totalWidth,cy:"0",r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"resize-handle bottom-left",cx:"0",cy:t.totalHeight,r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay bottom-left",cx:"0",cy:t.totalHeight,r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"resize-handle bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}),e("line",{x1:t.totalWidth/2,y1:"0",x2:t.totalWidth/2,y2:-15*t.scale/this.core.store.state?.scale,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`}}),e("circle",{class:"rotation-handle",cx:t.totalWidth/2,cy:-15*t.scale/this.core.store.state?.scale,r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"rotation-handle-overlay",cx:t.totalWidth/2,cy:-15*t.scale/this.core.store.state?.scale,r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}))),this.core.displaySelectionLineUI(t)&&N.isInstanceOf(t,"KritzelLine")&&e("g",{class:"selection-line-ui",style:{pointerEvents:"none"}},e("g",{class:"selection-line-borders"},e("path",{class:"selection-line-border",d:this.core.anchorManager.computeClippedLinePath(t,!0),style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"round",fill:"none"}})),!this.isSelecting&&e("g",{class:"selection-line-handles",style:{pointerEvents:"auto"}},e("circle",{class:"selection-line-handle start",cx:t.startX-t.x,cy:t.startY-t.y,r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle-overlay start",cx:t.startX-t.x,cy:t.startY-t.y,r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle center",cx:void 0!==t.controlX?(t.startX+2*t.controlX+t.endX)/4-t.x:(t.startX-t.x+t.endX-t.x)/2,cy:void 0!==t.controlY?(t.startY+2*t.controlY+t.endY)/4-t.y:(t.startY-t.y+t.endY-t.y)/2,r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle-overlay center",cx:void 0!==t.controlX?(t.startX+2*t.controlX+t.endX)/4-t.x:(t.startX-t.x+t.endX-t.x)/2,cy:void 0!==t.controlY?(t.startY+2*t.controlY+t.endY)/4-t.y:(t.startY-t.y+t.endY-t.y)/2,r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle end",cx:t.endX-t.x,cy:t.endY-t.y,r:""+n*t.scale/this.core.store.state?.scale,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle-overlay end",cx:t.endX-t.x,cy:t.endY-t.y,r:""+r*t.scale/this.core.store.state?.scale,style:{fill:"transparent",paintOrder:"fill"}}))))))),(()=>{const t=this.core.anchorManager.getAnchorLinesRenderData();return t?e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"anchor-lines",style:{position:"absolute",left:"0",top:"0",width:"1px",height:"1px",pointerEvents:"none",zIndex:"9998",overflow:"visible"}},t.startAnchorViz&&e("g",{class:"anchor-line-start"},t.startAnchorViz.pathD?e("path",{d:t.startAnchorViz.pathD,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.3))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round",fill:"none"}}):e("line",{x1:t.startAnchorViz.edgeX,y1:t.startAnchorViz.edgeY,x2:t.startAnchorViz.centerX,y2:t.startAnchorViz.centerY,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.3))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round"}}),e("circle",{cx:t.startAnchorViz.centerX,cy:t.startAnchorViz.centerY,r:t.indicatorRadius,style:{fill:"var(--kritzel-snap-indicator-fill, rgba(0, 0, 0))",stroke:"var(--kritzel-snap-indicator-stroke, #007bff)",strokeWidth:t.indicatorStrokeWidth}})),t.endAnchorViz&&e("g",{class:"anchor-line-end"},t.endAnchorViz.pathD?e("path",{d:t.endAnchorViz.pathD,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round",fill:"none"}}):e("line",{x1:t.endAnchorViz.edgeX,y1:t.endAnchorViz.edgeY,x2:t.endAnchorViz.centerX,y2:t.endAnchorViz.centerY,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round"}}),e("circle",{cx:t.endAnchorViz.centerX,cy:t.endAnchorViz.centerY,r:t.indicatorRadius,style:{fill:"var(--kritzel-snap-indicator-fill, rgba(59, 130, 246, 0.3))",stroke:"var(--kritzel-snap-indicator-stroke, #007bff)",strokeWidth:t.indicatorStrokeWidth}}))):null})(),(()=>{const t=this.core.anchorManager.getSnapIndicatorRenderData();return t?e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"snap-indicator",style:{position:"absolute",left:"0",top:"0",width:"1px",height:"1px",pointerEvents:"none",zIndex:"9999",overflow:"visible"}},e("g",null,t.snapLinePath?e("path",{d:t.snapLinePath,fill:"none",style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:t.lineStrokeWidth,strokeDasharray:t.dashArray,strokeLinecap:"round"}}):void 0!==t.edgeX&&void 0!==t.edgeY&&e("line",{x1:t.edgeX,y1:t.edgeY,x2:t.centerX,y2:t.centerY,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:t.lineStrokeWidth,strokeDasharray:t.dashArray,strokeLinecap:"round"}}),e("circle",{cx:t.centerX,cy:t.centerY,r:t.indicatorRadius,style:{fill:"var(--kritzel-snap-indicator-fill, rgba(59, 130, 246, 0.3))",stroke:"var(--kritzel-snap-indicator-stroke, #007bff)",strokeWidth:t.indicatorStrokeWidth}}))):null})()),this.core.store.state.isContextMenuVisible&&e("kritzel-context-menu",{key:"95f98d34b26eca7124f973002c2689e9a90f6748",class:"context-menu",ref:t=>this.contextMenuElement=t,items:this.core.store.state.contextMenuItems,objects:this.core.store.selectionGroup?.objects||[],style:{position:"fixed",left:`${this.core.store.state.contextMenuX}px`,top:`${this.core.store.state.contextMenuY}px`,zIndex:"10002"},onActionSelected:t=>{t.detail.action({x:(-this.core.store.state.translateX+this.core.store.state.contextMenuX)/this.core.store.state.scale,y:(-this.core.store.state.translateY+this.core.store.state.contextMenuY)/this.core.store.state.scale},this.core.store.selectionGroup?.objects),this.hideContextMenu()},onClose:()=>this.hideContextMenu()}),this.core.store.state?.activeTool instanceof I&&!this.core.store.state.isScaling&&e("kritzel-cursor-trail",{key:"412f67f0a484b7f5e37a4e9fa25d9124c389f62b",core:this.core}))}static get watchers(){return{workspace:[{onWorkspaceChange:0}],scaleMax:[{validateScaleMax:0}],scaleMin:[{validateScaleMin:0}],cursorTarget:[{onCursorTargetChange:0}]}}};Mt.style=":host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.ProseMirror{outline:none}p,h1,h2,h3,h4,h5,h6,blockquote,pre{margin:0;padding:0}.debug-panel{position:absolute;pointer-events:none;top:0;right:0}.origin{position:relative;top:0;left:0;height:0;width:0;pointer-events:none;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top left;overflow:visible}.object{overflow:visible}.PlaygroundEditorTheme__quote{margin:0;margin-left:20px;margin-bottom:10px;font-size:15px;color:rgb(101, 103, 107);border-left-color:rgb(206, 208, 212);border-left-width:4px;border-left-style:solid;padding-left:16px}";const It=class{constructor(e){t(this,e)}fontFamily="Arial, sans-serif";size=24;color="#000000";render(){return e(i,{key:"62d0314df8f62ef2cf21c17f548261b34611750f"},e("div",{key:"269347c138aab38cb1f018e58db78cab8e087f13",class:"font-preview",style:{fontFamily:this.fontFamily,fontSize:`${this.size}px`,color:this.color}},"A"))}};It.style=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const jt=class{constructor(e){t(this,e),this.fontFamilyChange=n(this,"fontFamilyChange")}fontOptions=[{value:"arial",label:"Arial"},{value:"verdana",label:"Verdana"},{value:"helvetica",label:"Helvetica"},{value:"tahoma",label:"Tahoma"},{value:"trebuchet ms",label:"Trebuchet MS"},{value:"times new roman",label:"Times New Roman"},{value:"georgia",label:"Georgia"},{value:"garamond",label:"Garamond"},{value:"courier new",label:"Courier New"},{value:"brush script mt",label:"Brush Script MT"}];selectedFontFamily;fontFamilyChange;componentWillLoad(){if(this.fontOptions&&this.fontOptions.length>0){const t=this.fontOptions.some((t=>t.value===this.selectedFontFamily));this.selectedFontFamily&&t||(this.selectedFontFamily=this.fontOptions[0].value)}}handleDropdownValueChange=t=>{this.fontFamilyChange.emit(t.detail)};render(){const t=this.fontOptions.map((t=>({value:t.value,label:t.label,style:{fontFamily:t.value}})));return e(i,{key:"74f27d2d9f73ee8589448a24bed64e885ef6d2d8"},e("kritzel-dropdown",{key:"58abc26a54b124f253841faaa4ca4227a23baac2",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}}))}};jt.style=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}.font-style-button.italic-text{font-style:italic}";const _t=class{constructor(e){t(this,e),this.sizeChange=n(this,"sizeChange")}sizes=[8,10,12,16,20,24];selectedSize=null;fontFamily="Arial";sizeChange;handleSizeClick(t){this.selectedSize=t,this.sizeChange.emit(t)}handleKeyDown(t,e){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.handleSizeClick(e))}render(){return e(i,{key:"b0ee1ab0eb5e1871f7726d4393aea59f63264ec5"},this.sizes.map((t=>e("div",{tabIndex:0,class:{"size-container":!0,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t),onKeyDown:e=>this.handleKeyDown(e,t)},e("kritzel-font",{fontFamily:this.fontFamily,size:t})))))}};_t.style=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:4px;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;border-radius:50%}.size-container:hover{background-color:var(--kritzel-font-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-font-size-selected-background-color, #e0e0e0)}";const Tt=class{constructor(e){t(this,e)}name;label;size=24;render(){const t=A.get(this.name);return t?e(i,{style:{width:`${this.size}px`,height:`${this.size}px`}},e("span",{"aria-hidden":!this.label,role:this.label?"img":void 0,"aria-label":this.label,innerHTML:t})):(console.error(`[kritzel-icon] Icon "${this.name}" not found in registry.`),e("span",{class:"error-icon","aria-label":`Error: Icon ${this.name} not found`},"?"))}};Tt.style=":host{display:inline-flex;justify-content:center;align-items:center;color:var(--kritzel-icon-color, inherited)}span{display:flex;align-items:center;width:100%;height:100%;}span>svg{width:100%;height:100%}";const At=class{constructor(e){t(this,e),this.itemSelect=n(this,"itemSelect"),this.itemSave=n(this,"itemSave"),this.itemCancel=n(this,"itemCancel"),this.itemToggleChildMenu=n(this,"itemToggleChildMenu"),this.itemCloseChildMenu=n(this,"itemCloseChildMenu"),this.close=n(this,"close")}get host(){return r(this)}items;parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;close;selectedIndex=null;async setScrollTop(t){this.host.scrollTop=t,this.host.scrollTo({top:t,behavior:"auto"})}async setFocus(){const t=this.host.shadowRoot.querySelector("kritzel-menu-item");t&&t.focus()}get openChildMenuItem(){return this.items.find((t=>t.isChildMenuOpen))}get editingMenuItem(){return this.items.find((t=>t.isEditing))}onOverlayClick=t=>{t.stopPropagation(),this.itemCloseChildMenu.emit(this.openChildMenuItem)};handleItemSelect=t=>{t.stopPropagation(),this.itemSelect.emit(t.detail)};handleSave=t=>{t.stopPropagation(),this.itemSave.emit(t.detail)};handleCancel=t=>{t.stopPropagation(),this.itemCancel.emit(t.detail)};handleToggleChildMenu=t=>{t.stopPropagation(),this.itemToggleChildMenu.emit(t.detail)};handleCloseChildMenu=t=>{t.stopPropagation(),this.itemCloseChildMenu.emit(t.detail)};render(){return e(i,{key:"3901d38f620a544be329e1a20b17b188a81295dc",tabIndex:0,onClick:t=>t.stopPropagation()},this.openChildMenuItem&&e("div",{key:"8804023760f43fa34c3ac3f1829439f6136112b9",class:"has-open-child-overlay",onClick:this.onOverlayClick}),this.items.map((t=>e("kritzel-menu-item",{key:t.id,item:t,parent:this.parent,style:{pointerEvents:this.editingMenuItem&&!t.isEditing?"none":"auto"},onItemSelect:this.handleItemSelect,onItemSave:this.handleSave,onItemCancel:this.handleCancel,onItemToggleChildMenu:this.handleToggleChildMenu,onItemCloseChildMenu:this.handleCloseChildMenu}))))}};At.style=":host{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-menu-background-color, #ffffff);width:var(--kritzel-menu-width, 200px);padding:var(--kritzel-menu-padding, 8px);border-radius:var(--kritzel-menu-border-radius, 12px);box-shadow:var(--kritzel-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-menu-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin;max-height:var(--kritzel-portal-max-height, 300px);box-sizing:border-box}.has-open-child-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:3}";const $t=class{constructor(e){t(this,e),this.itemSelect=n(this,"itemSelect"),this.itemSave=n(this,"itemSave"),this.itemCancel=n(this,"itemCancel"),this.itemToggleChildMenu=n(this,"itemToggleChildMenu"),this.itemCloseChildMenu=n(this,"itemCloseChildMenu")}get host(){return r(this)}item;onItemChange(t,e){t!==e&&(this.isDirty=!1)}parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;isDirty=!1;inputRef;focusInput(){if(this.item.isEditing&&this.inputRef&&!this.isDirty)if(this.inputRef.focus(),o.isIOS()){const t=this.inputRef.value.length;this.inputRef.setSelectionRange(t,t)}else this.inputRef.select()}componentDidLoad(){this.setDeviceSpecificStyles(),this.focusInput()}componentDidUpdate(){this.focusInput()}setDeviceSpecificStyles=()=>{o.isTouchDevice()&&(this.host.style.setProperty("--kritzel-menu-item-overlay-background-color","transparent"),this.host.style.setProperty("--kritzel-menu-item-button-hover-background-color","transparent"))};handleItemSelect=t=>{t.stopPropagation(),this.itemSelect.emit({item:this.item,parent:this.parent})};handleInputChange=t=>{t.stopPropagation(),this.item.label=t.target.value,this.isDirty=!0};handleSave=t=>{t.stopPropagation(),this.host.focus(),this.itemSave.emit(this.item)};handleCancel=t=>{t.stopPropagation(),this.host.focus(),this.itemCancel.emit(this.item)};handleMenuToggle=t=>{t.stopPropagation(),this.itemToggleChildMenu.emit({item:this.item,childMenuAnchor:t.target})};handleMenuClose=()=>{this.itemCloseChildMenu.emit(this.item)};renderViewMode(){return[e("div",{class:"menu-item-content left"},e("div",null,this.item.label)),e("div",{class:"menu-item-content right"},this.item.children&&this.item.children.length>0&&[e("button",{id:"child-menu-toggle",class:"action-button",onClick:this.handleMenuToggle,disabled:this.item.isDisabled},e("kritzel-icon",{name:"ellipsis-vertical",size:16})),e("kritzel-portal",{anchor:this.item.childMenuAnchor,offsetY:4,onClose:this.handleMenuClose},e("kritzel-menu",{items:this.item.children,parent:this.item,onItemSelect:t=>this.itemSelect.emit(t.detail),onItemSave:t=>this.itemSave.emit(t.detail),onItemCancel:t=>this.itemCancel.emit(t.detail),onClose:this.handleMenuClose}))])]}renderEditMode(){return[e("div",{class:"menu-item-content left"},e("input",{ref:t=>this.inputRef=t,type:"text",class:"edit-input",value:this.item.label,onInput:this.handleInputChange})),e("div",{class:"menu-item-content right"},e("div",{tabIndex:0,class:"action-button",onClick:this.handleCancel},e("kritzel-icon",{name:"x",size:16})),e("div",{tabIndex:this.isDirty||this.item.isNewItem?0:-1,class:{"action-button":!0,disabled:!this.isDirty&&!this.item.isNewItem},onClick:this.handleSave},e("kritzel-icon",{name:"check",size:16})))]}render(){return e(i,{key:"3a8119288e14c4de188663910a58e0ba67b47614",tabIndex:this.item.isDisabled?-1:0,class:{selected:this.item.isSelected,editing:this.item.isEditing,disabled:this.item.isDisabled,"child-open":this.item.isChildMenuOpen},onClick:this.handleItemSelect},e("div",{key:"b5dadbff0a915fb032f4a22207683667363eba1d",class:"menu-item-overlay"}),this.item.isEditing?this.renderEditMode():this.renderViewMode())}static get watchers(){return{item:[{onItemChange:0}]}}};$t.style=":host{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--kritzel-menu-item-padding, 8px);box-sizing:border-box;gap:16px;height:var(--kritzel-menu-item-height, 40px);min-height:var(--kritzel-menu-item-min-height, 40px);font-family:sans-serif;font-size:var(--kritzel-menu-item-font-size, 14px);color:var(--kritzel-menu-item-color, #333333);border-radius:var(--kritzel-menu-item-border-radius, 12px)}:host(:hover) .menu-item-overlay,:host(:focus-within) .menu-item-overlay{background-color:var(--kritzel-menu-item-overlay-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff);color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected.editing){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}:host(.selected) .edit-input{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-selected-color, #ffffff)}kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-color, #333333)}:host(.selected) .edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, rgba(255, 255, 255, 0.16))}:host(.editing){background-color:var(--kritzel-menu-item-editing-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.disabled){opacity:0.5;pointer-events:none !important}:host(.child-open){background-color:var(--kritzel-menu-item-child-open-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.child-open.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}.menu-item-overlay{position:absolute;inset:0;background-color:transparent;z-index:0;pointer-events:none;border-radius:var(--kritzel-menu-item-border-radius, 12px)}.menu-item-content{display:flex;align-items:center;gap:8px;position:relative;z-index:1;height:100%}.left{justify-content:flex-start;flex:1;min-width:0}.left>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{justify-content:flex-end}.edit-input{flex:1;height:var(--kritzel-menu-item-input-height, 24px);padding:0;background-color:transparent;border-radius:0;border:none;border-bottom:1px solid var(--kritzel-menu-item-input-border, #ccc);font-size:var(--kritzel-context-menu-item-font-size, 14px);width:100%;min-width:0;box-sizing:border-box;outline:none}.edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, #007bff);color:var(--kritzel-menu-item-input-selection-text-color, #ffffff)}.action-button{padding:4px;border-radius:8px;border:none;cursor:var(--kritzel-pointer-cursor, pointer);display:flex;align-items:center;justify-content:center;background-color:transparent;background:transparent;-webkit-tap-highlight-color:transparent}.action-button:hover,.action-button:focus{background-color:var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.action-button.disabled{pointer-events:none;opacity:0.5}";class Et{static getNumericValueFromStyle(t,e){const i=window.getComputedStyle(t).getPropertyValue(e);return parseFloat(i)||0}static getScrollableParent(t){if(!t)return window;const e=t.parentNode?.host??t.parentElement;if(!e||"BODY"===e.tagName)return window;const i=window.getComputedStyle(e);return"auto"===i.overflow||"auto"===i.overflowY||"scroll"===i.overflow||"scroll"===i.overflowY?e:this.getScrollableParent(e)}static isElementInViewport(t){if(!t)return!1;const e=this.getScrollableParent(t),i=t.getBoundingClientRect();if(e===window){const t=window.innerHeight||document.documentElement.clientHeight,e=window.innerWidth||document.documentElement.clientWidth;return i.top>=0&&i.left>=0&&i.bottom<=t&&i.right<=e}const n=e.getBoundingClientRect();return i.top>=n.top&&i.left>=n.left&&i.bottom<=n.bottom&&i.right<=n.right}static getFocusableElements(t){if(!t)return[];const e=[],i=t=>{t instanceof HTMLElement&&t.matches('a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), details, [tabindex]:not([tabindex="-1"])')&&!t.hasAttribute("disabled")&&null!==t.offsetParent&&e.push(t),t.shadowRoot&&Array.from(t.shadowRoot.children).forEach(i),"SLOT"===t.tagName&&t.assignedElements({flatten:!0}).forEach(i),t.shadowRoot||Array.from(t.children).forEach(i)};return i(t),e}}const Ot=class{constructor(e){t(this,e),this.close=n(this,"close")}get host(){return r(this)}anchor;anchorChanged(t){t?(this.openPortal(),this.calculatePosition(),this.autoFocus&&this.focusFirstElement()):this.closePortal()}offsetX;offsetY;autoFocus=!0;close;handleOutsideClick(t){t.stopPropagation(),this.lastAddedPortal===this.portal&&(this.host.contains(t.target)||(this.close.emit(),this.closePortal()))}handleKeyDown(t){if(t.stopPropagation(),this.lastAddedPortal===this.portal&&("Escape"===t.key&&(this.anchor.focus(),this.close.emit(),this.closePortal()),"Tab"===t.key&&this.trapFocus(t),"Enter"===t.key)){const e=this.getDeepActiveElement();e?.click&&(t.preventDefault(),e.click())}}handleResize(){this.calculatePosition()}handleWindowScroll(){if(!Et.isElementInViewport(this.anchor))return this.anchor?.blur(),void this.closePortal();this.calculatePosition()}portal;id=`portal-${Y.generateUUID()}`;defaultOffset=0;minLeft=0;focusFirstElement(){requestAnimationFrame((()=>{this.firstFocusableElement?.focus?.()}))}getDeepActiveElement(){let t=document.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}trapFocus(t){const e=Et.getFocusableElements(this.host);if(0===e.length)return;const i=e[0],n=e[e.length-1],r=this.getDeepActiveElement();t.shiftKey?r===i&&(n.focus(),t.preventDefault()):r===n&&(i.focus(),t.preventDefault())}get firstFocusableElement(){const t=this.host.shadowRoot?.querySelector("slot"),e=t?.assignedElements({flatten:!0})[0];return e?Et.getFocusableElements(e)[0]??e:null}get lastAddedPortal(){const t=Array.from(document.querySelectorAll('[id^="portal-"]'));return t.length?t[t.length-1]:null}calculateLeft(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect(),e=this.portal.getBoundingClientRect();let i=t.left+(this.offsetX??this.defaultOffset);const n=window.innerWidth-e.width-this.minLeft;return i<this.minLeft&&(i=this.minLeft),i>n&&(i=n),Math.round(i+window.scrollX)}calculateTop(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect(),e=this.portal.getBoundingClientRect(),i=this.offsetY??this.defaultOffset;let n=t.bottom+i;const r=window.innerHeight-t.bottom-i-8,o=t.top-i-8;return this.host.style.removeProperty("--kritzel-portal-max-height"),e.height<=r?n=t.bottom+i:e.height<=o?n=t.top-e.height-i:r>=o?(n=t.bottom+i,this.host.style.setProperty("--kritzel-portal-max-height",`${r}px`)):(n=8,this.host.style.setProperty("--kritzel-portal-max-height",`${o}px`)),Math.round(n+window.scrollY)}openPortal(){this.portal=document.createElement("div"),this.portal.setAttribute("id",this.id),this.portal.style.zIndex="1",this.portal.style.position="absolute",this.portal.style.top="0px",this.portal.style.left="0px",this.portal.appendChild(this.host),document.body.append(this.portal)}closePortal(){const t=document.getElementById(this.id);t&&(document.body.removeChild(t),this.host.remove())}calculatePosition(){if(!this.anchor||!this.portal)return;const t=this.calculateTop(),e=this.calculateLeft();this.portal.style.top=`${t}px`,this.portal.style.left=`${e}px`}render(){return e(i,{key:"9706a815c6f49853983a0fdb68b097d62e65e90b",style:{display:this.anchor?"block":"none"}},e("slot",{key:"1bd76deeb440cd25e3895dc8824f5200461e4ae0"}))}static get watchers(){return{anchor:[{anchorChanged:0}]}}},Ft=class{constructor(e){t(this,e),this.mainButtonClick=n(this,"mainButtonClick"),this.itemSelect=n(this,"itemSelect"),this.itemSave=n(this,"itemSave"),this.itemCancel=n(this,"itemCancel"),this.itemToggleChildMenu=n(this,"itemToggleChildMenu"),this.itemCloseChildMenu=n(this,"itemCloseChildMenu"),this.menuOpen=n(this,"menuOpen"),this.menuClose=n(this,"menuClose")}get host(){return r(this)}buttonIcon="plus";dropdownIcon="chevron-down";items=[];mainButtonDisabled=!1;menuButtonDisabled=!1;mainButtonClick;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;menuOpen;menuClose;isMenuOpen=!1;isTouchDevice=o.isTouchDevice();anchorElement;menuScrollTop=0;splitMenuButtonRef;menuRef;async open(){this.isMenuOpen||(this.isMenuOpen=!0,this.anchorElement=this.host,this.menuOpen.emit())}async focusMenu(){this.menuRef&&await this.menuRef.setFocus()}handleButtonClick=t=>{t.stopPropagation(),this.mainButtonClick.emit()};toggleMenu=t=>{t.stopPropagation(),this.isMenuOpen?this.closeMenu():this.openMenu(t)};openMenu=t=>{t.stopPropagation(),this.isMenuOpen=!0,this.anchorElement=this.host,this.menuOpen.emit(),requestAnimationFrame((()=>{this.menuRef?.setScrollTop(this.menuScrollTop)}))};closeMenu=()=>{this.isMenuOpen=!1,this.anchorElement=null,this.splitMenuButtonRef?.blur(),this.menuClose.emit()};handleItemSelect=t=>{this.itemSelect.emit(t.detail)};handleItemSave=t=>{this.itemSave.emit(t.detail)};handleItemCancel=t=>{this.itemCancel.emit(t.detail)};handleItemToggleChildMenu=t=>{this.itemToggleChildMenu.emit(t.detail)};handleItemCloseChildMenu=t=>{this.itemCloseChildMenu.emit(t.detail)};handleScroll=t=>{this.menuScrollTop=t.target.scrollTop};render(){return e(i,{key:"a5587085e47c4e33148f9d0817731bfa3aa804b6",class:{mobile:this.isTouchDevice}},e("button",{key:"d3815785bb0919e2385bc7b9b0812466ed2b45a3",class:"split-main-button",tabIndex:0,onClick:this.handleButtonClick,disabled:this.mainButtonDisabled},this.buttonIcon&&e("kritzel-icon",{key:"b3225e1966bd21e8d37590cb39c0922e46afdaa9",name:this.buttonIcon})),e("div",{key:"526a88ef833cae7d2c7749f2a4bd96bcd2210a56",class:"split-divider"}),e("button",{key:"2c3ee46806bc64edc1f89a97c5e76ec493822065",ref:t=>this.splitMenuButtonRef=t,class:"split-menu-button",tabIndex:0,onClick:this.toggleMenu,disabled:this.menuButtonDisabled},e("kritzel-icon",{key:"c6204d8b14d8cefe9d6eff33af95b2a7ea9a6b7c",name:this.dropdownIcon})),e("kritzel-portal",{key:"07a5e9793484f79d9b4b1f9ae09503f762cb2580",anchor:this.anchorElement,offsetY:4,onClose:this.closeMenu},e("kritzel-menu",{key:"0cf7601fd43b846a69152f0fc6ab950ac108ebff",ref:t=>this.menuRef=t,items:this.items,onItemSelect:this.handleItemSelect,onItemSave:this.handleItemSave,onItemCancel:this.handleItemCancel,onItemToggleChildMenu:this.handleItemToggleChildMenu,onItemCloseChildMenu:this.handleItemCloseChildMenu,onClose:this.closeMenu,onScroll:this.handleScroll})))}};Ft.style=":host{position:relative;display:flex;align-items:center;font-family:sans-serif;z-index:1;padding:var(--kritzel-split-button-padding, 4px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-split-button-border, 1px solid #ebebeb);gap:var(--kritzel-split-button-gap, 4px)}:host(.mobile){--kritzel-split-button-hover-background-color:transparent}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:var(--kritzel-pointer-cursor, pointer);text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:all;-webkit-tap-highlight-color:transparent}.split-main-button,.split-menu-button{height:auto;display:flex;align-items:center;padding:var(--kritzel-split-button-padding, 8px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);font-size:var(--kritzel-split-button-font-size, 14px)}.split-main-button:hover,.split-menu-button:hover{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button:focus,.split-menu-button:focus{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button{gap:var(--kritzel-split-button-gap, 4px)}.split-menu-button{border-left:none;justify-content:center}.split-divider{width:var(--kritzel-split-button-divider-width, 1px);height:24px;background-color:var(--kritzel-split-button-divider-background-color, hsl(0, 0%, 0%, 4.3%))}:disabled{pointer-events:none;opacity:0.5}";const Dt=class{constructor(e){t(this,e),this.sizeChange=n(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(t){this.selectedSize=t,this.sizeChange.emit(t)}render(){return e(i,{key:"d204d14384367ca8847ad30cab9801788c8d8fac"},this.sizes.map((t=>e("div",{tabIndex:0,class:{"size-container":!0,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-color",{value:"#000000",size:t})))))}};Dt.style=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}";const Wt=class{constructor(e){t(this,e),this.tooltipClosed=n(this,"tooltipClosed")}get host(){return r(this)}isVisible=!1;anchorElement;offsetY=24;tooltipClosed;positionX=0;positionY=0;handleOutsideClick(t){this.isVisible&&(this.host.contains(t.target)||this.tooltipClosed.emit())}handleWindowResize(){this.calculateAdjustedPosition()}async focusContent(){const t=Et.getFocusableElements(this.host);t.length>0&&t[0].focus()}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot"),e=t?.assignedElements()||[];e.length>0&&e[0].focus()}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect(),e=this.host.shadowRoot?.querySelector(".tooltip-content"),i=e?.getBoundingClientRect(),n=i?.width||0,r=12,o=window.innerWidth-n-r;this.positionX=Math.max(r,Math.min(t.left+t.width/2-n/2,o)),this.positionY=window.innerHeight-t.top+this.offsetY}}render(){return e(i,{key:"c257f254b8ba6b95f251eac3136f5be282d23e30",style:{position:"fixed",zIndex:"9999",transition:"opacity 0.3s ease-in-out, transform 0.3s ease-in-out",visibility:this.isVisible?"visible":"hidden",left:`${this.positionX}px`,bottom:`${this.positionY}px`}},e("div",{key:"14f31dc995236a2309e2371ecef278a0e6374139",class:"tooltip-content",onClick:t=>t.stopPropagation()},e("slot",{key:"6dace4d6ed82878333f8771cf4670d53cea36873"})))}};Wt.style=":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}";const Rt=class{constructor(e){t(this,e),this.undo=n(this,"undo"),this.redo=n(this,"redo"),this.delete=n(this,"delete")}undoState=null;undo;redo;delete;handleUndo(t){t.cancelable&&(t.preventDefault(),t.stopPropagation(),this.undo.emit())}handleRedo(t){t.preventDefault(),t.stopPropagation(),this.redo.emit()}render(){return e(i,{key:"e8a12bdde840301c5bd9448e2c6be1c3cd558c38"},e("button",{key:"9ffc5db3ac9d31e6e66822ebcbd60bd60c413062",class:"utility-button",disabled:!this.undoState?.canUndo,onClick:t=>this.handleUndo(t)},e("kritzel-icon",{key:"caec852e6f83132e46b3ef87c376f62a03554f6b",name:"undo"})),e("button",{key:"6b5eaebd6f1dcfa5fbb96719b8456647132c1415",class:"utility-button",disabled:!this.undoState?.canRedo,onClick:t=>this.handleRedo(t)},e("kritzel-icon",{key:"bbb07b34186f3a2f1a586a629f0cca738ca924bf",name:"redo"})),e("div",{key:"5a80149b3231e23b1e16fd7f52c4b4b2a5108e75",class:"utility-separator"}),e("button",{key:"b7d826a7e6667a3a8e28c11507bfc760dc9526e0",class:"utility-button"},e("kritzel-icon",{key:"c47c4acead03cee13c64045b817aa166f397ce90",name:"delete",onClick:()=>this.delete.emit()})))}};Rt.style=":host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:rgb(226, 226, 226);width:fit-content;user-select:none}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);color:#333333;-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:hover,.utility-button:focus-visible{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-button:disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";const Pt=class{constructor(e){t(this,e),this.isWorkspaceManagerReady=n(this,"isWorkspaceManagerReady"),this.workspaceChange=n(this,"workspaceChange")}get host(){return r(this)}activeWorkspace;workspaces=[];isWorkspaceManagerReady;workspaceChange;childMenuAnchor=null;openChildMenuItem=null;newWorkspace=null;editingItemId=null;handleWheel(t){t.ctrlKey&&t.preventDefault()}kritzelEngineRef=null;splitButtonRef;get sortedWorkspaces(){return[this.newWorkspace,...this.workspaces].filter((t=>null!=t)).sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}async componentWillLoad(){await this.initializeEngine(),this.isWorkspaceManagerReady.emit()}async initializeEngine(){if(await customElements.whenDefined("kritzel-engine"),this.kritzelEngineRef=this.host.parentElement.querySelector("kritzel-engine"),!this.kritzelEngineRef)throw new Error("kritzel-engine not found in parent element.")}async select(t,e){this.editingItemId||(t.action?t.action(t,e):this.workspaceChange.emit(t.value))}async add(){await this.splitButtonRef.open(),this.newWorkspace=new T(Y.generateUUID(),"New Workspace"),this.editingItemId=this.newWorkspace.id}edit(t){this.openChildMenuItem=null,this.childMenuAnchor=null,requestAnimationFrame((()=>{this.editingItemId=t.id}))}async save(t){if(this.newWorkspace)this.newWorkspace.name=t.label,await this.kritzelEngineRef.createWorkspace(this.newWorkspace),this.workspaceChange.emit(this.newWorkspace);else{const e=t.value;e.name=t.label,await this.kritzelEngineRef.updateWorkspace(e)}this.editingItemId=null,this.newWorkspace=null}cancel(){this.newWorkspace=null,this.editingItemId=null}async delete(t){this.openChildMenuItem=null,this.childMenuAnchor=null,await this.kritzelEngineRef.deleteWorkspace(t.value),t.value.id===this.activeWorkspace?.id&&(this.activeWorkspace=this.sortedWorkspaces.find((e=>e.id!==t.value.id))||null,this.workspaceChange.emit(this.activeWorkspace)),await this.splitButtonRef.focusMenu()}toggleChildMenu(t,e){this.openChildMenuItem=t,this.childMenuAnchor=e}closeChildMenu(){this.openChildMenuItem=null,this.childMenuAnchor=null}handleMenuOpen(){this.kritzelEngineRef.disable()}handleMenuClose(){this.cancel(),this.closeChildMenu(),this.kritzelEngineRef.enable()}render(){const t=this.sortedWorkspaces.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime())).filter((t=>null!==t)).map((t=>({id:t.id,label:t.name,value:t,isEditing:this.editingItemId===t.id,isSelected:this.activeWorkspace?.id===t.id,isNewItem:this.newWorkspace?.id===t.id,isChildMenuOpen:this.openChildMenuItem?.id===t.id,childMenuAnchor:this.openChildMenuItem?.id===t.id?this.childMenuAnchor:null,children:[{id:`${t.id}-rename`,label:"Rename",value:"rename",action:(t,e)=>this.edit(e)},{id:`${t.id}-delete`,label:"Delete",value:"delete",isDisabled:this.sortedWorkspaces.length<=1,action:(t,e)=>this.delete(e)}]})));return e(i,null,e("kritzel-split-button",{ref:t=>this.splitButtonRef=t,items:t,mainButtonDisabled:null!=this.editingItemId,onMainButtonClick:()=>this.add(),onItemSelect:t=>this.select(t.detail.item,t.detail.parent),onItemToggleChildMenu:t=>this.toggleChildMenu(t.detail.item,t.detail.childMenuAnchor),onItemSave:t=>this.save(t.detail),onItemCancel:()=>this.cancel(),onItemCloseChildMenu:()=>this.closeChildMenu(),onMenuOpen:()=>this.handleMenuOpen(),onMenuClose:()=>this.handleMenuClose()}))}};Pt.style=":host{display:flex;flex-direction:column;z-index:1}";export{X as kritzel_color,G as kritzel_color_palette,Z as kritzel_context_menu,J as kritzel_control_brush_config,Q as kritzel_control_text_config,tt as kritzel_controls,et as kritzel_cursor_trail,it as kritzel_dropdown,lt as kritzel_editor,Mt as kritzel_engine,It as kritzel_font,jt as kritzel_font_family,_t as kritzel_font_size,Tt as kritzel_icon,At as kritzel_menu,$t as kritzel_menu_item,Ot as kritzel_portal,Ft as kritzel_split_button,Dt as kritzel_stroke_size,Wt as kritzel_tooltip,Rt as kritzel_utility_panel,Pt as kritzel_workspace_manager}