kritzel-stencil 0.0.161 → 0.0.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{default-text-tool.config-zB3FPuXq.js → default-line-tool.config-D1Ns0NmM.js} +3156 -1052
- package/dist/cjs/default-line-tool.config-D1Ns0NmM.js.map +1 -0
- package/dist/cjs/index.cjs.js +131 -127
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +480 -147
- package/dist/collection/classes/core/core.class.js +140 -3
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/core/reviver.class.js +8 -0
- package/dist/collection/classes/core/reviver.class.js.map +1 -1
- package/dist/collection/classes/core/store.class.js +5 -0
- package/dist/collection/classes/core/store.class.js.map +1 -1
- package/dist/collection/classes/handlers/line-handle.handler.js +383 -0
- package/dist/collection/classes/handlers/line-handle.handler.js.map +1 -0
- package/dist/collection/classes/handlers/move.handler.js +2 -2
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/managers/anchor.manager.js +874 -0
- package/dist/collection/classes/managers/anchor.manager.js.map +1 -0
- package/dist/collection/classes/managers/cursor.manager.js +117 -0
- package/dist/collection/classes/managers/cursor.manager.js.map +1 -0
- package/dist/collection/classes/objects/base-object.class.js +4 -2
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/line.class.js +564 -0
- package/dist/collection/classes/objects/line.class.js.map +1 -0
- package/dist/collection/classes/objects/selection-group.class.js +4 -0
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/registries/icon-registry.class.js +1 -0
- package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
- package/dist/collection/classes/tools/line-tool.class.js +172 -0
- package/dist/collection/classes/tools/line-tool.class.js.map +1 -0
- package/dist/collection/classes/tools/selection-tool.class.js +41 -8
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +11 -2
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +130 -58
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/configs/default-engine-config.js +4 -0
- package/dist/collection/configs/default-engine-config.js.map +1 -1
- package/dist/collection/configs/default-line-tool.config.js +34 -0
- package/dist/collection/configs/default-line-tool.config.js.map +1 -0
- package/dist/collection/helpers/geometry.helper.js +42 -0
- package/dist/collection/helpers/geometry.helper.js.map +1 -1
- package/dist/collection/index.js +5 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interfaces/anchor.interface.js +2 -0
- package/dist/collection/interfaces/anchor.interface.js.map +1 -0
- package/dist/collection/interfaces/arrow-head.interface.js +2 -0
- package/dist/collection/interfaces/arrow-head.interface.js.map +1 -0
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/collection/interfaces/line-options.interface.js +2 -0
- package/dist/collection/interfaces/line-options.interface.js.map +1 -0
- package/dist/collection/interfaces/toolbar-control.interface.js.map +1 -1
- package/dist/components/index.js +4 -4
- package/dist/components/kritzel-brush-style.js +1 -1
- package/dist/components/kritzel-context-menu.js +1 -1
- package/dist/components/kritzel-control-brush-config.js +1 -1
- package/dist/components/kritzel-control-text-config.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +54 -13
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-icon.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-BdZKPKnx.js → p-7_lwv0zQ.js} +4 -4
- package/dist/components/{p-BdZKPKnx.js.map → p-7_lwv0zQ.js.map} +1 -1
- package/dist/components/{p-DbKKCHKd.js → p-BixlbUD7.js} +3 -2
- package/dist/components/p-BixlbUD7.js.map +1 -0
- package/dist/components/{p-Doixm8-N.js → p-CDteBYm9.js} +3 -3
- package/dist/components/{p-Doixm8-N.js.map → p-CDteBYm9.js.map} +1 -1
- package/dist/components/{p-58y59Acb.js → p-CkD1PQQX.js} +5 -5
- package/dist/components/{p-58y59Acb.js.map → p-CkD1PQQX.js.map} +1 -1
- package/dist/components/{p-DxNbcUzt.js → p-Cqr0Bah5.js} +3 -3
- package/dist/components/{p-DxNbcUzt.js.map → p-Cqr0Bah5.js.map} +1 -1
- package/dist/components/{p-D7BLVRXX.js → p-CuhOrcET.js} +2726 -380
- package/dist/components/p-CuhOrcET.js.map +1 -0
- package/dist/components/{p-i0IlGLv2.js → p-CvLFRlQU.js} +3 -3
- package/dist/components/{p-i0IlGLv2.js.map → p-CvLFRlQU.js.map} +1 -1
- package/dist/components/{p-BpXgwgnV.js → p-DKwJJuFb.js} +7 -7
- package/dist/components/{p-BpXgwgnV.js.map → p-DKwJJuFb.js.map} +1 -1
- package/dist/components/{p-CC8KFHSe.js → p-DZ7kxJUx.js} +3 -3
- package/dist/components/{p-CC8KFHSe.js.map → p-DZ7kxJUx.js.map} +1 -1
- package/dist/components/{p-D_ygcWSz.js → p-dMCB4tJA.js} +3 -3
- package/dist/components/{p-D_ygcWSz.js.map → p-dMCB4tJA.js.map} +1 -1
- package/dist/components/{p-CBYBurdY.js → p-sokRZ7Vn.js} +49 -5
- package/dist/components/p-sokRZ7Vn.js.map +1 -0
- package/dist/esm/{default-text-tool.config-BvCgOiKA.js → default-line-tool.config-C35m-d1Y.js} +3152 -1053
- package/dist/esm/default-line-tool.config-C35m-d1Y.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-color_22.entry.js +399 -66
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-C35m-d1Y.js +2 -0
- package/dist/stencil/p-C35m-d1Y.js.map +1 -0
- package/dist/stencil/p-d142ef46.entry.js +10 -0
- package/dist/stencil/p-d142ef46.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/core.class.d.ts +18 -0
- package/dist/types/classes/core/store.class.d.ts +2 -0
- package/dist/types/classes/handlers/line-handle.handler.d.ts +34 -0
- package/dist/types/classes/managers/anchor.manager.d.ts +160 -0
- package/dist/types/classes/managers/cursor.manager.d.ts +43 -0
- package/dist/types/classes/objects/line.class.d.ts +98 -0
- package/dist/types/classes/tools/line-tool.class.d.ts +17 -0
- package/dist/types/classes/tools/selection-tool.class.d.ts +4 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -4
- package/dist/types/components.d.ts +5 -5
- package/dist/types/configs/default-line-tool.config.d.ts +2 -0
- package/dist/types/helpers/geometry.helper.d.ts +10 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/interfaces/anchor.interface.d.ts +137 -0
- package/dist/types/interfaces/arrow-head.interface.d.ts +26 -0
- package/dist/types/interfaces/engine-state.interface.d.ts +8 -0
- package/dist/types/interfaces/line-options.interface.d.ts +21 -0
- package/dist/types/interfaces/toolbar-control.interface.d.ts +17 -1
- package/package.json +1 -1
- package/dist/cjs/default-text-tool.config-zB3FPuXq.js.map +0 -1
- package/dist/components/p-CBYBurdY.js.map +0 -1
- package/dist/components/p-D7BLVRXX.js.map +0 -1
- package/dist/components/p-DbKKCHKd.js.map +0 -1
- package/dist/esm/default-text-tool.config-BvCgOiKA.js.map +0 -1
- package/dist/stencil/p-6d9756d9.entry.js +0 -10
- package/dist/stencil/p-6d9756d9.entry.js.map +0 -1
- package/dist/stencil/p-BvCgOiKA.js +0 -2
- package/dist/stencil/p-BvCgOiKA.js.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{r as t,h as e,H as i,c as n,g as r}from"./p-SGde3HXB.js";import{Y as s,I as o,N as a,Z as c,Q as l,V as u,X as h,J as f,L as d,W as v,M as p,T as b,_ as g,$ as k,a0 as y,a1 as w,a2 as m,a3 as x,a4 as z,F as C,K as S,G as I,E as M,a5 as j,a6 as _,a7 as T,P as A,S as $,U as O,a8 as E,a9 as W,aa as R,ab as D}from"./p-C35m-d1Y.js";var F=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};const P=":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 L=class{constructor(e){t(this,e)}value;size=24;isLightColor(t){if(!t)return false;let e=0,i=0,n=0;let r=t.startsWith("#")?t.slice(1):t;if(r.length===3){e=parseInt(r[0]+r[0],16);i=parseInt(r[1]+r[1],16);n=parseInt(r[2]+r[2],16)}else if(r.length===6){e=parseInt(r.substring(0,2),16);i=parseInt(r.substring(2,4),16);n=parseInt(r.substring(4,6),16)}else{return false}if(isNaN(e)||isNaN(i)||isNaN(n)){return false}const s=.299*e+.587*i+.114*n;return s>220}render(){const t=this.isLightColor(this.value);return e(i,{key:"bd867d9ff750588e41fb364b2192a6c2c5832e59"},e("div",{key:"858e97d057d7ba19869cbacc4e9f31ae6c64defa",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},e("div",{key:"0c983b133716e048f29d7e51979068fbde178abd",class:{"color-circle":true,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"}})))}};L.style=P;const U=":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 V=class{constructor(e){t(this,e);this.colorChange=n(this,"colorChange")}colors=[];selectedColor=null;isExpanded=false;isOpaque=false;colorChange;handleColorClick(t){this.selectedColor=t;this.colorChange.emit(t)}calculateHeight(){const t=6;const e=32;const i=8;const n=Math.ceil(this.colors.length/t);return`${n*e+(n-1)*i}px`}render(){const t=this.isExpanded?this.colors:this.colors.slice(0,6);const n=this.isExpanded?this.calculateHeight():"32px";return e(i,{key:"a237c0ebccd7fbfb6b42ce7fd5689d7282571bef"},e("div",{key:"dbccf2817079f6cf958fa37d097654c326d6a4ab",class:{"color-grid":true,expanded:this.isExpanded},style:{height:n}},t.map((t=>e("div",{tabIndex:0,class:{"color-container":true,selected:this.selectedColor===t},onClick:()=>this.handleColorClick(t)},e("kritzel-color",{value:t}))))))}};V.style=U;const K=":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 B=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){const e=t.composedPath();if(!e.includes(this.host)){this.close.emit()}}componentWillLoad(){this.updateMenuItems()}handleItemClick(t,e){if(!e){this.actionSelected.emit(t)}}async updateMenuItems(){const t=[];for(const e of this.items){const i=await this.evaluateProperty(e.visible,true);if(i){const i=await this.evaluateProperty(e.disabled,false);t.push({item:e,isDisabled:i})}}this.processedItems=t}async evaluateProperty(t,e){if(typeof t==="boolean"){return t}if(typeof t==="function"){return await Promise.resolve(t(null,this.objects))}return e}render(){return e(i,{key:"102f1fd72d991e6d5c0fa6025ed75d860e8e9852"},e("div",{key:"510ea27fdcddc78a51220f68a8d8ba82fd2bd108",class:"menu-container"},this.processedItems.map((({item:t,isDisabled:i},n)=>e("button",{key:`${t.label}-${n}`,class:{"menu-item":true,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"]}}};B.style=K;const H=":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 Y=class{constructor(e){t(this,e);this.toolChange=n(this,"toolChange")}tool;handleToolChange(t){this.palette=t.palettes[t.type]}isExpanded=false;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:"3111b2870e4a02da26bac5450424cadeef8c8d39"},e("div",{key:"4bbf6bede0822c35e206566dd176e6b150b54098",style:{display:"flex",flexDirection:"row",alignItems:this.isExpanded?"flex-start":"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-color-palette",{key:"eb9c5690f823ca278d60629b9ac0595411771d05",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:true,onColorChange:t=>this.handleColorChange(t)}),e("button",{key:"d5b0d12188babdd26bbf97344cec60760b7c4f87",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},e("kritzel-icon",{key:"e1beea772a60dda335a56815fa39609c37849769",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-stroke-size",{key:"8b31bac4e67752f55d2c2281b37a38e6fd801a57",selectedSize:this.tool.size,onSizeChange:t=>this.handleSizeChange(t)}))}static get watchers(){return{tool:["handleToolChange"]}}};Y.style=H;const N=":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 X=class{constructor(e){t(this,e);this.toolChange=n(this,"toolChange")}tool;isExpanded=false;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:"172bfe742f7fcb7db080729ac9b07cfd7a2f3f86"},e("div",{key:"de4000668ebc8a0fb27d9ae9b817b68a5d3e69b0",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-font-family",{key:"4940703e315d0991d4eb2000f4e1a1da6e113cb2",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:t=>this.handleFamilyChange(t)}),e("button",{key:"5a32fe373c1ce5cd312fa67e2b345fcc9eda81e5",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand"},e("kritzel-icon",{key:"2dc5d0ed3d4bfe02e560e0d9b7fc487e343f56d9",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-color-palette",{key:"c3cba9ef7408aa726954b649d76bd1ae40f0aec6",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:t=>this.handleColorChange(t)}),e("kritzel-font-size",{key:"b9f879d5f2bcc4b92519235e6fc0a22195a30a8f",selectedSize:this.tool.fontSize,fontFamily:this.tool.fontFamily,onSizeChange:t=>this.handleSizeChange(t)}))}};X.style=N;const q=":host{display:flex;flex-direction:column;user-select:none}: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}.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-divider{width:var(--kritzel-controls-divider-width, 1px);height:var(--kritzel-controls-divider-height, 24px);background-color:var(--kritzel-controls-divider-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;width:40px;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.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{position:fixed;bottom:56px;left:50%;transform:translateX(-50%);z-index:10001}";const G=class{constructor(e){t(this,e);this.isControlsReady=n(this,"isControlsReady")}get host(){return r(this)}controls=[];activeControl=null;isUtilityPanelVisible=true;undoState=null;isControlsReady;firstConfig=null;isTooltipVisible=false;isTouchDevice=s.isTouchDevice();handleDocumentClick(t){const e=t.target;if(!this.kritzelEngine||e.closest(".kritzel-tooltip")){return}this.isTooltipVisible=false}handleKeyDown(t){if(t.key==="Escape"){t.preventDefault();this.closeTooltip();this.kritzelEngine?.enable()}}async handleActiveToolChange(t){this.activeControl=this.controls.find((e=>e.tool===t.detail))||null}async closeTooltip(){this.isTooltipVisible=false}kritzelEngine=null;tooltipRef=null;get activeToolAsTextTool(){return this.activeControl?.tool}get activeToolAsBrushTool(){return this.activeControl?.tool}async componentWillLoad(){await this.initializeEngine();await this.initializeTools();this.isControlsReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngine=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngine){throw new Error("kritzel-engine not found in parent element.")}}async initializeTools(){for(const t of this.controls){if(t.type==="tool"&&t.tool){t.tool=await this.kritzelEngine.registerTool(t.name,t.tool,t.config)}if(t.type==="tool"&&t.isDefault&&t.tool){await this.kritzelEngine.changeActiveTool(t.tool);this.activeControl=t}if(t.type==="config"){if(this.firstConfig===null){this.firstConfig=t}else{console.warn("Only one config control is allowed. The first one will be used.")}}}}async handleControlClick(t){this.activeControl=t;if(this.activeControl.type==="tool"){await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}}handleConfigClick(t){t.stopPropagation();this.isTooltipVisible=!this.isTooltipVisible;if(this.isTooltipVisible){this.kritzelEngine?.disable()}else{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=false;this.kritzelEngine?.enable()}render(){const t=this.activeControl?.config===undefined||this.activeControl?.config===null;return e(i,{key:"c01351cbf438f2e36249b2ef3ef8725edcabd57b",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&e("kritzel-utility-panel",{key:"3c14cf25dd51f123dc8d33be92992e2f2c18ac40",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:"05719acfe12d1770bf49fb7d9989619f2e27ee0f",class:"kritzel-controls"},this.controls.map((i=>{if(i.type==="tool"){return e("button",{class:{"kritzel-control":true,selected:this.activeControl?.name===i?.name},key:i.name,onClick:t=>this.handleControlClick?.(i)},e("kritzel-icon",{name:i.icon}))}if(i.type==="divider"){return e("div",{class:"kritzel-divider",key:i.name})}if(i.type==="config"&&i.name===this.firstConfig?.name&&this.activeControl){return e("div",{class:"kritzel-config-container",key:i.name},e("kritzel-tooltip",{ref:t=>this.tooltipRef=t,isVisible:this.isTooltipVisible,anchorElement:this.host.shadowRoot?.querySelector(".kritzel-config-container"),onTooltipClosed:()=>this.handleTooltipClosed()},e("div",{style:{width:"294px",height:"100%"}},this.activeControl.name==="brush"&&e("kritzel-control-brush-config",{tool:this.activeToolAsBrushTool,onToolChange:t=>this.handleToolChange?.(t)}),this.activeControl.name==="text"&&e("kritzel-control-text-config",{tool:this.activeToolAsTextTool,onToolChange:t=>this.handleToolChange?.(t)}))),e("div",{tabIndex:0,class:"kritzel-config",onClick:t=>this.handleConfigClick?.(t),onKeyDown:t=>{if(t.key==="Enter"){this.handleConfigClick?.(t)}},style:{cursor:this.activeControl.config?"pointer":"default",pointerEvents:t?"none":"auto"}},this.activeControl.tool instanceof o&&e("div",{class:"color-container"},e("kritzel-color",{value:this.activeToolAsBrushTool?.color,size:this.activeToolAsBrushTool?.size,style:{borderRadius:"50%",border:"none"}})),this.activeControl.tool instanceof a&&e("div",{class:"font-container"},e("kritzel-font",{fontFamily:this.activeToolAsTextTool?.fontFamily,size:this.activeToolAsTextTool?.fontSize,color:this.activeToolAsTextTool?.fontColor})),t&&e("div",{class:"no-config"})))}}))))}static get assetsDirs(){return["../assets"]}};G.style=q;const Z=":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";const J=class{constructor(e){t(this,e)}core;cursorTrailPoints=[];isLeftButtonDown=false;handleMouseDown(t){if(t.pointerType==="mouse"){if(t.button===c.Left){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.core.store.state.pointers.size===1){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}}handlePointerMove(t){if(!this.isLeftButtonDown){return}const e={x:t.clientX,y:t.clientY,timestamp:Date.now()};const i=[e,...this.cursorTrailPoints];if(i.length>this.MAX_TRAIL_POINTS){this.cursorTrailPoints=i.slice(0,this.MAX_TRAIL_POINTS)}else{this.cursorTrailPoints=i}}handlePointerUp(t){if(t.pointerType==="mouse"){if(t.button===c.Left){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.core.store.state.pointers.size===0){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}}trailCleanupIntervalId;TRAIL_DURATION_MS=100;MAX_TRAIL_POINTS=50;componentDidLoad(){this.trailCleanupIntervalId=window.setInterval((()=>{const t=Date.now();const e=this.cursorTrailPoints.filter((e=>t-e.timestamp<this.TRAIL_DURATION_MS));if(e.length!==this.cursorTrailPoints.length){this.cursorTrailPoints=e}}),50)}disconnectedCallback(){if(this.trailCleanupIntervalId){window.clearInterval(this.trailCleanupIntervalId)}}render(){return e(i,{key:"2bbe2e331555476316c4460ff64fae7a955eee3d"},this.cursorTrailPoints.length>1&&e("svg",{key:"78a354686ff624afba1a3c31df02dbefaf295d4b",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];const r=Date.now();const s=r-t.timestamp;const o=Math.max(0,Math.min(1,s/this.TRAIL_DURATION_MS));if(o>=1)return null;const a=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":a.toString(),"stroke-linecap":"round"})}))))}};J.style=Z;const Q=':host{display:inline-flex;vertical-align:middle;width:100%;}.dropdown-wrapper{display:flex;align-items:center;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);overflow:hidden;height:32px;width:100%}.custom-select{padding:0 8px;padding-right:30px;height:100%;width:100%;box-sizing:border-box;border-radius:0;border:none;background-color:#fff;cursor:var(--kritzel-pointer-cursor, pointer);outline:none;font-size:inherit;color:var(--kritzel-controls-text-color, #333333);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23333333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>\');background-size:16px 16px;background-repeat:no-repeat;background-position:right 8px center}.custom-select.has-suffix-border{border-right:1px solid #333333}.custom-select.has-prefix-border{border-left:1px solid #333333}::slotted(*){height:100%;box-sizing:border-box}';const tt=class{constructor(e){t(this,e);this.valueChanged=n(this,"valueChanged")}options=[];optionsChanged(){this.updateInternalValue(this.internalValue,true)}value;externalValueChanged(t){if(t!==this.internalValue){this.updateInternalValue(t,false)}}width;selectStyles={};internalValue;hasSuffixContent=false;hasPrefixContent=false;valueChanged;suffixSlotElement;prefixSlotElement;componentWillLoad(){this.updateInternalValue(this.value,false);this.evaluateSuffixContent();this.evaluatePrefixContent()}updateInternalValue(t,e){let i=t;if(this.options&&this.options.length>0){const t=this.options.some((t=>t.value===i));if(!i||!t){i=this.options[0].value}}else{i=undefined}if(this.internalValue!==i){this.internalValue=i;if(e||t!==i&&t!==undefined){this.valueChanged.emit(this.internalValue)}}}handleSelectChange=t=>{const e=t.target.value;if(this.internalValue!==e){this.internalValue=e;this.valueChanged.emit(this.internalValue)}};evaluateSuffixContent=()=>{if(this.suffixSlotElement){const t=this.suffixSlotElement.assignedNodes({flatten:true}).length>0;if(this.hasSuffixContent!==t){this.hasSuffixContent=t}}else{if(this.hasSuffixContent!==false){this.hasSuffixContent=false}}};evaluatePrefixContent=()=>{if(this.prefixSlotElement){const t=this.prefixSlotElement.assignedNodes({flatten:true}).length>0;if(this.hasPrefixContent!==t){this.hasPrefixContent=t}}else{if(this.hasPrefixContent!==false){this.hasPrefixContent=false}}};render(){const t={"custom-select":true,"has-suffix-border":this.hasSuffixContent,"has-prefix-border":this.hasPrefixContent};return e(i,{key:"f24911715685ced571843ba7be6631248c8519b7"},e("div",{key:"520fdb74afdef8bd5228f76074e51981f44b910d",class:"dropdown-wrapper"},e("slot",{key:"cf6628437946b57ad0b27c066639e0b64b5a28f8",name:"prefix",ref:t=>this.prefixSlotElement=t,onSlotchange:this.evaluatePrefixContent}),e("select",{key:"3203ccd5b9c8b84e8f41bddfcb07786e879f0035",class:t,style:{...this.selectStyles,width:this.width},onInput:this.handleSelectChange},this.options.map((t=>e("option",{value:t.value,style:t.style,selected:t.value===this.internalValue},t.label)))),e("slot",{key:"d0abb52e082db81860c09d2c48b7c065adb406f3",name:"suffix",ref:t=>this.suffixSlotElement=t,onSlotchange:this.evaluateSuffixContent})))}static get watchers(){return{options:["optionsChanged"],value:["externalValueChanged"]}}};tt.style=Q;const et=1e3;const it=1e-4;const nt="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%))}";const rt=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=et;scaleMin=it;controls=[{name:"selection",type:"tool",isDefault:true,tool:l,icon:"cursor"},{name:"brush",type:"tool",tool:o,icon:"pen",config:u},{name:"line",type:"tool",tool:f,icon:"arrow",config:h},{name:"eraser",type:"tool",tool:d,icon:"eraser"},{name:"text",type:"tool",tool:a,icon:"type",config:v},{name:"image",type:"tool",tool:p,icon:"image"},{name:"divider",type:"divider"},{name:"config",type:"config"}];globalContextMenuItems=[{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,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()=>(await this.engineRef.getCopiedObjects()).length===0,action:(t,e)=>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()}];customSvgIcons={};isControlsVisible=true;isUtilityPanelVisible=true;syncConfig;isReady;objectsChange;undoStateChange;isEngineReady=false;isControlsReady=false;isWorkspaceManagerReady=false;workspaces=[];activeWorkspace;isVirtualKeyboardOpen=false;undoState=null;onIsEngineReady(t){if(t&&this.isControlsReady){this.checkIsReady()}}onIsControlsReady(t){if(t&&this.isEngineReady){this.checkIsReady()}}onWorkspacesChange(t){if(this.activeWorkspace){const e=t.find((t=>t.id===this.activeWorkspace.id));if(e&&e!==this.activeWorkspace){this.activeWorkspace=e}}}onTouchStart(t){if(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 b(`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");if(!this.isEngineReady||!this.isControlsReady||!this.isWorkspaceManagerReady){return}this.isReady.emit(this.host)}onEngineReady(t){this.isEngineReady=true;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)){g.register(t,e)}}listenForMobileKeyboard(){k.onKeyboardVisibleChanged((t=>{this.isVirtualKeyboardOpen=t}))}setOsSpecificCssVariables(){const t=s.detectOS();switch(t){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");break}}render(){return e(i,{key:"f107cce23625f36978736ef948a51cd91d84c3f1"},e("kritzel-workspace-manager",{key:"a924de174ac5226c3ac5507c35e162b35490a5dd",workspaces:this.workspaces,activeWorkspace:this.activeWorkspace,onWorkspaceChange:t=>this.activeWorkspace=t.detail,onIsWorkspaceManagerReady:()=>this.isWorkspaceManagerReady=true}),e("kritzel-engine",{key:"48b6c14ca2c1e1a2c745ec81294a331a463219a1",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:"2ec26e1444f4ba642c4fdc4ef2da1a62dc0256a6",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=true}))}static get watchers(){return{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"],workspaces:["onWorkspacesChange"]}}};rt.style=nt;var st={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
|
+
*/var ot=st.exports;var at;function ct(){if(at)return st.exports;at=1;(function(t,e){(function(){var i;var n="4.17.21";var r=200;var s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",a="Invalid `variable` option passed into `_.template`";var c="__lodash_hash_undefined__";var l=500;var u="__lodash_placeholder__";var h=1,f=2,d=4;var v=1,p=2;var b=1,g=2,k=4,y=8,w=16,m=32,x=64,z=128,C=256,S=512;var I=30,M="...";var j=800,_=16;var T=1,A=2,$=3;var O=1/0,E=9007199254740991,W=17976931348623157e292,R=0/0;var D=4294967295,P=D-1,L=D>>>1;var U=[["ary",z],["bind",b],["bindKey",g],["curry",y],["curryRight",w],["flip",S],["partial",m],["partialRight",x],["rearg",C]];var V="[object Arguments]",K="[object Array]",B="[object AsyncFunction]",H="[object Boolean]",Y="[object Date]",N="[object DOMException]",X="[object Error]",q="[object Function]",G="[object GeneratorFunction]",Z="[object Map]",J="[object Number]",Q="[object Null]",tt="[object Object]",et="[object Promise]",it="[object Proxy]",nt="[object RegExp]",rt="[object Set]",st="[object String]",ot="[object Symbol]",at="[object Undefined]",ct="[object WeakMap]",lt="[object WeakSet]";var ut="[object ArrayBuffer]",ht="[object DataView]",ft="[object Float32Array]",dt="[object Float64Array]",vt="[object Int8Array]",pt="[object Int16Array]",bt="[object Int32Array]",gt="[object Uint8Array]",kt="[object Uint8ClampedArray]",yt="[object Uint16Array]",wt="[object Uint32Array]";var mt=/\b__p \+= '';/g,xt=/\b(__p \+=) '' \+/g,zt=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var Ct=/&(?:amp|lt|gt|quot|#39);/g,St=/[&<>"']/g,It=RegExp(Ct.source),Mt=RegExp(St.source);var jt=/<%-([\s\S]+?)%>/g,_t=/<%([\s\S]+?)%>/g,Tt=/<%=([\s\S]+?)%>/g;var At=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$t=/^\w*$/,Ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var Et=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(Et.source);var Rt=/^\s+/;var Dt=/\s/;var Ft=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pt=/\{\n\/\* \[wrapped with (.+)\] \*/,Lt=/,? & /;var Ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var Vt=/[()=,{}\[\]\/\s]/;var Kt=/\\(\\)?/g;var Bt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var Ht=/\w*$/;var Yt=/^[-+]0x[0-9a-f]+$/i;var Nt=/^0b[01]+$/i;var Xt=/^\[object .+?Constructor\]$/;var qt=/^0o[0-7]+$/i;var Gt=/^(?:0|[1-9]\d*)$/;var Zt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var Jt=/($^)/;var Qt=/['\n\r\u2028\u2029\\]/g;var te="\\ud800-\\udfff",ee="\\u0300-\\u036f",ie="\\ufe20-\\ufe2f",ne="\\u20d0-\\u20ff",re=ee+ie+ne,se="\\u2700-\\u27bf",oe="a-z\\xdf-\\xf6\\xf8-\\xff",ae="\\xac\\xb1\\xd7\\xf7",ce="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",le="\\u2000-\\u206f",ue=" \\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",he="A-Z\\xc0-\\xd6\\xd8-\\xde",fe="\\ufe0e\\ufe0f",de=ae+ce+le+ue;var ve="['’]",pe="["+te+"]",be="["+de+"]",ge="["+re+"]",ke="\\d+",ye="["+se+"]",we="["+oe+"]",me="[^"+te+de+ke+se+oe+he+"]",xe="\\ud83c[\\udffb-\\udfff]",ze="(?:"+ge+"|"+xe+")",Ce="[^"+te+"]",Se="(?:\\ud83c[\\udde6-\\uddff]){2}",Ie="[\\ud800-\\udbff][\\udc00-\\udfff]",Me="["+he+"]",je="\\u200d";var _e="(?:"+we+"|"+me+")",Te="(?:"+Me+"|"+me+")",Ae="(?:"+ve+"(?:d|ll|m|re|s|t|ve))?",$e="(?:"+ve+"(?:D|LL|M|RE|S|T|VE))?",Oe=ze+"?",Ee="["+fe+"]?",We="(?:"+je+"(?:"+[Ce,Se,Ie].join("|")+")"+Ee+Oe+")*",Re="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",De="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Fe=Ee+Oe+We,Pe="(?:"+[ye,Se,Ie].join("|")+")"+Fe,Le="(?:"+[Ce+ge+"?",ge,Se,Ie,pe].join("|")+")";var Ue=RegExp(ve,"g");var Ve=RegExp(ge,"g");var Ke=RegExp(xe+"(?="+xe+")|"+Le+Fe,"g");var Be=RegExp([Me+"?"+we+"+"+Ae+"(?="+[be,Me,"$"].join("|")+")",Te+"+"+$e+"(?="+[be,Me+_e,"$"].join("|")+")",Me+"?"+_e+"+"+Ae,Me+"+"+$e,De,Re,ke,Pe].join("|"),"g");var He=RegExp("["+je+te+re+fe+"]");var Ye=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var Ne=["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"];var Xe=-1;var qe={};qe[ft]=qe[dt]=qe[vt]=qe[pt]=qe[bt]=qe[gt]=qe[kt]=qe[yt]=qe[wt]=true;qe[V]=qe[K]=qe[ut]=qe[H]=qe[ht]=qe[Y]=qe[X]=qe[q]=qe[Z]=qe[J]=qe[tt]=qe[nt]=qe[rt]=qe[st]=qe[ct]=false;var Ge={};Ge[V]=Ge[K]=Ge[ut]=Ge[ht]=Ge[H]=Ge[Y]=Ge[ft]=Ge[dt]=Ge[vt]=Ge[pt]=Ge[bt]=Ge[Z]=Ge[J]=Ge[tt]=Ge[nt]=Ge[rt]=Ge[st]=Ge[ot]=Ge[gt]=Ge[kt]=Ge[yt]=Ge[wt]=true;Ge[X]=Ge[q]=Ge[ct]=false;var Ze={À:"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"};var Je={"&":"&","<":"<",">":">",'"':""","'":"'"};var Qe={"&":"&","<":"<",">":">",""":'"',"'":"'"};var ti={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var ei=parseFloat,ii=parseInt;var ni=typeof F=="object"&&F&&F.Object===Object&&F;var ri=typeof self=="object"&&self&&self.Object===Object&&self;var si=ni||ri||Function("return this")();var oi=e&&!e.nodeType&&e;var ai=oi&&"object"=="object"&&t&&!t.nodeType&&t;var ci=ai&&ai.exports===oi;var li=ci&&ni.process;var ui=function(){try{var t=ai&&ai.require&&ai.require("util").types;if(t){return t}return li&&li.binding&&li.binding("util")}catch(t){}}();var hi=ui&&ui.isArrayBuffer,fi=ui&&ui.isDate,di=ui&&ui.isMap,vi=ui&&ui.isRegExp,pi=ui&&ui.isSet,bi=ui&&ui.isTypedArray;function gi(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 ki(t,e,i,n){var r=-1,s=t==null?0:t.length;while(++r<s){var o=t[r];e(n,o,i(o),t)}return n}function yi(t,e){var i=-1,n=t==null?0:t.length;while(++i<n){if(e(t[i],i,t)===false){break}}return t}function wi(t,e){var i=t==null?0:t.length;while(i--){if(e(t[i],i,t)===false){break}}return t}function mi(t,e){var i=-1,n=t==null?0:t.length;while(++i<n){if(!e(t[i],i,t)){return false}}return true}function xi(t,e){var i=-1,n=t==null?0:t.length,r=0,s=[];while(++i<n){var o=t[i];if(e(o,i,t)){s[r++]=o}}return s}function zi(t,e){var i=t==null?0:t.length;return!!i&&Wi(t,e,0)>-1}function Ci(t,e,i){var n=-1,r=t==null?0:t.length;while(++n<r){if(i(e,t[n])){return true}}return false}function Si(t,e){var i=-1,n=t==null?0:t.length,r=Array(n);while(++i<n){r[i]=e(t[i],i,t)}return r}function Ii(t,e){var i=-1,n=e.length,r=t.length;while(++i<n){t[r+i]=e[i]}return t}function Mi(t,e,i,n){var r=-1,s=t==null?0:t.length;if(n&&s){i=t[++r]}while(++r<s){i=e(i,t[r],r,t)}return i}function ji(t,e,i,n){var r=t==null?0:t.length;if(n&&r){i=t[--r]}while(r--){i=e(i,t[r],r,t)}return i}function _i(t,e){var i=-1,n=t==null?0:t.length;while(++i<n){if(e(t[i],i,t)){return true}}return false}var Ti=Pi("length");function Ai(t){return t.split("")}function $i(t){return t.match(Ut)||[]}function Oi(t,e,i){var n;i(t,(function(t,i,r){if(e(t,i,r)){n=i;return false}}));return n}function Ei(t,e,i,n){var r=t.length,s=i+(n?1:-1);while(n?s--:++s<r){if(e(t[s],s,t)){return s}}return-1}function Wi(t,e,i){return e===e?fn(t,e,i):Ei(t,Di,i)}function Ri(t,e,i,n){var r=i-1,s=t.length;while(++r<s){if(n(t[r],e)){return r}}return-1}function Di(t){return t!==t}function Fi(t,e){var i=t==null?0:t.length;return i?Ki(t,e)/i:R}function Pi(t){return function(e){return e==null?i:e[t]}}function Li(t){return function(e){return t==null?i:t[e]}}function Ui(t,e,i,n,r){r(t,(function(t,r,s){i=n?(n=false,t):e(i,t,r,s)}));return i}function Vi(t,e){var i=t.length;t.sort(e);while(i--){t[i]=t[i].value}return t}function Ki(t,e){var n,r=-1,s=t.length;while(++r<s){var o=e(t[r]);if(o!==i){n=n===i?o:n+o}}return n}function Bi(t,e){var i=-1,n=Array(t);while(++i<t){n[i]=e(i)}return n}function Hi(t,e){return Si(e,(function(e){return[e,t[e]]}))}function Yi(t){return t?t.slice(0,bn(t)+1).replace(Rt,""):t}function Ni(t){return function(e){return t(e)}}function Xi(t,e){return Si(e,(function(e){return t[e]}))}function qi(t,e){return t.has(e)}function Gi(t,e){var i=-1,n=t.length;while(++i<n&&Wi(e,t[i],0)>-1){}return i}function Zi(t,e){var i=t.length;while(i--&&Wi(e,t[i],0)>-1){}return i}function Ji(t,e){var i=t.length,n=0;while(i--){if(t[i]===e){++n}}return n}var Qi=Li(Ze);var tn=Li(Je);function en(t){return"\\"+ti[t]}function nn(t,e){return t==null?i:t[e]}function rn(t){return He.test(t)}function sn(t){return Ye.test(t)}function on(t){var e,i=[];while(!(e=t.next()).done){i.push(e.value)}return i}function an(t){var e=-1,i=Array(t.size);t.forEach((function(t,n){i[++e]=[n,t]}));return i}function cn(t,e){return function(i){return t(e(i))}}function ln(t,e){var i=-1,n=t.length,r=0,s=[];while(++i<n){var o=t[i];if(o===e||o===u){t[i]=u;s[r++]=i}}return s}function un(t){var e=-1,i=Array(t.size);t.forEach((function(t){i[++e]=t}));return i}function hn(t){var e=-1,i=Array(t.size);t.forEach((function(t){i[++e]=[t,t]}));return i}function fn(t,e,i){var n=i-1,r=t.length;while(++n<r){if(t[n]===e){return n}}return-1}function dn(t,e,i){var n=i+1;while(n--){if(t[n]===e){return n}}return n}function vn(t){return rn(t)?kn(t):Ti(t)}function pn(t){return rn(t)?yn(t):Ai(t)}function bn(t){var e=t.length;while(e--&&Dt.test(t.charAt(e))){}return e}var gn=Li(Qe);function kn(t){var e=Ke.lastIndex=0;while(Ke.test(t)){++e}return e}function yn(t){return t.match(Ke)||[]}function wn(t){return t.match(Be)||[]}var mn=function t(e){e=e==null?si:xn.defaults(si.Object(),e,xn.pick(si,Ne));var F=e.Array,Dt=e.Date,Ut=e.Error,te=e.Function,ee=e.Math,ie=e.Object,ne=e.RegExp,re=e.String,se=e.TypeError;var oe=F.prototype,ae=te.prototype,ce=ie.prototype;var le=e["__core-js_shared__"];var ue=ae.toString;var he=ce.hasOwnProperty;var fe=0;var de=function(){var t=/[^.]+$/.exec(le&&le.keys&&le.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();var ve=ce.toString;var pe=ue.call(ie);var be=si._;var ge=ne("^"+ue.call(he).replace(Et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var ke=ci?e.Buffer:i,ye=e.Symbol,we=e.Uint8Array,me=ke?ke.allocUnsafe:i,xe=cn(ie.getPrototypeOf,ie),ze=ie.create,Ce=ce.propertyIsEnumerable,Se=oe.splice,Ie=ye?ye.isConcatSpreadable:i,Me=ye?ye.iterator:i,je=ye?ye.toStringTag:i;var _e=function(){try{var t=No(ie,"defineProperty");t({},"",{});return t}catch(t){}}();var Te=e.clearTimeout!==si.clearTimeout&&e.clearTimeout,Ae=Dt&&Dt.now!==si.Date.now&&Dt.now,$e=e.setTimeout!==si.setTimeout&&e.setTimeout;var Oe=ee.ceil,Ee=ee.floor,We=ie.getOwnPropertySymbols,Re=ke?ke.isBuffer:i,De=e.isFinite,Fe=oe.join,Pe=cn(ie.keys,ie),Le=ee.max,Ke=ee.min,Be=Dt.now,He=e.parseInt,Ye=ee.random,Ze=oe.reverse;var Je=No(e,"DataView"),Qe=No(e,"Map"),ti=No(e,"Promise"),ni=No(e,"Set"),ri=No(e,"WeakMap"),oi=No(ie,"create");var ai=ri&&new ri;var li={};var ui=$a(Je),Ti=$a(Qe),Ai=$a(ti),Li=$a(ni),fn=$a(ri);var kn=ye?ye.prototype:i,yn=kn?kn.valueOf:i,mn=kn?kn.toString:i;function zn(t){if(Su(t)&&!cu(t)&&!(t instanceof Mn)){if(t instanceof In){return t}if(he.call(t,"__wrapped__")){return Ea(t)}}return new In(t)}var Cn=function(){function t(){}return function(e){if(!Cu(e)){return{}}if(ze){return ze(e)}t.prototype=e;var n=new t;t.prototype=i;return n}}();function Sn(){}function In(t,e){this.__wrapped__=t;this.__actions__=[];this.__chain__=!!e;this.__index__=0;this.__values__=i}zn.templateSettings={escape:jt,evaluate:_t,interpolate:Tt,variable:"",imports:{_:zn}};zn.prototype=Sn.prototype;zn.prototype.constructor=zn;In.prototype=Cn(Sn.prototype);In.prototype.constructor=In;function Mn(t){this.__wrapped__=t;this.__actions__=[];this.__dir__=1;this.__filtered__=false;this.__iteratees__=[];this.__takeCount__=D;this.__views__=[]}function jn(){var t=new Mn(this.__wrapped__);t.__actions__=no(this.__actions__);t.__dir__=this.__dir__;t.__filtered__=this.__filtered__;t.__iteratees__=no(this.__iteratees__);t.__takeCount__=this.__takeCount__;t.__views__=no(this.__views__);return t}function _n(){if(this.__filtered__){var t=new Mn(this);t.__dir__=-1;t.__filtered__=true}else{t=this.clone();t.__dir__*=-1}return t}function Tn(){var t=this.__wrapped__.value(),e=this.__dir__,i=cu(t),n=e<0,r=i?t.length:0,s=Jo(0,r,this.__views__),o=s.start,a=s.end,c=a-o,l=n?a:o-1,u=this.__iteratees__,h=u.length,f=0,d=Ke(c,this.__takeCount__);if(!i||!n&&r==c&&d==c){return Fs(t,this.__actions__)}var v=[];t:while(c--&&f<d){l+=e;var p=-1,b=t[l];while(++p<h){var g=u[p],k=g.iteratee,y=g.type,w=k(b);if(y==A){b=w}else if(!w){if(y==T){continue t}else{break t}}}v[f++]=b}return v}Mn.prototype=Cn(Sn.prototype);Mn.prototype.constructor=Mn;function An(t){var e=-1,i=t==null?0:t.length;this.clear();while(++e<i){var n=t[e];this.set(n[0],n[1])}}function $n(){this.__data__=oi?oi(null):{};this.size=0}function On(t){var e=this.has(t)&&delete this.__data__[t];this.size-=e?1:0;return e}function En(t){var e=this.__data__;if(oi){var n=e[t];return n===c?i:n}return he.call(e,t)?e[t]:i}function Wn(t){var e=this.__data__;return oi?e[t]!==i:he.call(e,t)}function Rn(t,e){var n=this.__data__;this.size+=this.has(t)?0:1;n[t]=oi&&e===i?c:e;return this}An.prototype.clear=$n;An.prototype["delete"]=On;An.prototype.get=En;An.prototype.has=Wn;An.prototype.set=Rn;function Dn(t){var e=-1,i=t==null?0:t.length;this.clear();while(++e<i){var n=t[e];this.set(n[0],n[1])}}function Fn(){this.__data__=[];this.size=0}function Pn(t){var e=this.__data__,i=ur(e,t);if(i<0){return false}var n=e.length-1;if(i==n){e.pop()}else{Se.call(e,i,1)}--this.size;return true}function Ln(t){var e=this.__data__,n=ur(e,t);return n<0?i:e[n][1]}function Un(t){return ur(this.__data__,t)>-1}function Vn(t,e){var i=this.__data__,n=ur(i,t);if(n<0){++this.size;i.push([t,e])}else{i[n][1]=e}return this}Dn.prototype.clear=Fn;Dn.prototype["delete"]=Pn;Dn.prototype.get=Ln;Dn.prototype.has=Un;Dn.prototype.set=Vn;function Kn(t){var e=-1,i=t==null?0:t.length;this.clear();while(++e<i){var n=t[e];this.set(n[0],n[1])}}function Bn(){this.size=0;this.__data__={hash:new An,map:new(Qe||Dn),string:new An}}function Hn(t){var e=Ho(this,t)["delete"](t);this.size-=e?1:0;return e}function Yn(t){return Ho(this,t).get(t)}function Nn(t){return Ho(this,t).has(t)}function Xn(t,e){var i=Ho(this,t),n=i.size;i.set(t,e);this.size+=i.size==n?0:1;return this}Kn.prototype.clear=Bn;Kn.prototype["delete"]=Hn;Kn.prototype.get=Yn;Kn.prototype.has=Nn;Kn.prototype.set=Xn;function qn(t){var e=-1,i=t==null?0:t.length;this.__data__=new Kn;while(++e<i){this.add(t[e])}}function Gn(t){this.__data__.set(t,c);return this}function Zn(t){return this.__data__.has(t)}qn.prototype.add=qn.prototype.push=Gn;qn.prototype.has=Zn;function Jn(t){var e=this.__data__=new Dn(t);this.size=e.size}function Qn(){this.__data__=new Dn;this.size=0}function tr(t){var e=this.__data__,i=e["delete"](t);this.size=e.size;return i}function er(t){return this.__data__.get(t)}function ir(t){return this.__data__.has(t)}function nr(t,e){var i=this.__data__;if(i instanceof Dn){var n=i.__data__;if(!Qe||n.length<r-1){n.push([t,e]);this.size=++i.size;return this}i=this.__data__=new Kn(n)}i.set(t,e);this.size=i.size;return this}Jn.prototype.clear=Qn;Jn.prototype["delete"]=tr;Jn.prototype.get=er;Jn.prototype.has=ir;Jn.prototype.set=nr;function rr(t,e){var i=cu(t),n=!i&&au(t),r=!i&&!n&&du(t),s=!i&&!n&&!r&&Lu(t),o=i||n||r||s,a=o?Bi(t.length,re):[],c=a.length;for(var l in t){if((e||he.call(t,l))&&!(o&&(l=="length"||r&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||oa(l,c)))){a.push(l)}}return a}function sr(t){var e=t.length;return e?t[gs(0,e-1)]:i}function or(t,e){return _a(no(t),br(e,0,t.length))}function ar(t){return _a(no(t))}function cr(t,e,n){if(n!==i&&!ru(t[e],n)||n===i&&!(e in t)){vr(t,e,n)}}function lr(t,e,n){var r=t[e];if(!(he.call(t,e)&&ru(r,n))||n===i&&!(e in t)){vr(t,e,n)}}function ur(t,e){var i=t.length;while(i--){if(ru(t[i][0],e)){return i}}return-1}function hr(t,e,i,n){xr(t,(function(t,r,s){e(n,t,i(t),s)}));return n}function fr(t,e){return t&&ro(e,xh(e),t)}function dr(t,e){return t&&ro(e,zh(e),t)}function vr(t,e,i){if(e=="__proto__"&&_e){_e(t,e,{configurable:true,enumerable:true,value:i,writable:true})}else{t[e]=i}}function pr(t,e){var n=-1,r=e.length,s=F(r),o=t==null;while(++n<r){s[n]=o?i:bh(t,e[n])}return s}function br(t,e,n){if(t===t){if(n!==i){t=t<=n?t:n}if(e!==i){t=t>=e?t:e}}return t}function gr(t,e,n,r,s,o){var a,c=e&h,l=e&f,u=e&d;if(n){a=s?n(t,r,s,o):n(t)}if(a!==i){return a}if(!Cu(t)){return t}var v=cu(t);if(v){a=ea(t);if(!c){return no(t,a)}}else{var p=Zo(t),b=p==q||p==G;if(du(t)){return Ns(t,c)}if(p==tt||p==V||b&&!s){a=l||b?{}:ia(t);if(!c){return l?oo(t,dr(a,t)):so(t,fr(a,t))}}else{if(!Ge[p]){return s?t:{}}a=na(t,p,c)}}o||(o=new Jn);var g=o.get(t);if(g){return g}o.set(t,a);if(Du(t)){t.forEach((function(i){a.add(gr(i,e,n,i,t,o))}))}else if(Iu(t)){t.forEach((function(i,r){a.set(r,gr(i,e,n,r,t,o))}))}var k=u?l?Lo:Po:l?zh:xh;var y=v?i:k(t);yi(y||t,(function(i,r){if(y){r=i;i=t[r]}lr(a,r,gr(i,e,n,r,t,o))}));return a}function kr(t){var e=xh(t);return function(i){return yr(i,t,e)}}function yr(t,e,n){var r=n.length;if(t==null){return!r}t=ie(t);while(r--){var s=n[r],o=e[s],a=t[s];if(a===i&&!(s in t)||!o(a)){return false}}return true}function wr(t,e,n){if(typeof t!="function"){throw new se(o)}return Sa((function(){t.apply(i,n)}),e)}function mr(t,e,i,n){var s=-1,o=zi,a=true,c=t.length,l=[],u=e.length;if(!c){return l}if(i){e=Si(e,Ni(i))}if(n){o=Ci;a=false}else if(e.length>=r){o=qi;a=false;e=new qn(e)}t:while(++s<c){var h=t[s],f=i==null?h:i(h);h=n||h!==0?h:0;if(a&&f===f){var d=u;while(d--){if(e[d]===f){continue t}}l.push(h)}else if(!o(e,f,n)){l.push(h)}}return l}var xr=lo(Ar);var zr=lo($r,true);function Cr(t,e){var i=true;xr(t,(function(t,n,r){i=!!e(t,n,r);return i}));return i}function Sr(t,e,n){var r=-1,s=t.length;while(++r<s){var o=t[r],a=e(o);if(a!=null&&(c===i?a===a&&!Pu(a):n(a,c))){var c=a,l=o}}return l}function Ir(t,e,n,r){var s=t.length;n=Xu(n);if(n<0){n=-n>s?0:s+n}r=r===i||r>s?s:Xu(r);if(r<0){r+=s}r=n>r?0:qu(r);while(n<r){t[n++]=e}return t}function Mr(t,e){var i=[];xr(t,(function(t,n,r){if(e(t,n,r)){i.push(t)}}));return i}function jr(t,e,i,n,r){var s=-1,o=t.length;i||(i=sa);r||(r=[]);while(++s<o){var a=t[s];if(e>0&&i(a)){if(e>1){jr(a,e-1,i,n,r)}else{Ii(r,a)}}else if(!n){r[r.length]=a}}return r}var _r=uo();var Tr=uo(true);function Ar(t,e){return t&&_r(t,e,xh)}function $r(t,e){return t&&Tr(t,e,xh)}function Or(t,e){return xi(e,(function(e){return mu(t[e])}))}function Er(t,e){e=Ks(e,t);var n=0,r=e.length;while(t!=null&&n<r){t=t[Aa(e[n++])]}return n&&n==r?t:i}function Wr(t,e,i){var n=e(t);return cu(t)?n:Ii(n,i(t))}function Rr(t){if(t==null){return t===i?at:Q}return je&&je in ie(t)?Xo(t):ya(t)}function Dr(t,e){return t>e}function Fr(t,e){return t!=null&&he.call(t,e)}function Pr(t,e){return t!=null&&e in ie(t)}function Lr(t,e,i){return t>=Ke(e,i)&&t<Le(e,i)}function Ur(t,e,n){var r=n?Ci:zi,s=t[0].length,o=t.length,a=o,c=F(o),l=Infinity,u=[];while(a--){var h=t[a];if(a&&e){h=Si(h,Ni(e))}l=Ke(h.length,l);c[a]=!n&&(e||s>=120&&h.length>=120)?new qn(a&&h):i}h=t[0];var f=-1,d=c[0];t:while(++f<s&&u.length<l){var v=h[f],p=e?e(v):v;v=n||v!==0?v:0;if(!(d?qi(d,p):r(u,p,n))){a=o;while(--a){var b=c[a];if(!(b?qi(b,p):r(t[a],p,n))){continue t}}if(d){d.push(p)}u.push(v)}}return u}function Vr(t,e,i,n){Ar(t,(function(t,r,s){e(n,i(t),r,s)}));return n}function Kr(t,e,n){e=Ks(e,t);t=ma(t,e);var r=t==null?t:t[Aa(sc(e))];return r==null?i:gi(r,t,n)}function Br(t){return Su(t)&&Rr(t)==V}function Hr(t){return Su(t)&&Rr(t)==ut}function Yr(t){return Su(t)&&Rr(t)==Y}function Nr(t,e,i,n,r){if(t===e){return true}if(t==null||e==null||!Su(t)&&!Su(e)){return t!==t&&e!==e}return Xr(t,e,i,n,Nr,r)}function Xr(t,e,i,n,r,s){var o=cu(t),a=cu(e),c=o?K:Zo(t),l=a?K:Zo(e);c=c==V?tt:c;l=l==V?tt:l;var u=c==tt,h=l==tt,f=c==l;if(f&&du(t)){if(!du(e)){return false}o=true;u=false}if(f&&!u){s||(s=new Jn);return o||Lu(t)?Wo(t,e,i,n,r,s):Ro(t,e,c,i,n,r,s)}if(!(i&v)){var d=u&&he.call(t,"__wrapped__"),p=h&&he.call(e,"__wrapped__");if(d||p){var b=d?t.value():t,g=p?e.value():e;s||(s=new Jn);return r(b,g,i,n,s)}}if(!f){return false}s||(s=new Jn);return Do(t,e,i,n,r,s)}function qr(t){return Su(t)&&Zo(t)==Z}function Gr(t,e,n,r){var s=n.length,o=s,a=!r;if(t==null){return!o}t=ie(t);while(s--){var c=n[s];if(a&&c[2]?c[1]!==t[c[0]]:!(c[0]in t)){return false}}while(++s<o){c=n[s];var l=c[0],u=t[l],h=c[1];if(a&&c[2]){if(u===i&&!(l in t)){return false}}else{var f=new Jn;if(r){var d=r(u,h,l,t,e,f)}if(!(d===i?Nr(h,u,v|p,r,f):d)){return false}}}return true}function Zr(t){if(!Cu(t)||ha(t)){return false}var e=mu(t)?ge:Xt;return e.test($a(t))}function Jr(t){return Su(t)&&Rr(t)==nt}function Qr(t){return Su(t)&&Zo(t)==rt}function ts(t){return Su(t)&&zu(t.length)&&!!qe[Rr(t)]}function es(t){if(typeof t=="function"){return t}if(t==null){return Af}if(typeof t=="object"){return cu(t)?as(t[0],t[1]):os(t)}return Bf(t)}function is(t){if(!da(t)){return Pe(t)}var e=[];for(var i in ie(t)){if(he.call(t,i)&&i!="constructor"){e.push(i)}}return e}function ns(t){if(!Cu(t)){return ka(t)}var e=da(t),i=[];for(var n in t){if(!(n=="constructor"&&(e||!he.call(t,n)))){i.push(n)}}return i}function rs(t,e){return t<e}function ss(t,e){var i=-1,n=uu(t)?F(t.length):[];xr(t,(function(t,r,s){n[++i]=e(t,r,s)}));return n}function os(t){var e=Yo(t);if(e.length==1&&e[0][2]){return pa(e[0][0],e[0][1])}return function(i){return i===t||Gr(i,t,e)}}function as(t,e){if(ca(t)&&va(e)){return pa(Aa(t),e)}return function(n){var r=bh(n,t);return r===i&&r===e?kh(n,t):Nr(e,r,v|p)}}function cs(t,e,n,r,s){if(t===e){return}_r(e,(function(o,a){s||(s=new Jn);if(Cu(o)){ls(t,e,a,n,cs,r,s)}else{var c=r?r(za(t,a),o,a+"",t,e,s):i;if(c===i){c=o}cr(t,a,c)}}),zh)}function ls(t,e,n,r,s,o,a){var c=za(t,n),l=za(e,n),u=a.get(l);if(u){cr(t,n,u);return}var h=o?o(c,l,n+"",t,e,a):i;var f=h===i;if(f){var d=cu(l),v=!d&&du(l),p=!d&&!v&&Lu(l);h=l;if(d||v||p){if(cu(c)){h=c}else if(hu(c)){h=no(c)}else if(v){f=false;h=Ns(l,true)}else if(p){f=false;h=Js(l,true)}else{h=[]}}else if(Eu(l)||au(l)){h=c;if(au(c)){h=Zu(c)}else if(!Cu(c)||mu(c)){h=ia(l)}}else{f=false}}if(f){a.set(l,h);s(h,l,r,o,a);a["delete"](l)}cr(t,n,h)}function us(t,e){var n=t.length;if(!n){return}e+=e<0?n:0;return oa(e,n)?t[e]:i}function hs(t,e,i){if(e.length){e=Si(e,(function(t){if(cu(t)){return function(e){return Er(e,t.length===1?t[0]:t)}}return t}))}else{e=[Af]}var n=-1;e=Si(e,Ni(Bo()));var r=ss(t,(function(t,i,r){var s=Si(e,(function(e){return e(t)}));return{criteria:s,index:++n,value:t}}));return Vi(r,(function(t,e){return to(t,e,i)}))}function fs(t,e){return ds(t,e,(function(e,i){return kh(t,i)}))}function ds(t,e,i){var n=-1,r=e.length,s={};while(++n<r){var o=e[n],a=Er(t,o);if(i(a,o)){zs(s,Ks(o,t),a)}}return s}function vs(t){return function(e){return Er(e,t)}}function ps(t,e,i,n){var r=n?Ri:Wi,s=-1,o=e.length,a=t;if(t===e){e=no(e)}if(i){a=Si(t,Ni(i))}while(++s<o){var c=0,l=e[s],u=i?i(l):l;while((c=r(a,u,c,n))>-1){if(a!==t){Se.call(a,c,1)}Se.call(t,c,1)}}return t}function bs(t,e){var i=t?e.length:0,n=i-1;while(i--){var r=e[i];if(i==n||r!==s){var s=r;if(oa(r)){Se.call(t,r,1)}else{Ws(t,r)}}}return t}function gs(t,e){return t+Ee(Ye()*(e-t+1))}function ks(t,e,i,n){var r=-1,s=Le(Oe((e-t)/(i||1)),0),o=F(s);while(s--){o[n?s:++r]=t;t+=i}return o}function ys(t,e){var i="";if(!t||e<1||e>E){return i}do{if(e%2){i+=t}e=Ee(e/2);if(e){t+=t}}while(e);return i}function ws(t,e){return Ia(wa(t,e,Af),t+"")}function ms(t){return sr(Uh(t))}function xs(t,e){var i=Uh(t);return _a(i,br(e,0,i.length))}function zs(t,e,n,r){if(!Cu(t)){return t}e=Ks(e,t);var s=-1,o=e.length,a=o-1,c=t;while(c!=null&&++s<o){var l=Aa(e[s]),u=n;if(l==="__proto__"||l==="constructor"||l==="prototype"){return t}if(s!=a){var h=c[l];u=r?r(h,l,c):i;if(u===i){u=Cu(h)?h:oa(e[s+1])?[]:{}}}lr(c,l,u);c=c[l]}return t}var Cs=!ai?Af:function(t,e){ai.set(t,e);return t};var Ss=!_e?Af:function(t,e){return _e(t,"toString",{configurable:true,enumerable:false,value:Mf(e),writable:true})};function Is(t){return _a(Uh(t))}function Ms(t,e,i){var n=-1,r=t.length;if(e<0){e=-e>r?0:r+e}i=i>r?r:i;if(i<0){i+=r}r=e>i?0:i-e>>>0;e>>>=0;var s=F(r);while(++n<r){s[n]=t[n+e]}return s}function js(t,e){var i;xr(t,(function(t,n,r){i=e(t,n,r);return!i}));return!!i}function _s(t,e,i){var n=0,r=t==null?n:t.length;if(typeof e=="number"&&e===e&&r<=L){while(n<r){var s=n+r>>>1,o=t[s];if(o!==null&&!Pu(o)&&(i?o<=e:o<e)){n=s+1}else{r=s}}return r}return Ts(t,e,Af,i)}function Ts(t,e,n,r){var s=0,o=t==null?0:t.length;if(o===0){return 0}e=n(e);var a=e!==e,c=e===null,l=Pu(e),u=e===i;while(s<o){var h=Ee((s+o)/2),f=n(t[h]),d=f!==i,v=f===null,p=f===f,b=Pu(f);if(a){var g=r||p}else if(u){g=p&&(r||d)}else if(c){g=p&&d&&(r||!v)}else if(l){g=p&&d&&!v&&(r||!b)}else if(v||b){g=false}else{g=r?f<=e:f<e}if(g){s=h+1}else{o=h}}return Ke(o,P)}function As(t,e){var i=-1,n=t.length,r=0,s=[];while(++i<n){var o=t[i],a=e?e(o):o;if(!i||!ru(a,c)){var c=a;s[r++]=o===0?0:o}}return s}function $s(t){if(typeof t=="number"){return t}if(Pu(t)){return R}return+t}function Os(t){if(typeof t=="string"){return t}if(cu(t)){return Si(t,Os)+""}if(Pu(t)){return mn?mn.call(t):""}var e=t+"";return e=="0"&&1/t==-Infinity?"-0":e}function Es(t,e,i){var n=-1,s=zi,o=t.length,a=true,c=[],l=c;if(i){a=false;s=Ci}else if(o>=r){var u=e?null:_o(t);if(u){return un(u)}a=false;s=qi;l=new qn}else{l=e?[]:c}t:while(++n<o){var h=t[n],f=e?e(h):h;h=i||h!==0?h:0;if(a&&f===f){var d=l.length;while(d--){if(l[d]===f){continue t}}if(e){l.push(f)}c.push(h)}else if(!s(l,f,i)){if(l!==c){l.push(f)}c.push(h)}}return c}function Ws(t,e){e=Ks(e,t);t=ma(t,e);return t==null||delete t[Aa(sc(e))]}function Rs(t,e,i,n){return zs(t,e,i(Er(t,e)),n)}function Ds(t,e,i,n){var r=t.length,s=n?r:-1;while((n?s--:++s<r)&&e(t[s],s,t)){}return i?Ms(t,n?0:s,n?s+1:r):Ms(t,n?s+1:0,n?r:s)}function Fs(t,e){var i=t;if(i instanceof Mn){i=i.value()}return Mi(e,(function(t,e){return e.func.apply(e.thisArg,Ii([t],e.args))}),i)}function Ps(t,e,i){var n=t.length;if(n<2){return n?Es(t[0]):[]}var r=-1,s=F(n);while(++r<n){var o=t[r],a=-1;while(++a<n){if(a!=r){s[r]=mr(s[r]||o,t[a],e,i)}}}return Es(jr(s,1),e,i)}function Ls(t,e,n){var r=-1,s=t.length,o=e.length,a={};while(++r<s){var c=r<o?e[r]:i;n(a,t[r],c)}return a}function Us(t){return hu(t)?t:[]}function Vs(t){return typeof t=="function"?t:Af}function Ks(t,e){if(cu(t)){return t}return ca(t,e)?[t]:Ta(Qu(t))}var Bs=ws;function Hs(t,e,n){var r=t.length;n=n===i?r:n;return!e&&n>=r?t:Ms(t,e,n)}var Ys=Te||function(t){return si.clearTimeout(t)};function Ns(t,e){if(e){return t.slice()}var i=t.length,n=me?me(i):new t.constructor(i);t.copy(n);return n}function Xs(t){var e=new t.constructor(t.byteLength);new we(e).set(new we(t));return e}function qs(t,e){var i=e?Xs(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}function Gs(t){var e=new t.constructor(t.source,Ht.exec(t));e.lastIndex=t.lastIndex;return e}function Zs(t){return yn?ie(yn.call(t)):{}}function Js(t,e){var i=e?Xs(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}function Qs(t,e){if(t!==e){var n=t!==i,r=t===null,s=t===t,o=Pu(t);var a=e!==i,c=e===null,l=e===e,u=Pu(e);if(!c&&!u&&!o&&t>e||o&&a&&l&&!c&&!u||r&&a&&l||!n&&l||!s){return 1}if(!r&&!o&&!u&&t<e||u&&n&&s&&!r&&!o||c&&n&&s||!a&&s||!l){return-1}}return 0}function to(t,e,i){var n=-1,r=t.criteria,s=e.criteria,o=r.length,a=i.length;while(++n<o){var c=Qs(r[n],s[n]);if(c){if(n>=a){return c}var l=i[n];return c*(l=="desc"?-1:1)}}return t.index-e.index}function eo(t,e,i,n){var r=-1,s=t.length,o=i.length,a=-1,c=e.length,l=Le(s-o,0),u=F(c+l),h=!n;while(++a<c){u[a]=e[a]}while(++r<o){if(h||r<s){u[i[r]]=t[r]}}while(l--){u[a++]=t[r++]}return u}function io(t,e,i,n){var r=-1,s=t.length,o=-1,a=i.length,c=-1,l=e.length,u=Le(s-a,0),h=F(u+l),f=!n;while(++r<u){h[r]=t[r]}var d=r;while(++c<l){h[d+c]=e[c]}while(++o<a){if(f||r<s){h[d+i[o]]=t[r++]}}return h}function no(t,e){var i=-1,n=t.length;e||(e=F(n));while(++i<n){e[i]=t[i]}return e}function ro(t,e,n,r){var s=!n;n||(n={});var o=-1,a=e.length;while(++o<a){var c=e[o];var l=r?r(n[c],t[c],c,n,t):i;if(l===i){l=t[c]}if(s){vr(n,c,l)}else{lr(n,c,l)}}return n}function so(t,e){return ro(t,qo(t),e)}function oo(t,e){return ro(t,Go(t),e)}function ao(t,e){return function(i,n){var r=cu(i)?ki:hr,s=e?e():{};return r(i,t,Bo(n,2),s)}}function co(t){return ws((function(e,n){var r=-1,s=n.length,o=s>1?n[s-1]:i,a=s>2?n[2]:i;o=t.length>3&&typeof o=="function"?(s--,o):i;if(a&&aa(n[0],n[1],a)){o=s<3?i:o;s=1}e=ie(e);while(++r<s){var c=n[r];if(c){t(e,c,r,o)}}return e}))}function lo(t,e){return function(i,n){if(i==null){return i}if(!uu(i)){return t(i,n)}var r=i.length,s=e?r:-1,o=ie(i);while(e?s--:++s<r){if(n(o[s],s,o)===false){break}}return i}}function uo(t){return function(e,i,n){var r=-1,s=ie(e),o=n(e),a=o.length;while(a--){var c=o[t?a:++r];if(i(s[c],c,s)===false){break}}return e}}function ho(t,e,i){var n=e&b,r=po(t);function s(){var e=this&&this!==si&&this instanceof s?r:t;return e.apply(n?i:this,arguments)}return s}function fo(t){return function(e){e=Qu(e);var n=rn(e)?pn(e):i;var r=n?n[0]:e.charAt(0);var s=n?Hs(n,1).join(""):e.slice(1);return r[t]()+s}}function vo(t){return function(e){return Mi(xf(Xh(e).replace(Ue,"")),t,"")}}function po(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=Cn(t.prototype),n=t.apply(i,e);return Cu(n)?n:i}}function bo(t,e,n){var r=po(t);function s(){var o=arguments.length,a=F(o),c=o,l=Ko(s);while(c--){a[c]=arguments[c]}var u=o<3&&a[0]!==l&&a[o-1]!==l?[]:ln(a,l);o-=u.length;if(o<n){return Mo(t,e,yo,s.placeholder,i,a,u,i,i,n-o)}var h=this&&this!==si&&this instanceof s?r:t;return gi(h,this,a)}return s}function go(t){return function(e,n,r){var s=ie(e);if(!uu(e)){var o=Bo(n,3);e=xh(e);n=function(t){return o(s[t],t,s)}}var a=t(e,n,r);return a>-1?s[o?e[a]:a]:i}}function ko(t){return Fo((function(e){var n=e.length,r=n,s=In.prototype.thru;if(t){e.reverse()}while(r--){var a=e[r];if(typeof a!="function"){throw new se(o)}if(s&&!c&&Vo(a)=="wrapper"){var c=new In([],true)}}r=c?r:n;while(++r<n){a=e[r];var l=Vo(a),u=l=="wrapper"?Uo(a):i;if(u&&ua(u[0])&&u[1]==(z|y|m|C)&&!u[4].length&&u[9]==1){c=c[Vo(u[0])].apply(c,u[3])}else{c=a.length==1&&ua(a)?c[l]():c.thru(a)}}return function(){var t=arguments,i=t[0];if(c&&t.length==1&&cu(i)){return c.plant(i).value()}var r=0,s=n?e[r].apply(this,t):i;while(++r<n){s=e[r].call(this,s)}return s}}))}function yo(t,e,n,r,s,o,a,c,l,u){var h=e&z,f=e&b,d=e&g,v=e&(y|w),p=e&S,k=d?i:po(t);function m(){var i=arguments.length,b=F(i),g=i;while(g--){b[g]=arguments[g]}if(v){var y=Ko(m),w=Ji(b,y)}if(r){b=eo(b,r,s,v)}if(o){b=io(b,o,a,v)}i-=w;if(v&&i<u){var x=ln(b,y);return Mo(t,e,yo,m.placeholder,n,b,x,c,l,u-i)}var z=f?n:this,C=d?z[t]:t;i=b.length;if(c){b=xa(b,c)}else if(p&&i>1){b.reverse()}if(h&&l<i){b.length=l}if(this&&this!==si&&this instanceof m){C=k||po(C)}return C.apply(z,b)}return m}function wo(t,e){return function(i,n){return Vr(i,t,e(n),{})}}function mo(t,e){return function(n,r){var s;if(n===i&&r===i){return e}if(n!==i){s=n}if(r!==i){if(s===i){return r}if(typeof n=="string"||typeof r=="string"){n=Os(n);r=Os(r)}else{n=$s(n);r=$s(r)}s=t(n,r)}return s}}function xo(t){return Fo((function(e){e=Si(e,Ni(Bo()));return ws((function(i){var n=this;return t(e,(function(t){return gi(t,n,i)}))}))}))}function zo(t,e){e=e===i?" ":Os(e);var n=e.length;if(n<2){return n?ys(e,t):e}var r=ys(e,Oe(t/vn(e)));return rn(e)?Hs(pn(r),0,t).join(""):r.slice(0,t)}function Co(t,e,i,n){var r=e&b,s=po(t);function o(){var e=-1,a=arguments.length,c=-1,l=n.length,u=F(l+a),h=this&&this!==si&&this instanceof o?s:t;while(++c<l){u[c]=n[c]}while(a--){u[c++]=arguments[++e]}return gi(h,r?i:this,u)}return o}function So(t){return function(e,n,r){if(r&&typeof r!="number"&&aa(e,n,r)){n=r=i}e=Nu(e);if(n===i){n=e;e=0}else{n=Nu(n)}r=r===i?e<n?1:-1:Nu(r);return ks(e,n,r,t)}}function Io(t){return function(e,i){if(!(typeof e=="string"&&typeof i=="string")){e=Gu(e);i=Gu(i)}return t(e,i)}}function Mo(t,e,n,r,s,o,a,c,l,u){var h=e&y,f=h?a:i,d=h?i:a,v=h?o:i,p=h?i:o;e|=h?m:x;e&=~(h?x:m);if(!(e&k)){e&=-4}var b=[t,e,s,v,f,p,d,c,l,u];var g=n.apply(i,b);if(ua(t)){Ca(g,b)}g.placeholder=r;return Ma(g,t,e)}function jo(t){var e=ee[t];return function(t,i){t=Gu(t);i=i==null?0:Ke(Xu(i),292);if(i&&De(t)){var n=(Qu(t)+"e").split("e"),r=e(n[0]+"e"+(+n[1]+i));n=(Qu(r)+"e").split("e");return+(n[0]+"e"+(+n[1]-i))}return e(t)}}var _o=!(ni&&1/un(new ni([,-0]))[1]==O)?Pf:function(t){return new ni(t)};function To(t){return function(e){var i=Zo(e);if(i==Z){return an(e)}if(i==rt){return hn(e)}return Hi(e,t(e))}}function Ao(t,e,n,r,s,a,c,l){var u=e&g;if(!u&&typeof t!="function"){throw new se(o)}var h=r?r.length:0;if(!h){e&=-97;r=s=i}c=c===i?c:Le(Xu(c),0);l=l===i?l:Xu(l);h-=s?s.length:0;if(e&x){var f=r,d=s;r=s=i}var v=u?i:Uo(t);var p=[t,e,n,r,s,f,d,a,c,l];if(v){ga(p,v)}t=p[0];e=p[1];n=p[2];r=p[3];s=p[4];l=p[9]=p[9]===i?u?0:t.length:Le(p[9]-h,0);if(!l&&e&(y|w)){e&=-25}if(!e||e==b){var k=ho(t,e,n)}else if(e==y||e==w){k=bo(t,e,l)}else if((e==m||e==(b|m))&&!s.length){k=Co(t,e,n,r)}else{k=yo.apply(i,p)}var z=v?Cs:Ca;return Ma(z(k,p),t,e)}function $o(t,e,n,r){if(t===i||ru(t,ce[n])&&!he.call(r,n)){return e}return t}function Oo(t,e,n,r,s,o){if(Cu(t)&&Cu(e)){o.set(e,t);cs(t,e,i,Oo,o);o["delete"](e)}return t}function Eo(t){return Eu(t)?i:t}function Wo(t,e,n,r,s,o){var a=n&v,c=t.length,l=e.length;if(c!=l&&!(a&&l>c)){return false}var u=o.get(t);var h=o.get(e);if(u&&h){return u==e&&h==t}var f=-1,d=true,b=n&p?new qn:i;o.set(t,e);o.set(e,t);while(++f<c){var g=t[f],k=e[f];if(r){var y=a?r(k,g,f,e,t,o):r(g,k,f,t,e,o)}if(y!==i){if(y){continue}d=false;break}if(b){if(!_i(e,(function(t,e){if(!qi(b,e)&&(g===t||s(g,t,n,r,o))){return b.push(e)}}))){d=false;break}}else if(!(g===k||s(g,k,n,r,o))){d=false;break}}o["delete"](t);o["delete"](e);return d}function Ro(t,e,i,n,r,s,o){switch(i){case ht:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset){return false}t=t.buffer;e=e.buffer;case ut:if(t.byteLength!=e.byteLength||!s(new we(t),new we(e))){return false}return true;case H:case Y:case J:return ru(+t,+e);case X:return t.name==e.name&&t.message==e.message;case nt:case st:return t==e+"";case Z:var a=an;case rt:var c=n&v;a||(a=un);if(t.size!=e.size&&!c){return false}var l=o.get(t);if(l){return l==e}n|=p;o.set(t,e);var u=Wo(a(t),a(e),n,r,s,o);o["delete"](t);return u;case ot:if(yn){return yn.call(t)==yn.call(e)}}return false}function Do(t,e,n,r,s,o){var a=n&v,c=Po(t),l=c.length,u=Po(e),h=u.length;if(l!=h&&!a){return false}var f=l;while(f--){var d=c[f];if(!(a?d in e:he.call(e,d))){return false}}var p=o.get(t);var b=o.get(e);if(p&&b){return p==e&&b==t}var g=true;o.set(t,e);o.set(e,t);var k=a;while(++f<l){d=c[f];var y=t[d],w=e[d];if(r){var m=a?r(w,y,d,e,t,o):r(y,w,d,t,e,o)}if(!(m===i?y===w||s(y,w,n,r,o):m)){g=false;break}k||(k=d=="constructor")}if(g&&!k){var x=t.constructor,z=e.constructor;if(x!=z&&("constructor"in t&&"constructor"in e)&&!(typeof x=="function"&&x instanceof x&&typeof z=="function"&&z instanceof z)){g=false}}o["delete"](t);o["delete"](e);return g}function Fo(t){return Ia(wa(t,i,Xa),t+"")}function Po(t){return Wr(t,xh,qo)}function Lo(t){return Wr(t,zh,Go)}var Uo=!ai?Pf:function(t){return ai.get(t)};function Vo(t){var e=t.name+"",i=li[e],n=he.call(li,e)?i.length:0;while(n--){var r=i[n],s=r.func;if(s==null||s==t){return r.name}}return e}function Ko(t){var e=he.call(zn,"placeholder")?zn:t;return e.placeholder}function Bo(){var t=zn.iteratee||$f;t=t===$f?es:t;return arguments.length?t(arguments[0],arguments[1]):t}function Ho(t,e){var i=t.__data__;return la(e)?i[typeof e=="string"?"string":"hash"]:i.map}function Yo(t){var e=xh(t),i=e.length;while(i--){var n=e[i],r=t[n];e[i]=[n,r,va(r)]}return e}function No(t,e){var n=nn(t,e);return Zr(n)?n:i}function Xo(t){var e=he.call(t,je),n=t[je];try{t[je]=i;var r=true}catch(t){}var s=ve.call(t);if(r){if(e){t[je]=n}else{delete t[je]}}return s}var qo=!We?Xf:function(t){if(t==null){return[]}t=ie(t);return xi(We(t),(function(e){return Ce.call(t,e)}))};var Go=!We?Xf:function(t){var e=[];while(t){Ii(e,qo(t));t=xe(t)}return e};var Zo=Rr;if(Je&&Zo(new Je(new ArrayBuffer(1)))!=ht||Qe&&Zo(new Qe)!=Z||ti&&Zo(ti.resolve())!=et||ni&&Zo(new ni)!=rt||ri&&Zo(new ri)!=ct){Zo=function(t){var e=Rr(t),n=e==tt?t.constructor:i,r=n?$a(n):"";if(r){switch(r){case ui:return ht;case Ti:return Z;case Ai:return et;case Li:return rt;case fn:return ct}}return e}}function Jo(t,e,i){var n=-1,r=i.length;while(++n<r){var s=i[n],o=s.size;switch(s.type){case"drop":t+=o;break;case"dropRight":e-=o;break;case"take":e=Ke(e,t+o);break;case"takeRight":t=Le(t,e-o);break}}return{start:t,end:e}}function Qo(t){var e=t.match(Pt);return e?e[1].split(Lt):[]}function ta(t,e,i){e=Ks(e,t);var n=-1,r=e.length,s=false;while(++n<r){var o=Aa(e[n]);if(!(s=t!=null&&i(t,o))){break}t=t[o]}if(s||++n!=r){return s}r=t==null?0:t.length;return!!r&&zu(r)&&oa(o,r)&&(cu(t)||au(t))}function ea(t){var e=t.length,i=new t.constructor(e);if(e&&typeof t[0]=="string"&&he.call(t,"index")){i.index=t.index;i.input=t.input}return i}function ia(t){return typeof t.constructor=="function"&&!da(t)?Cn(xe(t)):{}}function na(t,e,i){var n=t.constructor;switch(e){case ut:return Xs(t);case H:case Y:return new n(+t);case ht:return qs(t,i);case ft:case dt:case vt:case pt:case bt:case gt:case kt:case yt:case wt:return Js(t,i);case Z:return new n;case J:case st:return new n(t);case nt:return Gs(t);case rt:return new n;case ot:return Zs(t)}}function ra(t,e){var i=e.length;if(!i){return t}var n=i-1;e[n]=(i>1?"& ":"")+e[n];e=e.join(i>2?", ":" ");return t.replace(Ft,"{\n/* [wrapped with "+e+"] */\n")}function sa(t){return cu(t)||au(t)||!!(Ie&&t&&t[Ie])}function oa(t,e){var i=typeof t;e=e==null?E:e;return!!e&&(i=="number"||i!="symbol"&&Gt.test(t))&&(t>-1&&t%1==0&&t<e)}function aa(t,e,i){if(!Cu(i)){return false}var n=typeof e;if(n=="number"?uu(i)&&oa(e,i.length):n=="string"&&e in i){return ru(i[e],t)}return false}function ca(t,e){if(cu(t)){return false}var i=typeof t;if(i=="number"||i=="symbol"||i=="boolean"||t==null||Pu(t)){return true}return $t.test(t)||!At.test(t)||e!=null&&t in ie(e)}function la(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function ua(t){var e=Vo(t),i=zn[e];if(typeof i!="function"||!(e in Mn.prototype)){return false}if(t===i){return true}var n=Uo(i);return!!n&&t===n[0]}function ha(t){return!!de&&de in t}var fa=le?mu:qf;function da(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||ce;return t===i}function va(t){return t===t&&!Cu(t)}function pa(t,e){return function(n){if(n==null){return false}return n[t]===e&&(e!==i||t in ie(n))}}function ba(t){var e=Ll(t,(function(t){if(i.size===l){i.clear()}return t}));var i=e.cache;return e}function ga(t,e){var i=t[1],n=e[1],r=i|n,s=r<(b|g|z);var o=n==z&&i==y||n==z&&i==C&&t[7].length<=e[8]||n==(z|C)&&e[7].length<=e[8]&&i==y;if(!(s||o)){return t}if(n&b){t[2]=e[2];r|=i&b?0:k}var a=e[3];if(a){var c=t[3];t[3]=c?eo(c,a,e[4]):a;t[4]=c?ln(t[3],u):e[4]}a=e[5];if(a){c=t[5];t[5]=c?io(c,a,e[6]):a;t[6]=c?ln(t[5],u):e[6]}a=e[7];if(a){t[7]=a}if(n&z){t[8]=t[8]==null?e[8]:Ke(t[8],e[8])}if(t[9]==null){t[9]=e[9]}t[0]=e[0];t[1]=r;return t}function ka(t){var e=[];if(t!=null){for(var i in ie(t)){e.push(i)}}return e}function ya(t){return ve.call(t)}function wa(t,e,n){e=Le(e===i?t.length-1:e,0);return function(){var i=arguments,r=-1,s=Le(i.length-e,0),o=F(s);while(++r<s){o[r]=i[e+r]}r=-1;var a=F(e+1);while(++r<e){a[r]=i[r]}a[e]=n(o);return gi(t,this,a)}}function ma(t,e){return e.length<2?t:Er(t,Ms(e,0,-1))}function xa(t,e){var n=t.length,r=Ke(e.length,n),s=no(t);while(r--){var o=e[r];t[r]=oa(o,n)?s[o]:i}return t}function za(t,e){if(e==="constructor"&&typeof t[e]==="function"){return}if(e=="__proto__"){return}return t[e]}var Ca=ja(Cs);var Sa=$e||function(t,e){return si.setTimeout(t,e)};var Ia=ja(Ss);function Ma(t,e,i){var n=e+"";return Ia(t,ra(n,Oa(Qo(n),i)))}function ja(t){var e=0,n=0;return function(){var r=Be(),s=_-(r-n);n=r;if(s>0){if(++e>=j){return arguments[0]}}else{e=0}return t.apply(i,arguments)}}function _a(t,e){var n=-1,r=t.length,s=r-1;e=e===i?r:e;while(++n<e){var o=gs(n,s),a=t[o];t[o]=t[n];t[n]=a}t.length=e;return t}var Ta=ba((function(t){var e=[];if(t.charCodeAt(0)===46){e.push("")}t.replace(Ot,(function(t,i,n,r){e.push(n?r.replace(Kt,"$1"):i||t)}));return e}));function Aa(t){if(typeof t=="string"||Pu(t)){return t}var e=t+"";return e=="0"&&1/t==-Infinity?"-0":e}function $a(t){if(t!=null){try{return ue.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Oa(t,e){yi(U,(function(i){var n="_."+i[0];if(e&i[1]&&!zi(t,n)){t.push(n)}}));return t.sort()}function Ea(t){if(t instanceof Mn){return t.clone()}var e=new In(t.__wrapped__,t.__chain__);e.__actions__=no(t.__actions__);e.__index__=t.__index__;e.__values__=t.__values__;return e}function Wa(t,e,n){if(n?aa(t,e,n):e===i){e=1}else{e=Le(Xu(e),0)}var r=t==null?0:t.length;if(!r||e<1){return[]}var s=0,o=0,a=F(Oe(r/e));while(s<r){a[o++]=Ms(t,s,s+=e)}return a}function Ra(t){var e=-1,i=t==null?0:t.length,n=0,r=[];while(++e<i){var s=t[e];if(s){r[n++]=s}}return r}function Da(){var t=arguments.length;if(!t){return[]}var e=F(t-1),i=arguments[0],n=t;while(n--){e[n-1]=arguments[n]}return Ii(cu(i)?no(i):[i],jr(e,1))}var Fa=ws((function(t,e){return hu(t)?mr(t,jr(e,1,hu,true)):[]}));var Pa=ws((function(t,e){var n=sc(e);if(hu(n)){n=i}return hu(t)?mr(t,jr(e,1,hu,true),Bo(n,2)):[]}));var La=ws((function(t,e){var n=sc(e);if(hu(n)){n=i}return hu(t)?mr(t,jr(e,1,hu,true),i,n):[]}));function Ua(t,e,n){var r=t==null?0:t.length;if(!r){return[]}e=n||e===i?1:Xu(e);return Ms(t,e<0?0:e,r)}function Va(t,e,n){var r=t==null?0:t.length;if(!r){return[]}e=n||e===i?1:Xu(e);e=r-e;return Ms(t,0,e<0?0:e)}function Ka(t,e){return t&&t.length?Ds(t,Bo(e,3),true,true):[]}function Ba(t,e){return t&&t.length?Ds(t,Bo(e,3),true):[]}function Ha(t,e,i,n){var r=t==null?0:t.length;if(!r){return[]}if(i&&typeof i!="number"&&aa(t,e,i)){i=0;n=r}return Ir(t,e,i,n)}function Ya(t,e,i){var n=t==null?0:t.length;if(!n){return-1}var r=i==null?0:Xu(i);if(r<0){r=Le(n+r,0)}return Ei(t,Bo(e,3),r)}function Na(t,e,n){var r=t==null?0:t.length;if(!r){return-1}var s=r-1;if(n!==i){s=Xu(n);s=n<0?Le(r+s,0):Ke(s,r-1)}return Ei(t,Bo(e,3),s,true)}function Xa(t){var e=t==null?0:t.length;return e?jr(t,1):[]}function qa(t){var e=t==null?0:t.length;return e?jr(t,O):[]}function Ga(t,e){var n=t==null?0:t.length;if(!n){return[]}e=e===i?1:Xu(e);return jr(t,e)}function Za(t){var e=-1,i=t==null?0:t.length,n={};while(++e<i){var r=t[e];n[r[0]]=r[1]}return n}function Ja(t){return t&&t.length?t[0]:i}function Qa(t,e,i){var n=t==null?0:t.length;if(!n){return-1}var r=i==null?0:Xu(i);if(r<0){r=Le(n+r,0)}return Wi(t,e,r)}function tc(t){var e=t==null?0:t.length;return e?Ms(t,0,-1):[]}var ec=ws((function(t){var e=Si(t,Us);return e.length&&e[0]===t[0]?Ur(e):[]}));var ic=ws((function(t){var e=sc(t),n=Si(t,Us);if(e===sc(n)){e=i}else{n.pop()}return n.length&&n[0]===t[0]?Ur(n,Bo(e,2)):[]}));var nc=ws((function(t){var e=sc(t),n=Si(t,Us);e=typeof e=="function"?e:i;if(e){n.pop()}return n.length&&n[0]===t[0]?Ur(n,i,e):[]}));function rc(t,e){return t==null?"":Fe.call(t,e)}function sc(t){var e=t==null?0:t.length;return e?t[e-1]:i}function oc(t,e,n){var r=t==null?0:t.length;if(!r){return-1}var s=r;if(n!==i){s=Xu(n);s=s<0?Le(r+s,0):Ke(s,r-1)}return e===e?dn(t,e,s):Ei(t,Di,s,true)}function ac(t,e){return t&&t.length?us(t,Xu(e)):i}var cc=ws(lc);function lc(t,e){return t&&t.length&&e&&e.length?ps(t,e):t}function uc(t,e,i){return t&&t.length&&e&&e.length?ps(t,e,Bo(i,2)):t}function hc(t,e,n){return t&&t.length&&e&&e.length?ps(t,e,i,n):t}var fc=Fo((function(t,e){var i=t==null?0:t.length,n=pr(t,e);bs(t,Si(e,(function(t){return oa(t,i)?+t:t})).sort(Qs));return n}));function dc(t,e){var i=[];if(!(t&&t.length)){return i}var n=-1,r=[],s=t.length;e=Bo(e,3);while(++n<s){var o=t[n];if(e(o,n,t)){i.push(o);r.push(n)}}bs(t,r);return i}function vc(t){return t==null?t:Ze.call(t)}function pc(t,e,n){var r=t==null?0:t.length;if(!r){return[]}if(n&&typeof n!="number"&&aa(t,e,n)){e=0;n=r}else{e=e==null?0:Xu(e);n=n===i?r:Xu(n)}return Ms(t,e,n)}function bc(t,e){return _s(t,e)}function gc(t,e,i){return Ts(t,e,Bo(i,2))}function kc(t,e){var i=t==null?0:t.length;if(i){var n=_s(t,e);if(n<i&&ru(t[n],e)){return n}}return-1}function yc(t,e){return _s(t,e,true)}function wc(t,e,i){return Ts(t,e,Bo(i,2),true)}function mc(t,e){var i=t==null?0:t.length;if(i){var n=_s(t,e,true)-1;if(ru(t[n],e)){return n}}return-1}function xc(t){return t&&t.length?As(t):[]}function zc(t,e){return t&&t.length?As(t,Bo(e,2)):[]}function Cc(t){var e=t==null?0:t.length;return e?Ms(t,1,e):[]}function Sc(t,e,n){if(!(t&&t.length)){return[]}e=n||e===i?1:Xu(e);return Ms(t,0,e<0?0:e)}function Ic(t,e,n){var r=t==null?0:t.length;if(!r){return[]}e=n||e===i?1:Xu(e);e=r-e;return Ms(t,e<0?0:e,r)}function Mc(t,e){return t&&t.length?Ds(t,Bo(e,3),false,true):[]}function jc(t,e){return t&&t.length?Ds(t,Bo(e,3)):[]}var _c=ws((function(t){return Es(jr(t,1,hu,true))}));var Tc=ws((function(t){var e=sc(t);if(hu(e)){e=i}return Es(jr(t,1,hu,true),Bo(e,2))}));var Ac=ws((function(t){var e=sc(t);e=typeof e=="function"?e:i;return Es(jr(t,1,hu,true),i,e)}));function $c(t){return t&&t.length?Es(t):[]}function Oc(t,e){return t&&t.length?Es(t,Bo(e,2)):[]}function Ec(t,e){e=typeof e=="function"?e:i;return t&&t.length?Es(t,i,e):[]}function Wc(t){if(!(t&&t.length)){return[]}var e=0;t=xi(t,(function(t){if(hu(t)){e=Le(t.length,e);return true}}));return Bi(e,(function(e){return Si(t,Pi(e))}))}function Rc(t,e){if(!(t&&t.length)){return[]}var n=Wc(t);if(e==null){return n}return Si(n,(function(t){return gi(e,i,t)}))}var Dc=ws((function(t,e){return hu(t)?mr(t,e):[]}));var Fc=ws((function(t){return Ps(xi(t,hu))}));var Pc=ws((function(t){var e=sc(t);if(hu(e)){e=i}return Ps(xi(t,hu),Bo(e,2))}));var Lc=ws((function(t){var e=sc(t);e=typeof e=="function"?e:i;return Ps(xi(t,hu),i,e)}));var Uc=ws(Wc);function Vc(t,e){return Ls(t||[],e||[],lr)}function Kc(t,e){return Ls(t||[],e||[],zs)}var Bc=ws((function(t){var e=t.length,n=e>1?t[e-1]:i;n=typeof n=="function"?(t.pop(),n):i;return Rc(t,n)}));function Hc(t){var e=zn(t);e.__chain__=true;return e}function Yc(t,e){e(t);return t}function Nc(t,e){return e(t)}var Xc=Fo((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,s=function(e){return pr(e,t)};if(e>1||this.__actions__.length||!(r instanceof Mn)||!oa(n)){return this.thru(s)}r=r.slice(n,+n+(e?1:0));r.__actions__.push({func:Nc,args:[s],thisArg:i});return new In(r,this.__chain__).thru((function(t){if(e&&!t.length){t.push(i)}return t}))}));function qc(){return Hc(this)}function Gc(){return new In(this.value(),this.__chain__)}function Zc(){if(this.__values__===i){this.__values__=Yu(this.value())}var t=this.__index__>=this.__values__.length,e=t?i:this.__values__[this.__index__++];return{done:t,value:e}}function Jc(){return this}function Qc(t){var e,n=this;while(n instanceof Sn){var r=Ea(n);r.__index__=0;r.__values__=i;if(e){s.__wrapped__=r}else{e=r}var s=r;n=n.__wrapped__}s.__wrapped__=t;return e}function tl(){var t=this.__wrapped__;if(t instanceof Mn){var e=t;if(this.__actions__.length){e=new Mn(this)}e=e.reverse();e.__actions__.push({func:Nc,args:[vc],thisArg:i});return new In(e,this.__chain__)}return this.thru(vc)}function el(){return Fs(this.__wrapped__,this.__actions__)}var il=ao((function(t,e,i){if(he.call(t,i)){++t[i]}else{vr(t,i,1)}}));function nl(t,e,n){var r=cu(t)?mi:Cr;if(n&&aa(t,e,n)){e=i}return r(t,Bo(e,3))}function rl(t,e){var i=cu(t)?xi:Mr;return i(t,Bo(e,3))}var sl=go(Ya);var ol=go(Na);function al(t,e){return jr(bl(t,e),1)}function cl(t,e){return jr(bl(t,e),O)}function ll(t,e,n){n=n===i?1:Xu(n);return jr(bl(t,e),n)}function ul(t,e){var i=cu(t)?yi:xr;return i(t,Bo(e,3))}function hl(t,e){var i=cu(t)?wi:zr;return i(t,Bo(e,3))}var fl=ao((function(t,e,i){if(he.call(t,i)){t[i].push(e)}else{vr(t,i,[e])}}));function dl(t,e,i,n){t=uu(t)?t:Uh(t);i=i&&!n?Xu(i):0;var r=t.length;if(i<0){i=Le(r+i,0)}return Fu(t)?i<=r&&t.indexOf(e,i)>-1:!!r&&Wi(t,e,i)>-1}var vl=ws((function(t,e,i){var n=-1,r=typeof e=="function",s=uu(t)?F(t.length):[];xr(t,(function(t){s[++n]=r?gi(e,t,i):Kr(t,e,i)}));return s}));var pl=ao((function(t,e,i){vr(t,i,e)}));function bl(t,e){var i=cu(t)?Si:ss;return i(t,Bo(e,3))}function gl(t,e,n,r){if(t==null){return[]}if(!cu(e)){e=e==null?[]:[e]}n=r?i:n;if(!cu(n)){n=n==null?[]:[n]}return hs(t,e,n)}var kl=ao((function(t,e,i){t[i?0:1].push(e)}),(function(){return[[],[]]}));function yl(t,e,i){var n=cu(t)?Mi:Ui,r=arguments.length<3;return n(t,Bo(e,4),i,r,xr)}function wl(t,e,i){var n=cu(t)?ji:Ui,r=arguments.length<3;return n(t,Bo(e,4),i,r,zr)}function ml(t,e){var i=cu(t)?xi:Mr;return i(t,Ul(Bo(e,3)))}function xl(t){var e=cu(t)?sr:ms;return e(t)}function zl(t,e,n){if(n?aa(t,e,n):e===i){e=1}else{e=Xu(e)}var r=cu(t)?or:xs;return r(t,e)}function Cl(t){var e=cu(t)?ar:Is;return e(t)}function Sl(t){if(t==null){return 0}if(uu(t)){return Fu(t)?vn(t):t.length}var e=Zo(t);if(e==Z||e==rt){return t.size}return is(t).length}function Il(t,e,n){var r=cu(t)?_i:js;if(n&&aa(t,e,n)){e=i}return r(t,Bo(e,3))}var Ml=ws((function(t,e){if(t==null){return[]}var i=e.length;if(i>1&&aa(t,e[0],e[1])){e=[]}else if(i>2&&aa(e[0],e[1],e[2])){e=[e[0]]}return hs(t,jr(e,1),[])}));var jl=Ae||function(){return si.Date.now()};function _l(t,e){if(typeof e!="function"){throw new se(o)}t=Xu(t);return function(){if(--t<1){return e.apply(this,arguments)}}}function Tl(t,e,n){e=n?i:e;e=t&&e==null?t.length:e;return Ao(t,z,i,i,i,i,e)}function Al(t,e){var n;if(typeof e!="function"){throw new se(o)}t=Xu(t);return function(){if(--t>0){n=e.apply(this,arguments)}if(t<=1){e=i}return n}}var $l=ws((function(t,e,i){var n=b;if(i.length){var r=ln(i,Ko($l));n|=m}return Ao(t,n,e,i,r)}));var Ol=ws((function(t,e,i){var n=b|g;if(i.length){var r=ln(i,Ko(Ol));n|=m}return Ao(e,n,t,i,r)}));function El(t,e,n){e=n?i:e;var r=Ao(t,y,i,i,i,i,i,e);r.placeholder=El.placeholder;return r}function Wl(t,e,n){e=n?i:e;var r=Ao(t,w,i,i,i,i,i,e);r.placeholder=Wl.placeholder;return r}function Rl(t,e,n){var r,s,a,c,l,u,h=0,f=false,d=false,v=true;if(typeof t!="function"){throw new se(o)}e=Gu(e)||0;if(Cu(n)){f=!!n.leading;d="maxWait"in n;a=d?Le(Gu(n.maxWait)||0,e):a;v="trailing"in n?!!n.trailing:v}function p(e){var n=r,o=s;r=s=i;h=e;c=t.apply(o,n);return c}function b(t){h=t;l=Sa(y,e);return f?p(t):c}function g(t){var i=t-u,n=t-h,r=e-i;return d?Ke(r,a-n):r}function k(t){var n=t-u,r=t-h;return u===i||n>=e||n<0||d&&r>=a}function y(){var t=jl();if(k(t)){return w(t)}l=Sa(y,g(t))}function w(t){l=i;if(v&&r){return p(t)}r=s=i;return c}function m(){if(l!==i){Ys(l)}h=0;r=u=s=l=i}function x(){return l===i?c:w(jl())}function z(){var t=jl(),n=k(t);r=arguments;s=this;u=t;if(n){if(l===i){return b(u)}if(d){Ys(l);l=Sa(y,e);return p(u)}}if(l===i){l=Sa(y,e)}return c}z.cancel=m;z.flush=x;return z}var Dl=ws((function(t,e){return wr(t,1,e)}));var Fl=ws((function(t,e,i){return wr(t,Gu(e)||0,i)}));function Pl(t){return Ao(t,S)}function Ll(t,e){if(typeof t!="function"||e!=null&&typeof e!="function"){throw new se(o)}var i=function(){var n=arguments,r=e?e.apply(this,n):n[0],s=i.cache;if(s.has(r)){return s.get(r)}var o=t.apply(this,n);i.cache=s.set(r,o)||s;return o};i.cache=new(Ll.Cache||Kn);return i}Ll.Cache=Kn;function Ul(t){if(typeof t!="function"){throw new se(o)}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)}}function Vl(t){return Al(2,t)}var Kl=Bs((function(t,e){e=e.length==1&&cu(e[0])?Si(e[0],Ni(Bo())):Si(jr(e,1),Ni(Bo()));var i=e.length;return ws((function(n){var r=-1,s=Ke(n.length,i);while(++r<s){n[r]=e[r].call(this,n[r])}return gi(t,this,n)}))}));var Bl=ws((function(t,e){var n=ln(e,Ko(Bl));return Ao(t,m,i,e,n)}));var Hl=ws((function(t,e){var n=ln(e,Ko(Hl));return Ao(t,x,i,e,n)}));var Yl=Fo((function(t,e){return Ao(t,C,i,i,i,e)}));function Nl(t,e){if(typeof t!="function"){throw new se(o)}e=e===i?e:Xu(e);return ws(t,e)}function Xl(t,e){if(typeof t!="function"){throw new se(o)}e=e==null?0:Le(Xu(e),0);return ws((function(i){var n=i[e],r=Hs(i,0,e);if(n){Ii(r,n)}return gi(t,this,r)}))}function ql(t,e,i){var n=true,r=true;if(typeof t!="function"){throw new se(o)}if(Cu(i)){n="leading"in i?!!i.leading:n;r="trailing"in i?!!i.trailing:r}return Rl(t,e,{leading:n,maxWait:e,trailing:r})}function Gl(t){return Tl(t,1)}function Zl(t,e){return Bl(Vs(e),t)}function Jl(){if(!arguments.length){return[]}var t=arguments[0];return cu(t)?t:[t]}function Ql(t){return gr(t,d)}function tu(t,e){e=typeof e=="function"?e:i;return gr(t,d,e)}function eu(t){return gr(t,h|d)}function iu(t,e){e=typeof e=="function"?e:i;return gr(t,h|d,e)}function nu(t,e){return e==null||yr(t,e,xh(e))}function ru(t,e){return t===e||t!==t&&e!==e}var su=Io(Dr);var ou=Io((function(t,e){return t>=e}));var au=Br(function(){return arguments}())?Br:function(t){return Su(t)&&he.call(t,"callee")&&!Ce.call(t,"callee")};var cu=F.isArray;var lu=hi?Ni(hi):Hr;function uu(t){return t!=null&&zu(t.length)&&!mu(t)}function hu(t){return Su(t)&&uu(t)}function fu(t){return t===true||t===false||Su(t)&&Rr(t)==H}var du=Re||qf;var vu=fi?Ni(fi):Yr;function pu(t){return Su(t)&&t.nodeType===1&&!Eu(t)}function bu(t){if(t==null){return true}if(uu(t)&&(cu(t)||typeof t=="string"||typeof t.splice=="function"||du(t)||Lu(t)||au(t))){return!t.length}var e=Zo(t);if(e==Z||e==rt){return!t.size}if(da(t)){return!is(t).length}for(var i in t){if(he.call(t,i)){return false}}return true}function gu(t,e){return Nr(t,e)}function ku(t,e,n){n=typeof n=="function"?n:i;var r=n?n(t,e):i;return r===i?Nr(t,e,i,n):!!r}function yu(t){if(!Su(t)){return false}var e=Rr(t);return e==X||e==N||typeof t.message=="string"&&typeof t.name=="string"&&!Eu(t)}function wu(t){return typeof t=="number"&&De(t)}function mu(t){if(!Cu(t)){return false}var e=Rr(t);return e==q||e==G||e==B||e==it}function xu(t){return typeof t=="number"&&t==Xu(t)}function zu(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=E}function Cu(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function Su(t){return t!=null&&typeof t=="object"}var Iu=di?Ni(di):qr;function Mu(t,e){return t===e||Gr(t,e,Yo(e))}function ju(t,e,n){n=typeof n=="function"?n:i;return Gr(t,e,Yo(e),n)}function _u(t){return Ou(t)&&t!=+t}function Tu(t){if(fa(t)){throw new Ut(s)}return Zr(t)}function Au(t){return t===null}function $u(t){return t==null}function Ou(t){return typeof t=="number"||Su(t)&&Rr(t)==J}function Eu(t){if(!Su(t)||Rr(t)!=tt){return false}var e=xe(t);if(e===null){return true}var i=he.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&ue.call(i)==pe}var Wu=vi?Ni(vi):Jr;function Ru(t){return xu(t)&&t>=-9007199254740991&&t<=E}var Du=pi?Ni(pi):Qr;function Fu(t){return typeof t=="string"||!cu(t)&&Su(t)&&Rr(t)==st}function Pu(t){return typeof t=="symbol"||Su(t)&&Rr(t)==ot}var Lu=bi?Ni(bi):ts;function Uu(t){return t===i}function Vu(t){return Su(t)&&Zo(t)==ct}function Ku(t){return Su(t)&&Rr(t)==lt}var Bu=Io(rs);var Hu=Io((function(t,e){return t<=e}));function Yu(t){if(!t){return[]}if(uu(t)){return Fu(t)?pn(t):no(t)}if(Me&&t[Me]){return on(t[Me]())}var e=Zo(t),i=e==Z?an:e==rt?un:Uh;return i(t)}function Nu(t){if(!t){return t===0?t:0}t=Gu(t);if(t===O||t===-Infinity){var e=t<0?-1:1;return e*W}return t===t?t:0}function Xu(t){var e=Nu(t),i=e%1;return e===e?i?e-i:e:0}function qu(t){return t?br(Xu(t),0,D):0}function Gu(t){if(typeof t=="number"){return t}if(Pu(t)){return R}if(Cu(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Cu(e)?e+"":e}if(typeof t!="string"){return t===0?t:+t}t=Yi(t);var i=Nt.test(t);return i||qt.test(t)?ii(t.slice(2),i?2:8):Yt.test(t)?R:+t}function Zu(t){return ro(t,zh(t))}function Ju(t){return t?br(Xu(t),-9007199254740991,E):t===0?t:0}function Qu(t){return t==null?"":Os(t)}var th=co((function(t,e){if(da(e)||uu(e)){ro(e,xh(e),t);return}for(var i in e){if(he.call(e,i)){lr(t,i,e[i])}}}));var eh=co((function(t,e){ro(e,zh(e),t)}));var ih=co((function(t,e,i,n){ro(e,zh(e),t,n)}));var nh=co((function(t,e,i,n){ro(e,xh(e),t,n)}));var rh=Fo(pr);function sh(t,e){var i=Cn(t);return e==null?i:fr(i,e)}var oh=ws((function(t,e){t=ie(t);var n=-1;var r=e.length;var s=r>2?e[2]:i;if(s&&aa(e[0],e[1],s)){r=1}while(++n<r){var o=e[n];var a=zh(o);var c=-1;var l=a.length;while(++c<l){var u=a[c];var h=t[u];if(h===i||ru(h,ce[u])&&!he.call(t,u)){t[u]=o[u]}}}return t}));var ah=ws((function(t){t.push(i,Oo);return gi(Mh,i,t)}));function ch(t,e){return Oi(t,Bo(e,3),Ar)}function lh(t,e){return Oi(t,Bo(e,3),$r)}function uh(t,e){return t==null?t:_r(t,Bo(e,3),zh)}function hh(t,e){return t==null?t:Tr(t,Bo(e,3),zh)}function fh(t,e){return t&&Ar(t,Bo(e,3))}function dh(t,e){return t&&$r(t,Bo(e,3))}function vh(t){return t==null?[]:Or(t,xh(t))}function ph(t){return t==null?[]:Or(t,zh(t))}function bh(t,e,n){var r=t==null?i:Er(t,e);return r===i?n:r}function gh(t,e){return t!=null&&ta(t,e,Fr)}function kh(t,e){return t!=null&&ta(t,e,Pr)}var yh=wo((function(t,e,i){if(e!=null&&typeof e.toString!="function"){e=ve.call(e)}t[e]=i}),Mf(Af));var wh=wo((function(t,e,i){if(e!=null&&typeof e.toString!="function"){e=ve.call(e)}if(he.call(t,e)){t[e].push(i)}else{t[e]=[i]}}),Bo);var mh=ws(Kr);function xh(t){return uu(t)?rr(t):is(t)}function zh(t){return uu(t)?rr(t,true):ns(t)}function Ch(t,e){var i={};e=Bo(e,3);Ar(t,(function(t,n,r){vr(i,e(t,n,r),t)}));return i}function Sh(t,e){var i={};e=Bo(e,3);Ar(t,(function(t,n,r){vr(i,n,e(t,n,r))}));return i}var Ih=co((function(t,e,i){cs(t,e,i)}));var Mh=co((function(t,e,i,n){cs(t,e,i,n)}));var jh=Fo((function(t,e){var i={};if(t==null){return i}var n=false;e=Si(e,(function(e){e=Ks(e,t);n||(n=e.length>1);return e}));ro(t,Lo(t),i);if(n){i=gr(i,h|f|d,Eo)}var r=e.length;while(r--){Ws(i,e[r])}return i}));function _h(t,e){return Ah(t,Ul(Bo(e)))}var Th=Fo((function(t,e){return t==null?{}:fs(t,e)}));function Ah(t,e){if(t==null){return{}}var i=Si(Lo(t),(function(t){return[t]}));e=Bo(e);return ds(t,i,(function(t,i){return e(t,i[0])}))}function $h(t,e,n){e=Ks(e,t);var r=-1,s=e.length;if(!s){s=1;t=i}while(++r<s){var o=t==null?i:t[Aa(e[r])];if(o===i){r=s;o=n}t=mu(o)?o.call(t):o}return t}function Oh(t,e,i){return t==null?t:zs(t,e,i)}function Eh(t,e,n,r){r=typeof r=="function"?r:i;return t==null?t:zs(t,e,n,r)}var Wh=To(xh);var Rh=To(zh);function Dh(t,e,i){var n=cu(t),r=n||du(t)||Lu(t);e=Bo(e,4);if(i==null){var s=t&&t.constructor;if(r){i=n?new s:[]}else if(Cu(t)){i=mu(s)?Cn(xe(t)):{}}else{i={}}}(r?yi:Ar)(t,(function(t,n,r){return e(i,t,n,r)}));return i}function Fh(t,e){return t==null?true:Ws(t,e)}function Ph(t,e,i){return t==null?t:Rs(t,e,Vs(i))}function Lh(t,e,n,r){r=typeof r=="function"?r:i;return t==null?t:Rs(t,e,Vs(n),r)}function Uh(t){return t==null?[]:Xi(t,xh(t))}function Vh(t){return t==null?[]:Xi(t,zh(t))}function Kh(t,e,n){if(n===i){n=e;e=i}if(n!==i){n=Gu(n);n=n===n?n:0}if(e!==i){e=Gu(e);e=e===e?e:0}return br(Gu(t),e,n)}function Bh(t,e,n){e=Nu(e);if(n===i){n=e;e=0}else{n=Nu(n)}t=Gu(t);return Lr(t,e,n)}function Hh(t,e,n){if(n&&typeof n!="boolean"&&aa(t,e,n)){e=n=i}if(n===i){if(typeof e=="boolean"){n=e;e=i}else if(typeof t=="boolean"){n=t;t=i}}if(t===i&&e===i){t=0;e=1}else{t=Nu(t);if(e===i){e=t;t=0}else{e=Nu(e)}}if(t>e){var r=t;t=e;e=r}if(n||t%1||e%1){var s=Ye();return Ke(t+s*(e-t+ei("1e-"+((s+"").length-1))),e)}return gs(t,e)}var Yh=vo((function(t,e,i){e=e.toLowerCase();return t+(i?Nh(e):e)}));function Nh(t){return mf(Qu(t).toLowerCase())}function Xh(t){t=Qu(t);return t&&t.replace(Zt,Qi).replace(Ve,"")}function qh(t,e,n){t=Qu(t);e=Os(e);var r=t.length;n=n===i?r:br(Xu(n),0,r);var s=n;n-=e.length;return n>=0&&t.slice(n,s)==e}function Gh(t){t=Qu(t);return t&&Mt.test(t)?t.replace(St,tn):t}function Zh(t){t=Qu(t);return t&&Wt.test(t)?t.replace(Et,"\\$&"):t}var Jh=vo((function(t,e,i){return t+(i?"-":"")+e.toLowerCase()}));var Qh=vo((function(t,e,i){return t+(i?" ":"")+e.toLowerCase()}));var tf=fo("toLowerCase");function ef(t,e,i){t=Qu(t);e=Xu(e);var n=e?vn(t):0;if(!e||n>=e){return t}var r=(e-n)/2;return zo(Ee(r),i)+t+zo(Oe(r),i)}function nf(t,e,i){t=Qu(t);e=Xu(e);var n=e?vn(t):0;return e&&n<e?t+zo(e-n,i):t}function rf(t,e,i){t=Qu(t);e=Xu(e);var n=e?vn(t):0;return e&&n<e?zo(e-n,i)+t:t}function sf(t,e,i){if(i||e==null){e=0}else if(e){e=+e}return He(Qu(t).replace(Rt,""),e||0)}function of(t,e,n){if(n?aa(t,e,n):e===i){e=1}else{e=Xu(e)}return ys(Qu(t),e)}function af(){var t=arguments,e=Qu(t[0]);return t.length<3?e:e.replace(t[1],t[2])}var cf=vo((function(t,e,i){return t+(i?"_":"")+e.toLowerCase()}));function lf(t,e,n){if(n&&typeof n!="number"&&aa(t,e,n)){e=n=i}n=n===i?D:n>>>0;if(!n){return[]}t=Qu(t);if(t&&(typeof e=="string"||e!=null&&!Wu(e))){e=Os(e);if(!e&&rn(t)){return Hs(pn(t),0,n)}}return t.split(e,n)}var uf=vo((function(t,e,i){return t+(i?" ":"")+mf(e)}));function hf(t,e,i){t=Qu(t);i=i==null?0:br(Xu(i),0,t.length);e=Os(e);return t.slice(i,i+e.length)==e}function ff(t,e,n){var r=zn.templateSettings;if(n&&aa(t,e,n)){e=i}t=Qu(t);e=ih({},e,r,$o);var s=ih({},e.imports,r.imports,$o),o=xh(s),c=Xi(s,o);var l,u,h=0,f=e.interpolate||Jt,d="__p += '";var v=ne((e.escape||Jt).source+"|"+f.source+"|"+(f===Tt?Bt:Jt).source+"|"+(e.evaluate||Jt).source+"|$","g");var p="//# sourceURL="+(he.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Xe+"]")+"\n";t.replace(v,(function(e,i,n,r,s,o){n||(n=r);d+=t.slice(h,o).replace(Qt,en);if(i){l=true;d+="' +\n__e("+i+") +\n'"}if(s){u=true;d+="';\n"+s+";\n__p += '"}if(n){d+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"}h=o+e.length;return e}));d+="';\n";var b=he.call(e,"variable")&&e.variable;if(!b){d="with (obj) {\n"+d+"\n}\n"}else if(Vt.test(b)){throw new Ut(a)}d=(u?d.replace(mt,""):d).replace(xt,"$1").replace(zt,"$1;");d="function("+(b||"obj")+") {\n"+(b?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(l?", __e = _.escape":"")+(u?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=zf((function(){return te(o,p+"return "+d).apply(i,c)}));g.source=d;if(yu(g)){throw g}return g}function df(t){return Qu(t).toLowerCase()}function vf(t){return Qu(t).toUpperCase()}function pf(t,e,n){t=Qu(t);if(t&&(n||e===i)){return Yi(t)}if(!t||!(e=Os(e))){return t}var r=pn(t),s=pn(e),o=Gi(r,s),a=Zi(r,s)+1;return Hs(r,o,a).join("")}function bf(t,e,n){t=Qu(t);if(t&&(n||e===i)){return t.slice(0,bn(t)+1)}if(!t||!(e=Os(e))){return t}var r=pn(t),s=Zi(r,pn(e))+1;return Hs(r,0,s).join("")}function gf(t,e,n){t=Qu(t);if(t&&(n||e===i)){return t.replace(Rt,"")}if(!t||!(e=Os(e))){return t}var r=pn(t),s=Gi(r,pn(e));return Hs(r,s).join("")}function kf(t,e){var n=I,r=M;if(Cu(e)){var s="separator"in e?e.separator:s;n="length"in e?Xu(e.length):n;r="omission"in e?Os(e.omission):r}t=Qu(t);var o=t.length;if(rn(t)){var a=pn(t);o=a.length}if(n>=o){return t}var c=n-vn(r);if(c<1){return r}var l=a?Hs(a,0,c).join(""):t.slice(0,c);if(s===i){return l+r}if(a){c+=l.length-c}if(Wu(s)){if(t.slice(c).search(s)){var u,h=l;if(!s.global){s=ne(s.source,Qu(Ht.exec(s))+"g")}s.lastIndex=0;while(u=s.exec(h)){var f=u.index}l=l.slice(0,f===i?c:f)}}else if(t.indexOf(Os(s),c)!=c){var d=l.lastIndexOf(s);if(d>-1){l=l.slice(0,d)}}return l+r}function yf(t){t=Qu(t);return t&&It.test(t)?t.replace(Ct,gn):t}var wf=vo((function(t,e,i){return t+(i?" ":"")+e.toUpperCase()}));var mf=fo("toUpperCase");function xf(t,e,n){t=Qu(t);e=n?i:e;if(e===i){return sn(t)?wn(t):$i(t)}return t.match(e)||[]}var zf=ws((function(t,e){try{return gi(t,i,e)}catch(t){return yu(t)?t:new Ut(t)}}));var Cf=Fo((function(t,e){yi(e,(function(e){e=Aa(e);vr(t,e,$l(t[e],t))}));return t}));function Sf(t){var e=t==null?0:t.length,i=Bo();t=!e?[]:Si(t,(function(t){if(typeof t[1]!="function"){throw new se(o)}return[i(t[0]),t[1]]}));return ws((function(i){var n=-1;while(++n<e){var r=t[n];if(gi(r[0],this,i)){return gi(r[1],this,i)}}}))}function If(t){return kr(gr(t,h))}function Mf(t){return function(){return t}}function jf(t,e){return t==null||t!==t?e:t}var _f=ko();var Tf=ko(true);function Af(t){return t}function $f(t){return es(typeof t=="function"?t:gr(t,h))}function Of(t){return os(gr(t,h))}function Ef(t,e){return as(t,gr(e,h))}var Wf=ws((function(t,e){return function(i){return Kr(i,t,e)}}));var Rf=ws((function(t,e){return function(i){return Kr(t,i,e)}}));function Df(t,e,i){var n=xh(e),r=Or(e,n);if(i==null&&!(Cu(e)&&(r.length||!n.length))){i=e;e=t;t=this;r=Or(e,xh(e))}var s=!(Cu(i)&&"chain"in i)||!!i.chain,o=mu(t);yi(r,(function(i){var n=e[i];t[i]=n;if(o){t.prototype[i]=function(){var e=this.__chain__;if(s||e){var i=t(this.__wrapped__),r=i.__actions__=no(this.__actions__);r.push({func:n,args:arguments,thisArg:t});i.__chain__=e;return i}return n.apply(t,Ii([this.value()],arguments))}}}));return t}function Ff(){if(si._===this){si._=be}return this}function Pf(){}function Lf(t){t=Xu(t);return ws((function(e){return us(e,t)}))}var Uf=xo(Si);var Vf=xo(mi);var Kf=xo(_i);function Bf(t){return ca(t)?Pi(Aa(t)):vs(t)}function Hf(t){return function(e){return t==null?i:Er(t,e)}}var Yf=So();var Nf=So(true);function Xf(){return[]}function qf(){return false}function Gf(){return{}}function Zf(){return""}function Jf(){return true}function Qf(t,e){t=Xu(t);if(t<1||t>E){return[]}var i=D,n=Ke(t,D);e=Bo(e);t-=D;var r=Bi(n,e);while(++i<t){e(i)}return r}function td(t){if(cu(t)){return Si(t,Aa)}return Pu(t)?[t]:no(Ta(Qu(t)))}function ed(t){var e=++fe;return Qu(t)+e}var id=mo((function(t,e){return t+e}),0);var nd=jo("ceil");var rd=mo((function(t,e){return t/e}),1);var sd=jo("floor");function od(t){return t&&t.length?Sr(t,Af,Dr):i}function ad(t,e){return t&&t.length?Sr(t,Bo(e,2),Dr):i}function cd(t){return Fi(t,Af)}function ld(t,e){return Fi(t,Bo(e,2))}function ud(t){return t&&t.length?Sr(t,Af,rs):i}function hd(t,e){return t&&t.length?Sr(t,Bo(e,2),rs):i}var fd=mo((function(t,e){return t*e}),1);var dd=jo("round");var vd=mo((function(t,e){return t-e}),0);function pd(t){return t&&t.length?Ki(t,Af):0}function bd(t,e){return t&&t.length?Ki(t,Bo(e,2)):0}zn.after=_l;zn.ary=Tl;zn.assign=th;zn.assignIn=eh;zn.assignInWith=ih;zn.assignWith=nh;zn.at=rh;zn.before=Al;zn.bind=$l;zn.bindAll=Cf;zn.bindKey=Ol;zn.castArray=Jl;zn.chain=Hc;zn.chunk=Wa;zn.compact=Ra;zn.concat=Da;zn.cond=Sf;zn.conforms=If;zn.constant=Mf;zn.countBy=il;zn.create=sh;zn.curry=El;zn.curryRight=Wl;zn.debounce=Rl;zn.defaults=oh;zn.defaultsDeep=ah;zn.defer=Dl;zn.delay=Fl;zn.difference=Fa;zn.differenceBy=Pa;zn.differenceWith=La;zn.drop=Ua;zn.dropRight=Va;zn.dropRightWhile=Ka;zn.dropWhile=Ba;zn.fill=Ha;zn.filter=rl;zn.flatMap=al;zn.flatMapDeep=cl;zn.flatMapDepth=ll;zn.flatten=Xa;zn.flattenDeep=qa;zn.flattenDepth=Ga;zn.flip=Pl;zn.flow=_f;zn.flowRight=Tf;zn.fromPairs=Za;zn.functions=vh;zn.functionsIn=ph;zn.groupBy=fl;zn.initial=tc;zn.intersection=ec;zn.intersectionBy=ic;zn.intersectionWith=nc;zn.invert=yh;zn.invertBy=wh;zn.invokeMap=vl;zn.iteratee=$f;zn.keyBy=pl;zn.keys=xh;zn.keysIn=zh;zn.map=bl;zn.mapKeys=Ch;zn.mapValues=Sh;zn.matches=Of;zn.matchesProperty=Ef;zn.memoize=Ll;zn.merge=Ih;zn.mergeWith=Mh;zn.method=Wf;zn.methodOf=Rf;zn.mixin=Df;zn.negate=Ul;zn.nthArg=Lf;zn.omit=jh;zn.omitBy=_h;zn.once=Vl;zn.orderBy=gl;zn.over=Uf;zn.overArgs=Kl;zn.overEvery=Vf;zn.overSome=Kf;zn.partial=Bl;zn.partialRight=Hl;zn.partition=kl;zn.pick=Th;zn.pickBy=Ah;zn.property=Bf;zn.propertyOf=Hf;zn.pull=cc;zn.pullAll=lc;zn.pullAllBy=uc;zn.pullAllWith=hc;zn.pullAt=fc;zn.range=Yf;zn.rangeRight=Nf;zn.rearg=Yl;zn.reject=ml;zn.remove=dc;zn.rest=Nl;zn.reverse=vc;zn.sampleSize=zl;zn.set=Oh;zn.setWith=Eh;zn.shuffle=Cl;zn.slice=pc;zn.sortBy=Ml;zn.sortedUniq=xc;zn.sortedUniqBy=zc;zn.split=lf;zn.spread=Xl;zn.tail=Cc;zn.take=Sc;zn.takeRight=Ic;zn.takeRightWhile=Mc;zn.takeWhile=jc;zn.tap=Yc;zn.throttle=ql;zn.thru=Nc;zn.toArray=Yu;zn.toPairs=Wh;zn.toPairsIn=Rh;zn.toPath=td;zn.toPlainObject=Zu;zn.transform=Dh;zn.unary=Gl;zn.union=_c;zn.unionBy=Tc;zn.unionWith=Ac;zn.uniq=$c;zn.uniqBy=Oc;zn.uniqWith=Ec;zn.unset=Fh;zn.unzip=Wc;zn.unzipWith=Rc;zn.update=Ph;zn.updateWith=Lh;zn.values=Uh;zn.valuesIn=Vh;zn.without=Dc;zn.words=xf;zn.wrap=Zl;zn.xor=Fc;zn.xorBy=Pc;zn.xorWith=Lc;zn.zip=Uc;zn.zipObject=Vc;zn.zipObjectDeep=Kc;zn.zipWith=Bc;zn.entries=Wh;zn.entriesIn=Rh;zn.extend=eh;zn.extendWith=ih;Df(zn,zn);zn.add=id;zn.attempt=zf;zn.camelCase=Yh;zn.capitalize=Nh;zn.ceil=nd;zn.clamp=Kh;zn.clone=Ql;zn.cloneDeep=eu;zn.cloneDeepWith=iu;zn.cloneWith=tu;zn.conformsTo=nu;zn.deburr=Xh;zn.defaultTo=jf;zn.divide=rd;zn.endsWith=qh;zn.eq=ru;zn.escape=Gh;zn.escapeRegExp=Zh;zn.every=nl;zn.find=sl;zn.findIndex=Ya;zn.findKey=ch;zn.findLast=ol;zn.findLastIndex=Na;zn.findLastKey=lh;zn.floor=sd;zn.forEach=ul;zn.forEachRight=hl;zn.forIn=uh;zn.forInRight=hh;zn.forOwn=fh;zn.forOwnRight=dh;zn.get=bh;zn.gt=su;zn.gte=ou;zn.has=gh;zn.hasIn=kh;zn.head=Ja;zn.identity=Af;zn.includes=dl;zn.indexOf=Qa;zn.inRange=Bh;zn.invoke=mh;zn.isArguments=au;zn.isArray=cu;zn.isArrayBuffer=lu;zn.isArrayLike=uu;zn.isArrayLikeObject=hu;zn.isBoolean=fu;zn.isBuffer=du;zn.isDate=vu;zn.isElement=pu;zn.isEmpty=bu;zn.isEqual=gu;zn.isEqualWith=ku;zn.isError=yu;zn.isFinite=wu;zn.isFunction=mu;zn.isInteger=xu;zn.isLength=zu;zn.isMap=Iu;zn.isMatch=Mu;zn.isMatchWith=ju;zn.isNaN=_u;zn.isNative=Tu;zn.isNil=$u;zn.isNull=Au;zn.isNumber=Ou;zn.isObject=Cu;zn.isObjectLike=Su;zn.isPlainObject=Eu;zn.isRegExp=Wu;zn.isSafeInteger=Ru;zn.isSet=Du;zn.isString=Fu;zn.isSymbol=Pu;zn.isTypedArray=Lu;zn.isUndefined=Uu;zn.isWeakMap=Vu;zn.isWeakSet=Ku;zn.join=rc;zn.kebabCase=Jh;zn.last=sc;zn.lastIndexOf=oc;zn.lowerCase=Qh;zn.lowerFirst=tf;zn.lt=Bu;zn.lte=Hu;zn.max=od;zn.maxBy=ad;zn.mean=cd;zn.meanBy=ld;zn.min=ud;zn.minBy=hd;zn.stubArray=Xf;zn.stubFalse=qf;zn.stubObject=Gf;zn.stubString=Zf;zn.stubTrue=Jf;zn.multiply=fd;zn.nth=ac;zn.noConflict=Ff;zn.noop=Pf;zn.now=jl;zn.pad=ef;zn.padEnd=nf;zn.padStart=rf;zn.parseInt=sf;zn.random=Hh;zn.reduce=yl;zn.reduceRight=wl;zn.repeat=of;zn.replace=af;zn.result=$h;zn.round=dd;zn.runInContext=t;zn.sample=xl;zn.size=Sl;zn.snakeCase=cf;zn.some=Il;zn.sortedIndex=bc;zn.sortedIndexBy=gc;zn.sortedIndexOf=kc;zn.sortedLastIndex=yc;zn.sortedLastIndexBy=wc;zn.sortedLastIndexOf=mc;zn.startCase=uf;zn.startsWith=hf;zn.subtract=vd;zn.sum=pd;zn.sumBy=bd;zn.template=ff;zn.times=Qf;zn.toFinite=Nu;zn.toInteger=Xu;zn.toLength=qu;zn.toLower=df;zn.toNumber=Gu;zn.toSafeInteger=Ju;zn.toString=Qu;zn.toUpper=vf;zn.trim=pf;zn.trimEnd=bf;zn.trimStart=gf;zn.truncate=kf;zn.unescape=yf;zn.uniqueId=ed;zn.upperCase=wf;zn.upperFirst=mf;zn.each=ul;zn.eachRight=hl;zn.first=Ja;Df(zn,function(){var t={};Ar(zn,(function(e,i){if(!he.call(zn.prototype,i)){t[i]=e}}));return t}(),{chain:false});zn.VERSION=n;yi(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){zn[t].placeholder=zn}));yi(["drop","take"],(function(t,e){Mn.prototype[t]=function(n){n=n===i?1:Le(Xu(n),0);var r=this.__filtered__&&!e?new Mn(this):this.clone();if(r.__filtered__){r.__takeCount__=Ke(n,r.__takeCount__)}else{r.__views__.push({size:Ke(n,D),type:t+(r.__dir__<0?"Right":"")})}return r};Mn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}));yi(["filter","map","takeWhile"],(function(t,e){var i=e+1,n=i==T||i==$;Mn.prototype[t]=function(t){var e=this.clone();e.__iteratees__.push({iteratee:Bo(t,3),type:i});e.__filtered__=e.__filtered__||n;return e}}));yi(["head","last"],(function(t,e){var i="take"+(e?"Right":"");Mn.prototype[t]=function(){return this[i](1).value()[0]}}));yi(["initial","tail"],(function(t,e){var i="drop"+(e?"":"Right");Mn.prototype[t]=function(){return this.__filtered__?new Mn(this):this[i](1)}}));Mn.prototype.compact=function(){return this.filter(Af)};Mn.prototype.find=function(t){return this.filter(t).head()};Mn.prototype.findLast=function(t){return this.reverse().find(t)};Mn.prototype.invokeMap=ws((function(t,e){if(typeof t=="function"){return new Mn(this)}return this.map((function(i){return Kr(i,t,e)}))}));Mn.prototype.reject=function(t){return this.filter(Ul(Bo(t)))};Mn.prototype.slice=function(t,e){t=Xu(t);var n=this;if(n.__filtered__&&(t>0||e<0)){return new Mn(n)}if(t<0){n=n.takeRight(-t)}else if(t){n=n.drop(t)}if(e!==i){e=Xu(e);n=e<0?n.dropRight(-e):n.take(e-t)}return n};Mn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()};Mn.prototype.toArray=function(){return this.take(D)};Ar(Mn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),s=zn[r?"take"+(e=="last"?"Right":""):e],o=r||/^find/.test(e);if(!s){return}zn.prototype[e]=function(){var e=this.__wrapped__,a=r?[1]:arguments,c=e instanceof Mn,l=a[0],u=c||cu(e);var h=function(t){var e=s.apply(zn,Ii([t],a));return r&&f?e[0]:e};if(u&&n&&typeof l=="function"&&l.length!=1){c=u=false}var f=this.__chain__,d=!!this.__actions__.length,v=o&&!f,p=c&&!d;if(!o&&u){e=p?e:new Mn(this);var b=t.apply(e,a);b.__actions__.push({func:Nc,args:[h],thisArg:i});return new In(b,f)}if(v&&p){return t.apply(this,a)}b=this.thru(h);return v?r?b.value()[0]:b.value():b}}));yi(["pop","push","shift","sort","splice","unshift"],(function(t){var e=oe[t],i=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);zn.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var r=this.value();return e.apply(cu(r)?r:[],t)}return this[i]((function(i){return e.apply(cu(i)?i:[],t)}))}}));Ar(Mn.prototype,(function(t,e){var i=zn[e];if(i){var n=i.name+"";if(!he.call(li,n)){li[n]=[]}li[n].push({name:e,func:i})}}));li[yo(i,g).name]=[{name:"wrapper",func:i}];Mn.prototype.clone=jn;Mn.prototype.reverse=_n;Mn.prototype.value=Tn;zn.prototype.at=Xc;zn.prototype.chain=qc;zn.prototype.commit=Gc;zn.prototype.next=Zc;zn.prototype.plant=Qc;zn.prototype.reverse=tl;zn.prototype.toJSON=zn.prototype.valueOf=zn.prototype.value=el;zn.prototype.first=zn.prototype.head;if(Me){zn.prototype[Me]=Jc}return zn};var xn=mn();if(ai){(ai.exports=xn)._=xn;oi._=xn}else{si._=xn}}).call(ot)})(st,st.exports);return st.exports}var lt=ct();class ut{_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=lt.debounce((()=>{this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}),300);this._debounceEndScaling=lt.debounce((()=>{this._core.store.state.isScaling=false;this._core.rerender()}),100)}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=true;this._core.rerender()}handlePointerDown(t){if(t.pointerType==="mouse"){const e=t.clientX-this._core.store.offsetX;const i=t.clientY-this._core.store.offsetY;if(t.button===c.Right){this._core.store.state.isPanning=true;this._core.store.state.startX=e;this._core.store.state.startY=i}}if(t.pointerType==="touch"){const t=Array.from(this._core.store.state.pointers.values());if(t.length===2){const e=this._core.store.currentPath;if(e){this._core.store.state.objects.remove((t=>t.id===e.id))}this._core.store.state.isScaling=true;const i=t[0].clientX-this._core.store.offsetX;const n=t[0].clientY-this._core.store.offsetY;const r=t[1].clientX-this._core.store.offsetX;const s=t[1].clientY-this._core.store.offsetY;this.initialTouchDistance=Math.sqrt(Math.pow(i-r,2)+Math.pow(n-s,2));this.startX=(i+r)/2;this.startY=(n+s)/2;this._core.rerender()}}}handlePointerMove(t){if(t.pointerType==="mouse"){const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const 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;if(this._core.store.state.isPanning){const t=i-this._core.store.state.startX;const e=n-this._core.store.state.startY;this._core.store.state.translateX+=t;this._core.store.state.translateY+=e;this._core.store.state.startX=i;this._core.store.state.startY=n;this._core.store.state.hasViewportChanged=true;this._core.store.state.skipContextMenu=true;this._core.rerender();this._debounceUpdate()}}if(t.pointerType==="touch"){const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const 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=Array.from(this._core.store.state.pointers.values());if(r.length===2){const t=r[0].clientX-this._core.store.offsetX;const e=r[0].clientY-this._core.store.offsetY;const i=r[1].clientX-this._core.store.offsetX;const n=r[1].clientY-this._core.store.offsetY;const s=Math.sqrt(Math.pow(t-i,2)+Math.pow(e-n,2));const o=(t+i)/2;const a=(e+n)/2;const c=s/this.initialTouchDistance;const 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+o-this.startX;this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY}else{const t=(o-this._core.store.state.translateX)*(c-1);const e=(a-this._core.store.state.translateY)*(c-1);this._core.store.state.translateX=this._core.store.state.translateX+o-this.startX-t;this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY-e;this._core.store.state.scale=l;this.initialTouchDistance=s}this.startX=o;this.startY=a;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate()}}}handlePointerUp(t){if(t.pointerType==="mouse"){if(this._core.store.state.isPanning){this._core.store.state.isPanning=false;this._core.rerender()}}if(t.pointerType==="touch"){if(this._core.store.state.pointers.size===0){this._debounceEndScaling()}}}handleWheel(t){t.preventDefault();if(t.ctrlKey===true&&Math.abs(t.deltaY)>0&&Math.abs(t.deltaX)===0){this.handleZoom(t)}if(!t.ctrlKey){this.handlePan(t)}}centerInViewport(t){const{scale:e,viewportWidth:i,viewportHeight:n}=this._core.store.state;const{x:r,y:s,width:o,height:a}=t.rotatedBoundingBox;const c=r+o/2;const l=s+a/2;this._core.store.state.translateX=i/2-c*e;this._core.store.state.translateY=n/2-l*e;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate()}centerFitInViewport(t){const e=this._core.store.state.viewportWidth/(t.rotatedBoundingBox.width*1.1);const i=this._core.store.state.viewportHeight/(t.rotatedBoundingBox.height*1.1);const n=Math.min(e,i,this._core.store.state.scaleMax);const r=Math.max(n,this._core.store.state.scaleMin);this._core.store.state.scale=r;this.centerInViewport(t)}handleZoom(t){this._core.store.state.isScaling=true;const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const 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=1+t.deltaY*-.012;const s=Math.max(.8,Math.min(1.2,r));const o=Math.min(this._core.store.state.scaleMax,Math.max(this._core.store.state.scaleMin,this._core.store.state.scale*s));const a=o/this._core.store.state.scale;const c=(i-this._core.store.state.translateX)*(a-1);const l=(n-this._core.store.state.translateY)*(a-1);this._core.store.state.scale=o;this._core.store.state.translateX=this._core.store.state.translateX-c;this._core.store.state.translateY=this._core.store.state.translateY-l;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate();this._debounceEndScaling()}handlePan(t){const e=.8;this._core.store.state.translateX=this._core.store.state.translateX-t.deltaX*e;this._core.store.state.translateY=this._core.store.state.translateY-t.deltaY*e;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate()}}class ht extends y{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:true,action:t=>t.undo()},{key:"y",ctrl:true,action:t=>t.redo()},{key:"s",ctrl:true,action:()=>this.switchTool("selection")},{key:"b",ctrl:true,action:()=>this.switchTool("brush")},{key:"e",ctrl:true,action:()=>this.switchTool("eraser")},{key:"i",ctrl:true,action:()=>this.switchTool("image")},{key:"x",ctrl:true,action:()=>this.switchTool("text")},{key:"c",ctrl:true,condition:t=>!!t.store.selectionGroup,action:t=>{t.copy();t.rerender()}},{key:"v",ctrl:true,condition:t=>!!t.store.state.copiedObjects&&!t.store.activeText,action:t=>t.paste()},{key:"+",ctrl:true,condition:t=>!!t.store.selectionGroup,action:t=>t.bringForward()},{key:"-",ctrl:true,condition:t=>!!t.store.selectionGroup,action:t=>t.sendBackward()},{key:"*",shift:true,condition:t=>!!t.store.selectionGroup,action:t=>t.bringToFront()},{key:"_",shift:true,condition:t=>!!t.store.selectionGroup,action:t=>t.sendToBack()}];constructor(t){super(t)}switchTool(t){const e=w.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))));if(e){t.preventDefault();e.action(this._core)}}handleKeyUp(t){this._core.store.state.isCtrlKeyPressed=t.ctrlKey}}class ft extends y{globalContextMenuItems=[];objectContextMenuItems=[];constructor(t,e,i){super(t);this.globalContextMenuItems=e;this.objectContextMenuItems=i}handleContextMenu(t){if(!(this._core.store.state.activeTool instanceof l)){return}if(this._core.store.state.skipContextMenu){this._core.store.state.skipContextMenu=false;return}const e=this._core.store.state.activeTool;e?.moveHandler?.cancelPendingDrag();if(this._core.store.selectionBox){this._core.store.state.objects.remove((t=>t instanceof m));this._core.store.state.isSelecting=false}const i=this._core.getObjectFromPointerEvent(t,".object");if(i&&!(i instanceof x)&&!(i instanceof m)){const t=x.create(this._core);t.addOrRemove(i);t.isSelected=true;t.rotation=i.rotation;this._core.store.state.isSelecting=false;const e=this._core.store.selectionGroup;if(e){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;let r=t.clientY-this._core.store.offsetY;const s=150;const o=200;const a=10;if(n+s>window.innerWidth-a){n=window.innerWidth-s-a}if(r+o>window.innerHeight-a){r=window.innerHeight-o-a}n=Math.max(a,n);r=Math.max(a,r);this._core.store.state.contextMenuX=n;this._core.store.state.contextMenuY=r;this._core.store.state.isContextMenuVisible=true;this._core.store.state.isEnabled=false;this._core.rerender()}}const dt={activeWorkspace:null,activeTool:null,copiedObjects:null,objects:null,snapCandidate:null,resizeHandleType:null,lineHandleType:null,hasViewportChanged:false,hasObjectsChanged:false,isReady:false,isEnabled:true,isScaling:false,isPanning:false,isSelecting:false,isResizing:false,isResizeHandleHovered:false,isResizeHandleSelected:false,isRotating:false,isRotationHandleHovered:false,isRotationHandleSelected:false,isLineHandleSelected:false,isLineHandleDragging:false,isDragging:false,isDrawing:false,isErasing:false,isWriting:false,isCtrlKeyPressed:false,isContextMenuVisible:false,contextMenuItems:[],contextMenuX:0,contextMenuY:0,skipContextMenu:false,debugInfo:{showObjectInfo:false,showViewportInfo:false},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 vt extends z{__class__="KritzelCustomElement";element;isInteractive=true;constructor(t){super();if(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 vt(e);i._core=t;i.id=i.generateId();i.workspaceId=t.store.state.activeWorkspace.id;return i}mount(t){if(t===null){return}if(this.isMounted&&this.elementRef===t&&this.element.parentElement===t){return}this.elementRef=t;this.isMounted=true;this.elementRef.innerHTML="";this.elementRef.appendChild(this.element)}resize(t,e,i,n){if(i<=1||n<=1){return}this.width=i;this.height=n;this.translateX=t;this.translateY=e;if(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));Object.assign(t,this);t.id=this.generateId();t.isMounted=false;t.element=this.element.cloneNode(true);return t}}class pt{_core;constructor(t){this._core=t}revive(t){if(t&&typeof t==="object"){if(t.__class__){let e;switch(t.__class__){case"KritzelPath":e=M.create(this._core).deserialize(t);break;case"KritzelLine":e=I.create(this._core).deserialize(t);break;case"KritzelText":e=S.create(this._core,t.fontSize,t.fontFamily).deserialize(t);break;case"KritzelImage":e=C.create(this._core).deserialize(t);break;case"KritzelCustomElement":e=vt.create(this._core).deserialize(t);break;case"KritzelSelectionGroup":e=x.create(this._core).deserialize(t);break;case"KritzelWorkspace":e=b.create(this._core,t).deserialize(t);break;case"KritzelBrushTool":e=new o(this._core);break;case"KritzelEraserTool":e=new d(this._core);break;case"KritzelImageTool":e=new p(this._core);break;case"KritzelSelectionTool":e=new l(this._core);break;case"KritzelTextTool":e=new a(this._core);break;case"KritzelLineTool":e=new f(this._core);break;default:e=t}return e}const e=Array.isArray(t)?[]:{};for(const i in t){if(Object.prototype.hasOwnProperty.call(t,i)){e[i]=this.revive(t[i])}}return e}return t}}class bt{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 false}if(this.objects.length<this.capacity&&this.children===null){this.objects.push(t);return true}if(this.children===null){this.subdivide()}for(const e of this.children){if(e.insert(t)){return true}}return false}update(t){const e=this.objects.findIndex((e=>e.id===t.id));if(e!==-1){this.objects[e]=t;return true}if(this.children!==null){for(const e of this.children){if(e.update(t)){return true}}}return false}remove(t){const e=this.objects.findIndex((e=>t(e)));if(e!==-1){this.objects.splice(e,1)}if(this.children!==null){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){if(this.intersects(i.rotatedBoundingBox,t)){e.push(i)}}if(this.children!==null){for(const i of this.children){e.push(...i.query(t))}}return e}filter(t){const e=this.objects.filter((e=>t(e)));if(this.children!==null){for(const i of this.children){e.push(...i.filter(t))}}return e}allObjects(){const t=[...this.objects];if(this.children!==null){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;const s=n/2;const o=r/2;this.children=[new bt({x:t,y:e,z:i,width:s,height:o},this.capacity),new bt({x:t+s,y:e,z:i,width:s,height:o},this.capacity),new bt({x:t,y:e+o,z:i,width:s,height:o},this.capacity),new bt({x:t+s,y:e+o,z:i,width:s,height:o},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 gt{quadtree;_ydoc=null;_objectsMap=null;_providers=[];_undoManager=null;_reviver=null;_core=null;_workspaceId=null;_isReady=false;_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():false,canRedo:this._undoManager?this._undoManager.canRedo():false,undoStackSize:this._undoManager?this._undoManager.undoStack.length:0,redoStackSize:this._undoManager?this._undoManager.redoStack.length:0}}constructor(){this.quadtree=new bt({x:-Infinity,y:-Infinity,z:0,width:Infinity,height:Infinity},8)}async initialize(t,e,i){this._core=t;this._workspaceId=e;this._reviver=new pt(t);this._ydoc=new j;this._objectsMap=this._ydoc.getMap("objects");const n=`kritzel-workspace-${e}`;const r=i??_;for(const t of r.providers){let e;if(typeof t==="function"){e=new t(n,this._ydoc)}else{e=t.create(n,this._ydoc)}this._providers.push(e)}this._undoManager=new T([this._objectsMap],{captureTimeout:200,trackedOrigins:new Set(["local","temporary"]),ignoreRemoteMapChanges:true});this._undoManager.on("stack-item-added",(t=>{if(t.type==="undo"){if(t.origin==="temporary"){this._temporaryItemsCount++}}}));this._undoManager.on("stack-item-popped",(t=>{if(t.type==="undo"){if(t.origin==="temporary"&&this._temporaryItemsCount>0){this._temporaryItemsCount--}}}));this._objectsMap.observe((t=>{this.handleObjectsChange(t)}));await Promise.all(this._providers.map((t=>t.connect())));this._isReady=true;this.loadFromYjs()}handleObjectsChange(t){if(t.transaction.origin==="local"||t.transaction.origin==="temporary"){this._core?.rerender();return}const e=Array.from(t.keysChanged);const i=[];const n=[];const r=[];e.forEach((e=>{const s=t.changes.keys.get(e);if(s&&s.action==="delete"){r.push(e)}else{const t=this._objectsMap.get(e);if(t){const e=this._reviver.revive(t);if(e instanceof x){n.push(e)}else{i.push(e)}}}}));r.forEach((t=>{this.quadtree.remove((e=>e.id===t))}));i.forEach((t=>{const e=this.quadtree.filter((e=>e.id===t.id)).length>0;if(e){this.quadtree.update(t)}else{this.quadtree.insert(t)}}));n.forEach((t=>{const e=this.quadtree.filter((e=>e.id===t.id)).length>0;if(e){this.quadtree.update(t)}else{this.quadtree.insert(t)}}));this._core?.rerender()}transaction(t){if(this._ydoc){this._ydoc.transact(t,"local")}}loadFromYjs(){if(!this._objectsMap||!this._reviver){return}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 false}this.quadtree.insert(t);if(this._objectsMap&&this.isPersistable(t)){const e=t.serialize();this._ydoc.transact((()=>{this._objectsMap.set(t.id,e)}),"local")}return true}update(t,e={}){if(!t.id){return false}const i=this.quadtree.filter((e=>e.id===t.id)).length>0;if(!i){return false}this.quadtree.update(t);if(this._objectsMap&&this.isPersistable(t)){const i=t.serialize();const n=e.temporary?"temporary":"local";this._ydoc.transact((()=>{this._objectsMap.set(t.id,i)}),n)}return true}remove(t){const e=this.quadtree.filter(t);for(const t of e){this.quadtree.remove((e=>e.id===t.id));if(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){if(t instanceof m){return false}return true}undo(){if(this._undoManager&&this._undoManager.canUndo()){this._undoManager.undo();this._core.engine.emitObjectsChange()}}redo(){if(this._undoManager&&this._undoManager.canRedo()){this._undoManager.redo();this._core.engine.emitObjectsChange()}}canUndo(){return this._undoManager?this._undoManager.canUndo():false}canRedo(){return this._undoManager?this._undoManager.canRedo():false}clearHistory(){if(this._undoManager){this._undoManager.clear();this._temporaryItemsCount=0}}consolidateTemporaryItems(){if(!this._undoManager||this._temporaryItemsCount===0){return}const t=this._undoManager.undoStack.length;if(t===0){this._temporaryItemsCount=0;return}this._undoManager.stopCapturing();const e=Math.min(this._temporaryItemsCount,t);if(e>1){for(let t=0;t<e;t++){if(this._undoManager.canUndo()){this._undoManager.undo()}}this._ydoc.transact((()=>{for(let t=e-1;t>=0;t--){if(this._undoManager.canRedo()){this._undoManager.redo()}}}),"local")}this._temporaryItemsCount=0}clearTemporaryItems(){if(!this._undoManager||this._temporaryItemsCount===0){return}const t=this._undoManager.undoStack.length;const e=Math.min(this._temporaryItemsCount,t);for(let t=0;t<e;t++){if(this._undoManager.undoStack.length>0){this._undoManager.undoStack.pop()}}this._temporaryItemsCount=0}destroy(){this._providers.forEach((t=>t.destroy()));this._providers=[];if(this._ydoc){this._ydoc.destroy()}}}class kt{_state;_listeners=new Map;get state(){return this._state}get currentZIndex(){return Math.max(0,...this._state.objects.filter((t=>!(t instanceof x)&&!(t instanceof m))).map((t=>t.zIndex)))+1}get allObjects(){return this._state.objects.allObjects()}get allNonSelectionObjects(){return this._state.objects.allObjects().filter((t=>!(t instanceof x)&&!(t instanceof m)))}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof x))).filter((t=>t.isSelected))}get selectionBox(){const t=this._state.objects.filter((t=>t instanceof m));return t.length>0?t[0]:null}get selectionGroup(){const t=this._state.objects.filter((t=>t instanceof x));return t.length>0?t[0]:null}get activeText(){const t=this._state.objects.filter((t=>t instanceof S&&t.isEditing));return t.length>0?t[0]:null}get currentPath(){const t=this._state.objects.filter((t=>t instanceof M&&t.isCompleted===false));return t.length>0?t[0]:null}get currentLine(){const t=this._state.objects.filter((t=>t instanceof I&&t.isCompleted===false));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 this._state.isEnabled===false||this._state.isReady===false||this._state.activeWorkspace===null}get isPointerDown(){return this._state.pointers.size>0}constructor(t){this._state=t;this._state.objects=new gt}onStateChange(t,e){if(!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];if(i!==e){this._state[t]=e;if(this._listeners.has(t)){this._listeners.get(t).forEach((n=>n(e,i,String(t))))}}}}class yt{_core;_targetElement=null;_shadowRoot=null;constructor(t){this._core=t}setTargetElement(t){if(this._targetElement){this._targetElement.style.cursor="";this._targetElement.style.removeProperty("--kritzel-pointer-cursor")}this._targetElement=t;if(this._targetElement){this._targetElement.style.setProperty("--kritzel-pointer-cursor",A.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||e.length===0)return;const i=e.find((t=>t.classList.contains("resize-handle-overlay")));if(i){const t=this._core.store.selectionGroup;const e=t?.rotationDegrees??0;const n=i.classList.contains("top-left");const r=i.classList.contains("bottom-right");const s=n||r?-45:45;this._core.store.state.cursor={icon:"move-vertical",rotation:e+s};return}const n=e.find((t=>t.classList.contains("rotation-handle-overlay")));if(n){this._core.store.state.cursor={icon:"hand",iconActive:"hand-grab"};return}const r=e.find((t=>t.classList.contains("selection-line-handle-overlay")));if(r){this._core.store.state.cursor={icon:"hand",iconActive:"hand-grab"};return}this._core.store.state.cursor={icon:"default",iconActive:"default"}}applyCursor(){const t=this._core.store.state;const e=this._core.store.isPointerDown;const i=t.cursor?.icon;const n=t.cursor?.iconActive??i;const r=t.cursor?.rotation;const s=A.getCursor({iconName:e?n:i,rotation:r});if(this._targetElement){this._targetElement.style.cursor=s}}cleanup(){if(this._targetElement){this._targetElement.style.cursor="";this._targetElement.style.removeProperty("--kritzel-pointer-cursor")}this._targetElement=null;this._shadowRoot=null}}class wt{_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 kt(dt);this._appStateMap=new $;this._anchorManager=new O(this);this._cursorManager=new yt(this)}setSyncConfig(t){this._syncConfig=t}async initializeYjs(){await this._appStateMap.initialize(this,this._syncConfig)}loadWorkspacesFromAppState(){return this._appStateMap.allWorkspaces()}saveWorkspaceToAppState(t){if(this._appStateMap.has(t.id)){this._appStateMap.update(t)}else{this._appStateMap.insert(t)}}deleteWorkspaceFromAppState(t){this._appStateMap.remove((e=>e.id===t))}async initializeWorkspace(t){const e=this.loadWorkspacesFromAppState();const i=e.length>0?[...e].sort(((t,e)=>e.updatedAt.getTime()-t.updatedAt.getTime()))[0]:null;let n;if(t){n=t;const i=e.find((e=>e.id===t.id));if(!i){n._core=this;this.saveWorkspaceToAppState(n)}}else if(i){n=i}else{n=new b(E.generateUUID(),"New Workspace");n._core=this;this.saveWorkspaceToAppState(n)}if(this._store.state.objects&&this._store.state.objects.isReady){this._store.state.objects.destroy()}this._store.state.activeWorkspace=n;this._store.state.workspaces=this.loadWorkspacesFromAppState();const r=n.viewport??{translateX:0,translateY:0,scale:1};this._store.state.translateX=r.translateX??0;this._store.state.translateY=r.translateY??0;this._store.state.scale=r.scale??1;const s=new gt;await s.initialize(this,n.id,this._syncConfig);this._store.state.objects=s;this._anchorManager.rebuildIndex();this.engine.emitObjectsChange();this.rerender()}rerender(){if(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;const i=e.findIndex((e=>e.id===t.id));if(i!==-1){e[i]=t;this._store.state.workspaces=e}}deleteWorkspace(t){if(this._store.state.activeWorkspace?.id===t.id){this._store.state.objects?.destroy()}this.deleteWorkspaceFromAppState(t.id);this._store.state.workspaces=this.loadWorkspacesFromAppState();const e=`kritzel-workspace-${t.id}`;window.indexedDB.deleteDatabase(e)}updateWorkspaceViewport(t,e,i){const n=this._store.state.activeWorkspace;if(!n){return}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){if(t instanceof I){this._anchorManager.handleLineDeleted(t.id)}else{this._anchorManager.handleObjectDeleted(t.id)}t.isMounted=false;this._store.state.objects.remove((e=>e.id===t.id))}updateObject(t,e){for(const i in e){if(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;if(t){this._store.state.objects.remove((e=>e.id===t.id))}}removeSelectionBox(){const t=this._store.selectionBox;if(t){this._store.state.objects.remove((e=>e.id===t.id))}}deselectAllObjects(){this.removeSelectionGroup();this.rerender()}delete(){const t=this._store.selectionGroup;if(!t){return}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);if(e){this.removeObject(e);this.rerender()}}copy(){const t=this._store.selectionGroup;if(t){const e=new Map;const i=t.objects.sort(((t,e)=>t.zIndex-e.zIndex)).map((t=>{const i=t.copy();e.set(i.id,t.id);return i}));this._store.state.copiedObjects=i;this._store.state.copiedObjectIdMapping=e}}paste(t,e){const i=this._store.state.copiedObjects;if(!i||i.length===0){return}const n=this._store.state.activeWorkspace;const r=this._store.state.copiedObjectIdMapping;const s=i.some((t=>t.workspaceId!==n.id));const o=Math.min(...i.map((t=>t.translateX)));const a=Math.min(...i.map((t=>t.translateY)));let c;let l;if(t!==undefined&&e!==undefined){c=t;l=e}else if(s){c=o;l=a}else{c=o+25/this._store.state.scale;l=a+25/this._store.state.scale}const u=c-o;const h=l-a;this.removeSelectionGroup();this.removeSelectionBox();const f=x.create(this);const d=new Map;if(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+u,t.translateY+h);t.zIndex=this._store.currentZIndex+e;this.addObject(t);f.addOrRemove(t)}));i.forEach((t=>{if(t instanceof I){let e=false;if(t.startAnchor&&d.has(t.startAnchor.objectId)){t.startAnchor={objectId:d.get(t.startAnchor.objectId)};e=true}if(t.endAnchor&&d.has(t.endAnchor.objectId)){t.endAnchor={objectId:d.get(t.endAnchor.objectId)};e=true}if(e){this._store.state.objects.update(t)}}}));this._anchorManager.rebuildIndex();f.isSelected=true;if(i.length===1){f.rotation=i[0].rotation}this.addSelectionGroup(f);if(s){if(t!==undefined&&e!==undefined){f.updatePosition(t,e)}else{f.centerInViewport()}this.engine.viewport.centerFitInViewport(f)}this._store.state.isSelecting=false;const v=this._store.selectionGroup;if(v){const t=new Map;const e=v.objects.sort(((t,e)=>t.zIndex-e.zIndex)).map((e=>{const i=e.copy();t.set(i.id,e.id);return i}));this._store.state.copiedObjects=e;this._store.state.copiedObjectIdMapping=t}this._store.setState("activeTool",w.getTool("selection"));this.engine.emitObjectsChange();this.rerender()}bringForward(t){const e=this._store.selectionGroup;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const r=n.length>0?Math.max(...n.map((t=>t.zIndex)))+1:0;i.forEach((t=>{if(t.zIndex!==r){this.updateObject(t,{zIndex:t.zIndex+1})}}));this.rerender()}sendBackward(t){const e=this._store.selectionGroup;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const r=n.length>0?Math.min(...n.map((t=>t.zIndex)))-1:0;i.forEach((t=>{if(t.zIndex!==r){this.updateObject(t,{zIndex:t.zIndex-1})}}));this.rerender()}bringToFront(t){const e=this._store.selectionGroup;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const 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;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const r=Math.min(...n.map((t=>t.zIndex)))-1;i.forEach((t=>{this.updateObject(t,{zIndex:r})}));this.rerender()}selectObjects(t){if(t.length===0){return}const e=x.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;if(t.length===1){e.rotation=e.objects[0].rotation}this.addSelectionGroup(e);this.rerender()}selectAllObjectsInViewport(){const t={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};const e=this._store.state.objects.query(t).filter((t=>t.isInViewport())).filter((t=>!(t instanceof x)&&!(t instanceof m)&&!(t instanceof B)));if(e.length>0){const t=x.create(this);e.forEach((e=>{e.isSelected=false;t.addOrRemove(e)}));t.isSelected=true;this._store.state.isSelecting=false;if(e.length===1){t.rotation=t.objects[0].rotation}this.addSelectionGroup(t);this._store.setState("activeTool",w.getTool("selection"));this.rerender()}}clearSelection(){this.removeSelectionGroup();this._store.state.objects.remove((t=>t instanceof m||t instanceof x));this._store.state.isSelecting=false;this._store.state.isResizeHandleSelected=false;this._store.state.isRotationHandleSelected=false;this._store.state.isLineHandleSelected=false;this._store.state.isLineHandleDragging=false;this._store.state.lineHandleType=null;this.rerender()}resetActiveText(){const t=this._store.activeText;if(t){if(t.isEmpty){this.deleteObject(t.id)}else{t.save()}}}getObjectFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return null;const n=t.clientX;const r=t.clientY;const s=i.elementFromPoint(n,r);if(!s)return null;const o=s.closest(e);if(o){const t=this._store.allObjects.find((t=>o.id===t.id));const 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=t.clientX;const r=t.clientY;const s=i.elementsFromPoint(n,r);if(!s||s.length===0)return[];const o=new Set;s.forEach((t=>{const i=t.closest(e);if(i&&i.id){o.add(i.id)}}));if(o.size>0){return this._store.allObjects.filter((t=>o.has(t.id))).sort(((t,e)=>e.zIndex-t.zIndex))}return[]}getElementsAtPoint(t,e){const i=this._store.state.host?.shadowRoot;if(!i)return[];const n=i.elementsFromPoint(t.clientX,t.clientY);if(!n||n.length===0)return[];return 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();const i=t.clientX-e.left;const n=t.clientY-e.top;const r=i-this._store.state.translateX;const s=n-this._store.state.translateY;const o=r/this._store.state.scale;const a=s/this._store.state.scale;return{x:o,y:a}}beforeWorkspaceChange(){this.resetActiveText();this.clearSelection();this._store.setState("activeTool",w.getTool("selection"))}displaySelectionGroupUI(t){if(!t.isSelected){return false}const e=this._store.selectionGroup;if(!e){return!(t instanceof I)}if(e.objects.length>1){return true}if(e.objects.length===1){const t=e.objects[0];return!(t instanceof I)}return true}displaySelectionLineUI(t){if(!(t instanceof I)){return false}const e=this._store.selectionGroup;if(!e){return t.isSelected}if(!e.isSelected){return false}if(e.objects.length===1){const i=e.objects[0];return i instanceof I&&i.id===t.id}return false}}const mt=":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 xt=class{get host(){return r(this)}workspace;syncConfig;onWorkspaceChange(t){const e=this.core.store.state.activeWorkspace?.id;const i=t?.id;if(e!==i){this.core.beforeWorkspaceChange();this.core.initializeWorkspace(t)}}activeTool;globalContextMenuItems;objectContextMenuItems;scaleMax=et;validateScaleMax(t){if(t>et){console.warn(`scaleMax cannot be greater than ${et}.`);this.scaleMax=et;this.core.store.state.scaleMax=this.scaleMax}else{this.core.store.state.scaleMax=t}}scaleMin=it;validateScaleMin(t){if(t<it){console.warn(`scaleMin cannot be less than ${it}.`);this.scaleMin=it;this.core.store.state.scaleMin=this.scaleMin}else{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=lt.throttle((t=>{this.viewport.handleWheel(t);this.core.store.state?.activeTool?.handleWheel(t)}),16);handleWheel(t){if(this.core.store.isDisabled){return}if(this.core.store.state.isContextMenuVisible){this.hideContextMenu()}this.throttledWheel(t)}handlePointerDown(t){if(this.core.store.isDisabled){return}if(s.isTouchDevice()){W.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=lt.throttle((t=>{this.viewport.handlePointerMove(t);this.core.store.state?.activeTool?.handlePointerMove(t)}),16);handlePointerMove(t){if(this.core.store.isDisabled){return}if(this.core.store.state.pointers.has(t.pointerId)){this.core.store.state.pointers.set(t.pointerId,t)}if(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){if(this.core.store.isDisabled){return}this.core.store.state.pointers.delete(t.pointerId);this.host.releasePointerCapture(t.pointerId);if(this.core.store.state.pointers.size===0){this.core.cursorManager.resetToDefault()}this.viewport.handlePointerUp(t);this.core.store.state?.activeTool?.handlePointerUp(t)}handlePointerCancel(t){if(this.core.store.isDisabled){return}this.host.releasePointerCapture(t.pointerId);this.core.store.state.pointers.delete(t.pointerId);if(this.core.store.state.pointers.size===0){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();if(this.core.store.isDisabled){return}if(t.pointerType==="touch"){return}this.contextMenuHandler.handleContextMenu(t)}handleResize(){this.viewport.handleResize()}handleKeyDown(t){if(this.core.store.isDisabled){return}this.keyHandler.handleKeyDown(t)}handleKeyUp(t){if(this.core.store.isDisabled){return}this.keyHandler.handleKeyUp(t)}preventDoubleTapZoomOnTouchDevices(t){t.preventDefault()}async registerTool(t,e,i){if(typeof e!=="function"||!(e.prototype instanceof R)){console.error(`Failed to register tool "${t}": Tool class must be a constructor function`);return null}const n=w.registerTool(t,e,this.core);if(i){Object.entries(i).forEach((([t,e])=>{n[t]=e}))}return 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=false;this.core.rerender()}async enable(){this.core.store.state.isEnabled=true;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 undo(){this.core.undo()}async redo(){this.core.redo()}async hideContextMenu(){this.core.store.state.pointers.clear();this.core.store.state.isContextMenuVisible=false;this.core.store.state.objects.remove((t=>t instanceof m));this.core.store.state.isSelecting=false;this.core.store.state.isEnabled=true;this.core.rerender()}async getObjectById(t){const e=this.core.store.allObjects.find((e=>e.id===t));return e||null}async addObject(t){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();return t}async updateObject(t,e){this.core.deselectAllObjects();this.core.updateObject(t,e);this.core.rerender();return t}async removeObject(t){this.core.deselectAllObjects();this.core.store.state.objects.remove((e=>e.id===t.id));this.core.rerender();return 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",w.getTool("selection"));this.core.deselectAllObjects();this.core.selectObjects(t)}async selectAllObjectsInViewport(){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",w.getTool("selection"));this.core.deselectAllObjects();this.core.selectAllObjectsInViewport()}async clearSelection(){this.core.clearSelection()}async centerObjectInViewport(t){t.centerInViewport();this.core.updateObject(t,t);this.core.rerender();return t}async getCopiedObjects(){return this.core.store.state.copiedObjects||[]}async createWorkspace(t){await this.core.createWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces);return 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 l&&this.core.store.state.isSelecting}get isSelectionActive(){return this.core.store.state.activeTool instanceof l&&this.core.store.selectionGroup!==null}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 wt(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 ft(this.core,this.globalContextMenuItems,this.objectContextMenuItems);this.keyHandler=new ht(this.core);this.viewport=new ut(this.core,this.host);this.core.cursorManager.setTargetElement(this.cursorTarget||document.body);this.core.cursorManager.setShadowRoot(this.host.shadowRoot);if(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();if(this.core.store.state.isReady===false){this.core.store.state.isReady=true;this.isEngineReady.emit(this.core.store.state)}}emitObjectsChange(){const t=this.core.store.allObjects;const e=this.core.store.state.objects.undoState;this.objectsChange.emit(t);this.undoStateChange.emit(e)}_registerStateChangeListeners(){this.core.store.onStateChange("activeTool",this._handleActiveToolChange.bind(this))}_handleActiveToolChange(t){if(!(t instanceof l)){this.core.clearSelection();this.core.store.state.objects.remove((t=>t instanceof m));this.core.store.state.isSelecting=false;this.core.store.state.isResizeHandleSelected=false;this.core.store.state.isRotationHandleSelected=false}this.core.store.state.skipContextMenu=false;this.core.store.state.copiedObjects=null;this.activeToolChange.emit(t);k.forceHideKeyboard();this.core.rerender()}render(){const t=window.getComputedStyle(this.host);const n=t.getPropertyValue("--kritzel-selection-handle-size").trim()||"6px";const r=parseFloat(n);const o=r*2<14?14:r;const a=this.core.store.state.viewportWidth/2+this.core.store.state.translateX;const c=this.core.store.state.viewportHeight/2+this.core.store.state.translateY;const l={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};const u=this.core.store.state.objects.query(l);this.core.cursorManager.applyCursor();return e(i,{key:"4a7e8c72ad1f80c3c31aa37eff33e78634cb37d1"},this.core.store.state.debugInfo.showViewportInfo&&e("div",{key:"3c8981ce6cafbc49f4f04189d27809c511bf45c4",class:"debug-panel"},e("div",{key:"428d483a87b98cde24446a0a26ba790ec2a6358b"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"3ec597c219109c026f78e5018a885e88e51aa5c4"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"803c0d009b19fdc7c465ef14f3b5f278a954a912"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"8b1aef0ae845cdf4b93afe59d8c78c84dd181a2d"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"137ead0c39a2fba55b4c4dde53fb09d0832439e1"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"b19f710385e4306620176551853eb2645b96ca7a"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"943b55daada95aa37b759e45a15ffcfca76fba72"},"PointerCount: ",this.core.store.state.pointers.size),e("div",{key:"d001782dd4bc48c84c08477b26e5f3fce8df0b47"},"Scale: ",this.core.store.state?.scale),e("div",{key:"ed640d3905b39a995ba40a1cbf38f10a4aa1b400"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"154888aabbb56365aaf4584b0b991be848629e3e"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"c0c39e988940baf20137de8a0eeda2c085da2810"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"abd5a79b27bc75e898877d33097597c057dc3f2b"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"9c49bf3246525c9a755bb293bec8a143ade97158"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"88ff8ab48af31bf036719f72a5a3726780ab9720"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"9650075f855fcf91b7303d3ace14242075fc523d"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"911acb1f90f9812d30dc0aebceb207aecf9b4248"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"b65db638d3cefbd74e2d03b639ee5fe86a2a858b"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"c53ca259dadc656762733119b4086c1f82235a7e"},"IsRotationHandleHovered: ",this.core.store.state.isRotationHandleHovered?"true":"false"),e("div",{key:"ae2d7a8917af450eb3bfd8e171a87530f337c0c2"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"5633cd9901ec028e4f5433c84b07321932beea66"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"82232a8eec470562e5658dee9713c855e78ca6a3"},"IsPointerDown: ",this.core.store.isPointerDown?"true":"false"),e("div",{key:"5b6b04b323a21ef37ddb144721ea01dccc7aec8b"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"3287f804515cfa31eaa755332e2043fce4feb7a9"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"3a59fd4db60f6f05d419de39149ea10e482875d4"},"SelectedObjects: ",this.core.store.selectionGroup?.objects.length||0),e("div",{key:"f91a8ea9dfc50e5f1ae89d66c7609a103e3263a4"},"ViewportCenter: (",a.toFixed(2),", ",c.toFixed(2),")")),e("div",{key:"40ba8fb5530243c18e0b0c3ad68dadb2cbc615a1",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})`}},u?.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.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`,opacity:t.markedForRemoval?"0.5":t.opacity.toString(),pointerEvents:t.markedForRemoval?"none":"auto"}},D.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"})),D.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:t?.stroke,"stroke-width":t?.strokeWidth,"stroke-linecap":"round","marker-start":t.hasStartArrow?`url(#${t.startMarkerId})`:undefined,"marker-end":t.hasEndArrow?`url(#${t.endMarkerId})`:undefined})),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:D.isInstanceOf(t,"KritzelLine")||D.isInstanceOf(t,"KritzelPath")?"none":"block"}},D.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:false,onDragStart:t=>t.preventDefault()}),D.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"}}),D.isInstanceOf(t,"KritzelCustomElement")&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),D.isInstanceOf(t,"KritzelSelectionGroup")&&!this.core.displaySelectionLineUI(t)&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%"}}),D.isInstanceOf(t,"KritzelSelectionBox")&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%",backgroundColor:s.isFirefox()?t.backgroundColor:"transparent",borderWidth:s.isFirefox()?t.borderWidth+"px":"0",borderStyle:s.isFirefox()?"solid":"none",borderColor:s.isFirefox()?t.borderColor:"transparent"}})),this.core.store.state.debugInfo.showObjectInfo&&t.isDebugInfoVisible&&e("g",{style:{pointerEvents:"none"}},e("foreignObject",{x:t.totalWidth.toString(),y:"0",width:"400px",height:"160px",style:{minHeight:"0",minWidth:"0"}},e("div",{style:{width:"100%",height:"100%"}},e("div",{style:{whiteSpace:"nowrap"}},"Id: ",t.id),e("div",{style:{whiteSpace:"nowrap"}},"width: ",t.width),e("div",{style:{whiteSpace:"nowrap"}},"height: ",t.height),e("div",{style:{whiteSpace:"nowrap"}},"translateX: ",t.translateX),e("div",{style:{whiteSpace:"nowrap"}},"translateY: ",t.translateY),e("div",{style:{whiteSpace:"nowrap"}},"rotationDegrees: ",t.rotationDegrees))))),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:`${r*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:`${o*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:`${r*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:`${o*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:`${r*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:`${o*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:`${r*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:`${o*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:`${r*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:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}))),this.core.displaySelectionLineUI(t)&&D.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,true),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:`${r*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:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle center",cx:t.controlX!==undefined?(t.startX+2*t.controlX+t.endX)/4-t.x:(t.startX-t.x+t.endX-t.x)/2,cy:t.controlY!==undefined?(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:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle-overlay center",cx:t.controlX!==undefined?(t.startX+2*t.controlX+t.endX)/4-t.x:(t.startX-t.x+t.endX-t.x)/2,cy:t.controlY!==undefined?(t.startY+2*t.controlY+t.endY)/4-t.y:(t.startY-t.y+t.endY-t.y)/2,r:`${o*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:`${r*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:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}))))))),(()=>{const t=this.core.anchorManager.getAnchorLinesRenderData();if(!t)return null;return 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, #3b82f6)",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, #3b82f6)",strokeWidth:t.indicatorStrokeWidth}})))})(),(()=>{const t=this.core.anchorManager.getSnapIndicatorRenderData();if(!t)return null;return 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"}}):t.edgeX!==undefined&&t.edgeY!==undefined&&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, #3b82f6)",strokeWidth:t.indicatorStrokeWidth}})))})()),this.core.store.state.isContextMenuVisible&&e("kritzel-context-menu",{key:"7e350c48da76c54a223f23ead9dea8018b0bc36c",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:"10000"},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 d&&!this.core.store.state.isScaling&&e("kritzel-cursor-trail",{key:"7923a3f6a92fa71911c971166171317b5bc421bf",core:this.core}))}static get watchers(){return{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"],cursorTarget:["onCursorTargetChange"]}}};xt.style=mt;const zt=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const Ct=class{constructor(e){t(this,e)}fontFamily="Arial, sans-serif";size=24;color="#000000";render(){return e(i,{key:"23b744f73bf860a53c554ade7d3e9d3eb281caac"},e("div",{key:"7bfc9dadff6ccfbdf3990830423f92eff8580a54",class:"font-preview",style:{fontFamily:this.fontFamily,fontSize:`${this.size}px`,color:this.color}},"A"))}};Ct.style=zt;const St=":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 It=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));if(!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:"5c31315857fa29e0d7c3dac2b7911a244467a052"},e("kritzel-dropdown",{key:"05abce1f973cd49ef8c7ddc198545ec63d6ac249",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}},e("button",{key:"d5c99c0277eeb40f7a0ce29ffb013768125d7fd2",class:"font-style-button",slot:"suffix"},"B"),e("button",{key:"db9348b72cd65b047994dba6c898bf6517d0358b",class:"font-style-button italic-text",slot:"suffix"},"I")))}};It.style=St;const Mt=":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 jt=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)}render(){return e(i,{key:"d20034d67eb857065dca11d96074fdf4234c0ef4"},this.sizes.map((t=>e("div",{class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-font",{fontFamily:this.fontFamily,size:t})))))}};jt.style=Mt;const _t=":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 Tt=class{constructor(e){t(this,e)}name;label;size=24;render(){const t=g.get(this.name);if(!t){console.error(`[kritzel-icon] Icon "${this.name}" not found in registry.`);return e("span",{class:"error-icon","aria-label":`Error: Icon ${this.name} not found`},"?")}const n={width:`${this.size}px`,height:`${this.size}px`};return e(i,{style:n},e("span",{"aria-hidden":!this.label,role:this.label?"img":undefined,"aria-label":this.label,innerHTML:t}))}};Tt.style=_t;const At=":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:300px}.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");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");if(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:"c4b9a602cefcbd0a100f5f1c4a273220d59ead17",tabIndex:0,onClick:t=>t.stopPropagation()},this.openChildMenuItem&&e("div",{key:"530ce19ac1aada15260ac5ed2c95c20b202bb94a",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}))))}};$t.style=At;const Ot=":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}";const Et=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){if(t!==e){this.isDirty=false}}parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;isDirty=false;inputRef;focusInput(){if(this.item.isEditing&&this.inputRef&&!this.isDirty){this.inputRef.focus();if(s.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=()=>{const t=s.isTouchDevice();if(t){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();const e=t.target;this.item.label=e.value;this.isDirty=true};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?-1:0,class:{"action-button":true,disabled:!this.isDirty&&!this.item.isNewItem},onClick:this.handleSave},e("kritzel-icon",{name:"check",size:16})))]}render(){return e(i,{key:"7e1c4957d32429f235cb0f5a71fe3e0d2ca52934",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:"2e478e0ee73b11aaca57b56c25fdbeaa449a543e",class:"menu-item-overlay"}),this.item.isEditing?this.renderEditMode():this.renderViewMode())}static get watchers(){return{item:["onItemChange"]}}};Et.style=Ot;class Wt{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||e.tagName==="BODY"){return window}const i=window.getComputedStyle(e);if(i.overflow==="auto"||i.overflowY==="auto"||i.overflow==="scroll"||i.overflowY==="scroll"){return e}return this.getScrollableParent(e)}static isElementInViewport(t){if(!t){return false}const e=this.getScrollableParent(t);const i=t.getBoundingClientRect();if(e===window){const t=window.innerHeight||document.documentElement.clientHeight;const 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=[];const i='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), details, [tabindex]:not([tabindex="-1"])';const n=t=>t.offsetParent!==null;const r=t=>{if(t instanceof HTMLElement&&t.matches(i)&&!t.hasAttribute("disabled")&&n(t)){e.push(t)}if(t.shadowRoot){Array.from(t.shadowRoot.children).forEach(r)}if(t.tagName==="SLOT"){t.assignedElements({flatten:true}).forEach(r)}if(!t.shadowRoot){Array.from(t.children).forEach(r)}};r(t);return e}}const Rt=class{constructor(e){t(this,e);this.close=n(this,"close")}get host(){return r(this)}anchor;anchorChanged(t){if(t){this.openPortal();this.calculatePosition();if(this.autoFocus){this.focusFirstElement()}}else{this.closePortal()}}offsetX;offsetY;autoFocus=true;close;handleOutsideClick(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;const i=t.target;if(!this.host.contains(i)){this.close.emit();this.closePortal()}}handleKeyDown(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;if(t.key==="Escape"){this.anchor.focus();this.close.emit();this.closePortal()}if(t.key==="Tab"){this.trapFocus(t)}if(t.key==="Enter"){const e=this.getDeepActiveElement();if(e?.click){t.preventDefault();e.click()}}}handleResize(){this.calculatePosition()}handleWindowScroll(){const t=Wt.isElementInViewport(this.anchor);if(!t){this.anchor?.blur();this.closePortal();return}this.calculatePosition()}portal;id=`portal-${E.generateUUID()}`;defaultOffset=0;minLeft=0;focusFirstElement(){requestAnimationFrame((()=>{this.firstFocusableElement?.focus?.()}))}getDeepActiveElement(){let t=document.activeElement;while(t?.shadowRoot?.activeElement){t=t.shadowRoot.activeElement}return t}trapFocus(t){const e=Wt.getFocusableElements(this.host);if(e.length===0)return;const i=e[0];const n=e[e.length-1];const r=this.getDeepActiveElement();if(t.shiftKey){if(r===i){n.focus();t.preventDefault()}}else{if(r===n){i.focus();t.preventDefault()}}}get firstFocusableElement(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements({flatten:true})[0];if(!e)return null;const i=Wt.getFocusableElements(e);return i[0]??e}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();const e=this.portal.getBoundingClientRect();const i=this.offsetX??this.defaultOffset;let n=t.left+i;const r=window.innerWidth-e.width-this.minLeft;if(n<this.minLeft)n=this.minLeft;if(n>r)n=r;return Math.round(n+window.scrollX)}calculateTop(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect();const e=this.portal.getBoundingClientRect();const i=this.offsetY??this.defaultOffset;let n=t.bottom+i;if(n+e.height>window.innerHeight){n=t.top-e.height-i}return 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);if(!t)return;document.body.removeChild(t);this.host.remove()}calculatePosition(){if(!this.anchor||!this.portal)return;const t=this.calculateTop();const e=this.calculateLeft();this.portal.style.top=`${t}px`;this.portal.style.left=`${e}px`}render(){return e(i,{key:"e536f728900dd70efc6524c7b9e76c2a20e26ef9",style:{display:this.anchor?"block":"none"}},e("slot",{key:"dc3fdea3ad588ba062c7ffc25e955453f8ac4f30"}))}static get watchers(){return{anchor:["anchorChanged"]}}};const Dt=":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 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=false;menuButtonDisabled=false;mainButtonClick;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;menuOpen;menuClose;isMenuOpen=false;isTouchDevice=s.isTouchDevice();anchorElement;menuScrollTop=0;splitMenuButtonRef;menuRef;async open(){if(this.isMenuOpen)return;this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit()}async focusMenu(){if(this.menuRef){await this.menuRef.setFocus()}}handleButtonClick=t=>{t.stopPropagation();this.mainButtonClick.emit()};toggleMenu=t=>{t.stopPropagation();if(this.isMenuOpen){this.closeMenu()}else{this.openMenu(t)}};openMenu=t=>{t.stopPropagation();this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit();requestAnimationFrame((()=>{this.menuRef?.setScrollTop(this.menuScrollTop)}))};closeMenu=()=>{this.isMenuOpen=false;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:"3603874994e8a9d666448460d7e403252d38f799",class:{mobile:this.isTouchDevice}},e("button",{key:"a6a2f8cd22118f7be668f3fd1fc52e38c44b22b3",class:"split-main-button",tabIndex:0,onClick:this.handleButtonClick,disabled:this.mainButtonDisabled},this.buttonIcon&&e("kritzel-icon",{key:"e61abf53a2890b6587746eb2aef5a813e81ff1b9",name:this.buttonIcon})),e("div",{key:"17f78d85b2fbd0fe6e7925e10c2531c51bcfdf41",class:"split-divider"}),e("button",{key:"ac507c76479d66e3483ee898e144a6bea4e8cf6a",ref:t=>this.splitMenuButtonRef=t,class:"split-menu-button",tabIndex:0,onClick:this.toggleMenu,disabled:this.menuButtonDisabled},e("kritzel-icon",{key:"8274be53e327d537c2987bc9a3761bc768bdd41f",name:this.dropdownIcon})),e("kritzel-portal",{key:"71136ef798f3c77cff30426a0fcd4ff91bf312b8",anchor:this.anchorElement,offsetY:4,onClose:this.closeMenu},e("kritzel-menu",{key:"d1363d2029d7b4aafbd6cba9a4ca6cdf617064e9",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=Dt;const Pt=":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 Lt=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:"7c9041e061a946f20210cff2330cb736c2703ac7"},this.sizes.map((t=>e("div",{tabIndex:0,class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-color",{value:"#000000",size:t})))))}};Lt.style=Pt;const Ut=":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 Vt=768;const Kt=class{constructor(e){t(this,e);this.tooltipClosed=n(this,"tooltipClosed")}get host(){return r(this)}isVisible=false;anchorElement;arrowSize=8;offsetY=24;tooltipClosed;positionX=0;arrowOffset="0px";isMobileView=window.innerWidth<Vt;handleOutsideClick(t){if(!this.isVisible)return;const e=t.target;if(!this.host.contains(e)){this.tooltipClosed.emit()}}handleWindowResize(){this.isMobileView=window.innerWidth<Vt;this.calculateAdjustedPosition()}async focusContent(){const t=Wt.getFocusableElements(this.host);if(t.length>0){t[0].focus()}}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.isMobileView=window.innerWidth<Vt;this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements()||[];if(e.length>0){const t=e[0];t.focus()}}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect();const e=this.host.shadowRoot?.querySelector(".tooltip-content");if(!this.isMobileView){this.positionX=t.left+t.width/2;this.arrowOffset=`calc(${50}% - ${this.arrowSize}px)`}else{const i=e.getBoundingClientRect();this.positionX=t.left+t.width/2-i.width/2;this.arrowOffset=`${t.left+t.width/2-i.left-this.arrowSize}px`}}}render(){return e(i,{key:"8f78668b3d266d7a0eb140d01626998534acc252",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.isMobileView?`${this.positionX}px`:"50%",marginBottom:`${this.offsetY+this.arrowSize}px`}},e("div",{key:"77b526b1687d41654b32b6f14d3e0400908b0a79",class:"tooltip-content",onClick:t=>t.stopPropagation()},e("slot",{key:"fcd088608c091ff877b1e58425a0905c84c9999a"}),e("div",{key:"002913b582b5c034e7af722c433fbe79d0c32150",class:"tooltip-arrow-wrapper",style:{position:"fixed",left:this.arrowOffset,bottom:`-${this.arrowSize*2}px`}},e("div",{key:"fc834bf34b464ac039ffb58e47485b76f8ced03e",class:"tooltip-arrow",style:{borderLeft:`${this.arrowSize}px solid transparent`,borderRight:`${this.arrowSize}px solid transparent`,borderTop:`${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,filter:"drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))"}}),e("div",{key:"65939011ae607a144f8217cf3aa5bdd2ff0f88fc",class:"tooltip-arrow-rect",style:{position:"relative",width:`${this.arrowSize*2}px`,height:`${this.arrowSize}px`,backgroundColor:"var(--kritzel-controls-tooltip-background-color, #ffffff)",bottom:`${this.arrowSize*2}px`}}))))}};Kt.style=Ut;const Bt=":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 Ht=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){if(t.cancelable){t.preventDefault();t.stopPropagation();this.undo.emit()}}handleRedo(t){t.preventDefault();t.stopPropagation();this.redo.emit()}render(){return e(i,{key:"6e33687f7c71ec342d47f1ae4a507de1f08fad6f"},e("button",{key:"d0cf45d78743a954764d03abdb49a725c0979cf8",class:"utility-button",disabled:!this.undoState?.canUndo,onClick:t=>this.handleUndo(t)},e("kritzel-icon",{key:"6303892952ef0426023dde47b909fe90abfbd4c6",name:"undo"})),e("button",{key:"0542b66850c61e001d7461ddcbceb7999f98dc6a",class:"utility-button",disabled:!this.undoState?.canRedo,onClick:t=>this.handleRedo(t)},e("kritzel-icon",{key:"faf61b34c8d5abe3ba0bdb1787a08418874532a4",name:"redo"})),e("div",{key:"a8482d17b7e9b68204d81097ced692daa1fb11cc",class:"utility-separator"}),e("button",{key:"d733f273095a96c914285908088d9c1536dddaf0",class:"utility-button"},e("kritzel-icon",{key:"d5322357c8ffc646c77acb02c5c5ce9131ba66cd",name:"delete",onClick:()=>this.delete.emit()})))}};Ht.style=Bt;const Yt=":host{display:flex;flex-direction:column;z-index:1}";const Nt=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){if(t.ctrlKey){t.preventDefault()}}kritzelEngineRef=null;splitButtonRef;get sortedWorkspaces(){return[this.newWorkspace,...this.workspaces].filter((t=>t!=null)).sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}async componentWillLoad(){await this.initializeEngine();this.isWorkspaceManagerReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngineRef=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngineRef){throw new Error("kritzel-engine not found in parent element.")}}async select(t,e){if(this.editingItemId){return}if(t.action){t.action(t,e);return}this.workspaceChange.emit(t.value)}async add(){await this.splitButtonRef.open();this.newWorkspace=new b(E.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);if(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=>t!==null)).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:this.editingItemId!=null,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()}))}};Nt.style=Yt;export{L as kritzel_color,V as kritzel_color_palette,B as kritzel_context_menu,Y as kritzel_control_brush_config,X as kritzel_control_text_config,G as kritzel_controls,J as kritzel_cursor_trail,tt as kritzel_dropdown,rt as kritzel_editor,xt as kritzel_engine,Ct as kritzel_font,It as kritzel_font_family,jt as kritzel_font_size,Tt as kritzel_icon,$t as kritzel_menu,Et as kritzel_menu_item,Rt as kritzel_portal,Ft as kritzel_split_button,Lt as kritzel_stroke_size,Kt as kritzel_tooltip,Ht as kritzel_utility_panel,Nt as kritzel_workspace_manager};
|
|
10
|
+
//# sourceMappingURL=p-d142ef46.entry.js.map
|