@hprint/plugins 0.0.9-alpha.0 → 0.0.9-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -3
- package/dist/index.mjs +102 -42
- package/dist/src/plugins/ActualContentLayoutPlugin.d.ts +3 -0
- package/dist/src/plugins/ActualContentLayoutPlugin.d.ts.map +1 -1
- package/dist/src/plugins/HistoryPlugin.d.ts +1 -0
- package/dist/src/plugins/HistoryPlugin.d.ts.map +1 -1
- package/dist/src/plugins/ImageTextListPlugin.d.ts.map +1 -1
- package/dist/src/plugins/QrCodePlugin.d.ts +1 -0
- package/dist/src/plugins/QrCodePlugin.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/plugins/ActualContentLayoutPlugin.ts +246 -213
- package/src/plugins/HistoryPlugin.ts +52 -12
- package/src/plugins/ImageTextListPlugin.ts +541 -540
- package/src/plugins/QrCodePlugin.ts +33 -15
package/dist/index.js
CHANGED
|
@@ -438,7 +438,7 @@ gl_FragColor.rgb *= color.a;
|
|
|
438
438
|
`?(d++,p[d]=0):p[d]++;p[0]>0&&(this.insertCharStyleObject(f.lineIndex,f.charIndex,p[0],u),u=u&&u.slice(p[0]+1)),d&&this.insertNewlineStyleObject(f.lineIndex,f.charIndex+p[0],d);for(var A=1;A<d;A++)p[A]>0?this.insertCharStyleObject(f.lineIndex+A,0,p[A],u):u&&this.styles[f.lineIndex+A]&&u[0]&&(this.styles[f.lineIndex+A][0]=u[0]),u=u&&u.slice(p[A]+1);p[A]>0&&this.insertCharStyleObject(f.lineIndex+A,0,p[A],u)},setSelectionStartEndWithShift:function(l,h,u){u<=l?(h===l?this._selectionDirection="left":this._selectionDirection==="right"&&(this._selectionDirection="left",this.selectionEnd=l),this.selectionStart=u):u>l&&u<h?this._selectionDirection==="right"?this.selectionEnd=u:this.selectionStart=u:(h===l?this._selectionDirection="right":this._selectionDirection==="left"&&(this._selectionDirection="right",this.selectionStart=h),this.selectionEnd=u)},setSelectionInBoundaries:function(){var l=this.text.length;this.selectionStart>l?this.selectionStart=l:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>l?this.selectionEnd=l:this.selectionEnd<0&&(this.selectionEnd=0)}})})(),i.util.object.extend(i.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(g){if(this.canvas){this.__newClickTime=+new Date;var l=g.pointer;this.isTripleClick(l)&&(this.fire("tripleclick",g),this._stopEvent(g.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=l,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(g){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===g.x&&this.__lastPointer.y===g.y},_stopEvent:function(g){g.preventDefault&&g.preventDefault(),g.stopPropagation&&g.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(g){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(g.e))},tripleClickHandler:function(g){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(g.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(g){!this.canvas||!this.editable||g.e.button&&g.e.button!==1||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(g.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(g){!this.canvas||!this.editable||g.e.button&&g.e.button!==1||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(g){if(this.__isMousedown=!1,!(!this.editable||this.group||g.transform&&g.transform.actionPerformed||g.e.button&&g.e.button!==1)){if(this.canvas){var l=this.canvas._activeObject;if(l&&l!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(g.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(g){var l=this.getSelectionStartFromPointer(g),h=this.selectionStart,u=this.selectionEnd;g.shiftKey?this.setSelectionStartEndWithShift(h,u,l):(this.selectionStart=l,this.selectionEnd=l),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(g){for(var l=this.getLocalPointer(g),h=0,u=0,f=0,p=0,d=0,A,w,m=0,x=this._textLines.length;m<x&&f<=l.y;m++)f+=this.getHeightOfLine(m)*this.scaleY,d=m,m>0&&(p+=this._textLines[m-1].length+this.missingNewlineOffset(m-1));A=this._getLineLeftOffset(d),u=A*this.scaleX,w=this._textLines[d],this.direction==="rtl"&&(l.x=this.width*this.scaleX-l.x+u);for(var C=0,E=w.length;C<E&&(h=u,u+=this.__charBounds[d][C].kernedWidth*this.scaleX,u<=l.x);C++)p++;return this._getNewSelectionStartFromOffset(l,h,u,p,E)},_getNewSelectionStartFromOffset:function(g,l,h,u,f){var p=g.x-l,d=h-g.x,A=d>p||d<0?0:1,w=u+A;return this.flipX&&(w=f-w),w>this._text.length&&(w=this._text.length),w}}),i.util.object.extend(i.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=i.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var g=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+g.top+"; left: "+g.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: "+g.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):i.document.body.appendChild(this.hiddenTextarea),i.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),i.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),i.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),i.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),i.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),i.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),i.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),i.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),i.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(i.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(g){if(this.isEditing){var l=this.direction==="rtl"?this.keysMapRtl:this.keysMap;if(g.keyCode in l)this[l[g.keyCode]](g);else if(g.keyCode in this.ctrlKeysMapDown&&(g.ctrlKey||g.metaKey))this[this.ctrlKeysMapDown[g.keyCode]](g);else return;g.stopImmediatePropagation(),g.preventDefault(),g.keyCode>=33&&g.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(g){if(!this.isEditing||this._copyDone||this.inCompositionMode){this._copyDone=!1;return}if(g.keyCode in this.ctrlKeysMapUp&&(g.ctrlKey||g.metaKey))this[this.ctrlKeysMapUp[g.keyCode]](g);else return;g.stopImmediatePropagation(),g.preventDefault(),this.canvas&&this.canvas.requestRenderAll()},onInput:function(g){var l=this.fromPaste;if(this.fromPaste=!1,g&&g.stopPropagation(),!!this.isEditing){var h=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,u=this._text.length,f=h.length,p,d,A=f-u,w=this.selectionStart,m=this.selectionEnd,x=w!==m,C,E,B;if(this.hiddenTextarea.value===""){this.styles={},this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll());return}var k=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),M=w>k.selectionStart;x?(p=this._text.slice(w,m),A+=m-w):f<u&&(M?p=this._text.slice(m+A,m):p=this._text.slice(w,w-A)),d=h.slice(k.selectionEnd-A,k.selectionEnd),p&&p.length&&(d.length&&(C=this.getSelectionStyles(w,w+1,!1),C=d.map(function(){return C[0]})),x?(E=w,B=m):M?(E=m-p.length,B=m):(E=m,B=m+p.length),this.removeStyleFromTo(E,B)),d.length&&(l&&d.join("")===i.copiedText&&!i.disableStyleCopyPaste&&(C=i.copiedTextStyle),this.insertNewStyleBlock(d,w,C)),this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())}},onCompositionStart:function(){this.inCompositionMode=!0},onCompositionEnd:function(){this.inCompositionMode=!1},onCompositionUpdate:function(g){this.compositionStart=g.target.selectionStart,this.compositionEnd=g.target.selectionEnd,this.updateTextareaPosition()},copy:function(){this.selectionStart!==this.selectionEnd&&(i.copiedText=this.getSelectedText(),i.disableStyleCopyPaste?i.copiedTextStyle=null:i.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0)},paste:function(){this.fromPaste=!0},_getClipboardData:function(g){return g&&g.clipboardData||i.window.clipboardData},_getWidthBeforeCursor:function(g,l){var h=this._getLineLeftOffset(g),u;return l>0&&(u=this.__charBounds[g][l-1],h+=u.left+u.width),h},getDownCursorOffset:function(g,l){var h=this._getSelectionForOffset(g,l),u=this.get2DCursorLocation(h),f=u.lineIndex;if(f===this._textLines.length-1||g.metaKey||g.keyCode===34)return this._text.length-h;var p=u.charIndex,d=this._getWidthBeforeCursor(f,p),A=this._getIndexOnLine(f+1,d),w=this._textLines[f].slice(p);return w.length+A+1+this.missingNewlineOffset(f)},_getSelectionForOffset:function(g,l){return g.shiftKey&&this.selectionStart!==this.selectionEnd&&l?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(g,l){var h=this._getSelectionForOffset(g,l),u=this.get2DCursorLocation(h),f=u.lineIndex;if(f===0||g.metaKey||g.keyCode===33)return-h;var p=u.charIndex,d=this._getWidthBeforeCursor(f,p),A=this._getIndexOnLine(f-1,d),w=this._textLines[f].slice(0,p),m=this.missingNewlineOffset(f-1);return-this._textLines[f-1].length+A-w.length+(1-m)},_getIndexOnLine:function(g,l){for(var h=this._textLines[g],u=this._getLineLeftOffset(g),f=u,p=0,d,A,w=0,m=h.length;w<m;w++)if(d=this.__charBounds[g][w].width,f+=d,f>l){A=!0;var x=f-d,C=f,E=Math.abs(x-l),B=Math.abs(C-l);p=B<E?w:w-1;break}return A||(p=h.length-1),p},moveCursorDown:function(g){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",g)},moveCursorUp:function(g){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorUpOrDown("Up",g)},_moveCursorUpOrDown:function(g,l){var h="get"+g+"CursorOffset",u=this[h](l,this._selectionDirection==="right");l.shiftKey?this.moveCursorWithShift(u):this.moveCursorWithoutShift(u),u!==0&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(g){var l=this._selectionDirection==="left"?this.selectionStart+g:this.selectionEnd+g;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,l),g!==0},moveCursorWithoutShift:function(g){return g<0?(this.selectionStart+=g,this.selectionEnd=this.selectionStart):(this.selectionEnd+=g,this.selectionStart=this.selectionEnd),g!==0},moveCursorLeft:function(g){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorLeftOrRight("Left",g)},_move:function(g,l,h){var u;if(g.altKey)u=this["findWordBoundary"+h](this[l]);else if(g.metaKey||g.keyCode===35||g.keyCode===36)u=this["findLineBoundary"+h](this[l]);else return this[l]+=h==="Left"?-1:1,!0;if(typeof u<"u"&&this[l]!==u)return this[l]=u,!0},_moveLeft:function(g,l){return this._move(g,l,"Left")},_moveRight:function(g,l){return this._move(g,l,"Right")},moveCursorLeftWithoutShift:function(g){var l=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&this.selectionStart!==0&&(l=this._moveLeft(g,"selectionStart")),this.selectionEnd=this.selectionStart,l},moveCursorLeftWithShift:function(g){if(this._selectionDirection==="right"&&this.selectionStart!==this.selectionEnd)return this._moveLeft(g,"selectionEnd");if(this.selectionStart!==0)return this._selectionDirection="left",this._moveLeft(g,"selectionStart")},moveCursorRight:function(g){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",g)},_moveCursorLeftOrRight:function(g,l){var h="moveCursor"+g+"With";this._currentCursorOpacity=1,l.shiftKey?h+="Shift":h+="outShift",this[h](l)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(g){if(this._selectionDirection==="left"&&this.selectionStart!==this.selectionEnd)return this._moveRight(g,"selectionStart");if(this.selectionEnd!==this._text.length)return this._selectionDirection="right",this._moveRight(g,"selectionEnd")},moveCursorRightWithoutShift:function(g){var l=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(l=this._moveRight(g,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,l},removeChars:function(g,l){typeof l>"u"&&(l=g+1),this.removeStyleFromTo(g,l),this._text.splice(g,l-g),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(g,l,h,u){typeof u>"u"&&(u=h),u>h&&this.removeStyleFromTo(h,u);var f=i.util.string.graphemeSplit(g);this.insertNewStyleBlock(f,h,l),this._text=[].concat(this._text.slice(0,h),f,this._text.slice(u)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),(function(){var g=i.util.toFixed,l=/ +/g;i.util.object.extend(i.Text.prototype,{_toSVG:function(){var h=this._getSVGLeftTopOffsets(),u=this._getSVGTextAndBg(h.textTop,h.textLeft);return this._wrapSVGTextAndBg(u)},toSVG:function(h){return this._createBaseSVGMarkup(this._toSVG(),{reviver:h,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(h){var u=!0,f=this.getSvgTextDecoration(this);return[h.textBgRects.join(""),' <text xml:space="preserve" ',this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",f?'text-decoration="'+f+'" ':"",'style="',this.getSvgStyles(u),'"',this.addPaintOrder()," >",h.textSpans.join(""),`</text>
|
|
439
439
|
`]},_getSVGTextAndBg:function(h,u){var f=[],p=[],d=h,A;this._setSVGBg(p);for(var w=0,m=this._textLines.length;w<m;w++)A=this._getLineLeftOffset(w),(this.textBackgroundColor||this.styleHas("textBackgroundColor",w))&&this._setSVGTextLineBg(p,w,u+A,d),this._setSVGTextLineText(f,w,u+A,d),d+=this.getHeightOfLine(w);return{textSpans:f,textBgRects:p}},_createTextCharSpan:function(h,u,f,p){var d=h!==h.trim()||h.match(l),A=this.getSvgSpanStyles(u,d),w=A?'style="'+A+'"':"",m=u.deltaY,x="",C=i.Object.NUM_FRACTION_DIGITS;return m&&(x=' dy="'+g(m,C)+'" '),['<tspan x="',g(f,C),'" y="',g(p,C),'" ',x,w,">",i.util.string.escapeXml(h),"</tspan>"].join("")},_setSVGTextLineText:function(h,u,f,p){var d=this.getHeightOfLine(u),A=this.textAlign.indexOf("justify")!==-1,w,m,x="",C,E,B=0,k=this._textLines[u],M;p+=d*(1-this._fontSizeFraction)/this.lineHeight;for(var T=0,R=k.length-1;T<=R;T++)M=T===R||this.charSpacing,x+=k[T],C=this.__charBounds[u][T],B===0?(f+=C.kernedWidth-C.width,B+=C.width):B+=C.kernedWidth,A&&!M&&this._reSpaceAndTab.test(k[T])&&(M=!0),M||(w=w||this.getCompleteStyleDeclaration(u,T),m=this.getCompleteStyleDeclaration(u,T+1),M=i.util.hasStyleChanged(w,m,!0)),M&&(E=this._getStyleDeclaration(u,T)||{},h.push(this._createTextCharSpan(x,E,f,p)),x="",w=m,f+=B,B=0)},_pushTextBgRect:function(h,u,f,p,d,A){var w=i.Object.NUM_FRACTION_DIGITS;h.push(" <rect ",this._getFillAttributes(u),' x="',g(f,w),'" y="',g(p,w),'" width="',g(d,w),'" height="',g(A,w),`"></rect>
|
|
440
440
|
`)},_setSVGTextLineBg:function(h,u,f,p){for(var d=this._textLines[u],A=this.getHeightOfLine(u)/this.lineHeight,w=0,m=0,x,C,E=this.getValueOfPropertyAt(u,0,"textBackgroundColor"),B=0,k=d.length;B<k;B++)x=this.__charBounds[u][B],C=this.getValueOfPropertyAt(u,B,"textBackgroundColor"),C!==E?(E&&this._pushTextBgRect(h,E,f+m,p,w,A),m=x.left,w=x.width,E=C):w+=x.kernedWidth;C&&this._pushTextBgRect(h,C,f+m,p,w,A)},_getFillAttributes:function(h){var u=h&&typeof h=="string"?new i.Color(h):"";return!u||!u.getSource()||u.getAlpha()===1?'fill="'+h+'"':'opacity="'+u.getAlpha()+'" fill="'+u.setAlpha(1).toRgb()+'"'},_getSVGLineTopOffset:function(h){for(var u=0,f=0,p=0;p<h;p++)u+=this.getHeightOfLine(p);return f=this.getHeightOfLine(p),{lineTop:u,offset:(this._fontSizeMult-this._fontSizeFraction)*f/(this.lineHeight*this._fontSizeMult)}},getSvgStyles:function(h){var u=i.Object.prototype.getSvgStyles.call(this,h);return u+" white-space: pre;"}})})(),(function(g){var l=g.fabric||(g.fabric={});l.Textbox=l.util.createClass(l.IText,l.Observable,{type:"textbox",minWidth:20,dynamicMinWidth:2,__cachedLines:null,lockScalingFlip:!0,noScaleCache:!1,_dimensionAffectingProps:l.Text.prototype._dimensionAffectingProps.concat("width"),_wordJoiners:/[ \t\r]/,splitByGrapheme:!1,initDimensions:function(){this.__skipDimension||(this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),this.textAlign.indexOf("justify")!==-1&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(h){for(var u=0,f=0,p=0,d={},A=0;A<h.graphemeLines.length;A++)h.graphemeText[p]===`
|
|
441
|
-
`&&A>0?(f=0,p++,u++):!this.splitByGrapheme&&this._reSpaceAndTab.test(h.graphemeText[p])&&A>0&&(f++,p++),d[A]={line:u,offset:f},p+=h.graphemeLines[A].length,f+=h.graphemeLines[A].length;return d},styleHas:function(h,u){if(this._styleMap&&!this.isWrapping){var f=this._styleMap[u];f&&(u=f.line)}return l.Text.prototype.styleHas.call(this,h,u)},isEmptyStyles:function(h){if(!this.styles)return!0;var u=0,f=h+1,p,d,A=!1,w=this._styleMap[h],m=this._styleMap[h+1];w&&(h=w.line,u=w.offset),m&&(f=m.line,A=f===h,p=m.offset),d=typeof h>"u"?this.styles:{line:this.styles[h]};for(var x in d)for(var C in d[x])if(C>=u&&(!A||C<p))for(var E in d[x][C])return!1;return!0},_getStyleDeclaration:function(h,u){if(this._styleMap&&!this.isWrapping){var f=this._styleMap[h];if(!f)return null;h=f.line,u=f.offset+u}return this.callSuper("_getStyleDeclaration",h,u)},_setStyleDeclaration:function(h,u,f){var p=this._styleMap[h];h=p.line,u=p.offset+u,this.styles[h][u]=f},_deleteStyleDeclaration:function(h,u){var f=this._styleMap[h];h=f.line,u=f.offset+u,delete this.styles[h][u]},_getLineStyle:function(h){var u=this._styleMap[h];return!!this.styles[u.line]},_setLineStyle:function(h){var u=this._styleMap[h];this.styles[u.line]={}},_wrapText:function(h,u){var f=[],p;for(this.isWrapping=!0,p=0;p<h.length;p++)f=f.concat(this._wrapLine(h[p],p,u));return this.isWrapping=!1,f},_measureWord:function(h,u,f){var p=0,d,A=!0;f=f||0;for(var w=0,m=h.length;w<m;w++){var x=this._getGraphemeBox(h[w],u,w+f,d,A);p+=x.kernedWidth,d=h[w]}return p},_wrapLine:function(h,u,f,Q){var d=0,A=this.splitByGrapheme,w=[],m=[],x=A?l.util.string.graphemeSplit(h):h.split(this._wordJoiners),C="",E=0,B=A?"":" ",k=0,M=0,T=0,R=!0,N=this._getWidthOfCharSpacing(),Q=Q||0;x.length===0&&x.push([]),f-=Q;for(var Y=0;Y<x.length;Y++)C=A?x[Y]:l.util.string.graphemeSplit(x[Y]),k=this._measureWord(C,u,E),E+=C.length,d+=M+k-N,d>f&&!R?(w.push(m),m=[],d=k,R=!0):d+=N,!R&&!A&&m.push(B),m=m.concat(C),M=A?0:this._measureWord([B],u,E),E++,R=!1,k>T&&(T=k);return Y&&w.push(m),T+Q>this.dynamicMinWidth&&(this.dynamicMinWidth=T-N+Q),w},isEndOfWrapping:function(h){return!this._styleMap[h+1]||this._styleMap[h+1].line!==this._styleMap[h].line},missingNewlineOffset:function(h){return this.splitByGrapheme?this.isEndOfWrapping(h)?1:0:1},_splitTextIntoLines:function(h){for(var u=l.Text.prototype._splitTextIntoLines.call(this,h),f=this._wrapText(u.lines,this.width),p=new Array(f.length),d=0;d<f.length;d++)p[d]=f[d].join("");return u.lines=p,u.graphemeLines=f,u},getMinWidth:function(){return Math.max(this.minWidth,this.dynamicMinWidth)},_removeExtraneousStyles:function(){var h={};for(var u in this._styleMap)this._textLines[u]&&(h[this._styleMap[u].line]=1);for(var u in this.styles)h[u]||delete this.styles[u]},toObject:function(h){return this.callSuper("toObject",["minWidth","splitByGrapheme"].concat(h))}}),l.Textbox.fromObject=function(h,u){var f=l.util.stylesFromArray(h.styles,h.text),p=Object.assign({},h,{styles:f});return l.Object._fromObject("Textbox",p,u,"text")}})(a),(function(){var g=i.controlsUtils,l=g.scaleSkewCursorStyleHandler,h=g.scaleCursorStyleHandler,u=g.scalingEqually,f=g.scalingYOrSkewingX,p=g.scalingXOrSkewingY,d=g.scaleOrSkewActionName,A=i.Object.prototype.controls;if(A.ml=new i.Control({x:-.5,y:0,cursorStyleHandler:l,actionHandler:p,getActionName:d}),A.mr=new i.Control({x:.5,y:0,cursorStyleHandler:l,actionHandler:p,getActionName:d}),A.mb=new i.Control({x:0,y:.5,cursorStyleHandler:l,actionHandler:f,getActionName:d}),A.mt=new i.Control({x:0,y:-.5,cursorStyleHandler:l,actionHandler:f,getActionName:d}),A.tl=new i.Control({x:-.5,y:-.5,cursorStyleHandler:h,actionHandler:u}),A.tr=new i.Control({x:.5,y:-.5,cursorStyleHandler:h,actionHandler:u}),A.bl=new i.Control({x:-.5,y:.5,cursorStyleHandler:h,actionHandler:u}),A.br=new i.Control({x:.5,y:.5,cursorStyleHandler:h,actionHandler:u}),A.mtr=new i.Control({x:0,y:-.5,actionHandler:g.rotationWithSnapping,cursorStyleHandler:g.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),i.Textbox){var w=i.Textbox.prototype.controls={};w.mtr=A.mtr,w.tr=A.tr,w.br=A.br,w.tl=A.tl,w.bl=A.bl,w.mt=A.mt,w.mb=A.mb,w.mr=new i.Control({x:.5,y:0,actionHandler:g.changeWidth,cursorStyleHandler:l,actionName:"resizing"}),w.ml=new i.Control({x:-.5,y:0,actionHandler:g.changeWidth,cursorStyleHandler:l,actionName:"resizing"})}})()})(RA)),RA}var Gl=gB();function vB(a){return oB(a).promise.value}function AB(a){return new Promise(i=>{const{onChange:s,open:o}=hB(a);s(v=>{i(v)}),o()})}function mB(a){return new Promise(i=>{const s=document.createElement("img");s.src=a,document.body.appendChild(s),s.onload=()=>{i(s)}})}const bB=(a,i)=>lB({source:a,...i}).copy();function wB(a,i){const s=document.createElement("a");s.href=a,s.download=`${yI()}.${i}`,document.body.appendChild(s),s.click(),s.remove()}function yB(a,i,s,o,v,b,y){y!==void 0&&(a.save(),a.translate(i,s),a.rotate(y),a.drawImage(o,-v/2,-b/2,v,b),a.restore())}const xB=a=>a instanceof Gl.fabric.Image,CB=a=>a instanceof Gl.fabric.Group,IB=a=>a instanceof Gl.fabric.IText,EB=a=>a instanceof Gl.fabric.ActiveSelection;function BB(a){return new Promise(i=>{const s=new FileReader;s.addEventListener("load",()=>{i(s.result)}),s.readAsDataURL(a)})}function SB(a){if(!a)return null;const i=a.split(","),s=i[0].match(/:(.*?);/)[1],o=window.atob(i[1]),v=new ArrayBuffer(o.length),b=new Uint8Array(v);for(let y=0;y<o.length;y++)b[y]=o.charCodeAt(y);return[new Blob([v],{type:s}),s.slice(6)]}const P1={getImgStr:vB,downFile:wB,selectFiles:AB,insertImgFile:mB,clipboardText:bB,drawImg:yB,isImage:xB,isGroup:CB,isIText:IB,isActiveSelection:EB,blobToBase64:BB,base64ToBlob:SB},kB="0.0.9-alpha.0";window&&(window._hprintPrintVersion=kB);Gl.fabric;function FA(a,i,s){const o=a.type==="image",v=p=>p===void 0?void 0:ay(Bn.pxToMm(p,i),s),b=a.left,y=a.top,g=o?a.getScaledWidth():a.width,l=o?a.getScaledHeight():a.height,h=a.strokeWidth,u=a.fontSize,f=a._originSize?.mm||{};a._originSize={...a._originSize,mm:{...f,left:v(b),top:v(y),width:v(g),height:v(l),strokeWidth:v(h),fontSize:v(u)}}}function Ln(a){return a.getUnit?.()??"px"}function m1(a,i,s){if(i==="px")return typeof a=="string"?Number(a):a;if(i==="mm")return Bn.mmToPx(a,s,{direct:!0});const o=typeof a=="string"?Number(a):a;return Bn.mmToPx(o*Bn.CONSTANTS.INCH_TO_MM,s,{direct:!0})}function u1(a={},i,s,o=["left","top","width","height","fontSize","boxWidth"]){const v=new Set(o),b={},y={};for(const g of Object.keys(a)){if(!v.has(g))continue;const l=a[g];l!==void 0&&(y[g]=l,b[g]=m1(l,i,s))}return{processed:b,originByUnit:{[i]:y}}}function ay(a,i){if(i===void 0)return a;const s=Math.pow(10,i);return Math.round(a*s)/s}function op(a,i){if(typeof a=="number")return ay(a,i);if(Array.isArray(a))return a.map(s=>op(s,i));if(a&&typeof a=="object"){const s={};return Object.keys(a).forEach(o=>{s[o]=op(a[o],i)}),s}return a}function sa(a,i){return op(a,i)}function QA(a,i=2){const s=Number(a).toFixed(i);return s.includes(".")?s.replace(/\.?0+$/,""):s}var sy=typeof global=="object"&&global&&global.Object===Object&&global,_B=typeof self=="object"&&self&&self.Object===Object&&self,fa=sy||_B||Function("return this")(),Ma=fa.Symbol,oy=Object.prototype,MB=oy.hasOwnProperty,TB=oy.toString,tl=Ma?Ma.toStringTag:void 0;function OB(a){var i=MB.call(a,tl),s=a[tl];try{a[tl]=void 0;var o=!0}catch{}var v=TB.call(a);return o&&(i?a[tl]=s:delete a[tl]),v}var RB=Object.prototype,DB=RB.toString;function FB(a){return DB.call(a)}var QB="[object Null]",jB="[object Undefined]",jA=Ma?Ma.toStringTag:void 0;function Ga(a){return a==null?a===void 0?jB:QB:jA&&jA in Object(a)?OB(a):FB(a)}function On(a){return a!=null&&typeof a=="object"}var NB="[object Symbol]";function d1(a){return typeof a=="symbol"||On(a)&&Ga(a)==NB}var PB=NaN;function NA(a){return typeof a=="number"?a:d1(a)?PB:+a}function gn(a,i){for(var s=-1,o=a==null?0:a.length,v=Array(o);++s<o;)v[s]=i(a[s],s,a);return v}var yr=Array.isArray,PA=Ma?Ma.prototype:void 0,UA=PA?PA.toString:void 0;function p1(a){if(typeof a=="string")return a;if(yr(a))return gn(a,p1)+"";if(d1(a))return UA?UA.call(a):"";var i=a+"";return i=="0"&&1/a==-1/0?"-0":i}function iu(a,i){return function(s,o){var v;if(s===void 0&&o===void 0)return i;if(s!==void 0&&(v=s),o!==void 0){if(v===void 0)return o;typeof s=="string"||typeof o=="string"?(s=p1(s),o=p1(o)):(s=NA(s),o=NA(o)),v=a(s,o)}return v}}var UB=iu(function(a,i){return a+i},0),LB=/\s/;function cy(a){for(var i=a.length;i--&&LB.test(a.charAt(i)););return i}var GB=/^\s+/;function ly(a){return a&&a.slice(0,cy(a)+1).replace(GB,"")}function Sn(a){var i=typeof a;return a!=null&&(i=="object"||i=="function")}var LA=NaN,YB=/^[-+]0x[0-9a-f]+$/i,HB=/^0b[01]+$/i,zB=/^0o[0-7]+$/i,qB=parseInt;function y1(a){if(typeof a=="number")return a;if(d1(a))return LA;if(Sn(a)){var i=typeof a.valueOf=="function"?a.valueOf():a;a=Sn(i)?i+"":i}if(typeof a!="string")return a===0?a:+a;a=ly(a);var s=HB.test(a);return s||zB.test(a)?qB(a.slice(2),s?2:8):YB.test(a)?LA:+a}var GA=1/0,WB=17976931348623157e292;function Es(a){if(!a)return a===0?a:0;if(a=y1(a),a===GA||a===-GA){var i=a<0?-1:1;return i*WB}return a===a?a:0}function Er(a){var i=Es(a),s=i%1;return i===i?s?i-s:i:0}var VB="Expected a function";function XB(a,i){if(typeof i!="function")throw new TypeError(VB);return a=Er(a),function(){if(--a<1)return i.apply(this,arguments)}}function t1(a){return a}var $B="[object AsyncFunction]",JB="[object Function]",KB="[object GeneratorFunction]",ZB="[object Proxy]";function _s(a){if(!Sn(a))return!1;var i=Ga(a);return i==JB||i==KB||i==$B||i==ZB}var vf=fa["__core-js_shared__"],YA=(function(){var a=/[^.]+$/.exec(vf&&vf.keys&&vf.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""})();function eS(a){return!!YA&&YA in a}var tS=Function.prototype,rS=tS.toString;function _o(a){if(a!=null){try{return rS.call(a)}catch{}try{return a+""}catch{}}return""}var iS=/[\\^$.*+?()[\]{}|]/g,nS=/^\[object .+?Constructor\]$/,aS=Function.prototype,sS=Object.prototype,oS=aS.toString,cS=sS.hasOwnProperty,lS=RegExp("^"+oS.call(cS).replace(iS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fy(a){if(!Sn(a)||eS(a))return!1;var i=_s(a)?lS:nS;return i.test(_o(a))}function fS(a,i){return a?.[i]}function Mo(a,i){var s=fS(a,i);return fy(s)?s:void 0}var Ol=Mo(fa,"WeakMap"),Rf=Ol&&new Ol,hy=Rf?function(a,i){return Rf.set(a,i),a}:t1,HA=Object.create,uc=(function(){function a(){}return function(i){if(!Sn(i))return{};if(HA)return HA(i);a.prototype=i;var s=new a;return a.prototype=void 0,s}})();function Rl(a){return function(){var i=arguments;switch(i.length){case 0:return new a;case 1:return new a(i[0]);case 2:return new a(i[0],i[1]);case 3:return new a(i[0],i[1],i[2]);case 4:return new a(i[0],i[1],i[2],i[3]);case 5:return new a(i[0],i[1],i[2],i[3],i[4]);case 6:return new a(i[0],i[1],i[2],i[3],i[4],i[5]);case 7:return new a(i[0],i[1],i[2],i[3],i[4],i[5],i[6])}var s=uc(a.prototype),o=a.apply(s,i);return Sn(o)?o:s}}var hS=1;function uS(a,i,s){var o=i&hS,v=Rl(a);function b(){var y=this&&this!==fa&&this instanceof b?v:a;return y.apply(o?s:this,arguments)}return b}function g1(a,i,s){switch(s.length){case 0:return a.call(i);case 1:return a.call(i,s[0]);case 2:return a.call(i,s[0],s[1]);case 3:return a.call(i,s[0],s[1],s[2])}return a.apply(i,s)}var dS=Math.max;function uy(a,i,s,o){for(var v=-1,b=a.length,y=s.length,g=-1,l=i.length,h=dS(b-y,0),u=Array(l+h),f=!o;++g<l;)u[g]=i[g];for(;++v<y;)(f||v<b)&&(u[s[v]]=a[v]);for(;h--;)u[g++]=a[v++];return u}var pS=Math.max;function dy(a,i,s,o){for(var v=-1,b=a.length,y=-1,g=s.length,l=-1,h=i.length,u=pS(b-g,0),f=Array(u+h),p=!o;++v<u;)f[v]=a[v];for(var d=v;++l<h;)f[d+l]=i[l];for(;++y<g;)(p||v<b)&&(f[d+s[y]]=a[v++]);return f}function gS(a,i){for(var s=a.length,o=0;s--;)a[s]===i&&++o;return o}function nu(){}var vS=4294967295;function zr(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=vS,this.__views__=[]}zr.prototype=uc(nu.prototype);zr.prototype.constructor=zr;function Dl(){}var ng=Rf?function(a){return Rf.get(a)}:Dl,tc={},AS=Object.prototype,mS=AS.hasOwnProperty;function Af(a){for(var i=a.name+"",s=tc[i],o=mS.call(tc,i)?s.length:0;o--;){var v=s[o],b=v.func;if(b==null||b==a)return v.name}return i}function C1(a,i){this.__wrapped__=a,this.__actions__=[],this.__chain__=!!i,this.__index__=0,this.__values__=void 0}C1.prototype=uc(nu.prototype);C1.prototype.constructor=C1;function Ja(a,i){var s=-1,o=a.length;for(i||(i=Array(o));++s<o;)i[s]=a[s];return i}function py(a){if(a instanceof zr)return a.clone();var i=new C1(a.__wrapped__,a.__chain__);return i.__actions__=Ja(a.__actions__),i.__index__=a.__index__,i.__values__=a.__values__,i}var bS=Object.prototype,wS=bS.hasOwnProperty;function J(a){if(On(a)&&!yr(a)&&!(a instanceof zr)){if(a instanceof C1)return a;if(wS.call(a,"__wrapped__"))return py(a)}return new C1(a)}J.prototype=nu.prototype;J.prototype.constructor=J;function cp(a){var i=Af(a),s=J[i];if(typeof s!="function"||!(i in zr.prototype))return!1;if(a===s)return!0;var o=ng(s);return!!o&&a===o[0]}var yS=800,xS=16,CS=Date.now;function gy(a){var i=0,s=0;return function(){var o=CS(),v=xS-(o-s);if(s=o,v>0){if(++i>=yS)return arguments[0]}else i=0;return a.apply(void 0,arguments)}}var vy=gy(hy),IS=/\{\n\/\* \[wrapped with (.+)\] \*/,ES=/,? & /;function BS(a){var i=a.match(IS);return i?i[1].split(ES):[]}var SS=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function kS(a,i){var s=i.length;if(!s)return a;var o=s-1;return i[o]=(s>1?"& ":"")+i[o],i=i.join(s>2?", ":" "),a.replace(SS,`{
|
|
441
|
+
`&&A>0?(f=0,p++,u++):!this.splitByGrapheme&&this._reSpaceAndTab.test(h.graphemeText[p])&&A>0&&(f++,p++),d[A]={line:u,offset:f},p+=h.graphemeLines[A].length,f+=h.graphemeLines[A].length;return d},styleHas:function(h,u){if(this._styleMap&&!this.isWrapping){var f=this._styleMap[u];f&&(u=f.line)}return l.Text.prototype.styleHas.call(this,h,u)},isEmptyStyles:function(h){if(!this.styles)return!0;var u=0,f=h+1,p,d,A=!1,w=this._styleMap[h],m=this._styleMap[h+1];w&&(h=w.line,u=w.offset),m&&(f=m.line,A=f===h,p=m.offset),d=typeof h>"u"?this.styles:{line:this.styles[h]};for(var x in d)for(var C in d[x])if(C>=u&&(!A||C<p))for(var E in d[x][C])return!1;return!0},_getStyleDeclaration:function(h,u){if(this._styleMap&&!this.isWrapping){var f=this._styleMap[h];if(!f)return null;h=f.line,u=f.offset+u}return this.callSuper("_getStyleDeclaration",h,u)},_setStyleDeclaration:function(h,u,f){var p=this._styleMap[h];h=p.line,u=p.offset+u,this.styles[h][u]=f},_deleteStyleDeclaration:function(h,u){var f=this._styleMap[h];h=f.line,u=f.offset+u,delete this.styles[h][u]},_getLineStyle:function(h){var u=this._styleMap[h];return!!this.styles[u.line]},_setLineStyle:function(h){var u=this._styleMap[h];this.styles[u.line]={}},_wrapText:function(h,u){var f=[],p;for(this.isWrapping=!0,p=0;p<h.length;p++)f=f.concat(this._wrapLine(h[p],p,u));return this.isWrapping=!1,f},_measureWord:function(h,u,f){var p=0,d,A=!0;f=f||0;for(var w=0,m=h.length;w<m;w++){var x=this._getGraphemeBox(h[w],u,w+f,d,A);p+=x.kernedWidth,d=h[w]}return p},_wrapLine:function(h,u,f,Q){var d=0,A=this.splitByGrapheme,w=[],m=[],x=A?l.util.string.graphemeSplit(h):h.split(this._wordJoiners),C="",E=0,B=A?"":" ",k=0,M=0,T=0,R=!0,N=this._getWidthOfCharSpacing(),Q=Q||0;x.length===0&&x.push([]),f-=Q;for(var Y=0;Y<x.length;Y++)C=A?x[Y]:l.util.string.graphemeSplit(x[Y]),k=this._measureWord(C,u,E),E+=C.length,d+=M+k-N,d>f&&!R?(w.push(m),m=[],d=k,R=!0):d+=N,!R&&!A&&m.push(B),m=m.concat(C),M=A?0:this._measureWord([B],u,E),E++,R=!1,k>T&&(T=k);return Y&&w.push(m),T+Q>this.dynamicMinWidth&&(this.dynamicMinWidth=T-N+Q),w},isEndOfWrapping:function(h){return!this._styleMap[h+1]||this._styleMap[h+1].line!==this._styleMap[h].line},missingNewlineOffset:function(h){return this.splitByGrapheme?this.isEndOfWrapping(h)?1:0:1},_splitTextIntoLines:function(h){for(var u=l.Text.prototype._splitTextIntoLines.call(this,h),f=this._wrapText(u.lines,this.width),p=new Array(f.length),d=0;d<f.length;d++)p[d]=f[d].join("");return u.lines=p,u.graphemeLines=f,u},getMinWidth:function(){return Math.max(this.minWidth,this.dynamicMinWidth)},_removeExtraneousStyles:function(){var h={};for(var u in this._styleMap)this._textLines[u]&&(h[this._styleMap[u].line]=1);for(var u in this.styles)h[u]||delete this.styles[u]},toObject:function(h){return this.callSuper("toObject",["minWidth","splitByGrapheme"].concat(h))}}),l.Textbox.fromObject=function(h,u){var f=l.util.stylesFromArray(h.styles,h.text),p=Object.assign({},h,{styles:f});return l.Object._fromObject("Textbox",p,u,"text")}})(a),(function(){var g=i.controlsUtils,l=g.scaleSkewCursorStyleHandler,h=g.scaleCursorStyleHandler,u=g.scalingEqually,f=g.scalingYOrSkewingX,p=g.scalingXOrSkewingY,d=g.scaleOrSkewActionName,A=i.Object.prototype.controls;if(A.ml=new i.Control({x:-.5,y:0,cursorStyleHandler:l,actionHandler:p,getActionName:d}),A.mr=new i.Control({x:.5,y:0,cursorStyleHandler:l,actionHandler:p,getActionName:d}),A.mb=new i.Control({x:0,y:.5,cursorStyleHandler:l,actionHandler:f,getActionName:d}),A.mt=new i.Control({x:0,y:-.5,cursorStyleHandler:l,actionHandler:f,getActionName:d}),A.tl=new i.Control({x:-.5,y:-.5,cursorStyleHandler:h,actionHandler:u}),A.tr=new i.Control({x:.5,y:-.5,cursorStyleHandler:h,actionHandler:u}),A.bl=new i.Control({x:-.5,y:.5,cursorStyleHandler:h,actionHandler:u}),A.br=new i.Control({x:.5,y:.5,cursorStyleHandler:h,actionHandler:u}),A.mtr=new i.Control({x:0,y:-.5,actionHandler:g.rotationWithSnapping,cursorStyleHandler:g.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),i.Textbox){var w=i.Textbox.prototype.controls={};w.mtr=A.mtr,w.tr=A.tr,w.br=A.br,w.tl=A.tl,w.bl=A.bl,w.mt=A.mt,w.mb=A.mb,w.mr=new i.Control({x:.5,y:0,actionHandler:g.changeWidth,cursorStyleHandler:l,actionName:"resizing"}),w.ml=new i.Control({x:-.5,y:0,actionHandler:g.changeWidth,cursorStyleHandler:l,actionName:"resizing"})}})()})(RA)),RA}var Gl=gB();function vB(a){return oB(a).promise.value}function AB(a){return new Promise(i=>{const{onChange:s,open:o}=hB(a);s(v=>{i(v)}),o()})}function mB(a){return new Promise(i=>{const s=document.createElement("img");s.src=a,document.body.appendChild(s),s.onload=()=>{i(s)}})}const bB=(a,i)=>lB({source:a,...i}).copy();function wB(a,i){const s=document.createElement("a");s.href=a,s.download=`${yI()}.${i}`,document.body.appendChild(s),s.click(),s.remove()}function yB(a,i,s,o,v,b,y){y!==void 0&&(a.save(),a.translate(i,s),a.rotate(y),a.drawImage(o,-v/2,-b/2,v,b),a.restore())}const xB=a=>a instanceof Gl.fabric.Image,CB=a=>a instanceof Gl.fabric.Group,IB=a=>a instanceof Gl.fabric.IText,EB=a=>a instanceof Gl.fabric.ActiveSelection;function BB(a){return new Promise(i=>{const s=new FileReader;s.addEventListener("load",()=>{i(s.result)}),s.readAsDataURL(a)})}function SB(a){if(!a)return null;const i=a.split(","),s=i[0].match(/:(.*?);/)[1],o=window.atob(i[1]),v=new ArrayBuffer(o.length),b=new Uint8Array(v);for(let y=0;y<o.length;y++)b[y]=o.charCodeAt(y);return[new Blob([v],{type:s}),s.slice(6)]}const P1={getImgStr:vB,downFile:wB,selectFiles:AB,insertImgFile:mB,clipboardText:bB,drawImg:yB,isImage:xB,isGroup:CB,isIText:IB,isActiveSelection:EB,blobToBase64:BB,base64ToBlob:SB},kB="0.0.9-alpha.1";window&&(window._hprintPrintVersion=kB);Gl.fabric;function FA(a,i,s){const o=a.type==="image",v=p=>p===void 0?void 0:ay(Bn.pxToMm(p,i),s),b=a.left,y=a.top,g=o?a.getScaledWidth():a.width,l=o?a.getScaledHeight():a.height,h=a.strokeWidth,u=a.fontSize,f=a._originSize?.mm||{};a._originSize={...a._originSize,mm:{...f,left:v(b),top:v(y),width:v(g),height:v(l),strokeWidth:v(h),fontSize:v(u)}}}function Ln(a){return a.getUnit?.()??"px"}function m1(a,i,s){if(i==="px")return typeof a=="string"?Number(a):a;if(i==="mm")return Bn.mmToPx(a,s,{direct:!0});const o=typeof a=="string"?Number(a):a;return Bn.mmToPx(o*Bn.CONSTANTS.INCH_TO_MM,s,{direct:!0})}function u1(a={},i,s,o=["left","top","width","height","fontSize","boxWidth"]){const v=new Set(o),b={},y={};for(const g of Object.keys(a)){if(!v.has(g))continue;const l=a[g];l!==void 0&&(y[g]=l,b[g]=m1(l,i,s))}return{processed:b,originByUnit:{[i]:y}}}function ay(a,i){if(i===void 0)return a;const s=Math.pow(10,i);return Math.round(a*s)/s}function op(a,i){if(typeof a=="number")return ay(a,i);if(Array.isArray(a))return a.map(s=>op(s,i));if(a&&typeof a=="object"){const s={};return Object.keys(a).forEach(o=>{s[o]=op(a[o],i)}),s}return a}function sa(a,i){return op(a,i)}function QA(a,i=2){const s=Number(a).toFixed(i);return s.includes(".")?s.replace(/\.?0+$/,""):s}var sy=typeof global=="object"&&global&&global.Object===Object&&global,_B=typeof self=="object"&&self&&self.Object===Object&&self,fa=sy||_B||Function("return this")(),Ma=fa.Symbol,oy=Object.prototype,MB=oy.hasOwnProperty,TB=oy.toString,tl=Ma?Ma.toStringTag:void 0;function OB(a){var i=MB.call(a,tl),s=a[tl];try{a[tl]=void 0;var o=!0}catch{}var v=TB.call(a);return o&&(i?a[tl]=s:delete a[tl]),v}var RB=Object.prototype,DB=RB.toString;function FB(a){return DB.call(a)}var QB="[object Null]",jB="[object Undefined]",jA=Ma?Ma.toStringTag:void 0;function Ga(a){return a==null?a===void 0?jB:QB:jA&&jA in Object(a)?OB(a):FB(a)}function On(a){return a!=null&&typeof a=="object"}var NB="[object Symbol]";function d1(a){return typeof a=="symbol"||On(a)&&Ga(a)==NB}var PB=NaN;function NA(a){return typeof a=="number"?a:d1(a)?PB:+a}function gn(a,i){for(var s=-1,o=a==null?0:a.length,v=Array(o);++s<o;)v[s]=i(a[s],s,a);return v}var yr=Array.isArray,PA=Ma?Ma.prototype:void 0,UA=PA?PA.toString:void 0;function p1(a){if(typeof a=="string")return a;if(yr(a))return gn(a,p1)+"";if(d1(a))return UA?UA.call(a):"";var i=a+"";return i=="0"&&1/a==-1/0?"-0":i}function iu(a,i){return function(s,o){var v;if(s===void 0&&o===void 0)return i;if(s!==void 0&&(v=s),o!==void 0){if(v===void 0)return o;typeof s=="string"||typeof o=="string"?(s=p1(s),o=p1(o)):(s=NA(s),o=NA(o)),v=a(s,o)}return v}}var UB=iu(function(a,i){return a+i},0),LB=/\s/;function cy(a){for(var i=a.length;i--&&LB.test(a.charAt(i)););return i}var GB=/^\s+/;function ly(a){return a&&a.slice(0,cy(a)+1).replace(GB,"")}function Sn(a){var i=typeof a;return a!=null&&(i=="object"||i=="function")}var LA=NaN,YB=/^[-+]0x[0-9a-f]+$/i,HB=/^0b[01]+$/i,zB=/^0o[0-7]+$/i,qB=parseInt;function y1(a){if(typeof a=="number")return a;if(d1(a))return LA;if(Sn(a)){var i=typeof a.valueOf=="function"?a.valueOf():a;a=Sn(i)?i+"":i}if(typeof a!="string")return a===0?a:+a;a=ly(a);var s=HB.test(a);return s||zB.test(a)?qB(a.slice(2),s?2:8):YB.test(a)?LA:+a}var GA=1/0,WB=17976931348623157e292;function Es(a){if(!a)return a===0?a:0;if(a=y1(a),a===GA||a===-GA){var i=a<0?-1:1;return i*WB}return a===a?a:0}function Er(a){var i=Es(a),s=i%1;return i===i?s?i-s:i:0}var VB="Expected a function";function XB(a,i){if(typeof i!="function")throw new TypeError(VB);return a=Er(a),function(){if(--a<1)return i.apply(this,arguments)}}function t1(a){return a}var $B="[object AsyncFunction]",JB="[object Function]",KB="[object GeneratorFunction]",ZB="[object Proxy]";function _s(a){if(!Sn(a))return!1;var i=Ga(a);return i==JB||i==KB||i==$B||i==ZB}var vf=fa["__core-js_shared__"],YA=(function(){var a=/[^.]+$/.exec(vf&&vf.keys&&vf.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""})();function eS(a){return!!YA&&YA in a}var tS=Function.prototype,rS=tS.toString;function _o(a){if(a!=null){try{return rS.call(a)}catch{}try{return a+""}catch{}}return""}var iS=/[\\^$.*+?()[\]{}|]/g,nS=/^\[object .+?Constructor\]$/,aS=Function.prototype,sS=Object.prototype,oS=aS.toString,cS=sS.hasOwnProperty,lS=RegExp("^"+oS.call(cS).replace(iS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fy(a){if(!Sn(a)||eS(a))return!1;var i=_s(a)?lS:nS;return i.test(_o(a))}function fS(a,i){return a?.[i]}function Mo(a,i){var s=fS(a,i);return fy(s)?s:void 0}var Ol=Mo(fa,"WeakMap"),Rf=Ol&&new Ol,hy=Rf?function(a,i){return Rf.set(a,i),a}:t1,HA=Object.create,uc=(function(){function a(){}return function(i){if(!Sn(i))return{};if(HA)return HA(i);a.prototype=i;var s=new a;return a.prototype=void 0,s}})();function Rl(a){return function(){var i=arguments;switch(i.length){case 0:return new a;case 1:return new a(i[0]);case 2:return new a(i[0],i[1]);case 3:return new a(i[0],i[1],i[2]);case 4:return new a(i[0],i[1],i[2],i[3]);case 5:return new a(i[0],i[1],i[2],i[3],i[4]);case 6:return new a(i[0],i[1],i[2],i[3],i[4],i[5]);case 7:return new a(i[0],i[1],i[2],i[3],i[4],i[5],i[6])}var s=uc(a.prototype),o=a.apply(s,i);return Sn(o)?o:s}}var hS=1;function uS(a,i,s){var o=i&hS,v=Rl(a);function b(){var y=this&&this!==fa&&this instanceof b?v:a;return y.apply(o?s:this,arguments)}return b}function g1(a,i,s){switch(s.length){case 0:return a.call(i);case 1:return a.call(i,s[0]);case 2:return a.call(i,s[0],s[1]);case 3:return a.call(i,s[0],s[1],s[2])}return a.apply(i,s)}var dS=Math.max;function uy(a,i,s,o){for(var v=-1,b=a.length,y=s.length,g=-1,l=i.length,h=dS(b-y,0),u=Array(l+h),f=!o;++g<l;)u[g]=i[g];for(;++v<y;)(f||v<b)&&(u[s[v]]=a[v]);for(;h--;)u[g++]=a[v++];return u}var pS=Math.max;function dy(a,i,s,o){for(var v=-1,b=a.length,y=-1,g=s.length,l=-1,h=i.length,u=pS(b-g,0),f=Array(u+h),p=!o;++v<u;)f[v]=a[v];for(var d=v;++l<h;)f[d+l]=i[l];for(;++y<g;)(p||v<b)&&(f[d+s[y]]=a[v++]);return f}function gS(a,i){for(var s=a.length,o=0;s--;)a[s]===i&&++o;return o}function nu(){}var vS=4294967295;function zr(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=vS,this.__views__=[]}zr.prototype=uc(nu.prototype);zr.prototype.constructor=zr;function Dl(){}var ng=Rf?function(a){return Rf.get(a)}:Dl,tc={},AS=Object.prototype,mS=AS.hasOwnProperty;function Af(a){for(var i=a.name+"",s=tc[i],o=mS.call(tc,i)?s.length:0;o--;){var v=s[o],b=v.func;if(b==null||b==a)return v.name}return i}function C1(a,i){this.__wrapped__=a,this.__actions__=[],this.__chain__=!!i,this.__index__=0,this.__values__=void 0}C1.prototype=uc(nu.prototype);C1.prototype.constructor=C1;function Ja(a,i){var s=-1,o=a.length;for(i||(i=Array(o));++s<o;)i[s]=a[s];return i}function py(a){if(a instanceof zr)return a.clone();var i=new C1(a.__wrapped__,a.__chain__);return i.__actions__=Ja(a.__actions__),i.__index__=a.__index__,i.__values__=a.__values__,i}var bS=Object.prototype,wS=bS.hasOwnProperty;function J(a){if(On(a)&&!yr(a)&&!(a instanceof zr)){if(a instanceof C1)return a;if(wS.call(a,"__wrapped__"))return py(a)}return new C1(a)}J.prototype=nu.prototype;J.prototype.constructor=J;function cp(a){var i=Af(a),s=J[i];if(typeof s!="function"||!(i in zr.prototype))return!1;if(a===s)return!0;var o=ng(s);return!!o&&a===o[0]}var yS=800,xS=16,CS=Date.now;function gy(a){var i=0,s=0;return function(){var o=CS(),v=xS-(o-s);if(s=o,v>0){if(++i>=yS)return arguments[0]}else i=0;return a.apply(void 0,arguments)}}var vy=gy(hy),IS=/\{\n\/\* \[wrapped with (.+)\] \*/,ES=/,? & /;function BS(a){var i=a.match(IS);return i?i[1].split(ES):[]}var SS=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function kS(a,i){var s=i.length;if(!s)return a;var o=s-1;return i[o]=(s>1?"& ":"")+i[o],i=i.join(s>2?", ":" "),a.replace(SS,`{
|
|
442
442
|
/* [wrapped with `+i+`] */
|
|
443
443
|
`)}function ag(a){return function(){return a}}var Df=(function(){try{var a=Mo(Object,"defineProperty");return a({},"",{}),a}catch{}})(),_S=Df?function(a,i){return Df(a,"toString",{configurable:!0,enumerable:!1,value:ag(i),writable:!0})}:t1,sg=gy(_S);function S1(a,i){for(var s=-1,o=a==null?0:a.length;++s<o&&i(a[s],s,a)!==!1;);return a}function au(a,i,s,o){for(var v=a.length,b=s+(o?1:-1);o?b--:++b<v;)if(i(a[b],b,a))return b;return-1}function Ay(a){return a!==a}function MS(a,i,s){for(var o=s-1,v=a.length;++o<v;)if(a[o]===i)return o;return-1}function dc(a,i,s){return i===i?MS(a,i,s):au(a,Ay,s)}function su(a,i){var s=a==null?0:a.length;return!!s&&dc(a,i,0)>-1}var TS=1,OS=2,RS=8,DS=16,FS=32,QS=64,jS=128,NS=256,PS=512,US=[["ary",jS],["bind",TS],["bindKey",OS],["curry",RS],["curryRight",DS],["flip",PS],["partial",FS],["partialRight",QS],["rearg",NS]];function LS(a,i){return S1(US,function(s){var o="_."+s[0];i&s[1]&&!su(a,o)&&a.push(o)}),a.sort()}function my(a,i,s){var o=i+"";return sg(a,kS(o,LS(BS(o),s)))}var GS=4,YS=8,zA=32,qA=64;function by(a,i,s,o,v,b,y,g,l,h){var u=i&YS,f=u?y:void 0,p=u?void 0:y,d=u?b:void 0,A=u?void 0:b;i|=u?zA:qA,i&=~(u?qA:zA),i&GS||(i&=-4);var w=[a,i,v,d,f,A,p,g,l,h],m=s.apply(void 0,w);return cp(a)&&vy(m,w),m.placeholder=o,my(m,a,i)}function pc(a){var i=a;return i.placeholder}var HS=9007199254740991,zS=/^(?:0|[1-9]\d*)$/;function Ms(a,i){var s=typeof a;return i=i??HS,!!i&&(s=="number"||s!="symbol"&&zS.test(a))&&a>-1&&a%1==0&&a<i}var qS=Math.min;function WS(a,i){for(var s=a.length,o=qS(i.length,s),v=Ja(a);o--;){var b=i[o];a[o]=Ms(b,s)?v[b]:void 0}return a}var WA="__lodash_placeholder__";function Js(a,i){for(var s=-1,o=a.length,v=0,b=[];++s<o;){var y=a[s];(y===i||y===WA)&&(a[s]=WA,b[v++]=s)}return b}var VS=1,XS=2,$S=8,JS=16,KS=128,ZS=512;function ou(a,i,s,o,v,b,y,g,l,h){var u=i&KS,f=i&VS,p=i&XS,d=i&($S|JS),A=i&ZS,w=p?void 0:Rl(a);function m(){for(var x=arguments.length,C=Array(x),E=x;E--;)C[E]=arguments[E];if(d)var B=pc(m),k=gS(C,B);if(o&&(C=uy(C,o,v,d)),b&&(C=dy(C,b,y,d)),x-=k,d&&x<h){var M=Js(C,B);return by(a,i,ou,m.placeholder,s,C,M,g,l,h-x)}var T=f?s:this,R=p?T[a]:a;return x=C.length,g?C=WS(C,g):A&&x>1&&C.reverse(),u&&l<x&&(C.length=l),this&&this!==fa&&this instanceof m&&(R=w||Rl(R)),R.apply(T,C)}return m}function ek(a,i,s){var o=Rl(a);function v(){for(var b=arguments.length,y=Array(b),g=b,l=pc(v);g--;)y[g]=arguments[g];var h=b<3&&y[0]!==l&&y[b-1]!==l?[]:Js(y,l);if(b-=h.length,b<s)return by(a,i,ou,v.placeholder,void 0,y,h,void 0,void 0,s-b);var u=this&&this!==fa&&this instanceof v?o:a;return g1(u,this,y)}return v}var tk=1;function rk(a,i,s,o){var v=i&tk,b=Rl(a);function y(){for(var g=-1,l=arguments.length,h=-1,u=o.length,f=Array(u+l),p=this&&this!==fa&&this instanceof y?b:a;++h<u;)f[h]=o[h];for(;l--;)f[h++]=arguments[++g];return g1(p,v?s:this,f)}return y}var VA="__lodash_placeholder__",N0=1,ik=2,nk=4,XA=8,rl=128,$A=256,ak=Math.min;function sk(a,i){var s=a[1],o=i[1],v=s|o,b=v<(N0|ik|rl),y=o==rl&&s==XA||o==rl&&s==$A&&a[7].length<=i[8]||o==(rl|$A)&&i[7].length<=i[8]&&s==XA;if(!(b||y))return a;o&N0&&(a[2]=i[2],v|=s&N0?0:nk);var g=i[3];if(g){var l=a[3];a[3]=l?uy(l,g,i[4]):g,a[4]=l?Js(a[3],VA):i[4]}return g=i[5],g&&(l=a[5],a[5]=l?dy(l,g,i[6]):g,a[6]=l?Js(a[5],VA):i[6]),g=i[7],g&&(a[7]=g),o&rl&&(a[8]=a[8]==null?i[8]:ak(a[8],i[8])),a[9]==null&&(a[9]=i[9]),a[0]=i[0],a[1]=v,a}var ok="Expected a function",JA=1,ck=2,KA=8,ZA=16,em=32,lk=64,tm=Math.max;function Ts(a,i,s,o,v,b,y,g){var l=i&ck;if(!l&&typeof a!="function")throw new TypeError(ok);var h=o?o.length:0;if(h||(i&=-97,o=v=void 0),y=y===void 0?y:tm(Er(y),0),g=g===void 0?g:Er(g),h-=v?v.length:0,i&lk){var u=o,f=v;o=v=void 0}var p=l?void 0:ng(a),d=[a,i,s,o,v,u,f,b,y,g];if(p&&sk(d,p),a=d[0],i=d[1],s=d[2],o=d[3],v=d[4],g=d[9]=d[9]===void 0?l?0:a.length:tm(d[9]-h,0),!g&&i&(KA|ZA)&&(i&=-25),!i||i==JA)var A=uS(a,i,s);else i==KA||i==ZA?A=ek(a,i,g):(i==em||i==(JA|em))&&!v.length?A=rk(a,i,s,o):A=ou.apply(void 0,d);var w=p?hy:vy;return my(w(A,d),a,i)}var fk=128;function wy(a,i,s){return i=s?void 0:i,i=a&&i==null?a.length:i,Ts(a,fk,void 0,void 0,void 0,void 0,i)}function Os(a,i,s){i=="__proto__"&&Df?Df(a,i,{configurable:!0,enumerable:!0,value:s,writable:!0}):a[i]=s}function Y1(a,i){return a===i||a!==a&&i!==i}var hk=Object.prototype,uk=hk.hasOwnProperty;function Yl(a,i,s){var o=a[i];(!(uk.call(a,i)&&Y1(o,s))||s===void 0&&!(i in a))&&Os(a,i,s)}function cs(a,i,s,o){var v=!s;s||(s={});for(var b=-1,y=i.length;++b<y;){var g=i[b],l=o?o(s[g],a[g],g,s,a):void 0;l===void 0&&(l=a[g]),v?Os(s,g,l):Yl(s,g,l)}return s}var rm=Math.max;function yy(a,i,s){return i=rm(i===void 0?a.length-1:i,0),function(){for(var o=arguments,v=-1,b=rm(o.length-i,0),y=Array(b);++v<b;)y[v]=o[i+v];v=-1;for(var g=Array(i+1);++v<i;)g[v]=o[v];return g[i]=s(y),g1(a,this,g)}}function Mr(a,i){return sg(yy(a,i,t1),a+"")}var dk=9007199254740991;function cu(a){return typeof a=="number"&&a>-1&&a%1==0&&a<=dk}function r1(a){return a!=null&&cu(a.length)&&!_s(a)}function La(a,i,s){if(!Sn(s))return!1;var o=typeof i;return(o=="number"?r1(s)&&Ms(i,s.length):o=="string"&&i in s)?Y1(s[i],a):!1}function gc(a){return Mr(function(i,s){var o=-1,v=s.length,b=v>1?s[v-1]:void 0,y=v>2?s[2]:void 0;for(b=a.length>3&&typeof b=="function"?(v--,b):void 0,y&&La(s[0],s[1],y)&&(b=v<3?void 0:b,v=1),i=Object(i);++o<v;){var g=s[o];g&&a(i,g,o,b)}return i})}var pk=Object.prototype;function Hl(a){var i=a&&a.constructor,s=typeof i=="function"&&i.prototype||pk;return a===s}function og(a,i){for(var s=-1,o=Array(a);++s<a;)o[s]=i(s);return o}var gk="[object Arguments]";function im(a){return On(a)&&Ga(a)==gk}var xy=Object.prototype,vk=xy.hasOwnProperty,Ak=xy.propertyIsEnumerable,Eo=im((function(){return arguments})())?im:function(a){return On(a)&&vk.call(a,"callee")&&!Ak.call(a,"callee")};function cg(){return!1}var Cy=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nm=Cy&&typeof module=="object"&&module&&!module.nodeType&&module,mk=nm&&nm.exports===Cy,am=mk?fa.Buffer:void 0,bk=am?am.isBuffer:void 0,Ks=bk||cg,wk="[object Arguments]",yk="[object Array]",xk="[object Boolean]",Ck="[object Date]",Ik="[object Error]",Ek="[object Function]",Bk="[object Map]",Sk="[object Number]",kk="[object Object]",_k="[object RegExp]",Mk="[object Set]",Tk="[object String]",Ok="[object WeakMap]",Rk="[object ArrayBuffer]",Dk="[object DataView]",Fk="[object Float32Array]",Qk="[object Float64Array]",jk="[object Int8Array]",Nk="[object Int16Array]",Pk="[object Int32Array]",Uk="[object Uint8Array]",Lk="[object Uint8ClampedArray]",Gk="[object Uint16Array]",Yk="[object Uint32Array]",cn={};cn[Fk]=cn[Qk]=cn[jk]=cn[Nk]=cn[Pk]=cn[Uk]=cn[Lk]=cn[Gk]=cn[Yk]=!0;cn[wk]=cn[yk]=cn[Rk]=cn[xk]=cn[Dk]=cn[Ck]=cn[Ik]=cn[Ek]=cn[Bk]=cn[Sk]=cn[kk]=cn[_k]=cn[Mk]=cn[Tk]=cn[Ok]=!1;function Hk(a){return On(a)&&cu(a.length)&&!!cn[Ga(a)]}function v1(a){return function(i){return a(i)}}var Iy=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Al=Iy&&typeof module=="object"&&module&&!module.nodeType&&module,zk=Al&&Al.exports===Iy,P0=zk&&sy.process,I1=(function(){try{var a=Al&&Al.require&&Al.require("util").types;return a||P0&&P0.binding&&P0.binding("util")}catch{}})(),sm=I1&&I1.isTypedArray,vc=sm?v1(sm):Hk,qk=Object.prototype,Wk=qk.hasOwnProperty;function Ey(a,i){var s=yr(a),o=!s&&Eo(a),v=!s&&!o&&Ks(a),b=!s&&!o&&!v&&vc(a),y=s||o||v||b,g=y?og(a.length,String):[],l=g.length;for(var h in a)(i||Wk.call(a,h))&&!(y&&(h=="length"||v&&(h=="offset"||h=="parent")||b&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Ms(h,l)))&&g.push(h);return g}function By(a,i){return function(s){return a(i(s))}}var Vk=By(Object.keys,Object),Xk=Object.prototype,$k=Xk.hasOwnProperty;function lg(a){if(!Hl(a))return Vk(a);var i=[];for(var s in Object(a))$k.call(a,s)&&s!="constructor"&&i.push(s);return i}function ha(a){return r1(a)?Ey(a):lg(a)}var Jk=Object.prototype,Kk=Jk.hasOwnProperty,Zk=gc(function(a,i){if(Hl(i)||r1(i)){cs(i,ha(i),a);return}for(var s in i)Kk.call(i,s)&&Yl(a,s,i[s])});function e_(a){var i=[];if(a!=null)for(var s in Object(a))i.push(s);return i}var t_=Object.prototype,r_=t_.hasOwnProperty;function i_(a){if(!Sn(a))return e_(a);var i=Hl(a),s=[];for(var o in a)o=="constructor"&&(i||!r_.call(a,o))||s.push(o);return s}function i1(a){return r1(a)?Ey(a,!0):i_(a)}var n_=gc(function(a,i){cs(i,i1(i),a)}),lp=gc(function(a,i,s,o){cs(i,i1(i),a,o)}),a_=gc(function(a,i,s,o){cs(i,ha(i),a,o)}),s_=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o_=/^\w*$/;function fg(a,i){if(yr(a))return!1;var s=typeof a;return s=="number"||s=="symbol"||s=="boolean"||a==null||d1(a)?!0:o_.test(a)||!s_.test(a)||i!=null&&a in Object(i)}var Fl=Mo(Object,"create");function c_(){this.__data__=Fl?Fl(null):{},this.size=0}function l_(a){var i=this.has(a)&&delete this.__data__[a];return this.size-=i?1:0,i}var f_="__lodash_hash_undefined__",h_=Object.prototype,u_=h_.hasOwnProperty;function d_(a){var i=this.__data__;if(Fl){var s=i[a];return s===f_?void 0:s}return u_.call(i,a)?i[a]:void 0}var p_=Object.prototype,g_=p_.hasOwnProperty;function v_(a){var i=this.__data__;return Fl?i[a]!==void 0:g_.call(i,a)}var A_="__lodash_hash_undefined__";function m_(a,i){var s=this.__data__;return this.size+=this.has(a)?0:1,s[a]=Fl&&i===void 0?A_:i,this}function Bo(a){var i=-1,s=a==null?0:a.length;for(this.clear();++i<s;){var o=a[i];this.set(o[0],o[1])}}Bo.prototype.clear=c_;Bo.prototype.delete=l_;Bo.prototype.get=d_;Bo.prototype.has=v_;Bo.prototype.set=m_;function b_(){this.__data__=[],this.size=0}function lu(a,i){for(var s=a.length;s--;)if(Y1(a[s][0],i))return s;return-1}var w_=Array.prototype,y_=w_.splice;function x_(a){var i=this.__data__,s=lu(i,a);if(s<0)return!1;var o=i.length-1;return s==o?i.pop():y_.call(i,s,1),--this.size,!0}function C_(a){var i=this.__data__,s=lu(i,a);return s<0?void 0:i[s][1]}function I_(a){return lu(this.__data__,a)>-1}function E_(a,i){var s=this.__data__,o=lu(s,a);return o<0?(++this.size,s.push([a,i])):s[o][1]=i,this}function Rs(a){var i=-1,s=a==null?0:a.length;for(this.clear();++i<s;){var o=a[i];this.set(o[0],o[1])}}Rs.prototype.clear=b_;Rs.prototype.delete=x_;Rs.prototype.get=C_;Rs.prototype.has=I_;Rs.prototype.set=E_;var Ql=Mo(fa,"Map");function B_(){this.size=0,this.__data__={hash:new Bo,map:new(Ql||Rs),string:new Bo}}function S_(a){var i=typeof a;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?a!=="__proto__":a===null}function fu(a,i){var s=a.__data__;return S_(i)?s[typeof i=="string"?"string":"hash"]:s.map}function k_(a){var i=fu(this,a).delete(a);return this.size-=i?1:0,i}function __(a){return fu(this,a).get(a)}function M_(a){return fu(this,a).has(a)}function T_(a,i){var s=fu(this,a),o=s.size;return s.set(a,i),this.size+=s.size==o?0:1,this}function Ds(a){var i=-1,s=a==null?0:a.length;for(this.clear();++i<s;){var o=a[i];this.set(o[0],o[1])}}Ds.prototype.clear=B_;Ds.prototype.delete=k_;Ds.prototype.get=__;Ds.prototype.has=M_;Ds.prototype.set=T_;var O_="Expected a function";function hu(a,i){if(typeof a!="function"||i!=null&&typeof i!="function")throw new TypeError(O_);var s=function(){var o=arguments,v=i?i.apply(this,o):o[0],b=s.cache;if(b.has(v))return b.get(v);var y=a.apply(this,o);return s.cache=b.set(v,y)||b,y};return s.cache=new(hu.Cache||Ds),s}hu.Cache=Ds;var R_=500;function D_(a){var i=hu(a,function(o){return s.size===R_&&s.clear(),o}),s=i.cache;return i}var F_=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Q_=/\\(\\)?/g,Sy=D_(function(a){var i=[];return a.charCodeAt(0)===46&&i.push(""),a.replace(F_,function(s,o,v,b){i.push(v?b.replace(Q_,"$1"):o||s)}),i});function yi(a){return a==null?"":p1(a)}function to(a,i){return yr(a)?a:fg(a,i)?[a]:Sy(yi(a))}function ls(a){if(typeof a=="string"||d1(a))return a;var i=a+"";return i=="0"&&1/a==-1/0?"-0":i}function To(a,i){i=to(i,a);for(var s=0,o=i.length;a!=null&&s<o;)a=a[ls(i[s++])];return s&&s==o?a:void 0}function jl(a,i,s){var o=a==null?void 0:To(a,i);return o===void 0?s:o}function hg(a,i){for(var s=-1,o=i.length,v=Array(o),b=a==null;++s<o;)v[s]=b?void 0:jl(a,i[s]);return v}function ro(a,i){for(var s=-1,o=i.length,v=a.length;++s<o;)a[v+s]=i[s];return a}var om=Ma?Ma.isConcatSpreadable:void 0;function j_(a){return yr(a)||Eo(a)||!!(om&&a&&a[om])}function wa(a,i,s,o,v){var b=-1,y=a.length;for(s||(s=j_),v||(v=[]);++b<y;){var g=a[b];i>0&&s(g)?i>1?wa(g,i-1,s,o,v):ro(v,g):o||(v[v.length]=g)}return v}function ky(a){var i=a==null?0:a.length;return i?wa(a,1):[]}function Fs(a){return sg(yy(a,void 0,ky),a+"")}var N_=Fs(hg),uu=By(Object.getPrototypeOf,Object),P_="[object Object]",U_=Function.prototype,L_=Object.prototype,_y=U_.toString,G_=L_.hasOwnProperty,Y_=_y.call(Object);function zl(a){if(!On(a)||Ga(a)!=P_)return!1;var i=uu(a);if(i===null)return!0;var s=G_.call(i,"constructor")&&i.constructor;return typeof s=="function"&&s instanceof s&&_y.call(s)==Y_}var H_="[object DOMException]",z_="[object Error]";function ug(a){if(!On(a))return!1;var i=Ga(a);return i==z_||i==H_||typeof a.message=="string"&&typeof a.name=="string"&&!zl(a)}var My=Mr(function(a,i){try{return g1(a,void 0,i)}catch(s){return ug(s)?s:new Error(s)}}),q_="Expected a function";function Ty(a,i){var s;if(typeof i!="function")throw new TypeError(q_);return a=Er(a),function(){return--a>0&&(s=i.apply(this,arguments)),a<=1&&(i=void 0),s}}var W_=1,V_=32,du=Mr(function(a,i,s){var o=W_;if(s.length){var v=Js(s,pc(du));o|=V_}return Ts(a,o,i,s,v)});du.placeholder={};var X_=Fs(function(a,i){return S1(i,function(s){s=ls(s),Os(a,s,du(a[s],a))}),a}),$_=1,J_=2,K_=32,dg=Mr(function(a,i,s){var o=$_|J_;if(s.length){var v=Js(s,pc(dg));o|=K_}return Ts(i,o,a,s,v)});dg.placeholder={};function E1(a,i,s){var o=-1,v=a.length;i<0&&(i=-i>v?0:v+i),s=s>v?v:s,s<0&&(s+=v),v=i>s?0:s-i>>>0,i>>>=0;for(var b=Array(v);++o<v;)b[o]=a[o+i];return b}function io(a,i,s){var o=a.length;return s=s===void 0?o:s,!i&&s>=o?a:E1(a,i,s)}var Z_="\\ud800-\\udfff",eM="\\u0300-\\u036f",tM="\\ufe20-\\ufe2f",rM="\\u20d0-\\u20ff",iM=eM+tM+rM,nM="\\ufe0e\\ufe0f",aM="\\u200d",sM=RegExp("["+aM+Z_+iM+nM+"]");function Ac(a){return sM.test(a)}function oM(a){return a.split("")}var Oy="\\ud800-\\udfff",cM="\\u0300-\\u036f",lM="\\ufe20-\\ufe2f",fM="\\u20d0-\\u20ff",hM=cM+lM+fM,uM="\\ufe0e\\ufe0f",dM="["+Oy+"]",fp="["+hM+"]",hp="\\ud83c[\\udffb-\\udfff]",pM="(?:"+fp+"|"+hp+")",Ry="[^"+Oy+"]",Dy="(?:\\ud83c[\\udde6-\\uddff]){2}",Fy="[\\ud800-\\udbff][\\udc00-\\udfff]",gM="\\u200d",Qy=pM+"?",jy="["+uM+"]?",vM="(?:"+gM+"(?:"+[Ry,Dy,Fy].join("|")+")"+jy+Qy+")*",AM=jy+Qy+vM,mM="(?:"+[Ry+fp+"?",fp,Dy,Fy,dM].join("|")+")",bM=RegExp(hp+"(?="+hp+")|"+mM+AM,"g");function wM(a){return a.match(bM)||[]}function L1(a){return Ac(a)?wM(a):oM(a)}function Ny(a){return function(i){i=yi(i);var s=Ac(i)?L1(i):void 0,o=s?s[0]:i.charAt(0),v=s?io(s,1).join(""):i.slice(1);return o[a]()+v}}var pg=Ny("toUpperCase");function Py(a){return pg(yi(a).toLowerCase())}function gg(a,i,s,o){var v=-1,b=a==null?0:a.length;for(o&&b&&(s=a[++v]);++v<b;)s=i(s,a[v],v,a);return s}function vg(a){return function(i){return a?.[i]}}var yM={À:"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"},xM=vg(yM),CM=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,IM="\\u0300-\\u036f",EM="\\ufe20-\\ufe2f",BM="\\u20d0-\\u20ff",SM=IM+EM+BM,kM="["+SM+"]",_M=RegExp(kM,"g");function Uy(a){return a=yi(a),a&&a.replace(CM,xM).replace(_M,"")}var MM=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function TM(a){return a.match(MM)||[]}var OM=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function RM(a){return OM.test(a)}var Ly="\\ud800-\\udfff",DM="\\u0300-\\u036f",FM="\\ufe20-\\ufe2f",QM="\\u20d0-\\u20ff",jM=DM+FM+QM,Gy="\\u2700-\\u27bf",Yy="a-z\\xdf-\\xf6\\xf8-\\xff",NM="\\xac\\xb1\\xd7\\xf7",PM="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",UM="\\u2000-\\u206f",LM=" \\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",Hy="A-Z\\xc0-\\xd6\\xd8-\\xde",GM="\\ufe0e\\ufe0f",zy=NM+PM+UM+LM,qy="['’]",cm="["+zy+"]",YM="["+jM+"]",Wy="\\d+",HM="["+Gy+"]",Vy="["+Yy+"]",Xy="[^"+Ly+zy+Wy+Gy+Yy+Hy+"]",zM="\\ud83c[\\udffb-\\udfff]",qM="(?:"+YM+"|"+zM+")",WM="[^"+Ly+"]",$y="(?:\\ud83c[\\udde6-\\uddff]){2}",Jy="[\\ud800-\\udbff][\\udc00-\\udfff]",qo="["+Hy+"]",VM="\\u200d",lm="(?:"+Vy+"|"+Xy+")",XM="(?:"+qo+"|"+Xy+")",fm="(?:"+qy+"(?:d|ll|m|re|s|t|ve))?",hm="(?:"+qy+"(?:D|LL|M|RE|S|T|VE))?",Ky=qM+"?",Zy="["+GM+"]?",$M="(?:"+VM+"(?:"+[WM,$y,Jy].join("|")+")"+Zy+Ky+")*",JM="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",KM="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",ZM=Zy+Ky+$M,eT="(?:"+[HM,$y,Jy].join("|")+")"+ZM,tT=RegExp([qo+"?"+Vy+"+"+fm+"(?="+[cm,qo,"$"].join("|")+")",XM+"+"+hm+"(?="+[cm,qo+lm,"$"].join("|")+")",qo+"?"+lm+"+"+fm,qo+"+"+hm,KM,JM,Wy,eT].join("|"),"g");function rT(a){return a.match(tT)||[]}function ex(a,i,s){return a=yi(a),i=s?void 0:i,i===void 0?RM(a)?rT(a):TM(a):a.match(i)||[]}var iT="['’]",nT=RegExp(iT,"g");function mc(a){return function(i){return gg(ex(Uy(i).replace(nT,"")),a,"")}}var aT=mc(function(a,i,s){return i=i.toLowerCase(),a+(s?Py(i):i)});function sT(){if(!arguments.length)return[];var a=arguments[0];return yr(a)?a:[a]}var oT=fa.isFinite,cT=Math.min;function Ag(a){var i=Math[a];return function(s,o){if(s=y1(s),o=o==null?0:cT(Er(o),292),o&&oT(s)){var v=(yi(s)+"e").split("e"),b=i(v[0]+"e"+(+v[1]+o));return v=(yi(b)+"e").split("e"),+(v[0]+"e"+(+v[1]-o))}return i(s)}}var lT=Ag("ceil");function tx(a){var i=J(a);return i.__chain__=!0,i}var fT=Math.ceil,hT=Math.max;function uT(a,i,s){(s?La(a,i,s):i===void 0)?i=1:i=hT(Er(i),0);var o=a==null?0:a.length;if(!o||i<1)return[];for(var v=0,b=0,y=Array(fT(o/i));v<o;)y[b++]=E1(a,v,v+=i);return y}function Oo(a,i,s){return a===a&&(s!==void 0&&(a=a<=s?a:s),i!==void 0&&(a=a>=i?a:i)),a}function dT(a,i,s){return s===void 0&&(s=i,i=void 0),s!==void 0&&(s=y1(s),s=s===s?s:0),i!==void 0&&(i=y1(i),i=i===i?i:0),Oo(y1(a),i,s)}function pT(){this.__data__=new Rs,this.size=0}function gT(a){var i=this.__data__,s=i.delete(a);return this.size=i.size,s}function vT(a){return this.__data__.get(a)}function AT(a){return this.__data__.has(a)}var mT=200;function bT(a,i){var s=this.__data__;if(s instanceof Rs){var o=s.__data__;if(!Ql||o.length<mT-1)return o.push([a,i]),this.size=++s.size,this;s=this.__data__=new Ds(o)}return s.set(a,i),this.size=s.size,this}function U1(a){var i=this.__data__=new Rs(a);this.size=i.size}U1.prototype.clear=pT;U1.prototype.delete=gT;U1.prototype.get=vT;U1.prototype.has=AT;U1.prototype.set=bT;function rx(a,i){return a&&cs(i,ha(i),a)}function wT(a,i){return a&&cs(i,i1(i),a)}var ix=typeof exports=="object"&&exports&&!exports.nodeType&&exports,um=ix&&typeof module=="object"&&module&&!module.nodeType&&module,yT=um&&um.exports===ix,dm=yT?fa.Buffer:void 0,pm=dm?dm.allocUnsafe:void 0;function nx(a,i){if(i)return a.slice();var s=a.length,o=pm?pm(s):new a.constructor(s);return a.copy(o),o}function no(a,i){for(var s=-1,o=a==null?0:a.length,v=0,b=[];++s<o;){var y=a[s];i(y,s,a)&&(b[v++]=y)}return b}function mg(){return[]}var xT=Object.prototype,CT=xT.propertyIsEnumerable,gm=Object.getOwnPropertySymbols,bg=gm?function(a){return a==null?[]:(a=Object(a),no(gm(a),function(i){return CT.call(a,i)}))}:mg;function IT(a,i){return cs(a,bg(a),i)}var ET=Object.getOwnPropertySymbols,ax=ET?function(a){for(var i=[];a;)ro(i,bg(a)),a=uu(a);return i}:mg;function BT(a,i){return cs(a,ax(a),i)}function sx(a,i,s){var o=i(a);return yr(a)?o:ro(o,s(a))}function up(a){return sx(a,ha,bg)}function wg(a){return sx(a,i1,ax)}var dp=Mo(fa,"DataView"),pp=Mo(fa,"Promise"),rc=Mo(fa,"Set"),vm="[object Map]",ST="[object Object]",Am="[object Promise]",mm="[object Set]",bm="[object WeakMap]",wm="[object DataView]",kT=_o(dp),_T=_o(Ql),MT=_o(pp),TT=_o(rc),OT=_o(Ol),Sa=Ga;(dp&&Sa(new dp(new ArrayBuffer(1)))!=wm||Ql&&Sa(new Ql)!=vm||pp&&Sa(pp.resolve())!=Am||rc&&Sa(new rc)!=mm||Ol&&Sa(new Ol)!=bm)&&(Sa=function(a){var i=Ga(a),s=i==ST?a.constructor:void 0,o=s?_o(s):"";if(o)switch(o){case kT:return wm;case _T:return vm;case MT:return Am;case TT:return mm;case OT:return bm}return i});var RT=Object.prototype,DT=RT.hasOwnProperty;function FT(a){var i=a.length,s=new a.constructor(i);return i&&typeof a[0]=="string"&&DT.call(a,"index")&&(s.index=a.index,s.input=a.input),s}var Ff=fa.Uint8Array;function yg(a){var i=new a.constructor(a.byteLength);return new Ff(i).set(new Ff(a)),i}function QT(a,i){var s=i?yg(a.buffer):a.buffer;return new a.constructor(s,a.byteOffset,a.byteLength)}var jT=/\w*$/;function NT(a){var i=new a.constructor(a.source,jT.exec(a));return i.lastIndex=a.lastIndex,i}var ym=Ma?Ma.prototype:void 0,xm=ym?ym.valueOf:void 0;function PT(a){return xm?Object(xm.call(a)):{}}function ox(a,i){var s=i?yg(a.buffer):a.buffer;return new a.constructor(s,a.byteOffset,a.length)}var UT="[object Boolean]",LT="[object Date]",GT="[object Map]",YT="[object Number]",HT="[object RegExp]",zT="[object Set]",qT="[object String]",WT="[object Symbol]",VT="[object ArrayBuffer]",XT="[object DataView]",$T="[object Float32Array]",JT="[object Float64Array]",KT="[object Int8Array]",ZT="[object Int16Array]",eO="[object Int32Array]",tO="[object Uint8Array]",rO="[object Uint8ClampedArray]",iO="[object Uint16Array]",nO="[object Uint32Array]";function aO(a,i,s){var o=a.constructor;switch(i){case VT:return yg(a);case UT:case LT:return new o(+a);case XT:return QT(a,s);case $T:case JT:case KT:case ZT:case eO:case tO:case rO:case iO:case nO:return ox(a,s);case GT:return new o;case YT:case qT:return new o(a);case HT:return NT(a);case zT:return new o;case WT:return PT(a)}}function cx(a){return typeof a.constructor=="function"&&!Hl(a)?uc(uu(a)):{}}var sO="[object Map]";function oO(a){return On(a)&&Sa(a)==sO}var Cm=I1&&I1.isMap,lx=Cm?v1(Cm):oO,cO="[object Set]";function lO(a){return On(a)&&Sa(a)==cO}var Im=I1&&I1.isSet,fx=Im?v1(Im):lO,fO=1,hO=2,uO=4,hx="[object Arguments]",dO="[object Array]",pO="[object Boolean]",gO="[object Date]",vO="[object Error]",ux="[object Function]",AO="[object GeneratorFunction]",mO="[object Map]",bO="[object Number]",dx="[object Object]",wO="[object RegExp]",yO="[object Set]",xO="[object String]",CO="[object Symbol]",IO="[object WeakMap]",EO="[object ArrayBuffer]",BO="[object DataView]",SO="[object Float32Array]",kO="[object Float64Array]",_O="[object Int8Array]",MO="[object Int16Array]",TO="[object Int32Array]",OO="[object Uint8Array]",RO="[object Uint8ClampedArray]",DO="[object Uint16Array]",FO="[object Uint32Array]",$i={};$i[hx]=$i[dO]=$i[EO]=$i[BO]=$i[pO]=$i[gO]=$i[SO]=$i[kO]=$i[_O]=$i[MO]=$i[TO]=$i[mO]=$i[bO]=$i[dx]=$i[wO]=$i[yO]=$i[xO]=$i[CO]=$i[OO]=$i[RO]=$i[DO]=$i[FO]=!0;$i[vO]=$i[ux]=$i[IO]=!1;function x1(a,i,s,o,v,b){var y,g=i&fO,l=i&hO,h=i&uO;if(s&&(y=v?s(a,o,v,b):s(a)),y!==void 0)return y;if(!Sn(a))return a;var u=yr(a);if(u){if(y=FT(a),!g)return Ja(a,y)}else{var f=Sa(a),p=f==ux||f==AO;if(Ks(a))return nx(a,g);if(f==dx||f==hx||p&&!v){if(y=l||p?{}:cx(a),!g)return l?BT(a,wT(y,a)):IT(a,rx(y,a))}else{if(!$i[f])return v?a:{};y=aO(a,f,g)}}b||(b=new U1);var d=b.get(a);if(d)return d;b.set(a,y),fx(a)?a.forEach(function(m){y.add(x1(m,i,s,m,a,b))}):lx(a)&&a.forEach(function(m,x){y.set(x,x1(m,i,s,x,a,b))});var A=h?l?wg:up:l?i1:ha,w=u?void 0:A(a);return S1(w||a,function(m,x){w&&(x=m,m=a[x]),Yl(y,x,x1(m,i,s,x,a,b))}),y}var QO=4;function jO(a){return x1(a,QO)}var NO=1,PO=4;function px(a){return x1(a,NO|PO)}var UO=1,LO=4;function GO(a,i){return i=typeof i=="function"?i:void 0,x1(a,UO|LO,i)}var YO=4;function HO(a,i){return i=typeof i=="function"?i:void 0,x1(a,YO,i)}function zO(){return new C1(this.value(),this.__chain__)}function qO(a){for(var i=-1,s=a==null?0:a.length,o=0,v=[];++i<s;){var b=a[i];b&&(v[o++]=b)}return v}function WO(){var a=arguments.length;if(!a)return[];for(var i=Array(a-1),s=arguments[0],o=a;o--;)i[o-1]=arguments[o];return ro(yr(s)?Ja(s):[s],wa(i,1))}var VO="__lodash_hash_undefined__";function XO(a){return this.__data__.set(a,VO),this}function $O(a){return this.__data__.has(a)}function So(a){var i=-1,s=a==null?0:a.length;for(this.__data__=new Ds;++i<s;)this.add(a[i])}So.prototype.add=So.prototype.push=XO;So.prototype.has=$O;function xg(a,i){for(var s=-1,o=a==null?0:a.length;++s<o;)if(i(a[s],s,a))return!0;return!1}function Nl(a,i){return a.has(i)}var JO=1,KO=2;function gx(a,i,s,o,v,b){var y=s&JO,g=a.length,l=i.length;if(g!=l&&!(y&&l>g))return!1;var h=b.get(a),u=b.get(i);if(h&&u)return h==i&&u==a;var f=-1,p=!0,d=s&KO?new So:void 0;for(b.set(a,i),b.set(i,a);++f<g;){var A=a[f],w=i[f];if(o)var m=y?o(w,A,f,i,a,b):o(A,w,f,a,i,b);if(m!==void 0){if(m)continue;p=!1;break}if(d){if(!xg(i,function(x,C){if(!Nl(d,C)&&(A===x||v(A,x,s,o,b)))return d.push(C)})){p=!1;break}}else if(!(A===w||v(A,w,s,o,b))){p=!1;break}}return b.delete(a),b.delete(i),p}function Cg(a){var i=-1,s=Array(a.size);return a.forEach(function(o,v){s[++i]=[v,o]}),s}function pu(a){var i=-1,s=Array(a.size);return a.forEach(function(o){s[++i]=o}),s}var ZO=1,eR=2,tR="[object Boolean]",rR="[object Date]",iR="[object Error]",nR="[object Map]",aR="[object Number]",sR="[object RegExp]",oR="[object Set]",cR="[object String]",lR="[object Symbol]",fR="[object ArrayBuffer]",hR="[object DataView]",Em=Ma?Ma.prototype:void 0,U0=Em?Em.valueOf:void 0;function uR(a,i,s,o,v,b,y){switch(s){case hR:if(a.byteLength!=i.byteLength||a.byteOffset!=i.byteOffset)return!1;a=a.buffer,i=i.buffer;case fR:return!(a.byteLength!=i.byteLength||!b(new Ff(a),new Ff(i)));case tR:case rR:case aR:return Y1(+a,+i);case iR:return a.name==i.name&&a.message==i.message;case sR:case cR:return a==i+"";case nR:var g=Cg;case oR:var l=o&ZO;if(g||(g=pu),a.size!=i.size&&!l)return!1;var h=y.get(a);if(h)return h==i;o|=eR,y.set(a,i);var u=gx(g(a),g(i),o,v,b,y);return y.delete(a),u;case lR:if(U0)return U0.call(a)==U0.call(i)}return!1}var dR=1,pR=Object.prototype,gR=pR.hasOwnProperty;function vR(a,i,s,o,v,b){var y=s&dR,g=up(a),l=g.length,h=up(i),u=h.length;if(l!=u&&!y)return!1;for(var f=l;f--;){var p=g[f];if(!(y?p in i:gR.call(i,p)))return!1}var d=b.get(a),A=b.get(i);if(d&&A)return d==i&&A==a;var w=!0;b.set(a,i),b.set(i,a);for(var m=y;++f<l;){p=g[f];var x=a[p],C=i[p];if(o)var E=y?o(C,x,p,i,a,b):o(x,C,p,a,i,b);if(!(E===void 0?x===C||v(x,C,s,o,b):E)){w=!1;break}m||(m=p=="constructor")}if(w&&!m){var B=a.constructor,k=i.constructor;B!=k&&"constructor"in a&&"constructor"in i&&!(typeof B=="function"&&B instanceof B&&typeof k=="function"&&k instanceof k)&&(w=!1)}return b.delete(a),b.delete(i),w}var AR=1,Bm="[object Arguments]",Sm="[object Array]",C2="[object Object]",mR=Object.prototype,km=mR.hasOwnProperty;function bR(a,i,s,o,v,b){var y=yr(a),g=yr(i),l=y?Sm:Sa(a),h=g?Sm:Sa(i);l=l==Bm?C2:l,h=h==Bm?C2:h;var u=l==C2,f=h==C2,p=l==h;if(p&&Ks(a)){if(!Ks(i))return!1;y=!0,u=!1}if(p&&!u)return b||(b=new U1),y||vc(a)?gx(a,i,s,o,v,b):uR(a,i,l,s,o,v,b);if(!(s&AR)){var d=u&&km.call(a,"__wrapped__"),A=f&&km.call(i,"__wrapped__");if(d||A){var w=d?a.value():a,m=A?i.value():i;return b||(b=new U1),v(w,m,s,o,b)}}return p?(b||(b=new U1),vR(a,i,s,o,v,b)):!1}function ql(a,i,s,o,v){return a===i?!0:a==null||i==null||!On(a)&&!On(i)?a!==a&&i!==i:bR(a,i,s,o,ql,v)}var wR=1,yR=2;function Ig(a,i,s,o){var v=s.length,b=v,y=!o;if(a==null)return!b;for(a=Object(a);v--;){var g=s[v];if(y&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++v<b;){g=s[v];var l=g[0],h=a[l],u=g[1];if(y&&g[2]){if(h===void 0&&!(l in a))return!1}else{var f=new U1;if(o)var p=o(h,u,l,a,i,f);if(!(p===void 0?ql(u,h,wR|yR,o,f):p))return!1}}return!0}function vx(a){return a===a&&!Sn(a)}function Eg(a){for(var i=ha(a),s=i.length;s--;){var o=i[s],v=a[o];i[s]=[o,v,vx(v)]}return i}function Ax(a,i){return function(s){return s==null?!1:s[a]===i&&(i!==void 0||a in Object(s))}}function mx(a){var i=Eg(a);return i.length==1&&i[0][2]?Ax(i[0][0],i[0][1]):function(s){return s===a||Ig(s,a,i)}}function xR(a,i){return a!=null&&i in Object(a)}function bx(a,i,s){i=to(i,a);for(var o=-1,v=i.length,b=!1;++o<v;){var y=ls(i[o]);if(!(b=a!=null&&s(a,y)))break;a=a[y]}return b||++o!=v?b:(v=a==null?0:a.length,!!v&&cu(v)&&Ms(y,v)&&(yr(a)||Eo(a)))}function Bg(a,i){return a!=null&&bx(a,i,xR)}var CR=1,IR=2;function wx(a,i){return fg(a)&&vx(i)?Ax(ls(a),i):function(s){var o=jl(s,a);return o===void 0&&o===i?Bg(s,a):ql(i,o,CR|IR)}}function Sg(a){return function(i){return i?.[a]}}function ER(a){return function(i){return To(i,a)}}function yx(a){return fg(a)?Sg(ls(a)):ER(a)}function pr(a){return typeof a=="function"?a:a==null?t1:typeof a=="object"?yr(a)?wx(a[0],a[1]):mx(a):yx(a)}var BR="Expected a function";function SR(a){var i=a==null?0:a.length,s=pr;return a=i?gn(a,function(o){if(typeof o[1]!="function")throw new TypeError(BR);return[s(o[0]),o[1]]}):[],Mr(function(o){for(var v=-1;++v<i;){var b=a[v];if(g1(b[0],this,o))return g1(b[1],this,o)}})}function xx(a,i,s){var o=s.length;if(a==null)return!o;for(a=Object(a);o--;){var v=s[o],b=i[v],y=a[v];if(y===void 0&&!(v in a)||!b(y))return!1}return!0}function kR(a){var i=ha(a);return function(s){return xx(s,a,i)}}var _R=1;function MR(a){return kR(x1(a,_R))}function TR(a,i){return i==null||xx(a,i,ha(i))}function OR(a,i,s,o){for(var v=-1,b=a==null?0:a.length;++v<b;){var y=a[v];i(o,y,s(y),a)}return o}function Cx(a){return function(i,s,o){for(var v=-1,b=Object(i),y=o(i),g=y.length;g--;){var l=y[a?g:++v];if(s(b[l],l,b)===!1)break}return i}}var kg=Cx();function fs(a,i){return a&&kg(a,i,ha)}function Ix(a,i){return function(s,o){if(s==null)return s;if(!r1(s))return a(s,o);for(var v=s.length,b=i?v:-1,y=Object(s);(i?b--:++b<v)&&o(y[b],b,y)!==!1;);return s}}var ao=Ix(fs);function RR(a,i,s,o){return ao(a,function(v,b,y){i(o,v,s(v),y)}),o}function gu(a,i){return function(s,o){var v=yr(s)?OR:RR,b=i?i():{};return v(s,a,pr(o),b)}}var DR=Object.prototype,FR=DR.hasOwnProperty,QR=gu(function(a,i,s){FR.call(a,s)?++a[s]:Os(a,s,1)});function jR(a,i){var s=uc(a);return i==null?s:rx(s,i)}var NR=8;function _g(a,i,s){i=s?void 0:i;var o=Ts(a,NR,void 0,void 0,void 0,void 0,void 0,i);return o.placeholder=_g.placeholder,o}_g.placeholder={};var PR=16;function Mg(a,i,s){i=s?void 0:i;var o=Ts(a,PR,void 0,void 0,void 0,void 0,void 0,i);return o.placeholder=Mg.placeholder,o}Mg.placeholder={};var mf=function(){return fa.Date.now()},UR="Expected a function",LR=Math.max,GR=Math.min;function Ex(a,i,s){var o,v,b,y,g,l,h=0,u=!1,f=!1,p=!0;if(typeof a!="function")throw new TypeError(UR);i=y1(i)||0,Sn(s)&&(u=!!s.leading,f="maxWait"in s,b=f?LR(y1(s.maxWait)||0,i):b,p="trailing"in s?!!s.trailing:p);function d(M){var T=o,R=v;return o=v=void 0,h=M,y=a.apply(R,T),y}function A(M){return h=M,g=setTimeout(x,i),u?d(M):y}function w(M){var T=M-l,R=M-h,N=i-T;return f?GR(N,b-R):N}function m(M){var T=M-l,R=M-h;return l===void 0||T>=i||T<0||f&&R>=b}function x(){var M=mf();if(m(M))return C(M);g=setTimeout(x,w(M))}function C(M){return g=void 0,p&&o?d(M):(o=v=void 0,y)}function E(){g!==void 0&&clearTimeout(g),h=0,o=l=v=g=void 0}function B(){return g===void 0?y:C(mf())}function k(){var M=mf(),T=m(M);if(o=arguments,v=this,l=M,T){if(g===void 0)return A(l);if(f)return clearTimeout(g),g=setTimeout(x,i),d(l)}return g===void 0&&(g=setTimeout(x,i)),y}return k.cancel=E,k.flush=B,k}function YR(a,i){return a==null||a!==a?i:a}var Bx=Object.prototype,HR=Bx.hasOwnProperty,zR=Mr(function(a,i){a=Object(a);var s=-1,o=i.length,v=o>2?i[2]:void 0;for(v&&La(i[0],i[1],v)&&(o=1);++s<o;)for(var b=i[s],y=i1(b),g=-1,l=y.length;++g<l;){var h=y[g],u=a[h];(u===void 0||Y1(u,Bx[h])&&!HR.call(a,h))&&(a[h]=b[h])}return a});function gp(a,i,s){(s!==void 0&&!Y1(a[i],s)||s===void 0&&!(i in a))&&Os(a,i,s)}function Gn(a){return On(a)&&r1(a)}function vp(a,i){if(!(i==="constructor"&&typeof a[i]=="function")&&i!="__proto__")return a[i]}function Sx(a){return cs(a,i1(a))}function qR(a,i,s,o,v,b,y){var g=vp(a,s),l=vp(i,s),h=y.get(l);if(h){gp(a,s,h);return}var u=b?b(g,l,s+"",a,i,y):void 0,f=u===void 0;if(f){var p=yr(l),d=!p&&Ks(l),A=!p&&!d&&vc(l);u=l,p||d||A?yr(g)?u=g:Gn(g)?u=Ja(g):d?(f=!1,u=nx(l,!0)):A?(f=!1,u=ox(l,!0)):u=[]:zl(l)||Eo(l)?(u=g,Eo(g)?u=Sx(g):(!Sn(g)||_s(g))&&(u=cx(l))):f=!1}f&&(y.set(l,u),v(u,l,o,b,y),y.delete(l)),gp(a,s,u)}function vu(a,i,s,o,v){a!==i&&kg(i,function(b,y){if(v||(v=new U1),Sn(b))qR(a,i,y,s,vu,o,v);else{var g=o?o(vp(a,y),b,y+"",a,i,v):void 0;g===void 0&&(g=b),gp(a,y,g)}},i1)}function kx(a,i,s,o,v,b){return Sn(a)&&Sn(i)&&(b.set(i,a),vu(a,i,void 0,kx,b),b.delete(i)),a}var _x=gc(function(a,i,s,o){vu(a,i,s,o)}),WR=Mr(function(a){return a.push(void 0,kx),g1(_x,void 0,a)}),VR="Expected a function";function Mx(a,i,s){if(typeof a!="function")throw new TypeError(VR);return setTimeout(function(){a.apply(void 0,s)},i)}var XR=Mr(function(a,i){return Mx(a,1,i)}),$R=Mr(function(a,i,s){return Mx(a,y1(i)||0,s)});function Tg(a,i,s){for(var o=-1,v=a==null?0:a.length;++o<v;)if(s(i,a[o]))return!0;return!1}var JR=200;function Wl(a,i,s,o){var v=-1,b=su,y=!0,g=a.length,l=[],h=i.length;if(!g)return l;s&&(i=gn(i,v1(s))),o?(b=Tg,y=!1):i.length>=JR&&(b=Nl,y=!1,i=new So(i));e:for(;++v<g;){var u=a[v],f=s==null?u:s(u);if(u=o||u!==0?u:0,y&&f===f){for(var p=h;p--;)if(i[p]===f)continue e;l.push(u)}else b(i,f,o)||l.push(u)}return l}var KR=Mr(function(a,i){return Gn(a)?Wl(a,wa(i,1,Gn,!0)):[]});function B1(a){var i=a==null?0:a.length;return i?a[i-1]:void 0}var ZR=Mr(function(a,i){var s=B1(i);return Gn(s)&&(s=void 0),Gn(a)?Wl(a,wa(i,1,Gn,!0),pr(s)):[]}),eD=Mr(function(a,i){var s=B1(i);return Gn(s)&&(s=void 0),Gn(a)?Wl(a,wa(i,1,Gn,!0),void 0,s):[]}),tD=iu(function(a,i){return a/i},1);function rD(a,i,s){var o=a==null?0:a.length;return o?(i=s||i===void 0?1:Er(i),E1(a,i<0?0:i,o)):[]}function iD(a,i,s){var o=a==null?0:a.length;return o?(i=s||i===void 0?1:Er(i),i=o-i,E1(a,0,i<0?0:i)):[]}function Au(a,i,s,o){for(var v=a.length,b=o?v:-1;(o?b--:++b<v)&&i(a[b],b,a););return s?E1(a,o?0:b,o?b+1:v):E1(a,o?b+1:0,o?v:b)}function nD(a,i){return a&&a.length?Au(a,pr(i),!0,!0):[]}function aD(a,i){return a&&a.length?Au(a,pr(i),!0):[]}function hs(a){return typeof a=="function"?a:t1}function sD(a,i){var s=yr(a)?S1:ao;return s(a,hs(i))}function oD(a,i){for(var s=a==null?0:a.length;s--&&i(a[s],s,a)!==!1;);return a}var Tx=Cx(!0);function Og(a,i){return a&&Tx(a,i,ha)}var Ox=Ix(Og,!0);function cD(a,i){var s=yr(a)?oD:Ox;return s(a,hs(i))}function lD(a,i,s){a=yi(a),i=p1(i);var o=a.length;s=s===void 0?o:Oo(Er(s),0,o);var v=s;return s-=i.length,s>=0&&a.slice(s,v)==i}function fD(a,i){return gn(i,function(s){return[s,a[s]]})}function hD(a){var i=-1,s=Array(a.size);return a.forEach(function(o){s[++i]=[o,o]}),s}var uD="[object Map]",dD="[object Set]";function Rx(a){return function(i){var s=Sa(i);return s==uD?Cg(i):s==dD?hD(i):fD(i,a(i))}}var pD=Rx(ha),gD=Rx(i1),vD={"&":"&","<":"<",">":">",'"':""","'":"'"},AD=vg(vD),Dx=/[&<>"']/g,mD=RegExp(Dx.source);function Fx(a){return a=yi(a),a&&mD.test(a)?a.replace(Dx,AD):a}var Qx=/[\\^$.*+?()[\]{}|]/g,bD=RegExp(Qx.source);function wD(a){return a=yi(a),a&&bD.test(a)?a.replace(Qx,"\\$&"):a}function jx(a,i){for(var s=-1,o=a==null?0:a.length;++s<o;)if(!i(a[s],s,a))return!1;return!0}function yD(a,i){var s=!0;return ao(a,function(o,v,b){return s=!!i(o,v,b),s}),s}function xD(a,i,s){var o=yr(a)?jx:yD;return s&&La(a,i,s)&&(i=void 0),o(a,pr(i))}var CD=4294967295;function Nx(a){return a?Oo(Er(a),0,CD):0}function ID(a,i,s,o){var v=a.length;for(s=Er(s),s<0&&(s=-s>v?0:v+s),o=o===void 0||o>v?v:Er(o),o<0&&(o+=v),o=s>o?0:Nx(o);s<o;)a[s++]=i;return a}function ED(a,i,s,o){var v=a==null?0:a.length;return v?(s&&typeof s!="number"&&La(a,i,s)&&(s=0,o=v),ID(a,i,s,o)):[]}function Px(a,i){var s=[];return ao(a,function(o,v,b){i(o,v,b)&&s.push(o)}),s}function BD(a,i){var s=yr(a)?no:Px;return s(a,pr(i))}function Ux(a){return function(i,s,o){var v=Object(i);if(!r1(i)){var b=pr(s);i=ha(i),s=function(g){return b(v[g],g,v)}}var y=a(i,s,o);return y>-1?v[b?i[y]:y]:void 0}}var SD=Math.max;function Lx(a,i,s){var o=a==null?0:a.length;if(!o)return-1;var v=s==null?0:Er(s);return v<0&&(v=SD(o+v,0)),au(a,pr(i),v)}var kD=Ux(Lx);function Gx(a,i,s){var o;return s(a,function(v,b,y){if(i(v,b,y))return o=b,!1}),o}function _D(a,i){return Gx(a,pr(i),fs)}var MD=Math.max,TD=Math.min;function Yx(a,i,s){var o=a==null?0:a.length;if(!o)return-1;var v=o-1;return s!==void 0&&(v=Er(s),v=s<0?MD(o+v,0):TD(v,o-1)),au(a,pr(i),v,!0)}var OD=Ux(Yx);function RD(a,i){return Gx(a,pr(i),Og)}function DD(a){return a&&a.length?a[0]:void 0}function Hx(a,i){var s=-1,o=r1(a)?Array(a.length):[];return ao(a,function(v,b,y){o[++s]=i(v,b,y)}),o}function mu(a,i){var s=yr(a)?gn:Hx;return s(a,pr(i))}function FD(a,i){return wa(mu(a,i),1)}var QD=1/0;function jD(a,i){return wa(mu(a,i),QD)}function ND(a,i,s){return s=s===void 0?1:Er(s),wa(mu(a,i),s)}var PD=1/0;function UD(a){var i=a==null?0:a.length;return i?wa(a,PD):[]}function LD(a,i){var s=a==null?0:a.length;return s?(i=i===void 0?1:Er(i),wa(a,i)):[]}var GD=512;function YD(a){return Ts(a,GD)}var HD=Ag("floor"),zD="Expected a function",qD=8,WD=32,VD=128,XD=256;function zx(a){return Fs(function(i){var s=i.length,o=s,v=C1.prototype.thru;for(a&&i.reverse();o--;){var b=i[o];if(typeof b!="function")throw new TypeError(zD);if(v&&!y&&Af(b)=="wrapper")var y=new C1([],!0)}for(o=y?o:s;++o<s;){b=i[o];var g=Af(b),l=g=="wrapper"?ng(b):void 0;l&&cp(l[0])&&l[1]==(VD|qD|WD|XD)&&!l[4].length&&l[9]==1?y=y[Af(l[0])].apply(y,l[3]):y=b.length==1&&cp(b)?y[g]():y.thru(b)}return function(){var h=arguments,u=h[0];if(y&&h.length==1&&yr(u))return y.plant(u).value();for(var f=0,p=s?i[f].apply(this,h):u;++f<s;)p=i[f].call(this,p);return p}})}var $D=zx(),JD=zx(!0);function KD(a,i){return a==null?a:kg(a,hs(i),i1)}function ZD(a,i){return a==null?a:Tx(a,hs(i),i1)}function eF(a,i){return a&&fs(a,hs(i))}function tF(a,i){return a&&Og(a,hs(i))}function rF(a){for(var i=-1,s=a==null?0:a.length,o={};++i<s;){var v=a[i];o[v[0]]=v[1]}return o}function bu(a,i){return no(i,function(s){return _s(a[s])})}function iF(a){return a==null?[]:bu(a,ha(a))}function nF(a){return a==null?[]:bu(a,i1(a))}var aF=Object.prototype,sF=aF.hasOwnProperty,oF=gu(function(a,i,s){sF.call(a,s)?a[s].push(i):Os(a,s,[i])});function Rg(a,i){return a>i}function wu(a){return function(i,s){return typeof i=="string"&&typeof s=="string"||(i=y1(i),s=y1(s)),a(i,s)}}var cF=wu(Rg),lF=wu(function(a,i){return a>=i}),fF=Object.prototype,hF=fF.hasOwnProperty;function uF(a,i){return a!=null&&hF.call(a,i)}function dF(a,i){return a!=null&&bx(a,i,uF)}var pF=Math.max,gF=Math.min;function vF(a,i,s){return a>=gF(i,s)&&a<pF(i,s)}function AF(a,i,s){return i=Es(i),s===void 0?(s=i,i=0):s=Es(s),a=y1(a),vF(a,i,s)}var mF="[object String]";function yu(a){return typeof a=="string"||!yr(a)&&On(a)&&Ga(a)==mF}function Dg(a,i){return gn(i,function(s){return a[s]})}function bc(a){return a==null?[]:Dg(a,ha(a))}var bF=Math.max;function wF(a,i,s,o){a=r1(a)?a:bc(a),s=s&&!o?Er(s):0;var v=a.length;return s<0&&(s=bF(v+s,0)),yu(a)?s<=v&&a.indexOf(i,s)>-1:!!v&&dc(a,i,s)>-1}var yF=Math.max;function xF(a,i,s){var o=a==null?0:a.length;if(!o)return-1;var v=s==null?0:Er(s);return v<0&&(v=yF(o+v,0)),dc(a,i,v)}function CF(a){var i=a==null?0:a.length;return i?E1(a,0,-1):[]}var IF=Math.min;function Fg(a,i,s){for(var o=s?Tg:su,v=a[0].length,b=a.length,y=b,g=Array(b),l=1/0,h=[];y--;){var u=a[y];y&&i&&(u=gn(u,v1(i))),l=IF(u.length,l),g[y]=!s&&(i||v>=120&&u.length>=120)?new So(y&&u):void 0}u=a[0];var f=-1,p=g[0];e:for(;++f<v&&h.length<l;){var d=u[f],A=i?i(d):d;if(d=s||d!==0?d:0,!(p?Nl(p,A):o(h,A,s))){for(y=b;--y;){var w=g[y];if(!(w?Nl(w,A):o(a[y],A,s)))continue e}p&&p.push(A),h.push(d)}}return h}function Qg(a){return Gn(a)?a:[]}var EF=Mr(function(a){var i=gn(a,Qg);return i.length&&i[0]===a[0]?Fg(i):[]}),BF=Mr(function(a){var i=B1(a),s=gn(a,Qg);return i===B1(s)?i=void 0:s.pop(),s.length&&s[0]===a[0]?Fg(s,pr(i)):[]}),SF=Mr(function(a){var i=B1(a),s=gn(a,Qg);return i=typeof i=="function"?i:void 0,i&&s.pop(),s.length&&s[0]===a[0]?Fg(s,void 0,i):[]});function kF(a,i,s,o){return fs(a,function(v,b,y){i(o,s(v),b,y)}),o}function qx(a,i){return function(s,o){return kF(s,a,i(o),{})}}var _F=Object.prototype,MF=_F.toString,TF=qx(function(a,i,s){i!=null&&typeof i.toString!="function"&&(i=MF.call(i)),a[i]=s},ag(t1)),Wx=Object.prototype,OF=Wx.hasOwnProperty,RF=Wx.toString,DF=qx(function(a,i,s){i!=null&&typeof i.toString!="function"&&(i=RF.call(i)),OF.call(a,i)?a[i].push(s):a[i]=[s]},pr);function Vx(a,i){return i.length<2?a:To(a,E1(i,0,-1))}function Vl(a,i,s){i=to(i,a),a=Vx(a,i);var o=a==null?a:a[ls(B1(i))];return o==null?void 0:g1(o,a,s)}var FF=Mr(Vl),QF=Mr(function(a,i,s){var o=-1,v=typeof i=="function",b=r1(a)?Array(a.length):[];return ao(a,function(y){b[++o]=v?g1(i,y,s):Vl(y,i,s)}),b}),jF="[object ArrayBuffer]";function NF(a){return On(a)&&Ga(a)==jF}var _m=I1&&I1.isArrayBuffer,PF=_m?v1(_m):NF,UF="[object Boolean]";function LF(a){return a===!0||a===!1||On(a)&&Ga(a)==UF}var GF="[object Date]";function YF(a){return On(a)&&Ga(a)==GF}var Mm=I1&&I1.isDate,HF=Mm?v1(Mm):YF;function zF(a){return On(a)&&a.nodeType===1&&!zl(a)}var qF="[object Map]",WF="[object Set]",VF=Object.prototype,XF=VF.hasOwnProperty;function $F(a){if(a==null)return!0;if(r1(a)&&(yr(a)||typeof a=="string"||typeof a.splice=="function"||Ks(a)||vc(a)||Eo(a)))return!a.length;var i=Sa(a);if(i==qF||i==WF)return!a.size;if(Hl(a))return!lg(a).length;for(var s in a)if(XF.call(a,s))return!1;return!0}function JF(a,i){return ql(a,i)}function KF(a,i,s){s=typeof s=="function"?s:void 0;var o=s?s(a,i):void 0;return o===void 0?ql(a,i,void 0,s):!!o}var ZF=fa.isFinite;function eQ(a){return typeof a=="number"&&ZF(a)}function Xx(a){return typeof a=="number"&&a==Er(a)}function tQ(a,i){return a===i||Ig(a,i,Eg(i))}function rQ(a,i,s){return s=typeof s=="function"?s:void 0,Ig(a,i,Eg(i),s)}var iQ="[object Number]";function $x(a){return typeof a=="number"||On(a)&&Ga(a)==iQ}function nQ(a){return $x(a)&&a!=+a}var aQ=vf?_s:cg,sQ="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";function oQ(a){if(aQ(a))throw new Error(sQ);return fy(a)}function cQ(a){return a==null}function lQ(a){return a===null}var fQ="[object RegExp]";function hQ(a){return On(a)&&Ga(a)==fQ}var Tm=I1&&I1.isRegExp,jg=Tm?v1(Tm):hQ,Om=9007199254740991;function uQ(a){return Xx(a)&&a>=-Om&&a<=Om}function dQ(a){return a===void 0}var pQ="[object WeakMap]";function gQ(a){return On(a)&&Sa(a)==pQ}var vQ="[object WeakSet]";function AQ(a){return On(a)&&Ga(a)==vQ}var mQ=1;function bQ(a){return pr(typeof a=="function"?a:x1(a,mQ))}var wQ=Array.prototype,yQ=wQ.join;function xQ(a,i){return a==null?"":yQ.call(a,i)}var CQ=mc(function(a,i,s){return a+(s?"-":"")+i.toLowerCase()}),IQ=gu(function(a,i,s){Os(a,s,i)});function EQ(a,i,s){for(var o=s+1;o--;)if(a[o]===i)return o;return o}var BQ=Math.max,SQ=Math.min;function kQ(a,i,s){var o=a==null?0:a.length;if(!o)return-1;var v=o;return s!==void 0&&(v=Er(s),v=v<0?BQ(o+v,0):SQ(v,o-1)),i===i?EQ(a,i,v):au(a,Ay,v,!0)}var _Q=mc(function(a,i,s){return a+(s?" ":"")+i.toLowerCase()}),MQ=Ny("toLowerCase");function Ng(a,i){return a<i}var TQ=wu(Ng),OQ=wu(function(a,i){return a<=i});function RQ(a,i){var s={};return i=pr(i),fs(a,function(o,v,b){Os(s,i(o,v,b),o)}),s}function DQ(a,i){var s={};return i=pr(i),fs(a,function(o,v,b){Os(s,v,i(o,v,b))}),s}var FQ=1;function QQ(a){return mx(x1(a,FQ))}var jQ=1;function NQ(a,i){return wx(a,x1(i,jQ))}function xu(a,i,s){for(var o=-1,v=a.length;++o<v;){var b=a[o],y=i(b);if(y!=null&&(g===void 0?y===y&&!d1(y):s(y,g)))var g=y,l=b}return l}function PQ(a){return a&&a.length?xu(a,t1,Rg):void 0}function UQ(a,i){return a&&a.length?xu(a,pr(i),Rg):void 0}function Pg(a,i){for(var s,o=-1,v=a.length;++o<v;){var b=i(a[o]);b!==void 0&&(s=s===void 0?b:s+b)}return s}var LQ=NaN;function Jx(a,i){var s=a==null?0:a.length;return s?Pg(a,i)/s:LQ}function GQ(a){return Jx(a,t1)}function YQ(a,i){return Jx(a,pr(i))}var HQ=gc(function(a,i,s){vu(a,i,s)}),zQ=Mr(function(a,i){return function(s){return Vl(s,a,i)}}),qQ=Mr(function(a,i){return function(s){return Vl(a,s,i)}});function WQ(a){return a&&a.length?xu(a,t1,Ng):void 0}function VQ(a,i){return a&&a.length?xu(a,pr(i),Ng):void 0}function XQ(a,i,s){var o=ha(i),v=bu(i,o),b=!(Sn(s)&&"chain"in s)||!!s.chain,y=_s(a);return S1(v,function(g){var l=i[g];a[g]=l,y&&(a.prototype[g]=function(){var h=this.__chain__;if(b||h){var u=a(this.__wrapped__),f=u.__actions__=Ja(this.__actions__);return f.push({func:l,args:arguments,thisArg:a}),u.__chain__=h,u}return l.apply(a,ro([this.value()],arguments))})}),a}var $Q=iu(function(a,i){return a*i},1),JQ="Expected a function";function Cu(a){if(typeof a!="function")throw new TypeError(JQ);return function(){var i=arguments;switch(i.length){case 0:return!a.call(this);case 1:return!a.call(this,i[0]);case 2:return!a.call(this,i[0],i[1]);case 3:return!a.call(this,i[0],i[1],i[2])}return!a.apply(this,i)}}function KQ(a){for(var i,s=[];!(i=a.next()).done;)s.push(i.value);return s}var ZQ="[object Map]",ej="[object Set]",L0=Ma?Ma.iterator:void 0;function Kx(a){if(!a)return[];if(r1(a))return yu(a)?L1(a):Ja(a);if(L0&&a[L0])return KQ(a[L0]());var i=Sa(a),s=i==ZQ?Cg:i==ej?pu:bc;return s(a)}function tj(){this.__values__===void 0&&(this.__values__=Kx(this.value()));var a=this.__index__>=this.__values__.length,i=a?void 0:this.__values__[this.__index__++];return{done:a,value:i}}function Zx(a,i){var s=a.length;if(s)return i+=i<0?s:0,Ms(i,s)?a[i]:void 0}function rj(a,i){return a&&a.length?Zx(a,Er(i)):void 0}function ij(a){return a=Er(a),Mr(function(i){return Zx(i,a)})}function Ug(a,i){return i=to(i,a),a=Vx(a,i),a==null||delete a[ls(B1(i))]}function nj(a){return zl(a)?void 0:a}var aj=1,sj=2,oj=4,cj=Fs(function(a,i){var s={};if(a==null)return s;var o=!1;i=gn(i,function(b){return b=to(b,a),o||(o=b.length>1),b}),cs(a,wg(a),s),o&&(s=x1(s,aj|sj|oj,nj));for(var v=i.length;v--;)Ug(s,i[v]);return s});function Xl(a,i,s,o){if(!Sn(a))return a;i=to(i,a);for(var v=-1,b=i.length,y=b-1,g=a;g!=null&&++v<b;){var l=ls(i[v]),h=s;if(l==="__proto__"||l==="constructor"||l==="prototype")return a;if(v!=y){var u=g[l];h=o?o(u,l,g):void 0,h===void 0&&(h=Sn(u)?u:Ms(i[v+1])?[]:{})}Yl(g,l,h),g=g[l]}return a}function e6(a,i,s){for(var o=-1,v=i.length,b={};++o<v;){var y=i[o],g=To(a,y);s(g,y)&&Xl(b,to(y,a),g)}return b}function t6(a,i){if(a==null)return{};var s=gn(wg(a),function(o){return[o]});return i=pr(i),e6(a,s,function(o,v){return i(o,v[0])})}function lj(a,i){return t6(a,Cu(pr(i)))}function fj(a){return Ty(2,a)}function hj(a,i){var s=a.length;for(a.sort(i);s--;)a[s]=a[s].value;return a}function r6(a,i){if(a!==i){var s=a!==void 0,o=a===null,v=a===a,b=d1(a),y=i!==void 0,g=i===null,l=i===i,h=d1(i);if(!g&&!h&&!b&&a>i||b&&y&&l&&!g&&!h||o&&y&&l||!s&&l||!v)return 1;if(!o&&!b&&!h&&a<i||h&&s&&v&&!o&&!b||g&&s&&v||!y&&v||!l)return-1}return 0}function uj(a,i,s){for(var o=-1,v=a.criteria,b=i.criteria,y=v.length,g=s.length;++o<y;){var l=r6(v[o],b[o]);if(l){if(o>=g)return l;var h=s[o];return l*(h=="desc"?-1:1)}}return a.index-i.index}function i6(a,i,s){i.length?i=gn(i,function(b){return yr(b)?function(y){return To(y,b.length===1?b[0]:b)}:b}):i=[t1];var o=-1;i=gn(i,v1(pr));var v=Hx(a,function(b,y,g){var l=gn(i,function(h){return h(b)});return{criteria:l,index:++o,value:b}});return hj(v,function(b,y){return uj(b,y,s)})}function dj(a,i,s,o){return a==null?[]:(yr(i)||(i=i==null?[]:[i]),s=o?void 0:s,yr(s)||(s=s==null?[]:[s]),i6(a,i,s))}function Lg(a){return Fs(function(i){return i=gn(i,v1(pr)),Mr(function(s){var o=this;return a(i,function(v){return g1(v,o,s)})})})}var pj=Lg(gn),gj=Mr,vj=Math.min,Aj=gj(function(a,i){i=i.length==1&&yr(i[0])?gn(i[0],v1(pr)):gn(wa(i,1),v1(pr));var s=i.length;return Mr(function(o){for(var v=-1,b=vj(o.length,s);++v<b;)o[v]=i[v].call(this,o[v]);return g1(a,this,o)})}),mj=Lg(jx),bj=Lg(xg),wj=9007199254740991,yj=Math.floor;function Ap(a,i){var s="";if(!a||i<1||i>wj)return s;do i%2&&(s+=a),i=yj(i/2),i&&(a+=a);while(i);return s}var xj=Sg("length"),n6="\\ud800-\\udfff",Cj="\\u0300-\\u036f",Ij="\\ufe20-\\ufe2f",Ej="\\u20d0-\\u20ff",Bj=Cj+Ij+Ej,Sj="\\ufe0e\\ufe0f",kj="["+n6+"]",mp="["+Bj+"]",bp="\\ud83c[\\udffb-\\udfff]",_j="(?:"+mp+"|"+bp+")",a6="[^"+n6+"]",s6="(?:\\ud83c[\\udde6-\\uddff]){2}",o6="[\\ud800-\\udbff][\\udc00-\\udfff]",Mj="\\u200d",c6=_j+"?",l6="["+Sj+"]?",Tj="(?:"+Mj+"(?:"+[a6,s6,o6].join("|")+")"+l6+c6+")*",Oj=l6+c6+Tj,Rj="(?:"+[a6+mp+"?",mp,s6,o6,kj].join("|")+")",Rm=RegExp(bp+"(?="+bp+")|"+Rj+Oj,"g");function Dj(a){for(var i=Rm.lastIndex=0;Rm.test(a);)++i;return i}function wc(a){return Ac(a)?Dj(a):xj(a)}var Fj=Math.ceil;function Qf(a,i){i=i===void 0?" ":p1(i);var s=i.length;if(s<2)return s?Ap(i,a):i;var o=Ap(i,Fj(a/wc(i)));return Ac(i)?io(L1(o),0,a).join(""):o.slice(0,a)}var Qj=Math.ceil,jj=Math.floor;function Nj(a,i,s){a=yi(a),i=Er(i);var o=i?wc(a):0;if(!i||o>=i)return a;var v=(i-o)/2;return Qf(jj(v),s)+a+Qf(Qj(v),s)}function Pj(a,i,s){a=yi(a),i=Er(i);var o=i?wc(a):0;return i&&o<i?a+Qf(i-o,s):a}function Uj(a,i,s){a=yi(a),i=Er(i);var o=i?wc(a):0;return i&&o<i?Qf(i-o,s)+a:a}var Lj=/^\s+/,Gj=fa.parseInt;function Yj(a,i,s){return s||i==null?i=0:i&&(i=+i),Gj(yi(a).replace(Lj,""),i||0)}var Hj=32,Iu=Mr(function(a,i){var s=Js(i,pc(Iu));return Ts(a,Hj,void 0,i,s)});Iu.placeholder={};var zj=64,Gg=Mr(function(a,i){var s=Js(i,pc(Gg));return Ts(a,zj,void 0,i,s)});Gg.placeholder={};var qj=gu(function(a,i,s){a[s?0:1].push(i)},function(){return[[],[]]});function Wj(a,i){return e6(a,i,function(s,o){return Bg(a,o)})}var f6=Fs(function(a,i){return a==null?{}:Wj(a,i)});function Vj(a){for(var i,s=this;s instanceof nu;){var o=py(s);o.__index__=0,o.__values__=void 0,i?v.__wrapped__=o:i=o;var v=o;s=s.__wrapped__}return v.__wrapped__=a,i}function Xj(a){return function(i){return a==null?void 0:To(a,i)}}function $j(a,i,s,o){for(var v=s-1,b=a.length;++v<b;)if(o(a[v],i))return v;return-1}var Jj=Array.prototype,Dm=Jj.splice;function Yg(a,i,s,o){var v=o?$j:dc,b=-1,y=i.length,g=a;for(a===i&&(i=Ja(i)),s&&(g=gn(a,v1(s)));++b<y;)for(var l=0,h=i[b],u=s?s(h):h;(l=v(g,u,l,o))>-1;)g!==a&&Dm.call(g,l,1),Dm.call(a,l,1);return a}function h6(a,i){return a&&a.length&&i&&i.length?Yg(a,i):a}var Kj=Mr(h6);function Zj(a,i,s){return a&&a.length&&i&&i.length?Yg(a,i,pr(s)):a}function eN(a,i,s){return a&&a.length&&i&&i.length?Yg(a,i,void 0,s):a}var tN=Array.prototype,rN=tN.splice;function u6(a,i){for(var s=a?i.length:0,o=s-1;s--;){var v=i[s];if(s==o||v!==b){var b=v;Ms(v)?rN.call(a,v,1):Ug(a,v)}}return a}var iN=Fs(function(a,i){var s=a==null?0:a.length,o=hg(a,i);return u6(a,gn(i,function(v){return Ms(v,s)?+v:v}).sort(r6)),o}),nN=Math.floor,aN=Math.random;function Hg(a,i){return a+nN(aN()*(i-a+1))}var sN=parseFloat,oN=Math.min,cN=Math.random;function lN(a,i,s){if(s&&typeof s!="boolean"&&La(a,i,s)&&(i=s=void 0),s===void 0&&(typeof i=="boolean"?(s=i,i=void 0):typeof a=="boolean"&&(s=a,a=void 0)),a===void 0&&i===void 0?(a=0,i=1):(a=Es(a),i===void 0?(i=a,a=0):i=Es(i)),a>i){var o=a;a=i,i=o}if(s||a%1||i%1){var v=cN();return oN(a+v*(i-a+sN("1e-"+((v+"").length-1))),i)}return Hg(a,i)}var fN=Math.ceil,hN=Math.max;function uN(a,i,s,o){for(var v=-1,b=hN(fN((i-a)/(s||1)),0),y=Array(b);b--;)y[o?b:++v]=a,a+=s;return y}function d6(a){return function(i,s,o){return o&&typeof o!="number"&&La(i,s,o)&&(s=o=void 0),i=Es(i),s===void 0?(s=i,i=0):s=Es(s),o=o===void 0?i<s?1:-1:Es(o),uN(i,s,o,a)}}var dN=d6(),pN=d6(!0),gN=256,vN=Fs(function(a,i){return Ts(a,gN,void 0,void 0,void 0,i)});function p6(a,i,s,o,v){return v(a,function(b,y,g){s=o?(o=!1,b):i(s,b,y,g)}),s}function AN(a,i,s){var o=yr(a)?gg:p6,v=arguments.length<3;return o(a,pr(i),s,v,ao)}function mN(a,i,s,o){var v=a==null?0:a.length;for(o&&v&&(s=a[--v]);v--;)s=i(s,a[v],v,a);return s}function bN(a,i,s){var o=yr(a)?mN:p6,v=arguments.length<3;return o(a,pr(i),s,v,Ox)}function wN(a,i){var s=yr(a)?no:Px;return s(a,Cu(pr(i)))}function yN(a,i){var s=[];if(!(a&&a.length))return s;var o=-1,v=[],b=a.length;for(i=pr(i);++o<b;){var y=a[o];i(y,o,a)&&(s.push(y),v.push(o))}return u6(a,v),s}function xN(a,i,s){return(s?La(a,i,s):i===void 0)?i=1:i=Er(i),Ap(yi(a),i)}function CN(){var a=arguments,i=yi(a[0]);return a.length<3?i:i.replace(a[1],a[2])}var IN="Expected a function";function EN(a,i){if(typeof a!="function")throw new TypeError(IN);return i=i===void 0?i:Er(i),Mr(a,i)}function BN(a,i,s){i=to(i,a);var o=-1,v=i.length;for(v||(v=1,a=void 0);++o<v;){var b=a?.[ls(i[o])];b===void 0&&(o=v,b=s),a=_s(b)?b.call(a):b}return a}var SN=Array.prototype,kN=SN.reverse;function wp(a){return a==null?a:kN.call(a)}var _N=Ag("round");function g6(a){var i=a.length;return i?a[Hg(0,i-1)]:void 0}function MN(a){return g6(bc(a))}function TN(a){var i=yr(a)?g6:MN;return i(a)}function Eu(a,i){var s=-1,o=a.length,v=o-1;for(i=i===void 0?o:i;++s<i;){var b=Hg(s,v),y=a[b];a[b]=a[s],a[s]=y}return a.length=i,a}function ON(a,i){return Eu(Ja(a),Oo(i,0,a.length))}function RN(a,i){var s=bc(a);return Eu(s,Oo(i,0,s.length))}function DN(a,i,s){(s?La(a,i,s):i===void 0)?i=1:i=Er(i);var o=yr(a)?ON:RN;return o(a,i)}function v6(a,i,s){return a==null?a:Xl(a,i,s)}function FN(a,i,s,o){return o=typeof o=="function"?o:void 0,a==null?a:Xl(a,i,s,o)}function QN(a){return Eu(Ja(a))}function jN(a){return Eu(bc(a))}function NN(a){var i=yr(a)?QN:jN;return i(a)}var PN="[object Map]",UN="[object Set]";function LN(a){if(a==null)return 0;if(r1(a))return yu(a)?wc(a):a.length;var i=Sa(a);return i==PN||i==UN?a.size:lg(a).length}function GN(a,i,s){var o=a==null?0:a.length;return o?(s&&typeof s!="number"&&La(a,i,s)?(i=0,s=o):(i=i==null?0:Er(i),s=s===void 0?o:Er(s)),E1(a,i,s)):[]}var YN=mc(function(a,i,s){return a+(s?"_":"")+i.toLowerCase()});function HN(a,i){var s;return ao(a,function(o,v,b){return s=i(o,v,b),!s}),!!s}function zN(a,i,s){var o=yr(a)?xg:HN;return s&&La(a,i,s)&&(i=void 0),o(a,pr(i))}var qN=Mr(function(a,i){if(a==null)return[];var s=i.length;return s>1&&La(a,i[0],i[1])?i=[]:s>2&&La(i[0],i[1],i[2])&&(i=[i[0]]),i6(a,wa(i,1),[])}),WN=4294967295,VN=WN-1,XN=Math.floor,$N=Math.min;function zg(a,i,s,o){var v=0,b=a==null?0:a.length;if(b===0)return 0;i=s(i);for(var y=i!==i,g=i===null,l=d1(i),h=i===void 0;v<b;){var u=XN((v+b)/2),f=s(a[u]),p=f!==void 0,d=f===null,A=f===f,w=d1(f);if(y)var m=o||A;else h?m=A&&(o||p):g?m=A&&p&&(o||!d):l?m=A&&p&&!d&&(o||!w):d||w?m=!1:m=o?f<=i:f<i;m?v=u+1:b=u}return $N(b,VN)}var JN=4294967295,KN=JN>>>1;function Bu(a,i,s){var o=0,v=a==null?o:a.length;if(typeof i=="number"&&i===i&&v<=KN){for(;o<v;){var b=o+v>>>1,y=a[b];y!==null&&!d1(y)&&(s?y<=i:y<i)?o=b+1:v=b}return v}return zg(a,i,t1,s)}function ZN(a,i){return Bu(a,i)}function eP(a,i,s){return zg(a,i,pr(s))}function tP(a,i){var s=a==null?0:a.length;if(s){var o=Bu(a,i);if(o<s&&Y1(a[o],i))return o}return-1}function rP(a,i){return Bu(a,i,!0)}function iP(a,i,s){return zg(a,i,pr(s),!0)}function nP(a,i){var s=a==null?0:a.length;if(s){var o=Bu(a,i,!0)-1;if(Y1(a[o],i))return o}return-1}function A6(a,i){for(var s=-1,o=a.length,v=0,b=[];++s<o;){var y=a[s],g=i?i(y):y;if(!s||!Y1(g,l)){var l=g;b[v++]=y===0?0:y}}return b}function aP(a){return a&&a.length?A6(a):[]}function sP(a,i){return a&&a.length?A6(a,pr(i)):[]}var oP=4294967295;function cP(a,i,s){return s&&typeof s!="number"&&La(a,i,s)&&(i=s=void 0),s=s===void 0?oP:s>>>0,s?(a=yi(a),a&&(typeof i=="string"||i!=null&&!jg(i))&&(i=p1(i),!i&&Ac(a))?io(L1(a),0,s):a.split(i,s)):[]}var lP="Expected a function",fP=Math.max;function hP(a,i){if(typeof a!="function")throw new TypeError(lP);return i=i==null?0:fP(Er(i),0),Mr(function(s){var o=s[i],v=io(s,0,i);return o&&ro(v,o),g1(a,this,v)})}var uP=mc(function(a,i,s){return a+(s?" ":"")+pg(i)});function dP(a,i,s){return a=yi(a),s=s==null?0:Oo(Er(s),0,a.length),i=p1(i),a.slice(s,s+i.length)==i}function pP(){return{}}function gP(){return""}function vP(){return!0}var AP=iu(function(a,i){return a-i},0);function mP(a){return a&&a.length?Pg(a,t1):0}function bP(a,i){return a&&a.length?Pg(a,pr(i)):0}function wP(a){var i=a==null?0:a.length;return i?E1(a,1,i):[]}function yP(a,i,s){return a&&a.length?(i=s||i===void 0?1:Er(i),E1(a,0,i<0?0:i)):[]}function xP(a,i,s){var o=a==null?0:a.length;return o?(i=s||i===void 0?1:Er(i),i=o-i,E1(a,i<0?0:i,o)):[]}function CP(a,i){return a&&a.length?Au(a,pr(i),!1,!0):[]}function IP(a,i){return a&&a.length?Au(a,pr(i)):[]}function EP(a,i){return i(a),a}var m6=Object.prototype,BP=m6.hasOwnProperty;function Fm(a,i,s,o){return a===void 0||Y1(a,m6[s])&&!BP.call(o,s)?i:a}var SP={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function kP(a){return"\\"+SP[a]}var b6=/<%=([\s\S]+?)%>/g,_P=/<%-([\s\S]+?)%>/g,MP=/<%([\s\S]+?)%>/g,yp={escape:_P,evaluate:MP,interpolate:b6,variable:"",imports:{_:{escape:Fx}}},TP="Invalid `variable` option passed into `_.template`",OP=/\b__p \+= '';/g,RP=/\b(__p \+=) '' \+/g,DP=/(__e\(.*?\)|\b__t\)) \+\n'';/g,FP=/[()=,{}\[\]\/\s]/,QP=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,I2=/($^)/,jP=/['\n\r\u2028\u2029\\]/g,NP=Object.prototype,Qm=NP.hasOwnProperty;function PP(a,i,s){var o=yp.imports._.templateSettings||yp;s&&La(a,i,s)&&(i=void 0),a=yi(a),i=lp({},i,o,Fm);var v=lp({},i.imports,o.imports,Fm),b=ha(v),y=Dg(v,b),g,l,h=0,u=i.interpolate||I2,f="__p += '",p=RegExp((i.escape||I2).source+"|"+u.source+"|"+(u===b6?QP:I2).source+"|"+(i.evaluate||I2).source+"|$","g"),d=Qm.call(i,"sourceURL")?"//# sourceURL="+(i.sourceURL+"").replace(/\s/g," ")+`
|
|
444
444
|
`:"";a.replace(p,function(m,x,C,E,B,k){return C||(C=E),f+=a.slice(h,k).replace(jP,kP),x&&(g=!0,f+=`' +
|
|
@@ -457,7 +457,7 @@ __p += '`),C&&(f+=`' +
|
|
|
457
457
|
function print() { __p += __j.call(arguments, '') }
|
|
458
458
|
`:`;
|
|
459
459
|
`)+f+`return __p
|
|
460
|
-
}`;var w=My(function(){return Function(b,d+"return "+f).apply(void 0,y)});if(w.source=f,ug(w))throw w;return w}var UP="Expected a function";function Bs(a,i,s){var o=!0,v=!0;if(typeof a!="function")throw new TypeError(UP);return Sn(s)&&(o="leading"in s?!!s.leading:o,v="trailing"in s?!!s.trailing:v),Ex(a,i,{leading:o,maxWait:i,trailing:v})}function Su(a,i){return i(a)}var LP=9007199254740991,G0=4294967295,GP=Math.min;function YP(a,i){if(a=Er(a),a<1||a>LP)return[];var s=G0,o=GP(a,G0);i=hs(i),a-=G0;for(var v=og(o,i);++s<a;)i(s);return v}function HP(){return this}function w6(a,i){var s=a;return s instanceof zr&&(s=s.value()),gg(i,function(o,v){return v.func.apply(v.thisArg,ro([o],v.args))},s)}function zP(){return w6(this.__wrapped__,this.__actions__)}function qP(a){return yi(a).toLowerCase()}function WP(a){return yr(a)?gn(a,ls):d1(a)?[a]:Ja(Sy(yi(a)))}var jm=9007199254740991;function VP(a){return a?Oo(Er(a),-jm,jm):a===0?a:0}function XP(a){return yi(a).toUpperCase()}function $P(a,i,s){var o=yr(a),v=o||Ks(a)||vc(a);if(i=pr(i),s==null){var b=a&&a.constructor;v?s=o?new b:[]:Sn(a)?s=_s(b)?uc(uu(a)):{}:s={}}return(v?S1:fs)(a,function(y,g,l){return i(s,y,g,l)}),s}function y6(a,i){for(var s=a.length;s--&&dc(i,a[s],0)>-1;);return s}function x6(a,i){for(var s=-1,o=a.length;++s<o&&dc(i,a[s],0)>-1;);return s}function JP(a,i,s){if(a=yi(a),a&&(s||i===void 0))return ly(a);if(!a||!(i=p1(i)))return a;var o=L1(a),v=L1(i),b=x6(o,v),y=y6(o,v)+1;return io(o,b,y).join("")}function KP(a,i,s){if(a=yi(a),a&&(s||i===void 0))return a.slice(0,cy(a)+1);if(!a||!(i=p1(i)))return a;var o=L1(a),v=y6(o,L1(i))+1;return io(o,0,v).join("")}var ZP=/^\s+/;function eU(a,i,s){if(a=yi(a),a&&(s||i===void 0))return a.replace(ZP,"");if(!a||!(i=p1(i)))return a;var o=L1(a),v=x6(o,L1(i));return io(o,v).join("")}var tU=30,rU="...",iU=/\w*$/;function nU(a,i){var s=tU,o=rU;if(Sn(i)){var v="separator"in i?i.separator:v;s="length"in i?Er(i.length):s,o="omission"in i?p1(i.omission):o}a=yi(a);var b=a.length;if(Ac(a)){var y=L1(a);b=y.length}if(s>=b)return a;var g=s-wc(o);if(g<1)return o;var l=y?io(y,0,g).join(""):a.slice(0,g);if(v===void 0)return l+o;if(y&&(g+=l.length-g),jg(v)){if(a.slice(g).search(v)){var h,u=l;for(v.global||(v=RegExp(v.source,yi(iU.exec(v))+"g")),v.lastIndex=0;h=v.exec(u);)var f=h.index;l=l.slice(0,f===void 0?g:f)}}else if(a.indexOf(p1(v),g)!=g){var p=l.lastIndexOf(v);p>-1&&(l=l.slice(0,p))}return l+o}function aU(a){return wy(a,1)}var sU={"&":"&","<":"<",">":">",""":'"',"'":"'"},oU=vg(sU),C6=/&(?:amp|lt|gt|quot|#39);/g,cU=RegExp(C6.source);function lU(a){return a=yi(a),a&&cU.test(a)?a.replace(C6,oU):a}var fU=1/0,hU=rc&&1/pu(new rc([,-0]))[1]==fU?function(a){return new rc(a)}:Dl,uU=200;function Zs(a,i,s){var o=-1,v=su,b=a.length,y=!0,g=[],l=g;if(s)y=!1,v=Tg;else if(b>=uU){var h=i?null:hU(a);if(h)return pu(h);y=!1,v=Nl,l=new So}else l=i?[]:g;e:for(;++o<b;){var u=a[o],f=i?i(u):u;if(u=s||u!==0?u:0,y&&f===f){for(var p=l.length;p--;)if(l[p]===f)continue e;i&&l.push(f),g.push(u)}else v(l,f,s)||(l!==g&&l.push(f),g.push(u))}return g}var dU=Mr(function(a){return Zs(wa(a,1,Gn,!0))}),pU=Mr(function(a){var i=B1(a);return Gn(i)&&(i=void 0),Zs(wa(a,1,Gn,!0),pr(i))}),gU=Mr(function(a){var i=B1(a);return i=typeof i=="function"?i:void 0,Zs(wa(a,1,Gn,!0),void 0,i)});function vU(a){return a&&a.length?Zs(a):[]}function AU(a,i){return a&&a.length?Zs(a,pr(i)):[]}function mU(a,i){return i=typeof i=="function"?i:void 0,a&&a.length?Zs(a,void 0,i):[]}var bU=0;function wU(a){var i=++bU;return yi(a)+i}function yU(a,i){return a==null?!0:Ug(a,i)}var xU=Math.max;function qg(a){if(!(a&&a.length))return[];var i=0;return a=no(a,function(s){if(Gn(s))return i=xU(s.length,i),!0}),og(i,function(s){return gn(a,Sg(s))})}function I6(a,i){if(!(a&&a.length))return[];var s=qg(a);return i==null?s:gn(s,function(o){return g1(i,void 0,o)})}function E6(a,i,s,o){return Xl(a,i,s(To(a,i)),o)}function CU(a,i,s){return a==null?a:E6(a,i,hs(s))}function IU(a,i,s,o){return o=typeof o=="function"?o:void 0,a==null?a:E6(a,i,hs(s),o)}var EU=mc(function(a,i,s){return a+(s?" ":"")+i.toUpperCase()});function BU(a){return a==null?[]:Dg(a,i1(a))}var SU=Mr(function(a,i){return Gn(a)?Wl(a,i):[]});function kU(a,i){return Iu(hs(i),a)}var _U=Fs(function(a){var i=a.length,s=i?a[0]:0,o=this.__wrapped__,v=function(b){return hg(b,a)};return i>1||this.__actions__.length||!(o instanceof zr)||!Ms(s)?this.thru(v):(o=o.slice(s,+s+(i?1:0)),o.__actions__.push({func:Su,args:[v],thisArg:void 0}),new C1(o,this.__chain__).thru(function(b){return i&&!b.length&&b.push(void 0),b}))});function MU(){return tx(this)}function TU(){var a=this.__wrapped__;if(a instanceof zr){var i=a;return this.__actions__.length&&(i=new zr(this)),i=i.reverse(),i.__actions__.push({func:Su,args:[wp],thisArg:void 0}),new C1(i,this.__chain__)}return this.thru(wp)}function Wg(a,i,s){var o=a.length;if(o<2)return o?Zs(a[0]):[];for(var v=-1,b=Array(o);++v<o;)for(var y=a[v],g=-1;++g<o;)g!=v&&(b[v]=Wl(b[v]||y,a[g],i,s));return Zs(wa(b,1),i,s)}var OU=Mr(function(a){return Wg(no(a,Gn))}),RU=Mr(function(a){var i=B1(a);return Gn(i)&&(i=void 0),Wg(no(a,Gn),pr(i))}),DU=Mr(function(a){var i=B1(a);return i=typeof i=="function"?i:void 0,Wg(no(a,Gn),void 0,i)}),FU=Mr(qg);function B6(a,i,s){for(var o=-1,v=a.length,b=i.length,y={};++o<v;){var g=o<b?i[o]:void 0;s(y,a[o],g)}return y}function QU(a,i){return B6(a||[],i||[],Yl)}function jU(a,i){return B6(a||[],i||[],Xl)}var NU=Mr(function(a){var i=a.length,s=i>1?a[i-1]:void 0;return s=typeof s=="function"?(a.pop(),s):void 0,I6(a,s)});const Dt={chunk:uT,compact:qO,concat:WO,difference:KR,differenceBy:ZR,differenceWith:eD,drop:rD,dropRight:iD,dropRightWhile:nD,dropWhile:aD,fill:ED,findIndex:Lx,findLastIndex:Yx,flatten:ky,flattenDeep:UD,flattenDepth:LD,fromPairs:rF,head:DD,indexOf:xF,initial:CF,intersection:EF,intersectionBy:BF,intersectionWith:SF,join:xQ,lastIndexOf:kQ,nth:rj,pull:Kj,pullAll:h6,pullAllBy:Zj,pullAllWith:eN,pullAt:iN,remove:yN,reverse:wp,slice:GN,sortedIndex:ZN,sortedIndexBy:eP,sortedIndexOf:tP,sortedLastIndex:rP,sortedLastIndexBy:iP,sortedLastIndexOf:nP,sortedUniq:aP,sortedUniqBy:sP,tail:wP,take:yP,takeRight:xP,takeRightWhile:CP,takeWhile:IP,union:dU,unionBy:pU,unionWith:gU,uniq:vU,uniqBy:AU,uniqWith:mU,unzip:qg,unzipWith:I6,without:SU,xor:OU,xorBy:RU,xorWith:DU,zip:FU,zipObject:QU,zipObjectDeep:jU,zipWith:NU},Qi={countBy:QR,every:xD,filter:BD,find:kD,findLast:OD,flatMap:FD,flatMapDeep:jD,flatMapDepth:ND,forEach:sD,forEachRight:cD,groupBy:oF,includes:wF,invokeMap:QF,keyBy:IQ,map:mu,orderBy:dj,partition:qj,reduce:AN,reduceRight:bN,reject:wN,sample:TN,sampleSize:DN,shuffle:NN,size:LN,some:zN,sortBy:qN},PU={now:mf},Rn={after:XB,ary:wy,before:Ty,bind:du,bindKey:dg,curry:_g,curryRight:Mg,debounce:Ex,defer:XR,delay:$R,flip:YD,memoize:hu,once:fj,overArgs:Aj,partial:Iu,partialRight:Gg,rearg:vN,rest:EN,spread:hP,throttle:Bs,unary:aU,wrap:kU},Wt={castArray:sT,clone:jO,cloneDeep:px,cloneDeepWith:GO,cloneWith:HO,conformsTo:TR,eq:Y1,gt:cF,gte:lF,isArguments:Eo,isArrayBuffer:PF,isArrayLike:r1,isArrayLikeObject:Gn,isBoolean:LF,isBuffer:Ks,isDate:HF,isElement:zF,isEmpty:$F,isEqual:JF,isEqualWith:KF,isError:ug,isFinite:eQ,isFunction:_s,isInteger:Xx,isLength:cu,isMap:lx,isMatch:tQ,isMatchWith:rQ,isNaN:nQ,isNative:oQ,isNil:cQ,isNull:lQ,isNumber:$x,isObjectLike:On,isPlainObject:zl,isRegExp:jg,isSafeInteger:uQ,isSet:fx,isString:yu,isSymbol:d1,isTypedArray:vc,isUndefined:dQ,isWeakMap:gQ,isWeakSet:AQ,lt:TQ,lte:OQ,toArray:Kx,toFinite:Es,toLength:Nx,toNumber:y1,toPlainObject:Sx,toSafeInteger:VP,toString:yi},Ya={add:UB,ceil:lT,divide:tD,floor:HD,max:PQ,maxBy:UQ,mean:GQ,meanBy:YQ,min:WQ,minBy:VQ,multiply:$Q,round:_N,subtract:AP,sum:mP,sumBy:bP},Vg={clamp:dT,inRange:AF,random:lN},lr={assign:Zk,assignIn:n_,assignInWith:lp,assignWith:a_,at:N_,create:jR,defaults:zR,defaultsDeep:WR,findKey:_D,findLastKey:RD,forIn:KD,forInRight:ZD,forOwn:eF,forOwnRight:tF,functions:iF,functionsIn:nF,get:jl,has:dF,hasIn:Bg,invert:TF,invertBy:DF,invoke:FF,keysIn:i1,mapKeys:RQ,mapValues:DQ,merge:HQ,mergeWith:_x,omit:cj,omitBy:lj,pick:f6,pickBy:t6,result:BN,set:v6,setWith:FN,toPairs:pD,toPairsIn:gD,transform:$P,unset:yU,update:CU,updateWith:IU,values:bc,valuesIn:BU},us={at:_U,chain:tx,commit:zO,next:tj,plant:Vj,reverse:TU,tap:EP,toIterator:HP,value:zP,wrapperChain:MU},vi={camelCase:aT,capitalize:Py,deburr:Uy,endsWith:lD,escape:Fx,escapeRegExp:wD,kebabCase:CQ,lowerCase:_Q,lowerFirst:MQ,pad:Nj,padEnd:Pj,padStart:Uj,parseInt:Yj,repeat:xN,replace:CN,snakeCase:YN,split:cP,startCase:uP,startsWith:dP,template:PP,templateSettings:yp,toLower:qP,toUpper:XP,trim:JP,trimEnd:KP,trimStart:eU,truncate:nU,unescape:lU,upperCase:EU,upperFirst:pg,words:ex},xi={attempt:My,bindAll:X_,cond:SR,conforms:MR,constant:ag,defaultTo:YR,flow:$D,flowRight:JD,iteratee:bQ,matches:QQ,matchesProperty:NQ,method:zQ,methodOf:qQ,noop:Dl,nthArg:ij,over:pj,overEvery:mj,overSome:bj,property:yx,propertyOf:Xj,range:dN,rangeRight:pN,stubArray:mg,stubFalse:cg,stubObject:pP,stubString:gP,stubTrue:vP,times:YP,toPath:WP,uniqueId:wU};function UU(){var a=new zr(this.__wrapped__);return a.__actions__=Ja(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Ja(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Ja(this.__views__),a}function LU(){if(this.__filtered__){var a=new zr(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a}var GU=Math.max,YU=Math.min;function HU(a,i,s){for(var o=-1,v=s.length;++o<v;){var b=s[o],y=b.size;switch(b.type){case"drop":a+=y;break;case"dropRight":i-=y;break;case"take":i=YU(i,a+y);break;case"takeRight":a=GU(a,i-y);break}}return{start:a,end:i}}var zU=1,qU=2,WU=Math.min;function VU(){var a=this.__wrapped__.value(),i=this.__dir__,s=yr(a),o=i<0,v=s?a.length:0,b=HU(0,v,this.__views__),y=b.start,g=b.end,l=g-y,h=o?g:y-1,u=this.__iteratees__,f=u.length,p=0,d=WU(l,this.__takeCount__);if(!s||!o&&v==l&&d==l)return w6(a,this.__actions__);var A=[];e:for(;l--&&p<d;){h+=i;for(var w=-1,m=a[h];++w<f;){var x=u[w],C=x.iteratee,E=x.type,B=C(m);if(E==qU)m=B;else if(!B){if(E==zU)continue e;break e}}A[p++]=m}return A}var XU="4.17.21",$U=2,JU=1,KU=3,S6=4294967295,ZU=Array.prototype,eL=Object.prototype,k6=eL.hasOwnProperty,Nm=Ma?Ma.iterator:void 0,tL=Math.max,Pm=Math.min,Xg=(function(a){return function(i,s,o){if(o==null){var v=Sn(s),b=v&&ha(s),y=b&&b.length&&bu(s,b);(y?y.length:v)||(o=s,s=i,i=this)}return a(i,s,o)}})(XQ);J.after=Rn.after;J.ary=Rn.ary;J.assign=lr.assign;J.assignIn=lr.assignIn;J.assignInWith=lr.assignInWith;J.assignWith=lr.assignWith;J.at=lr.at;J.before=Rn.before;J.bind=Rn.bind;J.bindAll=xi.bindAll;J.bindKey=Rn.bindKey;J.castArray=Wt.castArray;J.chain=us.chain;J.chunk=Dt.chunk;J.compact=Dt.compact;J.concat=Dt.concat;J.cond=xi.cond;J.conforms=xi.conforms;J.constant=xi.constant;J.countBy=Qi.countBy;J.create=lr.create;J.curry=Rn.curry;J.curryRight=Rn.curryRight;J.debounce=Rn.debounce;J.defaults=lr.defaults;J.defaultsDeep=lr.defaultsDeep;J.defer=Rn.defer;J.delay=Rn.delay;J.difference=Dt.difference;J.differenceBy=Dt.differenceBy;J.differenceWith=Dt.differenceWith;J.drop=Dt.drop;J.dropRight=Dt.dropRight;J.dropRightWhile=Dt.dropRightWhile;J.dropWhile=Dt.dropWhile;J.fill=Dt.fill;J.filter=Qi.filter;J.flatMap=Qi.flatMap;J.flatMapDeep=Qi.flatMapDeep;J.flatMapDepth=Qi.flatMapDepth;J.flatten=Dt.flatten;J.flattenDeep=Dt.flattenDeep;J.flattenDepth=Dt.flattenDepth;J.flip=Rn.flip;J.flow=xi.flow;J.flowRight=xi.flowRight;J.fromPairs=Dt.fromPairs;J.functions=lr.functions;J.functionsIn=lr.functionsIn;J.groupBy=Qi.groupBy;J.initial=Dt.initial;J.intersection=Dt.intersection;J.intersectionBy=Dt.intersectionBy;J.intersectionWith=Dt.intersectionWith;J.invert=lr.invert;J.invertBy=lr.invertBy;J.invokeMap=Qi.invokeMap;J.iteratee=xi.iteratee;J.keyBy=Qi.keyBy;J.keys=ha;J.keysIn=lr.keysIn;J.map=Qi.map;J.mapKeys=lr.mapKeys;J.mapValues=lr.mapValues;J.matches=xi.matches;J.matchesProperty=xi.matchesProperty;J.memoize=Rn.memoize;J.merge=lr.merge;J.mergeWith=lr.mergeWith;J.method=xi.method;J.methodOf=xi.methodOf;J.mixin=Xg;J.negate=Cu;J.nthArg=xi.nthArg;J.omit=lr.omit;J.omitBy=lr.omitBy;J.once=Rn.once;J.orderBy=Qi.orderBy;J.over=xi.over;J.overArgs=Rn.overArgs;J.overEvery=xi.overEvery;J.overSome=xi.overSome;J.partial=Rn.partial;J.partialRight=Rn.partialRight;J.partition=Qi.partition;J.pick=lr.pick;J.pickBy=lr.pickBy;J.property=xi.property;J.propertyOf=xi.propertyOf;J.pull=Dt.pull;J.pullAll=Dt.pullAll;J.pullAllBy=Dt.pullAllBy;J.pullAllWith=Dt.pullAllWith;J.pullAt=Dt.pullAt;J.range=xi.range;J.rangeRight=xi.rangeRight;J.rearg=Rn.rearg;J.reject=Qi.reject;J.remove=Dt.remove;J.rest=Rn.rest;J.reverse=Dt.reverse;J.sampleSize=Qi.sampleSize;J.set=lr.set;J.setWith=lr.setWith;J.shuffle=Qi.shuffle;J.slice=Dt.slice;J.sortBy=Qi.sortBy;J.sortedUniq=Dt.sortedUniq;J.sortedUniqBy=Dt.sortedUniqBy;J.split=vi.split;J.spread=Rn.spread;J.tail=Dt.tail;J.take=Dt.take;J.takeRight=Dt.takeRight;J.takeRightWhile=Dt.takeRightWhile;J.takeWhile=Dt.takeWhile;J.tap=us.tap;J.throttle=Rn.throttle;J.thru=Su;J.toArray=Wt.toArray;J.toPairs=lr.toPairs;J.toPairsIn=lr.toPairsIn;J.toPath=xi.toPath;J.toPlainObject=Wt.toPlainObject;J.transform=lr.transform;J.unary=Rn.unary;J.union=Dt.union;J.unionBy=Dt.unionBy;J.unionWith=Dt.unionWith;J.uniq=Dt.uniq;J.uniqBy=Dt.uniqBy;J.uniqWith=Dt.uniqWith;J.unset=lr.unset;J.unzip=Dt.unzip;J.unzipWith=Dt.unzipWith;J.update=lr.update;J.updateWith=lr.updateWith;J.values=lr.values;J.valuesIn=lr.valuesIn;J.without=Dt.without;J.words=vi.words;J.wrap=Rn.wrap;J.xor=Dt.xor;J.xorBy=Dt.xorBy;J.xorWith=Dt.xorWith;J.zip=Dt.zip;J.zipObject=Dt.zipObject;J.zipObjectDeep=Dt.zipObjectDeep;J.zipWith=Dt.zipWith;J.entries=lr.toPairs;J.entriesIn=lr.toPairsIn;J.extend=lr.assignIn;J.extendWith=lr.assignInWith;Xg(J,J);J.add=Ya.add;J.attempt=xi.attempt;J.camelCase=vi.camelCase;J.capitalize=vi.capitalize;J.ceil=Ya.ceil;J.clamp=Vg.clamp;J.clone=Wt.clone;J.cloneDeep=Wt.cloneDeep;J.cloneDeepWith=Wt.cloneDeepWith;J.cloneWith=Wt.cloneWith;J.conformsTo=Wt.conformsTo;J.deburr=vi.deburr;J.defaultTo=xi.defaultTo;J.divide=Ya.divide;J.endsWith=vi.endsWith;J.eq=Wt.eq;J.escape=vi.escape;J.escapeRegExp=vi.escapeRegExp;J.every=Qi.every;J.find=Qi.find;J.findIndex=Dt.findIndex;J.findKey=lr.findKey;J.findLast=Qi.findLast;J.findLastIndex=Dt.findLastIndex;J.findLastKey=lr.findLastKey;J.floor=Ya.floor;J.forEach=Qi.forEach;J.forEachRight=Qi.forEachRight;J.forIn=lr.forIn;J.forInRight=lr.forInRight;J.forOwn=lr.forOwn;J.forOwnRight=lr.forOwnRight;J.get=lr.get;J.gt=Wt.gt;J.gte=Wt.gte;J.has=lr.has;J.hasIn=lr.hasIn;J.head=Dt.head;J.identity=t1;J.includes=Qi.includes;J.indexOf=Dt.indexOf;J.inRange=Vg.inRange;J.invoke=lr.invoke;J.isArguments=Wt.isArguments;J.isArray=yr;J.isArrayBuffer=Wt.isArrayBuffer;J.isArrayLike=Wt.isArrayLike;J.isArrayLikeObject=Wt.isArrayLikeObject;J.isBoolean=Wt.isBoolean;J.isBuffer=Wt.isBuffer;J.isDate=Wt.isDate;J.isElement=Wt.isElement;J.isEmpty=Wt.isEmpty;J.isEqual=Wt.isEqual;J.isEqualWith=Wt.isEqualWith;J.isError=Wt.isError;J.isFinite=Wt.isFinite;J.isFunction=Wt.isFunction;J.isInteger=Wt.isInteger;J.isLength=Wt.isLength;J.isMap=Wt.isMap;J.isMatch=Wt.isMatch;J.isMatchWith=Wt.isMatchWith;J.isNaN=Wt.isNaN;J.isNative=Wt.isNative;J.isNil=Wt.isNil;J.isNull=Wt.isNull;J.isNumber=Wt.isNumber;J.isObject=Sn;J.isObjectLike=Wt.isObjectLike;J.isPlainObject=Wt.isPlainObject;J.isRegExp=Wt.isRegExp;J.isSafeInteger=Wt.isSafeInteger;J.isSet=Wt.isSet;J.isString=Wt.isString;J.isSymbol=Wt.isSymbol;J.isTypedArray=Wt.isTypedArray;J.isUndefined=Wt.isUndefined;J.isWeakMap=Wt.isWeakMap;J.isWeakSet=Wt.isWeakSet;J.join=Dt.join;J.kebabCase=vi.kebabCase;J.last=B1;J.lastIndexOf=Dt.lastIndexOf;J.lowerCase=vi.lowerCase;J.lowerFirst=vi.lowerFirst;J.lt=Wt.lt;J.lte=Wt.lte;J.max=Ya.max;J.maxBy=Ya.maxBy;J.mean=Ya.mean;J.meanBy=Ya.meanBy;J.min=Ya.min;J.minBy=Ya.minBy;J.stubArray=xi.stubArray;J.stubFalse=xi.stubFalse;J.stubObject=xi.stubObject;J.stubString=xi.stubString;J.stubTrue=xi.stubTrue;J.multiply=Ya.multiply;J.nth=Dt.nth;J.noop=xi.noop;J.now=PU.now;J.pad=vi.pad;J.padEnd=vi.padEnd;J.padStart=vi.padStart;J.parseInt=vi.parseInt;J.random=Vg.random;J.reduce=Qi.reduce;J.reduceRight=Qi.reduceRight;J.repeat=vi.repeat;J.replace=vi.replace;J.result=lr.result;J.round=Ya.round;J.sample=Qi.sample;J.size=Qi.size;J.snakeCase=vi.snakeCase;J.some=Qi.some;J.sortedIndex=Dt.sortedIndex;J.sortedIndexBy=Dt.sortedIndexBy;J.sortedIndexOf=Dt.sortedIndexOf;J.sortedLastIndex=Dt.sortedLastIndex;J.sortedLastIndexBy=Dt.sortedLastIndexBy;J.sortedLastIndexOf=Dt.sortedLastIndexOf;J.startCase=vi.startCase;J.startsWith=vi.startsWith;J.subtract=Ya.subtract;J.sum=Ya.sum;J.sumBy=Ya.sumBy;J.template=vi.template;J.times=xi.times;J.toFinite=Wt.toFinite;J.toInteger=Er;J.toLength=Wt.toLength;J.toLower=vi.toLower;J.toNumber=Wt.toNumber;J.toSafeInteger=Wt.toSafeInteger;J.toString=Wt.toString;J.toUpper=vi.toUpper;J.trim=vi.trim;J.trimEnd=vi.trimEnd;J.trimStart=vi.trimStart;J.truncate=vi.truncate;J.unescape=vi.unescape;J.uniqueId=xi.uniqueId;J.upperCase=vi.upperCase;J.upperFirst=vi.upperFirst;J.each=Qi.forEach;J.eachRight=Qi.forEachRight;J.first=Dt.head;Xg(J,(function(){var a={};return fs(J,function(i,s){k6.call(J.prototype,s)||(a[s]=i)}),a})(),{chain:!1});J.VERSION=XU;(J.templateSettings=vi.templateSettings).imports._=J;S1(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){J[a].placeholder=J});S1(["drop","take"],function(a,i){zr.prototype[a]=function(s){s=s===void 0?1:tL(Er(s),0);var o=this.__filtered__&&!i?new zr(this):this.clone();return o.__filtered__?o.__takeCount__=Pm(s,o.__takeCount__):o.__views__.push({size:Pm(s,S6),type:a+(o.__dir__<0?"Right":"")}),o},zr.prototype[a+"Right"]=function(s){return this.reverse()[a](s).reverse()}});S1(["filter","map","takeWhile"],function(a,i){var s=i+1,o=s==JU||s==KU;zr.prototype[a]=function(v){var b=this.clone();return b.__iteratees__.push({iteratee:pr(v),type:s}),b.__filtered__=b.__filtered__||o,b}});S1(["head","last"],function(a,i){var s="take"+(i?"Right":"");zr.prototype[a]=function(){return this[s](1).value()[0]}});S1(["initial","tail"],function(a,i){var s="drop"+(i?"":"Right");zr.prototype[a]=function(){return this.__filtered__?new zr(this):this[s](1)}});zr.prototype.compact=function(){return this.filter(t1)};zr.prototype.find=function(a){return this.filter(a).head()};zr.prototype.findLast=function(a){return this.reverse().find(a)};zr.prototype.invokeMap=Mr(function(a,i){return typeof a=="function"?new zr(this):this.map(function(s){return Vl(s,a,i)})});zr.prototype.reject=function(a){return this.filter(Cu(pr(a)))};zr.prototype.slice=function(a,i){a=Er(a);var s=this;return s.__filtered__&&(a>0||i<0)?new zr(s):(a<0?s=s.takeRight(-a):a&&(s=s.drop(a)),i!==void 0&&(i=Er(i),s=i<0?s.dropRight(-i):s.take(i-a)),s)};zr.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()};zr.prototype.toArray=function(){return this.take(S6)};fs(zr.prototype,function(a,i){var s=/^(?:filter|find|map|reject)|While$/.test(i),o=/^(?:head|last)$/.test(i),v=J[o?"take"+(i=="last"?"Right":""):i],b=o||/^find/.test(i);v&&(J.prototype[i]=function(){var y=this.__wrapped__,g=o?[1]:arguments,l=y instanceof zr,h=g[0],u=l||yr(y),f=function(x){var C=v.apply(J,ro([x],g));return o&&p?C[0]:C};u&&s&&typeof h=="function"&&h.length!=1&&(l=u=!1);var p=this.__chain__,d=!!this.__actions__.length,A=b&&!p,w=l&&!d;if(!b&&u){y=w?y:new zr(this);var m=a.apply(y,g);return m.__actions__.push({func:Su,args:[f],thisArg:void 0}),new C1(m,p)}return A&&w?a.apply(this,g):(m=this.thru(f),A?o?m.value()[0]:m.value():m)})});S1(["pop","push","shift","sort","splice","unshift"],function(a){var i=ZU[a],s=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",o=/^(?:pop|shift)$/.test(a);J.prototype[a]=function(){var v=arguments;if(o&&!this.__chain__){var b=this.value();return i.apply(yr(b)?b:[],v)}return this[s](function(y){return i.apply(yr(y)?y:[],v)})}});fs(zr.prototype,function(a,i){var s=J[i];if(s){var o=s.name+"";k6.call(tc,o)||(tc[o]=[]),tc[o].push({name:i,func:s})}});tc[ou(void 0,$U).name]=[{name:"wrapper",func:void 0}];zr.prototype.clone=UU;zr.prototype.reverse=LU;zr.prototype.value=VU;J.prototype.at=us.at;J.prototype.chain=us.wrapperChain;J.prototype.commit=us.commit;J.prototype.next=us.next;J.prototype.plant=us.plant;J.prototype.reverse=us.reverse;J.prototype.toJSON=J.prototype.valueOf=J.prototype.value=us.value;J.prototype.first=J.prototype.head;Nm&&(J.prototype[Nm]=us.toIterator);const Bh=class Bh{constructor(i,s,o){this.canvas=i,this.editor=s,this.unit="px",this._originSize={mm:{width:0,height:0}},this.init(o),this._bindEvents()}hookSaveBefore(){return new Promise(i=>{i(!0)})}hookSaveAfter(){return new Promise(i=>{i(!0)})}init(i){i?.unit&&(this.unit=i?.unit),i?.precision&&(this.precision=i?.precision)}setUnit(i){this.unit!==i&&(this.unit=i,this.editor.emit("unitChange",i))}getUnit(){return this.unit}getPrecision(){return this.precision}getSizeByUnit(i,s,o){const v=s??this.editor.getUnit();if(v==="px")return i;if(v==="mm")return Bn.pxToMm(i,o,{direct:!0});if(v==="inch")return Bn.pxToMm(i,o,{direct:!0})/Bn.CONSTANTS.INCH_TO_MM}_toPrecisionValue(i){if(this.precision===void 0)return i;const s=Math.pow(10,this.precision);return Math.round(i*s)/s}_formatOriginUnitValues(i,s,o){const v={};for(const b in i){const y=i[b];v[b]=y===void 0?void 0:this._toPrecisionValue(y)}if(s&&o){const b=s._originSize?.[o]||{};Object.keys(b).forEach(y=>{y in v||(v[y]=b[y])})}return v}applyObjectPx(i,s){const{left:o,top:v,width:b,height:y,strokeWidth:g,fontSize:l}=s;l!==void 0&&i.set("fontSize",l),g!==void 0&&i.set("strokeWidth",g),b!==void 0&&i.set("width",b),y!==void 0&&i.set("height",y),o!==void 0&&i.set("left",o),v!==void 0&&i.set("top",v)}applyObjectMm(i,s,o){const v=y=>y===void 0?void 0:Bn.mmToPx(y,o,{direct:!0});this.applyObjectPx(i,{left:v(s.left),top:v(s.top),width:v(s.width),height:v(s.height),strokeWidth:v(s.strokeWidth),fontSize:v(s.fontSize)});const b=this._formatOriginUnitValues(s,i,"mm");i._originSize={...i._originSize,mm:b}}applyObjectInch(i,s,o){const v=y=>y===void 0?void 0:y*Bn.CONSTANTS.INCH_TO_MM;this.applyObjectMm(i,{left:v(s.left),top:v(s.top),width:v(s.width),height:v(s.height),strokeWidth:v(s.strokeWidth),fontSize:v(s.fontSize)},o);const b=this._formatOriginUnitValues(s,i,"inch");i._originSize={...i._originSize,inch:b}}applyObjectByUnit(i,s,o){const v=this.getUnit();return v==="mm"?this.applyObjectMm(i,s,o):v==="inch"?this.applyObjectInch(i,s,o):this.applyObjectPx(i,s)}setSizeMm(i,s,o){const v=Bn.mmToPx(i,o,{direct:!0}),b=Bn.mmToPx(s,o,{direct:!0});this.editor.setSize(v,b),this._syncOriginSize(i,s)}setSizeByUnit(i,s,o){const v=this.editor.getUnit?.()||"px";if(v==="mm")return this.setSizeMm(i,s,o?.dpi);if(v==="inch"){this._syncOriginSize(i,s);const b=i*Bn.CONSTANTS.INCH_TO_MM,y=s*Bn.CONSTANTS.INCH_TO_MM;return this.setSizeMm(b,y,o?.dpi)}this.editor.setSize(i,s,{slient:o.slient})}getOriginSize(i){const s=this.getUnit(),v=(this.canvas._originSize||{}).mm||{};if(s==="px")return{width:this.canvas.getWidth(),height:this.canvas.getHeight()};const b=v.width!==void 0?v.width:Bn.pxToMm(this.canvas.getWidth(),i,{direct:!0}),y=v.height!==void 0?v.height:Bn.pxToMm(this.canvas.getHeight(),i,{direct:!0});return s==="mm"?this._originSize.mm??{width:b,height:y}:this._originSize.inch??{width:b/Bn.CONSTANTS.INCH_TO_MM,height:y/Bn.CONSTANTS.INCH_TO_MM}}_syncOriginSize(i,s){const o=this.getUnit();o!=="px"&&(this._originSize[o]=this._originSize[o]||{width:0,height:0},i!==void 0&&(this._originSize[o].width=this._toPrecisionValue(i)),s!==void 0&&(this._originSize[o].height=this._toPrecisionValue(s)))}syncOriginSizeByUnit(i,s){const o=this.getUnit();if(o==="mm"){if(i!==void 0){const v=Bn.pxToMm(i,void 0,{direct:!0});this._originSize[o].width=this._toPrecisionValue(v)}if(s!==void 0){const v=Bn.pxToMm(s,void 0,{direct:!0});this._originSize[o].height=this._toPrecisionValue(v)}}}_bindEvents(){const i=Bs(s=>{FA(s,void 0,this.precision)},30);this.canvas.on("object:modified",s=>{const o=s.target;o&&FA(o,void 0,this.precision)}),this.canvas.on("object:moving",s=>{const o=s.target;o&&i(o)}),this.canvas.on("object:scaling",s=>{const o=s.target;o&&i(o)}),this.canvas.on("object:rotating",s=>{const o=s.target;o&&i(o)}),this.editor.on?.("sizeChange",s=>{const o=this.getUnit();if(o!=="px"&&o==="mm"){this._syncOriginSize(s.width,s.height);return}})}destroy(){console.log("pluginDestroy")}};Bh.pluginName="UnitPlugin",Bh.apis=["getUnit","setUnit","getSizeByUnit","setSizeByUnit","getOriginSize","getPrecision","syncOriginSizeByUnit","applyObjectPx","applyObjectMm","applyObjectInch","applyObjectByUnit"];let jf=Bh;const bl=class bl{constructor(i,s){this.canvas=i,this.editor=s,this.defautOption={},this.hotkeys=["space"],this.dragMode=!1,this.dragMode=!1,this.init()}init(){this._initDring()}startDring(){this.dragMode=!0,this.canvas.setCursor("grab"),this.editor.emit("startDring"),this.canvas.renderAll()}endDring(){this.dragMode=!1,this.canvas.setCursor("default"),this.canvas.isDragging=!1,this.editor.emit("endDring"),this.canvas.renderAll()}_initDring(){const i=this;this.canvas.on("mouse:down",function(s){const o=s.e;(o.altKey||i.dragMode||o.button===1)&&(i.canvas.setCursor("grabbing"),i.canvas.discardActiveObject(),i._setDring(),this.selection=!1,this.isDragging=!0,this.lastPosX=o.clientX,this.lastPosY=o.clientY,this.requestRenderAll())}),this.canvas.on("mouse:move",function(s){if(i.dragMode&&i.canvas.setCursor("grab"),this.isDragging){i.canvas.discardActiveObject(),i.canvas.setCursor("grabbing");const{e:o}=s;if(!this.viewportTransform)return;const v=this.viewportTransform;v[4]+=o.clientX-this.lastPosX,v[5]+=o.clientY-this.lastPosY,this.lastPosX=o.clientX,this.lastPosY=o.clientY,this.requestRenderAll()}}),this.canvas.on("mouse:up",function(){this.viewportTransform&&(this.setViewportTransform(this.viewportTransform),this.isDragging=!1,this.selection=!0,this.getObjects().forEach(s=>{s.id!=="workspace"&&s.hasControls&&(s.selectable=!0)}),i.dragMode&&i.canvas.setCursor("grab"),this.requestRenderAll())})}_setDring(){this.canvas.selection=!1,this.canvas.getObjects().forEach(i=>{i.selectable=!1}),this.canvas.requestRenderAll()}destroy(){console.log("pluginDestroy")}hotkeyEvent(i,s){s.code==="Space"&&s.type==="keydown"&&(this.dragMode||this.startDring()),s.code==="Space"&&s.type==="keyup"&&this.endDring()}};bl.pluginName="DringPlugin",bl.events=["startDring","endDring"],bl.apis=["startDring","endDring"];let Nf=bl;const Sh=class Sh{constructor(i,s,o){this.canvas=i,this.editor=s,this.defautOption={color:"rgba(255,95,95,1)",width:1},this.dragMode=!1,this.dragMode=!1,this.init(),this.switch=o?.switch??!0}init(){const{canvas:i}=this,s=i.getSelectionContext(),o=5,v=4,b=this;let y,g=1,l=0,h=0,u=0,f=0;function p(C){A(C.x+.5,C.y1>C.y2?C.y2:C.y1,C.x+.5,C.y2>C.y1?C.y2:C.y1)}function d(C){A(C.x1>C.x2?C.x2:C.x1,C.y+.5,C.x2>C.x1?C.x2:C.x1,C.y+.5)}function A(C,E,B,k){y!=null&&(s.moveTo(C*g+y[4],E*g+y[5]),s.lineTo(B*g+y[4],k*g+y[5]))}function w(C,E){C=Math.round(C),E=Math.round(E);for(let B=C-v,k=C+v;B<=k;B++)if(B===E)return!0;return!1}let m=[],x=[];i.on("mouse:down",C=>{y=i.viewportTransform,g=i.getZoom();try{C&&(u=C.target.left,f=C.target.top,l=C.target.getScaledWidth(),h=C.target.getScaledHeight())}catch{}}),i.on("object:moving",C=>{if(!this.switch||y===void 0||C.target===void 0)return;const E=C.target,B=i.getObjects(),k=E.getCenterPoint(),M=k.x,T=k.y;E.getBoundingRect();const R=E.getScaledHeight(),N=E.getScaledWidth();let Q=!1,Y=!1;const z=i._currentTransform;let V=!1,$=!1,Z=0,ae=0;if(E.set("hasControls",!1),!!z){for(let ge=B.length;ge--;){if(B[ge]===E||E instanceof Ce.fabric.GuideLine&&B[ge]instanceof Ce.fabric.GuideLine)continue;const re=B[ge].getCenterPoint(),F=re.x,j=re.y,q=B[ge].getBoundingRect(),H=q.height/y[3],K=q.width/y[0];if(w(F,M)&&(Y=!0,m=[],m.push({x:F,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),E.setPositionByOrigin(new Ce.fabric.Point(F,T),"center","center")),w(j,T)&&(Q=!0,x=[],x.push({y:j,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),E.setPositionByOrigin(new Ce.fabric.Point(M,j),"center","center")),w(F-K/2,M-N/2)){Y=!0,m=[],V=!0,m.push({x:F-K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F-K/2+N/2;let W=F-K/2+N/2,L=$?ae:T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(F+K/2,M+N/2)){V=!0,Y=!0,m=[],m.push({x:F+K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F+K/2-N/2;let W=F+K/2-N/2,L=$?ae:T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j-H/2,T-R/2)){$=!0,Q=!0,x=[],x.push({y:j-H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j-H/2+R/2;let W=V?Z:M,L=j-H/2+R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j+H/2,T+R/2)){$=!0,Q=!0,x=[],x.push({y:j+H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j+H/2-R/2;let W=V?Z:M,L=j+H/2-R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(F-K/2,M+N/2)){V=!0,Y=!0,Y=[],m.push({x:F-K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F-K/2-N/2;let W=F-K/2-N/2,L=T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(F+K/2,M-N/2)){V=!0,Y=!0,Y=[],m.push({x:F+K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F+K/2+N/2;let W=F+K/2+N/2,L=T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j-H/2,T+R/2)){$=!0,Q=!0,x=[],x.push({y:j-H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j-H/2-R/2;let W=V?Z:M,L=j-H/2-R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j+H/2,T-R/2)){$=!0,Q=!0,x=[],x.push({y:j+H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j+H/2+R/2;let W=V?Z:M,L=j+H/2+R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}}Q||(x.length=0),Y||(m.length=0)}}),i.on("before:render",()=>{if(i.contextTop!==null)try{i.clearContext(i.contextTop)}catch(C){console.log(C)}}),i.on("object:scaling",C=>{if(y===void 0||C.target===void 0)return;const E=C.target,B=i.getObjects(),k=E.getCenterPoint(),M=k.x,T=k.y;E.getBoundingRect();const R=E.getScaledHeight(),N=E.getScaledWidth();let Q=!1,Y=!1;const z=i._currentTransform;if(E.set("hasControls",!1),!!z){for(let V=B.length;V--;){if(B[V]===E||E instanceof Ce.fabric.GuideLine&&B[V]instanceof Ce.fabric.GuideLine)continue;const $=B[V].getCenterPoint(),Z=$.x,ae=$.y,ge=B[V].getBoundingRect(),re=ge.height/y[3],F=ge.width/y[0];if(w(Z,M)&&(Y=!0,m=[],m.push({x:Z,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o})),w(Z-F/2,M-N/2)&&(Y=!0,m=[],m.push({x:Z-F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["bl",1],["ml",1],["tl",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(Z-F/2+N/2,T),"center","center"),E.set("scaleX",(u-(Z-F/2)+l)*E.scaleX/E.getScaledWidth());break}if(w(Z+F/2,M+N/2)&&(Y=!0,m=[],m.push({x:Z+F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["mr",1],["tr",1],["br",1]]).get(C.transform.corner))){E.set("scaleX",(Z+F/2-(u+l)+l)*E.scaleX/E.getScaledWidth());break}if(w(ae,T)&&(Q=!0,x=[],x.push({y:ae,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o})),w(ae-re/2,T-R/2)&&(Q=!0,x=[],x.push({y:ae-re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["tr",1],["tl",1],["mt",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(M,ae-re/2+R/2),"center","center"),E.set("scaleY",(f+h-(ae-re/2))*E.scaleY/E.getScaledHeight());break}if(w(ae+re/2,T+R/2)&&(Q=!0,x=[],x.push({y:ae+re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["mb",1],["bl",1],["br",1]]).get(C.transform.corner))){E.set("scaleY",(ae+re/2-(f+h)+h)*E.scaleY/E.getScaledHeight());break}if(w(Z-F/2,M+N/2)&&(Y=!0,m=[],m.push({x:Z-F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["mr",1],["tr",1],["br",1]]).get(C.transform.corner))){E.set("scaleX",(Z-F/2-E.left)*E.scaleX/E.getScaledWidth());break}if(w(Z+F/2,M-N/2)&&(Y=!0,m=[],m.push({x:Z+F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["bl",1],["ml",1],["tl",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(Z+F/2+N/2,T),"center","center"),E.set("scaleX",(u+l-(Z+F/2))*E.scaleX/E.getScaledWidth());break}if(w(ae-re/2,T+R/2)&&(Q=!0,x=[],x.push({y:ae-re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["mb",1],["bl",1],["br",1]]).get(C.transform.corner))){E.set("scaleY",(ae-re/2-E.top)*E.scaleY/E.getScaledHeight());break}if(w(ae+re/2,T-R/2)&&(Q=!0,x=[],x.push({y:ae+re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["tr",1],["tl",1],["mt",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(M,ae+re/2+R/2),"center","center"),E.set("scaleY",(f+h-(ae+re/2))*E.scaleY/E.getScaledHeight());break}}Q||(x.length=0),Y||(m.length=0)}}),i.on("after:render",()=>{s.save(),s.beginPath(),s.lineWidth=b.defautOption.width,s.strokeStyle=b.defautOption.color;for(let C=m.length;C--;)m[C]&&p(m[C]);for(let C=x.length;C--;)x[C]&&d(x[C]);s.stroke(),s.restore(),m.length=0,x.length=0}),i.on("mouse:up",C=>{const E=C.target;E&&E.selectable&&!E.lockRotation&&E.set("hasControls",!0),m.length=0,x.length=0,i.renderAll()})}changeSwitch(i){this.switch=i??!this.switch}destroy(){console.log("pluginDestroy")}};Sh.pluginName="AlignGuidLinePlugin",Sh.apis=["changeSwitch"];let Pf=Sh;const rL="data:image/svg+xml,%3csvg%20width='12'%20height='24'%20viewBox='0%200%2012%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3crect%20x='4'%20y='4'%20width='4'%20height='16'%20rx='2'%20fill='white'/%3e%3crect%20x='4.25'%20y='4.25'%20width='3.5'%20height='15.5'%20rx='1.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='12'%20height='24'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",iL="data:image/svg+xml,%3csvg%20width='24'%20height='12'%20viewBox='0%200%2024%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3crect%20x='20'%20y='4'%20width='4'%20height='16'%20rx='2'%20transform='rotate(90%2020%204)'%20fill='white'/%3e%3crect%20x='19.75'%20y='4.25'%20width='3.5'%20height='15.5'%20rx='1.75'%20transform='rotate(90%2019.75%204.25)'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='24'%20height='12'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",_6="data:image/svg+xml,%3csvg%20width='19'%20height='18'%20viewBox='0%200%2019%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3ccircle%20cx='9.99609'%20cy='9'%20r='5'%20fill='white'/%3e%3ccircle%20cx='9.99609'%20cy='9'%20r='4.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0.996094'%20y='0'%20width='18'%20height='18'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",nL="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3ccircle%20cx='9'%20cy='9'%20r='5'%20fill='white'/%3e%3ccircle%20cx='9'%20cy='9'%20r='4.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cpath%20d='M10.8047%2011.1242L9.49934%2011.1242L9.49934%209.81885'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6.94856%206.72607L8.25391%206.72607L8.25391%208.03142'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9.69517%206.92267C10.007%207.03301%2010.2858%207.22054%2010.5055%207.46776C10.7252%207.71497%2010.8787%208.01382%2010.9517%208.33642C11.0247%208.65902%2011.0148%208.99485%2010.9229%209.31258C10.831%209.63031%2010.6601%209.91958%2010.4262%2010.1534L9.49701%2011.0421M8.25792%206.72607L7.30937%207.73554C7.07543%207.96936%206.90454%208.25863%206.81264%208.57636C6.72073%208.89408%206.71081%209.22992%206.78381%209.55251C6.8568%209.87511%207.01032%2010.174%207.23005%2010.4212C7.44978%2010.6684%207.72855%2010.8559%208.04036%2010.9663'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='18'%20height='18'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e";Ce.fabric.Object.NUM_FRACTION_DIGITS=4;const Y0={transparentCorners:!1,borderColor:"#51B9F9",cornerColor:"#FFF",borderScaleFactor:2.5,cornerStyle:"circle",cornerStrokeColor:"rgba(0,0,0,0.25)",borderOpacityWhenMoving:1};function Uf(a,i,s,o,v,b,y){y!==void 0&&(a.save(),a.translate(i,s),a.rotate(Ce.fabric.util.degreesToRadians(y)),a.drawImage(o,-v/2,-b/2,v,b),a.restore())}function aL(){const a=document.createElement("img");a.src=rL;const i=document.createElement("img");i.src=iL;function s(v,b,y,g,l){Uf(v,b,y,a,20,25,l.angle)}function o(v,b,y,g,l){Uf(v,b,y,i,25,20,l.angle)}Ce.fabric.Object.prototype.controls.ml=new Ce.fabric.Control({x:-.5,y:0,offsetX:-1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingXOrSkewingY,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:s}),Ce.fabric.Object.prototype.controls.mr=new Ce.fabric.Control({x:.5,y:0,offsetX:1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingXOrSkewingY,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:s}),Ce.fabric.Object.prototype.controls.mb=new Ce.fabric.Control({x:0,y:.5,offsetY:1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingYOrSkewingX,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:o}),Ce.fabric.Object.prototype.controls.mt=new Ce.fabric.Control({x:0,y:-.5,offsetY:-1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingYOrSkewingX,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:o})}function sL(){const a=document.createElement("img");a.src=_6;function i(s,o,v,b,y){Uf(s,o,v,a,25,25,y.angle)}Ce.fabric.Object.prototype.controls.tl=new Ce.fabric.Control({x:-.5,y:-.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i}),Ce.fabric.Object.prototype.controls.bl=new Ce.fabric.Control({x:-.5,y:.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i}),Ce.fabric.Object.prototype.controls.tr=new Ce.fabric.Control({x:.5,y:-.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i}),Ce.fabric.Object.prototype.controls.br=new Ce.fabric.Control({x:.5,y:.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i})}function oL(){const a=document.createElement("img");a.src=nL;function i(s,o,v,b,y){Uf(s,o,v,a,40,40,y.angle)}Ce.fabric.Object.prototype.controls.mtr=new Ce.fabric.Control({x:0,y:.5,cursorStyleHandler:Ce.fabric.controlsUtils.rotationStyleHandler,actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,offsetY:30,actionName:"rotate",render:i})}const m3=class m3{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){sL(),aL(),oL(),Ce.fabric.Object.prototype.set(Y0),this.customizeActiveSelection(),this.editor.on("loadJson",()=>{this.applyControlStyles()})}applyControlStyles(){this.canvas.getObjects().forEach(s=>{s.id==="workspace"||s.id==="coverMask"||s.set(Y0)}),this.canvas.renderAll()}customizeActiveSelection(){const i=(v,b,y,g,l)=>{const h=l.cornerSize||10;v.save(),v.translate(b,y),v.rotate(Ce.fabric.util.degreesToRadians(l.angle||0)),v.shadowColor="rgba(0,0,0,0.15)",v.shadowBlur=3,v.shadowOffsetX=0,v.shadowOffsetY=1,v.beginPath(),v.arc(0,0,h/2,0,2*Math.PI,!1),v.fillStyle="#FFF",v.fill(),v.shadowColor="transparent",v.shadowBlur=0,v.shadowOffsetX=0,v.shadowOffsetY=0,v.strokeStyle="rgba(0,0,0,0.25)",v.lineWidth=1.5,v.stroke(),v.restore()};["tl","tr","bl","br","ml","mr","mt","mb","mtr"].forEach(v=>{if(Ce.fabric.ActiveSelection.prototype.controls[v]){const b=Ce.fabric.ActiveSelection.prototype.controls[v];Ce.fabric.ActiveSelection.prototype.controls[v]=new Ce.fabric.Control({...b,render:i})}}),Ce.fabric.ActiveSelection.prototype.set(Y0);let o=!1;this.canvas.on("object:moving",v=>{v.target&&v.target.type==="activeSelection"&&(o=!0)}),this.canvas.on("object:scaling",v=>{v.target&&v.target.type==="activeSelection"&&(o=!0)}),this.canvas.on("object:rotating",v=>{v.target&&v.target.type==="activeSelection"&&(o=!0)}),this.canvas.on("object:modified",v=>{v.target&&v.target.type==="activeSelection"&&(o=!1,this.canvas.requestRenderAll())}),this.canvas.on("mouse:up",()=>{o&&(o=!1,this.canvas.requestRenderAll())}),this.canvas.on("after:render",()=>{if(o)return;const v=this.canvas.getActiveObject();if(v&&v.type==="activeSelection"){const b=this.canvas.getContext();if(!b)return;b.save(),b.globalCompositeOperation="source-over",v.forEachControl((y,g)=>{if(y.getVisibility(v,g)){const l=v.oCoords[g];l&&y.render(b,l.x,l.y,{},v)}}),b.restore()}})}destroy(){console.log("pluginDestroy")}};m3.pluginName="ControlsPlugin";let Lf=m3;function Us(a){return`url("data:image/svg+xml,%3Csvg height='18' width='18' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg' style='color: black;'%3E%3Cg fill='none' transform='rotate(${a} 16 16)'%3E%3Cpath d='M22.4484 0L32 9.57891L22.4484 19.1478V13.1032C17.6121 13.8563 13.7935 17.6618 13.0479 22.4914H19.2141L9.60201 32.01L0 22.4813H6.54912C7.36524 14.1073 14.0453 7.44023 22.4484 6.61688V0Z' fill='white'/%3E%3Cpath d='M24.0605 3.89587L29.7229 9.57896L24.0605 15.252V11.3562C17.0479 11.4365 11.3753 17.0895 11.3048 24.0879H15.3048L9.60201 29.7308L3.90932 24.0879H8.0806C8.14106 15.3223 15.2645 8.22345 24.0605 8.14313V3.89587Z' fill='black'/%3E%3C/g%3E%3C/svg%3E ") 12 12,crosshair`}const b3=class b3{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){const{canvas:i}=this;Ce.fabric.Object.prototype.controls.mtr=new Ce.fabric.Control({x:-.5,y:-.5,offsetY:-10,offsetX:-10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),Ce.fabric.Object.prototype.controls.mtr2=new Ce.fabric.Control({x:.5,y:-.5,offsetY:-10,offsetX:10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),Ce.fabric.Object.prototype.controls.mtr3=new Ce.fabric.Control({x:.5,y:.5,offsetY:10,offsetX:10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),Ce.fabric.Object.prototype.controls.mtr4=new Ce.fabric.Control({x:-.5,y:.5,offsetY:10,offsetX:-10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),i.on("after:render",()=>{const o=i.getActiveObject()?.angle?.toFixed(2);o!==void 0&&(Ce.fabric.Object.prototype.controls.mtr.cursorStyle=Us(Number(o)),Ce.fabric.Object.prototype.controls.mtr2.cursorStyle=Us(Number(o)+90),Ce.fabric.Object.prototype.controls.mtr3.cursorStyle=Us(Number(o)+180),Ce.fabric.Object.prototype.controls.mtr4.cursorStyle=Us(Number(o)+270))}),i.on("object:rotating",s=>{const o=i.lowerCanvasEl.nextSibling,v=i.getActiveObject()?.angle?.toFixed(2);if(v!==void 0)switch(s.transform?.corner){case"mtr":o.style.cursor=Us(Number(v));break;case"mtr2":o.style.cursor=Us(Number(v)+90);break;case"mtr3":o.style.cursor=Us(Number(v)+180);break;case"mtr4":o.style.cursor=Us(Number(v)+270);break}})}destroy(){console.log("pluginDestroy")}};b3.pluginName="ControlsRotatePlugin";let Gf=b3;const Ys=class Ys{constructor(i,s){this.canvas=i,this.editor=s}center(i,s){const o=i.getCenterPoint();return this.canvas._centerObject(s,o)}centerV(i,s){return this.canvas._centerObject(s,new Ce.fabric.Point(s.getCenterPoint().x,i.getCenterPoint().y))}centerH(i,s){return this.canvas._centerObject(s,new Ce.fabric.Point(i.getCenterPoint().x,s.getCenterPoint().y))}position(i){const s=this.canvas.getActiveObject();if(Ys.anignType.includes(i)&&s){const o=this.canvas.getObjects().find(v=>v.id==="workspace");o&&this[i](o,s),this.canvas.renderAll()}}contextMenu(){if(this.canvas.getActiveObject())return[{text:"水平垂直居中",hotkey:"",disabled:!1,onclick:()=>this.position("center")}]}positionV2(i,s){if(Ys.alignTypeV2.includes(s)&&i){const o=this.canvas.getObjects().find(v=>v.id==="workspace");if(o){const v=o.getCenterPoint();switch(s){case"centerH":this.canvas._centerObject(i,new Ce.fabric.Point(o.getCenterPoint().x,i.getCenterPoint().y));break;case"centerV":this.canvas._centerObject(i,new Ce.fabric.Point(i.getCenterPoint().x,o.getCenterPoint().y));break;case"leftH":i.set("left",0);break;case"topV":i.set("top",0);break;case"rightH":i.set("left",o.get("left")+o.get("width")-i.get("width"));break;case"bottomV":i.set("top",o.get("top")+o.get("height")-i.get("height"));break;case"center":this.canvas._centerObject(i,v);break}}i.syncOriginSizeByUnit(),this.canvas.fire("object:modified",i),this.canvas.renderAll()}}destroy(){console.log("pluginDestroy")}};Ys.pluginName="CenterAlignPlugin",Ys.apis=["centerH","center","position","centerV","positionV2"],Ys.anignType=["centerH","center","centerV"],Ys.alignTypeV2=["centerH","center","centerV","leftH","topV","rightH","bottomV"];let Yf=Ys;const kh=class kh{constructor(i,s){this.canvas=i,this.editor=s}_getWorkspace(){return this.canvas.getObjects().find(i=>i.id==="workspace")}_workspaceSendToBack(){const i=this._getWorkspace();i&&i.sendToBack()}up(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.bringForward(),this.canvas.renderAll(),this._workspaceSendToBack()}}down(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.sendBackwards(),this.canvas.renderAll(),this._workspaceSendToBack()}}toFront(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.bringToFront(),this.canvas.renderAll(),this._workspaceSendToBack()}}toBack(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.sendToBack(),this.canvas.renderAll(),this._workspaceSendToBack()}}contextMenu(){if(this.canvas.getActiveObject())return[{text:"图层管理",hotkey:"❯",subitems:[{text:"上一个",hotkey:"",onclick:()=>this.up()},{text:"下一个",hotkey:"",onclick:()=>this.down()},{text:"置顶",hotkey:"",onclick:()=>this.toFront()},{text:"置底",hotkey:"",onclick:()=>this.toBack()}]}]}destroy(){console.log("pluginDestroy")}};kh.pluginName="LayerPlugin",kh.apis=["up","down","toFront","toBack"];let Hf=kh;var E2,cL=new Uint8Array(16);function lL(){if(!E2&&(E2=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!E2))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return E2(cL)}const fL=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function hL(a){return typeof a=="string"&&fL.test(a)}var ma=[];for(var H0=0;H0<256;++H0)ma.push((H0+256).toString(16).substr(1));function uL(a){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=(ma[a[i+0]]+ma[a[i+1]]+ma[a[i+2]]+ma[a[i+3]]+"-"+ma[a[i+4]]+ma[a[i+5]]+"-"+ma[a[i+6]]+ma[a[i+7]]+"-"+ma[a[i+8]]+ma[a[i+9]]+"-"+ma[a[i+10]]+ma[a[i+11]]+ma[a[i+12]]+ma[a[i+13]]+ma[a[i+14]]+ma[a[i+15]]).toLowerCase();if(!hL(s))throw TypeError("Stringified UUID is invalid");return s}function oa(a,i,s){a=a||{};var o=a.random||(a.rng||lL)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,i){s=s||0;for(var v=0;v<16;++v)i[s+v]=o[v];return i}return uL(o)}const _h=class _h{constructor(i,s){this.canvas=i,this.editor=s,this.hotkeys=["ctrl+v","ctrl+c"],this.cache=null,this.initPaste()}_copyActiveSelection(i){const o=this.canvas,v=this.editor.getExtensionKey();i?.clone(b=>{b.clone(y=>{o.discardActiveObject(),!(y.left===void 0||y.top===void 0)&&(y.canvas=o,y.set({left:y.left+10,top:y.top+10,evented:!0,id:oa()}),y.forEachObject(g=>{g.id=oa(),o.add(g)}),y.setCoords(),o.setActiveObject(y),o.requestRenderAll())})},v)}_copyObject(i){const o=this.canvas,v=this.editor.getExtensionKey();i?.clone(b=>{b.left===void 0||b.top===void 0||(o.discardActiveObject(),b.set({left:b.left+10,top:b.top+10,evented:!0,id:oa()}),this.editor.addSetAndSyncByUnit(b),b.extensionType==="barcode"?this.editor.initBarcodeEvents(b):b.extensionType==="qrcode"?this.editor.initQrcodeEvents(b):b.extensionType==="imageTextList"&&this.editor.initImageTextListEvents(b),o.add(b),o.setActiveObject(b),o.requestRenderAll())},v)}clone(i){const s=i||this.canvas.getActiveObject();s&&(s?.type==="activeSelection"?this._copyActiveSelection(s):this._copyObject(s))}hotkeyEvent(i,s){if(i==="ctrl+c"&&s.type==="keydown"){const o=this.canvas.getActiveObject();this.cache=o,navigator.clipboard.writeText("")}i==="ctrl+v"&&s.type==="keydown"&&setTimeout(()=>{this.cache&&this.clone(this.cache)},0)}contextMenu(){if(this.canvas.getActiveObject())return[{text:"复制",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.clone()}]}destroy(){console.log("pluginDestroy"),window.removeEventListener("paste",i=>this.pasteListener(i))}initPaste(){window.addEventListener("paste",i=>this.pasteListener(i))}async pasteListener(i){const s=this.canvas;if(document.activeElement===document.body)i.preventDefault();else return;const o=(i.clipboardData||i.originalEvent.clipboardData).items,v=".pdf,.psd,.cdr,.ai,.svg,.jpg,.jpeg,.png,.webp,.json";for(const b of o)if(b.kind==="file"){const y=b.getAsFile(),g=y.name.split(".").pop();if(!v.split(",").includes(`.${g}`))return;if(g==="svg"){const l=await P1.getImgStr(y);if(!l)throw new Error("file is undefined");Ce.fabric.loadSVGFromURL(l,(h,u)=>{const f=Ce.fabric.util.groupSVGElements(h,{...u,name:"defaultSVG",id:oa()});s.add(f).centerObject(f).renderAll()})}if(b.type.indexOf("image/")===0){const l=URL.createObjectURL(y),h=document.createElement("img");h.src=l,document.body.appendChild(h),h.onload=()=>{const u=new Ce.fabric.Image(h,{id:oa(),name:"图片1",left:100,top:100});s.add(u),s.setActiveObject(u),s.renderAll(),h.remove()}}}else b.kind==="string"&&b.type.indexOf("text/plain")===0&&b.getAsString(y=>{const g=s.getActiveObject();if(g&&(g.type==="textbox"||g.type==="i-text")&&g.text){const l=g.selectionStart,h=g.text.substring(0,l),u=g.text.substring(l);g.set("text",h+y+u),g.selectionStart=l+y.length,g.selectionEnd=l+y.length,g.dirty=!0,s.renderAll()}else{const l=new Ce.fabric.IText(y,{left:100,top:100,fontSize:80,id:oa()});s.add(l),s.setActiveObject(l)}});o.length&&(this.cache=null)}};_h.pluginName="CopyPlugin",_h.apis=["clone"];let zf=_h;const w3=class w3{constructor(i,s){this.canvas=i,this.editor=s,this.hotkeys=["left","right","down","up"]}hotkeyEvent(i,s){if(s.type==="keydown"){const{canvas:o}=this,v=o.getActiveObject();if(!v)return;switch(i){case"left":if(v.left===void 0)return;v.set("left",v.left-1);break;case"right":if(v.left===void 0)return;v.set("left",v.left+1);break;case"down":if(v.top===void 0)return;v.set("top",v.top+1);break;case"up":if(v.top===void 0)return;v.set("top",v.top-1);break}o.renderAll()}}destroy(){console.log("pluginDestroy")}};w3.pluginName="MoveHotKeyPlugin";let qf=w3;const Mh=class Mh{constructor(i,s){this.canvas=i,this.editor=s,this.hotkeys=["backspace"]}hotkeyEvent(i,s){s.type==="keydown"&&i==="backspace"&&this.del()}del(){const{canvas:i}=this,s=i.getActiveObjects();s&&(s.map(o=>i.remove(o)),i.requestRenderAll(),i.discardActiveObject())}contextMenu(){if(this.canvas.getActiveObject())return[null,{text:"删除",hotkey:"Backspace",disabled:!1,onclick:()=>this.del()}]}destroy(){console.log("pluginDestroy")}};Mh.pluginName="DeleteHotKeyPlugin",Mh.apis=["del"];let Wf=Mh;const Th=class Th{constructor(i,s){this.canvas=i,this.editor=s}unGroup(){const i=this.canvas.getActiveObject();if(!i)return;const s=i.getObjects();i.toActiveSelection();for(const o of s)o.set("id",oa());this.canvas.discardActiveObject().renderAll()}group(){const i=this.canvas.getActiveObject();if(!i)return;const s=i.toGroup(),o=s.getObjects();s.clone(v=>{v.set("id",oa()),this.canvas.remove(s),o.forEach(b=>{this.canvas.remove(b)}),this.canvas.add(v),this.canvas.setActiveObject(v)})}contextMenu(){const i=this.canvas.getActiveObject();if(P1.isActiveSelection(i))return[{text:"组合",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.group()}];if(P1.isGroup(i))return[{text:"拆分组合",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.unGroup()}]}destroy(){console.log("pluginDestroy")}};Th.pluginName="GroupPlugin",Th.apis=["unGroup","group"];let Vf=Th;Ce.fabric.Arrow=Ce.fabric.util.createClass(Ce.fabric.Line,{type:"arrow",superType:"drawing",initialize(a,i){if(!a){const{x1:s,x2:o,y1:v,y2:b}=i;a=[s,v,o,b]}i=i||{},this.callSuper("initialize",a,i)},_render(a){this.callSuper("_render",a),a.save(),a.scale(1/this.scaleX,1/this.scaleY);const i=(this.x2-this.x1)*this.scaleX,s=(this.y2-this.y1)*this.scaleY,o=Math.atan2(s,i);a.translate((this.x2-this.x1)/2*this.scaleX,(this.y2-this.y1)/2*this.scaleY),a.rotate(o),a.beginPath(),a.moveTo(0,0),a.lineTo(-10,5),a.lineTo(-10,-5),a.closePath(),a.lineWidth=this.lineWidth,a.strokeStyle=this.stroke,a.fillStyle=this.fill,a.stroke(),a.fill(),a.restore()}});Ce.fabric.Arrow.fromObject=(a,i)=>{const{x1:s,x2:o,y1:v,y2:b}=a;return i(new Ce.fabric.Arrow([s,v,o,b],a))};const dL=Ce.fabric.Arrow;Ce.fabric.ThinTailArrow=Ce.fabric.util.createClass(Ce.fabric.Line,{type:"thinTailArrow",superType:"drawing",initialize(a,i){if(!a){const{x1:s,x2:o,y1:v,y2:b}=i;a=[s,v,o,b]}i=i||{},this.callSuper("initialize",a,i)},_render(a){a.save(),a.scale(1/this.scaleX,1/this.scaleY);const i=(this.x2-this.x1)*this.scaleX,s=(this.y2-this.y1)*this.scaleY;a.translate(-i/2,-s/2);const o=Math.atan2(s,i);a.rotate(o);let v=Math.hypot(i,s);v=v<20?20:v,a.beginPath(),a.moveTo(0,0),a.lineTo(v-18,-5),a.lineTo(v-20,-12),a.lineTo(v,0),a.lineTo(v-20,12),a.lineTo(v-18,5),a.lineTo(0,0),a.lineWidth=this.strokeWidth,a.strokeStyle=this.stroke,a.fillStyle=this.fill,a.stroke(),a.fill(),a.restore()}});Ce.fabric.ThinTailArrow.fromObject=(a,i)=>{const{x1:s,x2:o,y1:v,y2:b}=a;return i(new Ce.fabric.ThinTailArrow([s,v,o,b],a))};const pL=Ce.fabric.ThinTailArrow,Oh=class Oh{constructor(i,s){this.canvas=i,this.editor=s,this.isDrawingLine=!1,this.isDrawingLineMode=!1,this.lineType="",this.lineToDraw=null,this.pointer=null,this.pointerPoints=null,this.init()}init(){const{canvas:i}=this;i.on("mouse:down",s=>{if(!this.isDrawingLineMode)return;i.discardActiveObject(),i.getObjects().forEach(b=>{b.selectable=!1,b.hasControls=!1}),i.requestRenderAll(),this.isDrawingLine=!0,this.pointer=i.getPointer(s.e),this.pointerPoints=[this.pointer.x,this.pointer.y,this.pointer.x,this.pointer.y];let o,v={strokeWidth:2,stroke:"#000000",id:oa()};switch(this.lineType){case"line":o=Ce.fabric.Line;break;case"arrow":o=dL;break;case"thinTailArrow":o=pL,v={strokeWidth:2,stroke:"#ff0000",fill:"#ff0000",id:oa()};break}if(!o)throw new Error("Draw failed: invalid lineType.");this.lineToDraw=new o(this.pointerPoints,v),this.lineToDraw.selectable=!1,this.lineToDraw.evented=!1,this.lineToDraw.strokeUniform=!0,i.add(this.lineToDraw)}),i.on("mouse:move",s=>{if(!(!this.isDrawingLine||!["line","arrow","thinTailArrow"].includes(this.lineType)||(i.discardActiveObject(),i.getActiveObject()))){if(this.pointer=i.getPointer(s.e),s.e.shiftKey){const v=this.pointerPoints[0],b=this.pointerPoints[1],y=this.pointer.x-v,g=this.pointer.y-b,l=Math.sqrt(y*y+g*g);let h=Math.atan2(g,y)/Math.PI*180;h=~~((h+7.5)%360/15)*15;const u=l*Math.cos(h*Math.PI/180),f=l*Math.sin(h*Math.PI/180);this.lineToDraw.set({x2:u+v,y2:f+b})}else this.lineToDraw.set({x2:this.pointer.x,y2:this.pointer.y});i.renderAll()}}),i.on("mouse:up",()=>{this.isDrawingLine&&(this.lineToDraw.setCoords(),this.isDrawingLine=!1,i.discardActiveObject(),i.renderAll(),this.editor.saveState())})}setLineType(i){this.lineType=i}setMode(i){this.isDrawingLineMode=i,this.isDrawingLineMode||this.endRest()}endRest(){this.canvas.getObjects().forEach(i=>{i.id!=="workspace"&&(i.selectable=!0,i.hasControls=!0)})}destroy(){console.log("pluginDestroy")}};Oh.pluginName="DrawLinePlugin",Oh.apis=["setLineType","setMode"];let Xf=Oh;const y3=class y3{constructor(i,s){this.canvas=i,this.editor=s,this.isDown=!1,this._init()}_init(){this.canvas.on("mouse:down",i=>{this.isDown=!0,i.target&&!i.target.lockMovementX&&!i.target.lockMovementY&&!i.target.lockRotation&&!i.target.lockScalingX&&!i.target.lockScalingY&&(i.target.hasControls=!0)}),this.canvas.on("mouse:up",()=>{this.isDown=!1}),this.canvas.on("mouse:dblclick",i=>{if(P1.isGroup(i.target)){const s=this._getGroupObj(i);if(!s)return;if(s.selectable=!0,s.hasControls&&(s.hasControls=!1),this.isText(s)){this._bedingTextEditingEvent(s,i.target);return}this.canvas.setActiveObject(s),this.canvas.renderAll()}})}_getGroupTextObj(i){const s=this.canvas.getPointer(i.e,!0);if(!P1.isGroup(i.target))return!1;const o=this.canvas._searchPossibleTargets(i.target._objects,s);return o&&this.isText(o)?o:!1}_getGroupObj(i){const s=this.canvas.getPointer(i.e,!0);return P1.isGroup(i.target)?this.canvas._searchPossibleTargets(i.target._objects,s):!1}_bedingTextEditingEvent(i,s){const o=i.toObject(),v=s.calcTransformMatrix(),b=v[0],y=v[1],g=v[2],l=v[3],h=v[4],u=v[5],f=b*(i.left??0)+g*(i.top??0)+h,p=y*(i.left??0)+l*(i.top??0)+u,d=new i.constructor(i.text??"",{...o,scaleX:o.scaleX*b,scaleY:o.scaleY*b,textAlign:i.textAlign,left:f,top:p,styles:i.styles,groupCopyed:i.group});d.id=oa(),i.visible=!1,s.addWithUpdate(),d.visible=!0,d.selectable=!0,d.hasControls=!1,d.editable=!0,this.canvas.add(d),this.canvas.setActiveObject(d),d.enterEditing(),d.selectAll(),d.on("editing:exited",()=>{const A=d.toObject();i.set({...f6(A,["fill","fontSize","fontStyle","fontFamily","lineHeight","backgroundColor"]),text:d.text,visible:!0}),s.addWithUpdate(),d.visible=!1,this.canvas.remove(d),this.canvas.setActiveObject(s)})}_bedingEditingEvent(i,s){if(!s.target)return;const o=s.target.left,v=s.target.top,b=this._unGroup()||[],y=()=>{const g=this.canvas.getObjects().filter(h=>h.id&&b.includes(h.id));g.forEach(h=>this.canvas.remove(h));const l=new Ce.fabric.Group([...g]);l.set("left",o),l.set("top",v),l.set("id",oa()),i.off("editing:exited",y),this.canvas.add(l),this.canvas.discardActiveObject().renderAll()};i.on("editing:exited",y)}_unGroup(){const i=[],s=this.canvas.getActiveObject();if(s)return s.getObjects().forEach(o=>{const v=oa();i.push(v),o.set("id",v)}),s.toActiveSelection(),i}isText(i){return i.type&&["i-text","text","textbox"].includes(i.type)}destroy(){console.log("pluginDestroy")}};y3.pluginName="GroupTextEditorPlugin";let $f=y3;const Rh=class Rh{constructor(i,s){this.canvas=i,this.editor=s}left(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{left:v=0}=s;i.discardActiveObject(),o.forEach(y=>{const g=y.getBoundingRect(!0);y.set({left:v-g.left+Number(y.left)}),y.setCoords()});const b=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(b),i.requestRenderAll()}}right(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{left:v=0,width:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({left:v+b-(l.left+l.width)+Number(g.left)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}xcenter(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{left:v=0,width:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({left:v+b/2-(l.left+l.width/2)+Number(g.left)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}ycenter(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{top:v=0,height:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({top:v+b/2-(l.top+l.height/2)+Number(g.top)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}top(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{top:v=0}=s;i.discardActiveObject(),o.forEach(y=>{const g=y.getBoundingRect(!0);y.set({top:v-g.top+Number(y.top)})});const b=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(b),i.requestRenderAll()}}bottom(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{top:v=0,height:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({top:v+b-(l.top+l.height)+Number(g.top)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}xequation(){const{canvas:i}=this,s=i.getActiveObject();function o(h){let u=1/0,f=-1/0;for(const p in h.aCoords)h.aCoords[p].x<u&&(u=h.aCoords[p].x),h.aCoords[p].x>f&&(f=h.aCoords[p].x);return f-u}function v(){let h=0;return s&&s.forEachObject(u=>{h+=o(u)}),h}function b(){const h=v();if(s)return(Number(s.width)-h)/(s._objects.length-1)}function y(h){if(h===0)return 0;let u=0;if(s)for(let f=0;f<h;f++)u+=o(s._objects[f]);return u}if(s&&s.type==="activeSelection"){s._objects.sort((p,d)=>p.left-d.left);const u=b(),f=Number(s.width)/2;s.forEachObject((p,d)=>{const A=y(d),w=u*d+A-f;p.set("left",w)})}const g=i.getActiveObjects();i.discardActiveObject(),g.forEach(h=>{let u=1/0;for(const f in h.aCoords)h.aCoords[f].x<u&&(u=h.aCoords[f].x);h.set("left",2*h.left-u)});const l=new Ce.fabric.ActiveSelection(g,{canvas:i});i.setActiveObject(l),i.requestRenderAll()}yequation(){const{canvas:i}=this,s=i.getActiveObject()||{top:0,height:0};function o(h){let u=1/0,f=-1/0;for(const p in h.aCoords)h.aCoords[p].y<u&&(u=h.aCoords[p].y),h.aCoords[p].y>f&&(f=h.aCoords[p].y);return f-u}function v(){let h=0;return s.forEachObject(u=>{h+=o(u)}),h}function b(){const h=v();return(s.height-h)/(s._objects.length-1)}function y(h){if(h===0)return 0;let u=0;for(let f=0;f<h;f++)u+=o(s._objects[f]);return u}if(s&&s.type==="activeSelection"){s._objects.sort((p,d)=>p.top-d.top);const u=b(),f=Number(s.height)/2;s.forEachObject((p,d)=>{const A=y(d),w=u*d+A-f;p.set("top",w)})}const g=i.getActiveObjects();i.discardActiveObject(),g.forEach(h=>{let u=1/0;for(const f in h.aCoords)h.aCoords[f].y<u&&(u=h.aCoords[f].y);h.set("top",2*h.top-u)});const l=new Ce.fabric.ActiveSelection(g,{canvas:i});i.setActiveObject(l),i.requestRenderAll()}destroy(){console.log("pluginDestroy")}};Rh.pluginName="GroupAlignPlugin",Rh.apis=["left","right","xcenter","ycenter","top","bottom","xequation","yequation"];let Jf=Rh;class gL{constructor(){this.maxZoom=20,this.minZoom=.01,this.zoomStep=.01}}const wl=class wl{constructor(i,s,o){this.canvas=i,this.editor=s,this.workspace=null,this.config=Object.assign(new gL,o),this.init({width:114,height:114}),this.zoomRatio=this._getValidZoom(.85)}init(i){const s=document.querySelector("#workspace");if(!s)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=s,this.workspace=null,this.option=i,this._initBackground(),this._initWorkspace(),this._initResizeObserve(),this._bindWheel()}hookImportAfter(){return new Promise(i=>{const s=this.canvas.getObjects().find(o=>o.id==="workspace");s&&(s.set("selectable",!1),s.set("hasControls",!1),s.set("evented",!1),s.width&&s.height&&(this.setSize(s.width,s.height),this.editor.emit("sizeChange",{width:this.editor.getSizeByUnit(s.width),height:this.editor.getSizeByUnit(s.height),unit:this.editor.getUnit()}))),i("")})}hookSaveAfter(){return new Promise(i=>{this.auto(),i(!0)})}_initBackground(){this.canvas.backgroundImage="",this.canvas.setWidth(this.workspaceEl.offsetWidth),this.canvas.setHeight(this.workspaceEl.offsetHeight)}_initWorkspace(){const{width:i,height:s}=this.option,o=new Ce.fabric.Rect({fill:"rgba(255,255,255,1)",width:i,height:s,id:"workspace",strokeWidth:0});o.set("selectable",!1),o.set("hasControls",!1),o.hoverCursor="default",this.canvas.add(o),this.canvas.renderAll(),this.workspace=o,this.canvas.clearHistory&&this.canvas.clearHistory(),this.auto()}getWorkspase(){return this.canvas.getObjects().find(i=>i.id==="workspace")}setCenterFromObject(i){const{canvas:s}=this,o=i.getCenterPoint(),v=s.viewportTransform;s.width===void 0||s.height===void 0||!v||(v[4]=s.width/2-o.x*v[0],v[5]=s.height/2-o.y*v[3],s.setViewportTransform(v),s.renderAll())}_initResizeObserve(){const i=new ResizeObserver(Bs(()=>{this.auto()},50));this.resizeObserver=i,this.resizeObserver.observe(this.workspaceEl)}_getValidZoom(i){return Math.max(this.config.minZoom,Math.min(this.config.maxZoom,i))}setSize(i,s,o){this._initBackground(),this.option.width=i,this.option.height=s,this.workspace=this.canvas.getObjects().find(v=>v.id==="workspace"),this.workspace.set("width",i),this.workspace.set("height",s),o?.slient!==!0&&this.editor.emit("sizeChange",{width:this.editor.getSizeByUnit(i),height:this.editor.getSizeByUnit(s),unit:this.editor.getUnit()}),this.auto()}setZoomAuto(i,s){const{workspaceEl:o}=this,v=o.offsetWidth,b=o.offsetHeight;this.canvas.setWidth(v),this.canvas.setHeight(b);const y=this.canvas.getCenter();this.canvas.setViewportTransform(Ce.fabric.iMatrix.concat()),this.canvas.zoomToPoint(new Ce.fabric.Point(y.left,y.top),i),this.workspace&&(this.setCenterFromObject(this.workspace),this.workspace.clone(g=>{this.canvas.clipPath=g,this.canvas.requestRenderAll()}),s&&s(this.workspace.left,this.workspace.top))}_getScale(){return Ce.fabric.util.findScaleToFit(this.getWorkspase(),{width:this.workspaceEl.offsetWidth,height:this.workspaceEl.offsetHeight})}big(){let i=this.canvas.getZoom();i=this._getValidZoom(i+this.config.zoomStep);const s=this.canvas.getCenter();this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),i)}small(){let i=this.canvas.getZoom();i=this._getValidZoom(i-this.config.zoomStep);const s=this.canvas.getCenter();this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),i)}auto(){const i=this._getScale(),s=this._getValidZoom(i*this.zoomRatio);this.setZoomAuto(s)}one(){this.setZoomAuto(1*this.zoomRatio),this.canvas.requestRenderAll()}getZoom(){return this.canvas.getZoom()}setZoom(i){const s=this.canvas.getCenter();this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),this._getValidZoom(i))}setWorkspaseBg(i){this.getWorkspase()?.set("fill",i)}_bindWheel(){const i=this._getValidZoom.bind(this);this.canvas.on("mouse:wheel",function(s){const o=s.e.deltaY;let v=this.getZoom();v*=.999**o,v=i(v);const b=this.getCenter();this.zoomToPoint(new Ce.fabric.Point(b.left,b.top),v),s.e.preventDefault(),s.e.stopPropagation()})}destroy(){this.resizeObserver.disconnect(),this.canvas.off(),console.log("pluginDestroy")}};wl.pluginName="WorkspacePlugin",wl.events=["sizeChange"],wl.apis=["big","small","auto","one","setSize","setSizeMm","getWorkspase","setWorkspaseBg","setCenterFromObject","getZoom","setZoom"];let Kf=wl;const Dh=class Dh{constructor(i,s){this.canvas=i,this.editor=s,this.coverMask=null,this.workspace=null,this.hackFlag=!1,this.init()}init(){const i=document.querySelector("#workspace");if(!i)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=i}workspaceMaskToggle(){const i=this.getWorkspaceMask();i?(i&&this.canvas.remove(i),this.workspace?.clone(s=>{this.canvas.clipPath=s,this.coverMask=null,this.canvas.requestRenderAll()}),this.editor.off("loadJson",this.initMask)):this.initMask()}getworkspaceMaskStatus(){return this.coverMask!==null}getWorkspaceMask(){return this.canvas.getObjects().find(i=>i.id==="coverMask")}getWorkspase(){return this.canvas.getObjects().find(i=>i.id==="workspace")}setCoverMask(i=!1){if(!this.coverMask||!this.workspace)return;const s=this.canvas.getCenter(),o=this.canvas.getZoom();let v=o;if(i&&(v+=1e-7*(this.hackFlag?1:-1),this.hackFlag=!this.hackFlag),this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),v),o){const{workspaceEl:b}=this,y=b.offsetWidth,g=b.offsetHeight,l=y/o,h=g/o;this.coverMask.width=l,this.coverMask.height=h,this.coverMask.left=(this.workspace.left||0)+(this.workspace.width-l)/2,this.coverMask.top=(this.workspace.top||0)+(this.workspace.height-h)/2,this.workspace.clone(u=>{u.left=-u.width/2,u.top=-u.height/2,u.inverted=!0,this.coverMask.clipPath=u,this.canvas.requestRenderAll()})}}initMask(i=!0){if(this.workspace=this.getWorkspase(),!this.workspace)throw new Error("MaskPlugin must be used after WorkspacePlugin!");const s=new Ce.fabric.Rect({fill:"rgba(0,0,0,0.5)",id:"coverMask",strokeWidth:0});s.set("selectable",!1),s.set("hasControls",!1),s.set("evented",!1),s.hoverCursor="default",this.canvas.on("object:added",()=>{s.bringToFront()}),this.canvas.clipPath=void 0,this.canvas.add(s),this.coverMask=s,this.setCoverMask(),i&&this.editor.on("loadJson",()=>this.initMask(!1))}destroy(){console.log("pluginDestroy")}};Dh.pluginName="MaskPlugin",Dh.apis=["setCoverMask","workspaceMaskToggle","getworkspaceMaskStatus"];let Zf=Dh;const yl=class yl{constructor(i,s){this.canvas=i,this.editor=s,this.stack=[],this.currentIndex=0,this.maxLength=100,this.isProcessing=!1,this.isLoading=!1,this.hotkeys=["ctrl+z","ctrl+shift+z","⌘+z","⌘+shift+z"],this._init()}_init(){Object.entries({"object:removed":()=>this.saveState(),"object:modified":()=>this.saveState(),"object:skewing":()=>this.saveState()}).forEach(([s,o])=>{this.canvas.on(s,o)}),this.saveState(),this.canvas.on("history:append",()=>{this.historyUpdate()})}getCurrentState(){return this.editor.getJson()}saveState(){this.isProcessing||(this.stack.splice(this.currentIndex),this.stack.push(this.getCurrentState()),this.stack.length>this.maxLength?this.stack.shift():this.currentIndex++,this.historyUpdate())}_loadState(i,s,o){this.isLoading=!0,this.isProcessing=!0;const b=JSON.parse(i).objects?.find(y=>y.id==="workspace");b&&(b.evented=!1),this.canvas.loadFromJSON(i,()=>{this.canvas.renderAll(),this.canvas.fire(s),this.isProcessing=!1,this.isLoading=!1,o?.()})}getState(){return{undoCount:this.currentIndex-1,redoCount:this.stack.length-this.currentIndex}}clear(){this.stack=[],this.currentIndex=0,this.saveState()}historyUpdate(){const{undoCount:i,redoCount:s}=this.getState();this.editor.emit("historyUpdate",i,s)}hookImportAfter(){return this.clear(),this.historyUpdate(),Promise.resolve()}undo(){if(this.isLoading||this.currentIndex<=1)return;this.currentIndex--;const i=this.stack[this.currentIndex-1];i&&(this._loadState(JSON.stringify(i),"history:undo"),this.historyUpdate())}redo(){if(this.isLoading||this.currentIndex>=this.stack.length)return;const i=this.stack[this.currentIndex];i&&(this._loadState(JSON.stringify(i),"history:redo"),this.currentIndex++,this.historyUpdate())}hotkeyEvent(i,s){if(s.type==="keydown")switch(i){case"ctrl+z":case"⌘+z":this.undo();break;case"ctrl+shift+z":case"⌘+shift+z":this.redo();break}}clearAndSaveState(){const i=this.getCurrentState();this.stack=[i],this.currentIndex=1,this.historyUpdate()}};yl.pluginName="HistoryPlugin",yl.apis=["undo","redo","historyUpdate","clearAndSaveState","saveState"],yl.events=[];let eh=yl;const Fh=class Fh{constructor(i,s){this.canvas=i,this.editor=s}flip(i){const s=this.canvas.getActiveObject();s&&(s.set(`flip${i}`,!s[`flip${i}`]).setCoords(),this.canvas.requestRenderAll())}contextMenu(){if(this.editor.getSelectMode()===Zh.ONE)return[{text:"翻转",hotkey:"❯",subitems:[{text:"水平翻转",hotkey:"|",onclick:()=>this.flip("X")},{text:"垂直翻转",hotkey:"-",onclick:()=>this.flip("Y")}]}]}destroy(){console.log("pluginDestroy")}};Fh.pluginName="FlipPlugin",Fh.apis=["flip"];let th=Fh;const vL=a=>{const i=[.02,.03,.05,.1,.2,.5,1,2,5,10,18],s=[5e3,2500,1e3,500,250,100,50,25,10,5,2];let o=0;for(;o<i.length&&i[o]<a;)o++;return s[o-1]||5e3},B2=(a,i)=>{const s=i?"left":"top",o=i?"width":"height";a.sort((y,g)=>y[s]-g[s]);const v=[];let b=Object.assign({},a[0]);for(const y of a){const g=Object.assign({},y);b[s]+b[o]>=g[s]?b[o]=Math.max(b[s]+b[o],g[s]+g[o])-b[s]:(v.push(b),b=Object.assign({},g))}return v.push(b),v},z0=(a,i)=>{a.save();const{left:s,top:o,width:v,height:b,stroke:y,lineWidth:g}=i;a.beginPath(),y&&(a.strokeStyle=y),a.lineWidth=g??1,a.moveTo(s,o),a.lineTo(s+v,o+b),a.stroke(),a.restore()},q0=(a,i)=>{a.save();const{left:s,top:o,text:v,fill:b,align:y,angle:g,fontSize:l}=i;b&&(a.fillStyle=b),a.textAlign=y??"left",a.textBaseline="top",a.font=`${l??10}px sans-serif`,g&&(a.translate(s,o),a.rotate(Math.PI/180*g),a.translate(-s,-o)),a.fillText(v,s,o),a.restore()},xp=(a,i)=>{a.save();const{left:s,top:o,width:v,height:b,fill:y,stroke:g,strokeWidth:l}=i;a.beginPath(),y&&(a.fillStyle=y),a.rect(s,o,v,b),a.fill(),g&&(a.strokeStyle=g,a.lineWidth=l??1,a.stroke()),a.restore()},S2=(a,i)=>{a.save();const{isHorizontal:s,left:o,top:v,width:b,height:y,backgroundColor:g}=i,l=s?a.createLinearGradient(o,y/2,o+b,y/2):a.createLinearGradient(b/2,v,b/2,y+v),h=new Ce.fabric.Color(g);h.setAlpha(0),l.addColorStop(0,h.toRgba()),l.addColorStop(.33,g),l.addColorStop(.67,g),l.addColorStop(1,h.toRgba()),xp(a,{left:o,top:v,width:b,height:y,fill:l}),a.restore()};function AL(){Ce.fabric.GuideLine||(Ce.fabric.GuideLine=Ce.fabric.util.createClass(Ce.fabric.Line,{type:"GuideLine",selectable:!1,hasControls:!1,hasBorders:!1,stroke:"#4bec13",originX:"center",originY:"center",padding:4,globalCompositeOperation:"difference",axis:"horizontal",initialize(a,i){const s=i.axis==="horizontal";this.hoverCursor=s?"ns-resize":"ew-resize";const o=s?[-999999,a,999999,a]:[a,-999999,a,999999];i[s?"lockMovementX":"lockMovementY"]=!0,this.callSuper("initialize",o,i),this.on("mousedown:before",v=>{this.activeOn==="down"&&this.canvas&&this.canvas.setActiveObject(this,v.e)}),this.on("moving",v=>{this.canvas&&this.canvas.ruler.options.enabled&&this.isPointOnRuler(v.e)?this.moveCursor="not-allowed":this.moveCursor=this.isHorizontal()?"ns-resize":"ew-resize",this.canvas&&this.canvas.fire("guideline:moving",{target:this,e:v.e})}),this.on("mouseup",v=>{if(this.canvas&&this.canvas.ruler.options.enabled&&this.isPointOnRuler(v.e)){this.canvas.remove(this);return}this.moveCursor=this.isHorizontal()?"ns-resize":"ew-resize",this.canvas&&this.canvas.fire("guideline:mouseup",{target:this,e:v.e})}),this.on("removed",()=>{this.off("removed"),this.off("mousedown:before"),this.off("moving"),this.off("mouseup")})},getBoundingRect(a,i){this.bringToFront();const s=this.isHorizontal(),o=this.callSuper("getBoundingRect",a,i);return o[s?"top":"left"]+=o[s?"height":"width"]/2,o[s?"height":"width"]=0,o},isPointOnRuler(a){const i=this.isHorizontal(),s=this.canvas&&this.canvas.ruler.isPointOnRuler(new Ce.fabric.Point(a.offsetX,a.offsetY));return i&&s==="horizontal"||!i&&s==="vertical"?s:!1},isHorizontal(){return this.height===0}}),Ce.fabric.GuideLine.fromObject=function(a,i){const s=Ce.fabric.util.object.clone;function o(y){delete y.xy,i&&i(y)}const v=s(a,!0),b=v.height===0;v.xy=b?v.y1:v.x1,v.axis=b?"horizontal":"vertical",Ce.fabric.Object._fromObject(v.type,v,o,"xy")})}Ce.fabric.GuideLine;class mL{constructor(i){this.unit="px",this.activeOn="up",this.eventHandler={calcObjectRect:Bs(this.calcObjectRect.bind(this),15),markRectDirtyImmediate:s=>{this.currentMovingTarget=s?.target,this.needsRectUpdate=!0,this.options.canvas.requestRenderAll()},markRectDirtyThrottled:Bs(s=>{this.currentMovingTarget=s?.target,this.needsRectUpdate=!0,this.options.canvas.requestRenderAll()},30),clearStatus:this.clearStatus.bind(this),canvasMouseDown:this.canvasMouseDown.bind(this),canvasMouseMove:Bs(this.canvasMouseMove.bind(this),15),canvasMouseUp:this.canvasMouseUp.bind(this),render:s=>{s.ctx&&this.render()}},this.lastAttr={status:"out",cursor:void 0,selection:void 0},this.needsRectUpdate=!0,this.getCommonEventInfo=s=>{if(!(!this.tempGuidelLine||!s.absolutePointer))return{e:s.e,transform:this.tempGuidelLine.get("transform"),pointer:{x:s.absolutePointer.x,y:s.absolutePointer.y},target:this.tempGuidelLine}},this.options=Object.assign({ruleSize:20,fontSize:10,enabled:!1,backgroundColor:"#fff",borderColor:"#ddd",highlightColor:"#007fff",textColor:"#888",unit:"px"},i),this.ctx=this.options.canvas.getContext(),this.unit=this.options.unit||"px",Ce.fabric.util.object.extend(this.options.canvas,{ruler:this}),AL(),this.options.enabled&&this.enable()}setUnit(i){this.unit!==i&&(this.unit=i,this.render())}formatValueByUnit(i){return this.unit==="px"?i:Bn.pxToMm(i)}formatLabel(i){const s=this.formatValueByUnit(i);return this.unit==="px"?String(Math.round(s)):String(Math.round(s*10)/10)}destroy(){this.disable()}clearGuideline(){this.options.canvas.remove(...this.options.canvas.getObjects(Ce.fabric.GuideLine.prototype.type))}showGuideline(){this?.options?.canvas?.getObjects(Ce.fabric.GuideLine.prototype.type).forEach(i=>{i.set("visible",!0)}),this?.options?.canvas?.renderAll()}hideGuideline(){this.options.canvas.getObjects(Ce.fabric.GuideLine.prototype.type).forEach(i=>{i.set("visible",!1)}),this.options.canvas.renderAll()}enable(){this.options.enabled=!0,this.options.canvas.on("after:render",this.eventHandler.calcObjectRect),this.options.canvas.on("after:render",this.eventHandler.render),this.options.canvas.on("mouse:down",this.eventHandler.canvasMouseDown),this.options.canvas.on("mouse:move",this.eventHandler.canvasMouseMove),this.options.canvas.on("mouse:up",this.eventHandler.canvasMouseUp),this.options.canvas.on("selection:cleared",this.eventHandler.clearStatus),this.options.canvas.on("selection:created",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("selection:updated",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("object:moving",this.eventHandler.markRectDirtyThrottled),this.options.canvas.on("object:modified",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("object:scaling",this.eventHandler.markRectDirtyThrottled),this.options.canvas.on("object:rotating",this.eventHandler.markRectDirtyThrottled),this.showGuideline(),this.render()}disable(){this.options.canvas.off("after:render",this.eventHandler.calcObjectRect),this.options.canvas.off("after:render",this.eventHandler.render),this.options.canvas.off("mouse:down",this.eventHandler.canvasMouseDown),this.options.canvas.off("mouse:move",this.eventHandler.canvasMouseMove),this.options.canvas.off("mouse:up",this.eventHandler.canvasMouseUp),this.options.canvas.off("selection:cleared",this.eventHandler.clearStatus),this.options.canvas.off("object:added",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("selection:created",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("selection:updated",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("object:moving",this.eventHandler.markRectDirtyThrottled),this.options.canvas.off("object:modified",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("object:scaling",this.eventHandler.markRectDirtyThrottled),this.options.canvas.off("object:rotating",this.eventHandler.markRectDirtyThrottled),this.hideGuideline(),this.options.enabled=!1}render(){const i=this.options.canvas.viewportTransform;i&&((!this.lastViewportTransform||this.lastViewportTransform.some((s,o)=>s!==i[o]))&&(this.needsRectUpdate=!0,this.lastViewportTransform=[...i]),this.needsRectUpdate&&(this.currentMovingTarget?this.calcObjectRectFromTarget(this.currentMovingTarget):this.calcObjectRect(),this.currentMovingTarget=void 0,this.needsRectUpdate=!1),this.draw({isHorizontal:!0,rulerLength:this.getSize().width,startCalibration:this.startCalibration?.x?this.startCalibration.x:-(i[4]/i[0])}),this.draw({isHorizontal:!1,rulerLength:this.getSize().height,startCalibration:this.startCalibration?.y?this.startCalibration.y:-(i[5]/i[3])}),S2(this.ctx,{isHorizontal:!0,left:-10,top:-10,width:this.options.ruleSize*2+10,height:this.options.ruleSize+10,backgroundColor:this.options.backgroundColor}),S2(this.ctx,{isHorizontal:!1,left:-10,top:-10,width:this.options.ruleSize+10,height:this.options.ruleSize*2+10,backgroundColor:this.options.backgroundColor}))}getSize(){return{width:this.options.canvas.width??0,height:this.options.canvas.height??0}}getZoom(){return this.options.canvas.getZoom()}draw(i){const{isHorizontal:s,rulerLength:o,startCalibration:v}=i,b=this.getZoom();let y=vL(b),g=1;if(this.unit==="mm"){const d=Bn.mmToPx(1,void 0,{direct:!0}),A=d*b;A<4?g=10:A<8&&(g=5),y=d*g}const l=o/b,h=Math[v>0?"floor":"ceil"](v/y)*y,u=h-v,f=this.getSize();xp(this.ctx,{left:0,top:0,width:s?f.width:this.options.ruleSize,height:s?this.options.ruleSize:f.height,fill:this.options.backgroundColor,stroke:this.options.borderColor});const p=new Ce.fabric.Color(this.options.textColor);for(let d=0;d+u<=Math.ceil(l);d+=y){const A=(u+d)*b,w=this.formatLabel(h+d);if(this.unit==="mm"){const E=Bn.pxToMm(h+d);if(Math.round(E)%5!==0)continue}const m=10*w.length/4,x=s?A-m-1:this.options.ruleSize/2-this.options.fontSize/2-4,C=s?this.options.ruleSize/2-this.options.fontSize/2-4:A+m;q0(this.ctx,{text:w,left:x,top:C,fill:p.toRgb(),angle:s?0:-90})}for(let d=0;d+u<=Math.ceil(l);d+=y){const A=Math.round((u+d)*b);let w=8;if(this.unit==="mm"){const B=Bn.pxToMm(h+d),k=Math.round(B);k%10===0?w=12:k%5===0?w=10:w=6}const m=s?A:this.options.ruleSize-w,x=s?this.options.ruleSize-w:A,C=s?0:w,E=s?w:0;z0(this.ctx,{left:m,top:x,width:C,height:E,stroke:p.toRgb()})}if(this.objectRect){const d=s?"x":"y";this.objectRect[d].forEach(A=>{if(A.skip===d)return;const w=z=>{if(this.unit==="px"){const V=this.options.editor.getSizeByUnit((z==="start"?s?A.left:A.top:s?A.left+A.width:A.top+A.height)/b+v),$=Number(V);return Number.isNaN($)?void 0:Math.round($*100)/100}return s?z==="start"?A.originXStart:A.originXEnd:z==="start"?A.originYStart:A.originYEnd},m=w("start"),x=w("end"),C=this.options.editor.getPrecision?.()??2,E=m!==void 0?QA(m,C):void 0,B=x!==void 0?QA(x,C):void 0,k=m!==void 0&&x!==void 0&&m===x,M={isHorizontal:s,width:s?160:this.options.ruleSize-8,height:s?this.options.ruleSize-8:160,backgroundColor:this.options.backgroundColor};S2(this.ctx,{...M,left:s?A.left-80:0,top:s?0:A.top-80}),k||S2(this.ctx,{...M,left:s?A.width+A.left-80:0,top:s?0:A.height+A.top-80});const T=new Ce.fabric.Color(this.options.highlightColor);T.setAlpha(.5),xp(this.ctx,{left:s?A.left:this.options.ruleSize-8,top:s?this.options.ruleSize-8:A.top,width:s?A.width:8,height:s?8:A.height,fill:T.toRgba()});const R=this.options.ruleSize/2-this.options.fontSize/2-4,N={fill:T.toRgba(),angle:s?0:-90};E!==void 0&&q0(this.ctx,{...N,text:E,left:s?A.left-2:R,top:s?R:A.top-2,align:k?"center":s?"right":"left"}),!k&&B!==void 0&&q0(this.ctx,{...N,text:B,left:s?A.left+A.width+2:R,top:s?R:A.top+A.height+2,align:s?"left":"right"});const Q=k?8:14;T.setAlpha(1);const Y={width:s?0:Q,height:s?Q:0,stroke:T.toRgba()};z0(this.ctx,{...Y,left:s?A.left:this.options.ruleSize-Q,top:s?this.options.ruleSize-Q:A.top}),k||z0(this.ctx,{...Y,left:s?A.left+A.width:this.options.ruleSize-Q,top:s?this.options.ruleSize-Q:A.top+A.height})})}}calcObjectRect(){const i=this.options.canvas.getActiveObjects();if(i.length===0)return;const s=i.reduce((o,v)=>{const b=v.getBoundingRect(!1,!0);if(v.group){const y=v.group,g={...y,scaleX:y?.scaleX??1,scaleY:y?.scaleY??1};b.width*=g.scaleX,b.height*=g.scaleY;const l=g.width/2+g.left,h=(g.width/2+(v.left??0))*(1-g.scaleX);b.left+=(l-h)*this.getZoom();const u=g.height/2+g.top,f=(g.height/2+(v.top??0))*(1-g.scaleY);b.top+=(u-f)*this.getZoom()}if(v instanceof Ce.fabric.GuideLine&&(b.skip=v.isHorizontal()?"x":"y"),this.unit!=="px"){const y=v._originSize?.[this.unit];if(y)if(v instanceof Ce.fabric.Polygon&&Array.isArray(y.points)){const g=y.points.map(d=>d.x),l=y.points.map(d=>d.y),h=Math.min(...g),u=Math.max(...g),f=Math.min(...l),p=Math.max(...l);b.originXStart=h,b.originXEnd=u,b.originYStart=f,b.originYEnd=p}else{const g=y.left,l=y.top;let h=y.width,u=y.height;h===void 0&&y.rx!==void 0&&(h=y.rx*2),u===void 0&&y.ry!==void 0&&(u=y.ry*2),g!==void 0&&h!==void 0&&(b.originXStart=g,b.originXEnd=g+h),l!==void 0&&u!==void 0&&(b.originYStart=l,b.originYEnd=l+u)}}return o.push(b),o},[]);s.length!==0&&(this.objectRect={x:B2(s,!0),y:B2(s,!1)})}calcObjectRectFromTarget(i){const o=(v=>{const b=v.getBoundingRect(!1,!0);if(v.group){const y=v.group,g={...y,scaleX:y?.scaleX??1,scaleY:y?.scaleY??1};b.width*=g.scaleX,b.height*=g.scaleY;const l=g.width/2+g.left,h=(g.width/2+(v.left??0))*(1-g.scaleX);b.left+=(l-h)*this.getZoom();const u=g.height/2+g.top,f=(g.height/2+(v.top??0))*(1-g.scaleY);b.top+=(u-f)*this.getZoom()}if(v instanceof Ce.fabric.GuideLine&&(b.skip=v.isHorizontal()?"x":"y"),this.unit!=="px"){const y=v._originSize?.[this.unit];if(y)if(v instanceof Ce.fabric.Polygon&&Array.isArray(y.points)){const g=y.points.map(d=>d.x),l=y.points.map(d=>d.y),h=Math.min(...g),u=Math.max(...g),f=Math.min(...l),p=Math.max(...l);b.originXStart=h,b.originXEnd=u,b.originYStart=f,b.originYEnd=p}else{const g=y.left,l=y.top;let h=y.width,u=y.height;h===void 0&&y.rx!==void 0&&(h=y.rx*2),u===void 0&&y.ry!==void 0&&(u=y.ry*2),g!==void 0&&h!==void 0&&(b.originXStart=g,b.originXEnd=g+h),l!==void 0&&u!==void 0&&(b.originYStart=l,b.originYEnd=l+u)}}return b})(i);this.objectRect={x:B2([o],!0),y:B2([o],!1)}}clearStatus(){this.objectRect=void 0}isPointOnRuler(i){return new Ce.fabric.Rect({left:0,top:0,width:this.options.ruleSize,height:this.options.canvas.height}).containsPoint(i)?"vertical":new Ce.fabric.Rect({left:0,top:0,width:this.options.canvas.width,height:this.options.ruleSize}).containsPoint(i)?"horizontal":!1}canvasMouseDown(i){if(!i.pointer||!i.absolutePointer)return;const s=this.isPointOnRuler(i.pointer);s&&this.activeOn==="up"&&(this.lastAttr.selection=this.options.canvas.selection,this.options.canvas.selection=!1,this.activeOn="down",this.tempGuidelLine=new Ce.fabric.GuideLine(s==="horizontal"?i.absolutePointer.y:i.absolutePointer.x,{axis:s,visible:!1}),this.options.canvas.add(this.tempGuidelLine),this.options.canvas.setActiveObject(this.tempGuidelLine),this.options.canvas._setupCurrentTransform(i.e,this.tempGuidelLine,!0),this.tempGuidelLine.fire("down",this.getCommonEventInfo(i)))}canvasMouseMove(i){if(!i.pointer)return;if(this.tempGuidelLine&&i.absolutePointer){const o={};this.tempGuidelLine.axis==="horizontal"?o.top=i.absolutePointer.y:o.left=i.absolutePointer.x,this.tempGuidelLine.set({...o,visible:!0}),this.options.canvas.requestRenderAll();const v=this.getCommonEventInfo(i);this.options.canvas.fire("object:moving",v),this.tempGuidelLine.fire("moving",v)}const s=this.isPointOnRuler(i.pointer);if(!s){this.lastAttr.status!=="out"&&(this.options.canvas.defaultCursor=this.lastAttr.cursor,this.lastAttr.status="out");return}(this.lastAttr.status==="out"||s!==this.lastAttr.status)&&(this.lastAttr.cursor=this.options.canvas.defaultCursor,this.options.canvas.defaultCursor=s==="horizontal"?"ns-resize":"ew-resize",this.lastAttr.status=s)}canvasMouseUp(i){this.activeOn==="down"&&(this.options.canvas.selection=this.lastAttr.selection,this.activeOn="up",this.tempGuidelLine?.fire("up",this.getCommonEventInfo(i)),this.tempGuidelLine=void 0)}}function bL(a,i,s){const o=new mL({canvas:a,editor:i,...s});let v;const b=()=>{v=a.getObjects().find(g=>g.id==="workspace")},y=(g,l)=>{const{top:h,height:u,left:f,width:p}=g;if(h===void 0||u===void 0||f===void 0||p===void 0)return!1;const d=l.getBoundingRect(!0,!0),{top:A,height:w,left:m,width:x}=d;return l.isHorizontal()&&(h>A+1||h+u<A+w-1)?!0:!l.isHorizontal()&&(f>m+1||f+p<m+x-1)};return a.on("guideline:moving",g=>{if(!v){b();return}const{target:l}=g;y(v,l)&&(l.moveCursor="not-allowed")}),a.on("guideline:mouseup",g=>{if(!v){b();return}const{target:l}=g;y(v,l)&&(a.remove(l),a.setCursor(a.defaultCursor??""))}),o}const Qh=class Qh{constructor(i,s){this.canvas=i,this.editor=s,this.init()}hookSaveBefore(){return new Promise(i=>{this.hideGuideline(),i(!0)})}hookSaveAfter(){return new Promise(i=>{this.showGuideline(),i(!0)})}init(){this.ruler=bL(this.canvas,this.editor,{unit:this.editor.getUnit?.()||"px"}),this.editor.on?.("unitChange",i=>{this.ruler?.setUnit?.(i)})}hideGuideline(){this.ruler.hideGuideline()}showGuideline(){this.ruler.showGuideline()}rulerEnable(){this.ruler.enable()}rulerDisable(){this.ruler.disable()}destroy(){console.log("pluginDestroy")}};Qh.pluginName="RulerPlugin",Qh.apis=["hideGuideline","showGuideline","rulerEnable","rulerDisable"];let rh=Qh;function M6(a,i){return function(){return a.apply(i,arguments)}}const{toString:wL}=Object.prototype,{getPrototypeOf:$g}=Object,{iterator:ku,toStringTag:T6}=Symbol,_u=(a=>i=>{const s=wL.call(i);return a[s]||(a[s]=s.slice(8,-1).toLowerCase())})(Object.create(null)),H1=a=>(a=a.toLowerCase(),i=>_u(i)===a),Mu=a=>i=>typeof i===a,{isArray:yc}=Array,ac=Mu("undefined");function $l(a){return a!==null&&!ac(a)&&a.constructor!==null&&!ac(a.constructor)&&Ka(a.constructor.isBuffer)&&a.constructor.isBuffer(a)}const O6=H1("ArrayBuffer");function yL(a){let i;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?i=ArrayBuffer.isView(a):i=a&&a.buffer&&O6(a.buffer),i}const xL=Mu("string"),Ka=Mu("function"),R6=Mu("number"),Jl=a=>a!==null&&typeof a=="object",CL=a=>a===!0||a===!1,bf=a=>{if(_u(a)!=="object")return!1;const i=$g(a);return(i===null||i===Object.prototype||Object.getPrototypeOf(i)===null)&&!(T6 in a)&&!(ku in a)},IL=a=>{if(!Jl(a)||$l(a))return!1;try{return Object.keys(a).length===0&&Object.getPrototypeOf(a)===Object.prototype}catch{return!1}},EL=H1("Date"),BL=H1("File"),SL=H1("Blob"),kL=H1("FileList"),_L=a=>Jl(a)&&Ka(a.pipe),ML=a=>{let i;return a&&(typeof FormData=="function"&&a instanceof FormData||Ka(a.append)&&((i=_u(a))==="formdata"||i==="object"&&Ka(a.toString)&&a.toString()==="[object FormData]"))},TL=H1("URLSearchParams"),[OL,RL,DL,FL]=["ReadableStream","Request","Response","Headers"].map(H1),QL=a=>a.trim?a.trim():a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Kl(a,i,{allOwnKeys:s=!1}={}){if(a===null||typeof a>"u")return;let o,v;if(typeof a!="object"&&(a=[a]),yc(a))for(o=0,v=a.length;o<v;o++)i.call(null,a[o],o,a);else{if($l(a))return;const b=s?Object.getOwnPropertyNames(a):Object.keys(a),y=b.length;let g;for(o=0;o<y;o++)g=b[o],i.call(null,a[g],g,a)}}function D6(a,i){if($l(a))return null;i=i.toLowerCase();const s=Object.keys(a);let o=s.length,v;for(;o-- >0;)if(v=s[o],i===v.toLowerCase())return v;return null}const bo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,F6=a=>!ac(a)&&a!==bo;function Cp(){const{caseless:a,skipUndefined:i}=F6(this)&&this||{},s={},o=(v,b)=>{const y=a&&D6(s,b)||b;bf(s[y])&&bf(v)?s[y]=Cp(s[y],v):bf(v)?s[y]=Cp({},v):yc(v)?s[y]=v.slice():(!i||!ac(v))&&(s[y]=v)};for(let v=0,b=arguments.length;v<b;v++)arguments[v]&&Kl(arguments[v],o);return s}const jL=(a,i,s,{allOwnKeys:o}={})=>(Kl(i,(v,b)=>{s&&Ka(v)?a[b]=M6(v,s):a[b]=v},{allOwnKeys:o}),a),NL=a=>(a.charCodeAt(0)===65279&&(a=a.slice(1)),a),PL=(a,i,s,o)=>{a.prototype=Object.create(i.prototype,o),a.prototype.constructor=a,Object.defineProperty(a,"super",{value:i.prototype}),s&&Object.assign(a.prototype,s)},UL=(a,i,s,o)=>{let v,b,y;const g={};if(i=i||{},a==null)return i;do{for(v=Object.getOwnPropertyNames(a),b=v.length;b-- >0;)y=v[b],(!o||o(y,a,i))&&!g[y]&&(i[y]=a[y],g[y]=!0);a=s!==!1&&$g(a)}while(a&&(!s||s(a,i))&&a!==Object.prototype);return i},LL=(a,i,s)=>{a=String(a),(s===void 0||s>a.length)&&(s=a.length),s-=i.length;const o=a.indexOf(i,s);return o!==-1&&o===s},GL=a=>{if(!a)return null;if(yc(a))return a;let i=a.length;if(!R6(i))return null;const s=new Array(i);for(;i-- >0;)s[i]=a[i];return s},YL=(a=>i=>a&&i instanceof a)(typeof Uint8Array<"u"&&$g(Uint8Array)),HL=(a,i)=>{const o=(a&&a[ku]).call(a);let v;for(;(v=o.next())&&!v.done;){const b=v.value;i.call(a,b[0],b[1])}},zL=(a,i)=>{let s;const o=[];for(;(s=a.exec(i))!==null;)o.push(s);return o},qL=H1("HTMLFormElement"),WL=a=>a.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(s,o,v){return o.toUpperCase()+v}),Um=(({hasOwnProperty:a})=>(i,s)=>a.call(i,s))(Object.prototype),VL=H1("RegExp"),Q6=(a,i)=>{const s=Object.getOwnPropertyDescriptors(a),o={};Kl(s,(v,b)=>{let y;(y=i(v,b,a))!==!1&&(o[b]=y||v)}),Object.defineProperties(a,o)},XL=a=>{Q6(a,(i,s)=>{if(Ka(a)&&["arguments","caller","callee"].indexOf(s)!==-1)return!1;const o=a[s];if(Ka(o)){if(i.enumerable=!1,"writable"in i){i.writable=!1;return}i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")})}})},$L=(a,i)=>{const s={},o=v=>{v.forEach(b=>{s[b]=!0})};return yc(a)?o(a):o(String(a).split(i)),s},JL=()=>{},KL=(a,i)=>a!=null&&Number.isFinite(a=+a)?a:i;function ZL(a){return!!(a&&Ka(a.append)&&a[T6]==="FormData"&&a[ku])}const eG=a=>{const i=new Array(10),s=(o,v)=>{if(Jl(o)){if(i.indexOf(o)>=0)return;if($l(o))return o;if(!("toJSON"in o)){i[v]=o;const b=yc(o)?[]:{};return Kl(o,(y,g)=>{const l=s(y,v+1);!ac(l)&&(b[g]=l)}),i[v]=void 0,b}}return o};return s(a,0)},tG=H1("AsyncFunction"),rG=a=>a&&(Jl(a)||Ka(a))&&Ka(a.then)&&Ka(a.catch),j6=((a,i)=>a?setImmediate:i?((s,o)=>(bo.addEventListener("message",({source:v,data:b})=>{v===bo&&b===s&&o.length&&o.shift()()},!1),v=>{o.push(v),bo.postMessage(s,"*")}))(`axios@${Math.random()}`,[]):s=>setTimeout(s))(typeof setImmediate=="function",Ka(bo.postMessage)),iG=typeof queueMicrotask<"u"?queueMicrotask.bind(bo):typeof process<"u"&&process.nextTick||j6,nG=a=>a!=null&&Ka(a[ku]),Ye={isArray:yc,isArrayBuffer:O6,isBuffer:$l,isFormData:ML,isArrayBufferView:yL,isString:xL,isNumber:R6,isBoolean:CL,isObject:Jl,isPlainObject:bf,isEmptyObject:IL,isReadableStream:OL,isRequest:RL,isResponse:DL,isHeaders:FL,isUndefined:ac,isDate:EL,isFile:BL,isBlob:SL,isRegExp:VL,isFunction:Ka,isStream:_L,isURLSearchParams:TL,isTypedArray:YL,isFileList:kL,forEach:Kl,merge:Cp,extend:jL,trim:QL,stripBOM:NL,inherits:PL,toFlatObject:UL,kindOf:_u,kindOfTest:H1,endsWith:LL,toArray:GL,forEachEntry:HL,matchAll:zL,isHTMLForm:qL,hasOwnProperty:Um,hasOwnProp:Um,reduceDescriptors:Q6,freezeMethods:XL,toObjectSet:$L,toCamelCase:WL,noop:JL,toFiniteNumber:KL,findKey:D6,global:bo,isContextDefined:F6,isSpecCompliantForm:ZL,toJSONObject:eG,isAsyncFn:tG,isThenable:rG,setImmediate:j6,asap:iG,isIterable:nG};function Cr(a,i,s,o,v){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=a,this.name="AxiosError",i&&(this.code=i),s&&(this.config=s),o&&(this.request=o),v&&(this.response=v,this.status=v.status?v.status:null)}Ye.inherits(Cr,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ye.toJSONObject(this.config),code:this.code,status:this.status}}});const N6=Cr.prototype,P6={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(a=>{P6[a]={value:a}});Object.defineProperties(Cr,P6);Object.defineProperty(N6,"isAxiosError",{value:!0});Cr.from=(a,i,s,o,v,b)=>{const y=Object.create(N6);Ye.toFlatObject(a,y,function(u){return u!==Error.prototype},h=>h!=="isAxiosError");const g=a&&a.message?a.message:"Error",l=i==null&&a?a.code:i;return Cr.call(y,g,l,s,o,v),a&&y.cause==null&&Object.defineProperty(y,"cause",{value:a,configurable:!0}),y.name=a&&a.name||"Error",b&&Object.assign(y,b),y};const aG=null;function Ip(a){return Ye.isPlainObject(a)||Ye.isArray(a)}function U6(a){return Ye.endsWith(a,"[]")?a.slice(0,-2):a}function Lm(a,i,s){return a?a.concat(i).map(function(v,b){return v=U6(v),!s&&b?"["+v+"]":v}).join(s?".":""):i}function sG(a){return Ye.isArray(a)&&!a.some(Ip)}const oG=Ye.toFlatObject(Ye,{},null,function(i){return/^is[A-Z]/.test(i)});function Tu(a,i,s){if(!Ye.isObject(a))throw new TypeError("target must be an object");i=i||new FormData,s=Ye.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,m){return!Ye.isUndefined(m[w])});const o=s.metaTokens,v=s.visitor||u,b=s.dots,y=s.indexes,l=(s.Blob||typeof Blob<"u"&&Blob)&&Ye.isSpecCompliantForm(i);if(!Ye.isFunction(v))throw new TypeError("visitor must be a function");function h(A){if(A===null)return"";if(Ye.isDate(A))return A.toISOString();if(Ye.isBoolean(A))return A.toString();if(!l&&Ye.isBlob(A))throw new Cr("Blob is not supported. Use a Buffer instead.");return Ye.isArrayBuffer(A)||Ye.isTypedArray(A)?l&&typeof Blob=="function"?new Blob([A]):Buffer.from(A):A}function u(A,w,m){let x=A;if(A&&!m&&typeof A=="object"){if(Ye.endsWith(w,"{}"))w=o?w:w.slice(0,-2),A=JSON.stringify(A);else if(Ye.isArray(A)&&sG(A)||(Ye.isFileList(A)||Ye.endsWith(w,"[]"))&&(x=Ye.toArray(A)))return w=U6(w),x.forEach(function(E,B){!(Ye.isUndefined(E)||E===null)&&i.append(y===!0?Lm([w],B,b):y===null?w:w+"[]",h(E))}),!1}return Ip(A)?!0:(i.append(Lm(m,w,b),h(A)),!1)}const f=[],p=Object.assign(oG,{defaultVisitor:u,convertValue:h,isVisitable:Ip});function d(A,w){if(!Ye.isUndefined(A)){if(f.indexOf(A)!==-1)throw Error("Circular reference detected in "+w.join("."));f.push(A),Ye.forEach(A,function(x,C){(!(Ye.isUndefined(x)||x===null)&&v.call(i,x,Ye.isString(C)?C.trim():C,w,p))===!0&&d(x,w?w.concat(C):[C])}),f.pop()}}if(!Ye.isObject(a))throw new TypeError("data must be an object");return d(a),i}function Gm(a){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(a).replace(/[!'()~]|%20|%00/g,function(o){return i[o]})}function Jg(a,i){this._pairs=[],a&&Tu(a,this,i)}const L6=Jg.prototype;L6.append=function(i,s){this._pairs.push([i,s])};L6.toString=function(i){const s=i?function(o){return i.call(this,o,Gm)}:Gm;return this._pairs.map(function(v){return s(v[0])+"="+s(v[1])},"").join("&")};function cG(a){return encodeURIComponent(a).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function G6(a,i,s){if(!i)return a;const o=s&&s.encode||cG;Ye.isFunction(s)&&(s={serialize:s});const v=s&&s.serialize;let b;if(v?b=v(i,s):b=Ye.isURLSearchParams(i)?i.toString():new Jg(i,s).toString(o),b){const y=a.indexOf("#");y!==-1&&(a=a.slice(0,y)),a+=(a.indexOf("?")===-1?"?":"&")+b}return a}class Ym{constructor(){this.handlers=[]}use(i,s,o){return this.handlers.push({fulfilled:i,rejected:s,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(i){this.handlers[i]&&(this.handlers[i]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(i){Ye.forEach(this.handlers,function(o){o!==null&&i(o)})}}const Y6={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},lG=typeof URLSearchParams<"u"?URLSearchParams:Jg,fG=typeof FormData<"u"?FormData:null,hG=typeof Blob<"u"?Blob:null,uG={isBrowser:!0,classes:{URLSearchParams:lG,FormData:fG,Blob:hG},protocols:["http","https","file","blob","url","data"]},Kg=typeof window<"u"&&typeof document<"u",Ep=typeof navigator=="object"&&navigator||void 0,dG=Kg&&(!Ep||["ReactNative","NativeScript","NS"].indexOf(Ep.product)<0),pG=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",gG=Kg&&window.location.href||"http://localhost",vG=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Kg,hasStandardBrowserEnv:dG,hasStandardBrowserWebWorkerEnv:pG,navigator:Ep,origin:gG},Symbol.toStringTag,{value:"Module"})),ka={...vG,...uG};function AG(a,i){return Tu(a,new ka.classes.URLSearchParams,{visitor:function(s,o,v,b){return ka.isNode&&Ye.isBuffer(s)?(this.append(o,s.toString("base64")),!1):b.defaultVisitor.apply(this,arguments)},...i})}function mG(a){return Ye.matchAll(/\w+|\[(\w*)]/g,a).map(i=>i[0]==="[]"?"":i[1]||i[0])}function bG(a){const i={},s=Object.keys(a);let o;const v=s.length;let b;for(o=0;o<v;o++)b=s[o],i[b]=a[b];return i}function H6(a){function i(s,o,v,b){let y=s[b++];if(y==="__proto__")return!0;const g=Number.isFinite(+y),l=b>=s.length;return y=!y&&Ye.isArray(v)?v.length:y,l?(Ye.hasOwnProp(v,y)?v[y]=[v[y],o]:v[y]=o,!g):((!v[y]||!Ye.isObject(v[y]))&&(v[y]=[]),i(s,o,v[y],b)&&Ye.isArray(v[y])&&(v[y]=bG(v[y])),!g)}if(Ye.isFormData(a)&&Ye.isFunction(a.entries)){const s={};return Ye.forEachEntry(a,(o,v)=>{i(mG(o),v,s,0)}),s}return null}function wG(a,i,s){if(Ye.isString(a))try{return(i||JSON.parse)(a),Ye.trim(a)}catch(o){if(o.name!=="SyntaxError")throw o}return(s||JSON.stringify)(a)}const Zl={transitional:Y6,adapter:["xhr","http","fetch"],transformRequest:[function(i,s){const o=s.getContentType()||"",v=o.indexOf("application/json")>-1,b=Ye.isObject(i);if(b&&Ye.isHTMLForm(i)&&(i=new FormData(i)),Ye.isFormData(i))return v?JSON.stringify(H6(i)):i;if(Ye.isArrayBuffer(i)||Ye.isBuffer(i)||Ye.isStream(i)||Ye.isFile(i)||Ye.isBlob(i)||Ye.isReadableStream(i))return i;if(Ye.isArrayBufferView(i))return i.buffer;if(Ye.isURLSearchParams(i))return s.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),i.toString();let g;if(b){if(o.indexOf("application/x-www-form-urlencoded")>-1)return AG(i,this.formSerializer).toString();if((g=Ye.isFileList(i))||o.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Tu(g?{"files[]":i}:i,l&&new l,this.formSerializer)}}return b||v?(s.setContentType("application/json",!1),wG(i)):i}],transformResponse:[function(i){const s=this.transitional||Zl.transitional,o=s&&s.forcedJSONParsing,v=this.responseType==="json";if(Ye.isResponse(i)||Ye.isReadableStream(i))return i;if(i&&Ye.isString(i)&&(o&&!this.responseType||v)){const y=!(s&&s.silentJSONParsing)&&v;try{return JSON.parse(i,this.parseReviver)}catch(g){if(y)throw g.name==="SyntaxError"?Cr.from(g,Cr.ERR_BAD_RESPONSE,this,null,this.response):g}}return i}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ka.classes.FormData,Blob:ka.classes.Blob},validateStatus:function(i){return i>=200&&i<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ye.forEach(["delete","get","head","post","put","patch"],a=>{Zl.headers[a]={}});const yG=Ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),xG=a=>{const i={};let s,o,v;return a&&a.split(`
|
|
460
|
+
}`;var w=My(function(){return Function(b,d+"return "+f).apply(void 0,y)});if(w.source=f,ug(w))throw w;return w}var UP="Expected a function";function Bs(a,i,s){var o=!0,v=!0;if(typeof a!="function")throw new TypeError(UP);return Sn(s)&&(o="leading"in s?!!s.leading:o,v="trailing"in s?!!s.trailing:v),Ex(a,i,{leading:o,maxWait:i,trailing:v})}function Su(a,i){return i(a)}var LP=9007199254740991,G0=4294967295,GP=Math.min;function YP(a,i){if(a=Er(a),a<1||a>LP)return[];var s=G0,o=GP(a,G0);i=hs(i),a-=G0;for(var v=og(o,i);++s<a;)i(s);return v}function HP(){return this}function w6(a,i){var s=a;return s instanceof zr&&(s=s.value()),gg(i,function(o,v){return v.func.apply(v.thisArg,ro([o],v.args))},s)}function zP(){return w6(this.__wrapped__,this.__actions__)}function qP(a){return yi(a).toLowerCase()}function WP(a){return yr(a)?gn(a,ls):d1(a)?[a]:Ja(Sy(yi(a)))}var jm=9007199254740991;function VP(a){return a?Oo(Er(a),-jm,jm):a===0?a:0}function XP(a){return yi(a).toUpperCase()}function $P(a,i,s){var o=yr(a),v=o||Ks(a)||vc(a);if(i=pr(i),s==null){var b=a&&a.constructor;v?s=o?new b:[]:Sn(a)?s=_s(b)?uc(uu(a)):{}:s={}}return(v?S1:fs)(a,function(y,g,l){return i(s,y,g,l)}),s}function y6(a,i){for(var s=a.length;s--&&dc(i,a[s],0)>-1;);return s}function x6(a,i){for(var s=-1,o=a.length;++s<o&&dc(i,a[s],0)>-1;);return s}function JP(a,i,s){if(a=yi(a),a&&(s||i===void 0))return ly(a);if(!a||!(i=p1(i)))return a;var o=L1(a),v=L1(i),b=x6(o,v),y=y6(o,v)+1;return io(o,b,y).join("")}function KP(a,i,s){if(a=yi(a),a&&(s||i===void 0))return a.slice(0,cy(a)+1);if(!a||!(i=p1(i)))return a;var o=L1(a),v=y6(o,L1(i))+1;return io(o,0,v).join("")}var ZP=/^\s+/;function eU(a,i,s){if(a=yi(a),a&&(s||i===void 0))return a.replace(ZP,"");if(!a||!(i=p1(i)))return a;var o=L1(a),v=x6(o,L1(i));return io(o,v).join("")}var tU=30,rU="...",iU=/\w*$/;function nU(a,i){var s=tU,o=rU;if(Sn(i)){var v="separator"in i?i.separator:v;s="length"in i?Er(i.length):s,o="omission"in i?p1(i.omission):o}a=yi(a);var b=a.length;if(Ac(a)){var y=L1(a);b=y.length}if(s>=b)return a;var g=s-wc(o);if(g<1)return o;var l=y?io(y,0,g).join(""):a.slice(0,g);if(v===void 0)return l+o;if(y&&(g+=l.length-g),jg(v)){if(a.slice(g).search(v)){var h,u=l;for(v.global||(v=RegExp(v.source,yi(iU.exec(v))+"g")),v.lastIndex=0;h=v.exec(u);)var f=h.index;l=l.slice(0,f===void 0?g:f)}}else if(a.indexOf(p1(v),g)!=g){var p=l.lastIndexOf(v);p>-1&&(l=l.slice(0,p))}return l+o}function aU(a){return wy(a,1)}var sU={"&":"&","<":"<",">":">",""":'"',"'":"'"},oU=vg(sU),C6=/&(?:amp|lt|gt|quot|#39);/g,cU=RegExp(C6.source);function lU(a){return a=yi(a),a&&cU.test(a)?a.replace(C6,oU):a}var fU=1/0,hU=rc&&1/pu(new rc([,-0]))[1]==fU?function(a){return new rc(a)}:Dl,uU=200;function Zs(a,i,s){var o=-1,v=su,b=a.length,y=!0,g=[],l=g;if(s)y=!1,v=Tg;else if(b>=uU){var h=i?null:hU(a);if(h)return pu(h);y=!1,v=Nl,l=new So}else l=i?[]:g;e:for(;++o<b;){var u=a[o],f=i?i(u):u;if(u=s||u!==0?u:0,y&&f===f){for(var p=l.length;p--;)if(l[p]===f)continue e;i&&l.push(f),g.push(u)}else v(l,f,s)||(l!==g&&l.push(f),g.push(u))}return g}var dU=Mr(function(a){return Zs(wa(a,1,Gn,!0))}),pU=Mr(function(a){var i=B1(a);return Gn(i)&&(i=void 0),Zs(wa(a,1,Gn,!0),pr(i))}),gU=Mr(function(a){var i=B1(a);return i=typeof i=="function"?i:void 0,Zs(wa(a,1,Gn,!0),void 0,i)});function vU(a){return a&&a.length?Zs(a):[]}function AU(a,i){return a&&a.length?Zs(a,pr(i)):[]}function mU(a,i){return i=typeof i=="function"?i:void 0,a&&a.length?Zs(a,void 0,i):[]}var bU=0;function wU(a){var i=++bU;return yi(a)+i}function yU(a,i){return a==null?!0:Ug(a,i)}var xU=Math.max;function qg(a){if(!(a&&a.length))return[];var i=0;return a=no(a,function(s){if(Gn(s))return i=xU(s.length,i),!0}),og(i,function(s){return gn(a,Sg(s))})}function I6(a,i){if(!(a&&a.length))return[];var s=qg(a);return i==null?s:gn(s,function(o){return g1(i,void 0,o)})}function E6(a,i,s,o){return Xl(a,i,s(To(a,i)),o)}function CU(a,i,s){return a==null?a:E6(a,i,hs(s))}function IU(a,i,s,o){return o=typeof o=="function"?o:void 0,a==null?a:E6(a,i,hs(s),o)}var EU=mc(function(a,i,s){return a+(s?" ":"")+i.toUpperCase()});function BU(a){return a==null?[]:Dg(a,i1(a))}var SU=Mr(function(a,i){return Gn(a)?Wl(a,i):[]});function kU(a,i){return Iu(hs(i),a)}var _U=Fs(function(a){var i=a.length,s=i?a[0]:0,o=this.__wrapped__,v=function(b){return hg(b,a)};return i>1||this.__actions__.length||!(o instanceof zr)||!Ms(s)?this.thru(v):(o=o.slice(s,+s+(i?1:0)),o.__actions__.push({func:Su,args:[v],thisArg:void 0}),new C1(o,this.__chain__).thru(function(b){return i&&!b.length&&b.push(void 0),b}))});function MU(){return tx(this)}function TU(){var a=this.__wrapped__;if(a instanceof zr){var i=a;return this.__actions__.length&&(i=new zr(this)),i=i.reverse(),i.__actions__.push({func:Su,args:[wp],thisArg:void 0}),new C1(i,this.__chain__)}return this.thru(wp)}function Wg(a,i,s){var o=a.length;if(o<2)return o?Zs(a[0]):[];for(var v=-1,b=Array(o);++v<o;)for(var y=a[v],g=-1;++g<o;)g!=v&&(b[v]=Wl(b[v]||y,a[g],i,s));return Zs(wa(b,1),i,s)}var OU=Mr(function(a){return Wg(no(a,Gn))}),RU=Mr(function(a){var i=B1(a);return Gn(i)&&(i=void 0),Wg(no(a,Gn),pr(i))}),DU=Mr(function(a){var i=B1(a);return i=typeof i=="function"?i:void 0,Wg(no(a,Gn),void 0,i)}),FU=Mr(qg);function B6(a,i,s){for(var o=-1,v=a.length,b=i.length,y={};++o<v;){var g=o<b?i[o]:void 0;s(y,a[o],g)}return y}function QU(a,i){return B6(a||[],i||[],Yl)}function jU(a,i){return B6(a||[],i||[],Xl)}var NU=Mr(function(a){var i=a.length,s=i>1?a[i-1]:void 0;return s=typeof s=="function"?(a.pop(),s):void 0,I6(a,s)});const Dt={chunk:uT,compact:qO,concat:WO,difference:KR,differenceBy:ZR,differenceWith:eD,drop:rD,dropRight:iD,dropRightWhile:nD,dropWhile:aD,fill:ED,findIndex:Lx,findLastIndex:Yx,flatten:ky,flattenDeep:UD,flattenDepth:LD,fromPairs:rF,head:DD,indexOf:xF,initial:CF,intersection:EF,intersectionBy:BF,intersectionWith:SF,join:xQ,lastIndexOf:kQ,nth:rj,pull:Kj,pullAll:h6,pullAllBy:Zj,pullAllWith:eN,pullAt:iN,remove:yN,reverse:wp,slice:GN,sortedIndex:ZN,sortedIndexBy:eP,sortedIndexOf:tP,sortedLastIndex:rP,sortedLastIndexBy:iP,sortedLastIndexOf:nP,sortedUniq:aP,sortedUniqBy:sP,tail:wP,take:yP,takeRight:xP,takeRightWhile:CP,takeWhile:IP,union:dU,unionBy:pU,unionWith:gU,uniq:vU,uniqBy:AU,uniqWith:mU,unzip:qg,unzipWith:I6,without:SU,xor:OU,xorBy:RU,xorWith:DU,zip:FU,zipObject:QU,zipObjectDeep:jU,zipWith:NU},Qi={countBy:QR,every:xD,filter:BD,find:kD,findLast:OD,flatMap:FD,flatMapDeep:jD,flatMapDepth:ND,forEach:sD,forEachRight:cD,groupBy:oF,includes:wF,invokeMap:QF,keyBy:IQ,map:mu,orderBy:dj,partition:qj,reduce:AN,reduceRight:bN,reject:wN,sample:TN,sampleSize:DN,shuffle:NN,size:LN,some:zN,sortBy:qN},PU={now:mf},Rn={after:XB,ary:wy,before:Ty,bind:du,bindKey:dg,curry:_g,curryRight:Mg,debounce:Ex,defer:XR,delay:$R,flip:YD,memoize:hu,once:fj,overArgs:Aj,partial:Iu,partialRight:Gg,rearg:vN,rest:EN,spread:hP,throttle:Bs,unary:aU,wrap:kU},Wt={castArray:sT,clone:jO,cloneDeep:px,cloneDeepWith:GO,cloneWith:HO,conformsTo:TR,eq:Y1,gt:cF,gte:lF,isArguments:Eo,isArrayBuffer:PF,isArrayLike:r1,isArrayLikeObject:Gn,isBoolean:LF,isBuffer:Ks,isDate:HF,isElement:zF,isEmpty:$F,isEqual:JF,isEqualWith:KF,isError:ug,isFinite:eQ,isFunction:_s,isInteger:Xx,isLength:cu,isMap:lx,isMatch:tQ,isMatchWith:rQ,isNaN:nQ,isNative:oQ,isNil:cQ,isNull:lQ,isNumber:$x,isObjectLike:On,isPlainObject:zl,isRegExp:jg,isSafeInteger:uQ,isSet:fx,isString:yu,isSymbol:d1,isTypedArray:vc,isUndefined:dQ,isWeakMap:gQ,isWeakSet:AQ,lt:TQ,lte:OQ,toArray:Kx,toFinite:Es,toLength:Nx,toNumber:y1,toPlainObject:Sx,toSafeInteger:VP,toString:yi},Ya={add:UB,ceil:lT,divide:tD,floor:HD,max:PQ,maxBy:UQ,mean:GQ,meanBy:YQ,min:WQ,minBy:VQ,multiply:$Q,round:_N,subtract:AP,sum:mP,sumBy:bP},Vg={clamp:dT,inRange:AF,random:lN},lr={assign:Zk,assignIn:n_,assignInWith:lp,assignWith:a_,at:N_,create:jR,defaults:zR,defaultsDeep:WR,findKey:_D,findLastKey:RD,forIn:KD,forInRight:ZD,forOwn:eF,forOwnRight:tF,functions:iF,functionsIn:nF,get:jl,has:dF,hasIn:Bg,invert:TF,invertBy:DF,invoke:FF,keysIn:i1,mapKeys:RQ,mapValues:DQ,merge:HQ,mergeWith:_x,omit:cj,omitBy:lj,pick:f6,pickBy:t6,result:BN,set:v6,setWith:FN,toPairs:pD,toPairsIn:gD,transform:$P,unset:yU,update:CU,updateWith:IU,values:bc,valuesIn:BU},us={at:_U,chain:tx,commit:zO,next:tj,plant:Vj,reverse:TU,tap:EP,toIterator:HP,value:zP,wrapperChain:MU},vi={camelCase:aT,capitalize:Py,deburr:Uy,endsWith:lD,escape:Fx,escapeRegExp:wD,kebabCase:CQ,lowerCase:_Q,lowerFirst:MQ,pad:Nj,padEnd:Pj,padStart:Uj,parseInt:Yj,repeat:xN,replace:CN,snakeCase:YN,split:cP,startCase:uP,startsWith:dP,template:PP,templateSettings:yp,toLower:qP,toUpper:XP,trim:JP,trimEnd:KP,trimStart:eU,truncate:nU,unescape:lU,upperCase:EU,upperFirst:pg,words:ex},xi={attempt:My,bindAll:X_,cond:SR,conforms:MR,constant:ag,defaultTo:YR,flow:$D,flowRight:JD,iteratee:bQ,matches:QQ,matchesProperty:NQ,method:zQ,methodOf:qQ,noop:Dl,nthArg:ij,over:pj,overEvery:mj,overSome:bj,property:yx,propertyOf:Xj,range:dN,rangeRight:pN,stubArray:mg,stubFalse:cg,stubObject:pP,stubString:gP,stubTrue:vP,times:YP,toPath:WP,uniqueId:wU};function UU(){var a=new zr(this.__wrapped__);return a.__actions__=Ja(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Ja(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Ja(this.__views__),a}function LU(){if(this.__filtered__){var a=new zr(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a}var GU=Math.max,YU=Math.min;function HU(a,i,s){for(var o=-1,v=s.length;++o<v;){var b=s[o],y=b.size;switch(b.type){case"drop":a+=y;break;case"dropRight":i-=y;break;case"take":i=YU(i,a+y);break;case"takeRight":a=GU(a,i-y);break}}return{start:a,end:i}}var zU=1,qU=2,WU=Math.min;function VU(){var a=this.__wrapped__.value(),i=this.__dir__,s=yr(a),o=i<0,v=s?a.length:0,b=HU(0,v,this.__views__),y=b.start,g=b.end,l=g-y,h=o?g:y-1,u=this.__iteratees__,f=u.length,p=0,d=WU(l,this.__takeCount__);if(!s||!o&&v==l&&d==l)return w6(a,this.__actions__);var A=[];e:for(;l--&&p<d;){h+=i;for(var w=-1,m=a[h];++w<f;){var x=u[w],C=x.iteratee,E=x.type,B=C(m);if(E==qU)m=B;else if(!B){if(E==zU)continue e;break e}}A[p++]=m}return A}var XU="4.17.21",$U=2,JU=1,KU=3,S6=4294967295,ZU=Array.prototype,eL=Object.prototype,k6=eL.hasOwnProperty,Nm=Ma?Ma.iterator:void 0,tL=Math.max,Pm=Math.min,Xg=(function(a){return function(i,s,o){if(o==null){var v=Sn(s),b=v&&ha(s),y=b&&b.length&&bu(s,b);(y?y.length:v)||(o=s,s=i,i=this)}return a(i,s,o)}})(XQ);J.after=Rn.after;J.ary=Rn.ary;J.assign=lr.assign;J.assignIn=lr.assignIn;J.assignInWith=lr.assignInWith;J.assignWith=lr.assignWith;J.at=lr.at;J.before=Rn.before;J.bind=Rn.bind;J.bindAll=xi.bindAll;J.bindKey=Rn.bindKey;J.castArray=Wt.castArray;J.chain=us.chain;J.chunk=Dt.chunk;J.compact=Dt.compact;J.concat=Dt.concat;J.cond=xi.cond;J.conforms=xi.conforms;J.constant=xi.constant;J.countBy=Qi.countBy;J.create=lr.create;J.curry=Rn.curry;J.curryRight=Rn.curryRight;J.debounce=Rn.debounce;J.defaults=lr.defaults;J.defaultsDeep=lr.defaultsDeep;J.defer=Rn.defer;J.delay=Rn.delay;J.difference=Dt.difference;J.differenceBy=Dt.differenceBy;J.differenceWith=Dt.differenceWith;J.drop=Dt.drop;J.dropRight=Dt.dropRight;J.dropRightWhile=Dt.dropRightWhile;J.dropWhile=Dt.dropWhile;J.fill=Dt.fill;J.filter=Qi.filter;J.flatMap=Qi.flatMap;J.flatMapDeep=Qi.flatMapDeep;J.flatMapDepth=Qi.flatMapDepth;J.flatten=Dt.flatten;J.flattenDeep=Dt.flattenDeep;J.flattenDepth=Dt.flattenDepth;J.flip=Rn.flip;J.flow=xi.flow;J.flowRight=xi.flowRight;J.fromPairs=Dt.fromPairs;J.functions=lr.functions;J.functionsIn=lr.functionsIn;J.groupBy=Qi.groupBy;J.initial=Dt.initial;J.intersection=Dt.intersection;J.intersectionBy=Dt.intersectionBy;J.intersectionWith=Dt.intersectionWith;J.invert=lr.invert;J.invertBy=lr.invertBy;J.invokeMap=Qi.invokeMap;J.iteratee=xi.iteratee;J.keyBy=Qi.keyBy;J.keys=ha;J.keysIn=lr.keysIn;J.map=Qi.map;J.mapKeys=lr.mapKeys;J.mapValues=lr.mapValues;J.matches=xi.matches;J.matchesProperty=xi.matchesProperty;J.memoize=Rn.memoize;J.merge=lr.merge;J.mergeWith=lr.mergeWith;J.method=xi.method;J.methodOf=xi.methodOf;J.mixin=Xg;J.negate=Cu;J.nthArg=xi.nthArg;J.omit=lr.omit;J.omitBy=lr.omitBy;J.once=Rn.once;J.orderBy=Qi.orderBy;J.over=xi.over;J.overArgs=Rn.overArgs;J.overEvery=xi.overEvery;J.overSome=xi.overSome;J.partial=Rn.partial;J.partialRight=Rn.partialRight;J.partition=Qi.partition;J.pick=lr.pick;J.pickBy=lr.pickBy;J.property=xi.property;J.propertyOf=xi.propertyOf;J.pull=Dt.pull;J.pullAll=Dt.pullAll;J.pullAllBy=Dt.pullAllBy;J.pullAllWith=Dt.pullAllWith;J.pullAt=Dt.pullAt;J.range=xi.range;J.rangeRight=xi.rangeRight;J.rearg=Rn.rearg;J.reject=Qi.reject;J.remove=Dt.remove;J.rest=Rn.rest;J.reverse=Dt.reverse;J.sampleSize=Qi.sampleSize;J.set=lr.set;J.setWith=lr.setWith;J.shuffle=Qi.shuffle;J.slice=Dt.slice;J.sortBy=Qi.sortBy;J.sortedUniq=Dt.sortedUniq;J.sortedUniqBy=Dt.sortedUniqBy;J.split=vi.split;J.spread=Rn.spread;J.tail=Dt.tail;J.take=Dt.take;J.takeRight=Dt.takeRight;J.takeRightWhile=Dt.takeRightWhile;J.takeWhile=Dt.takeWhile;J.tap=us.tap;J.throttle=Rn.throttle;J.thru=Su;J.toArray=Wt.toArray;J.toPairs=lr.toPairs;J.toPairsIn=lr.toPairsIn;J.toPath=xi.toPath;J.toPlainObject=Wt.toPlainObject;J.transform=lr.transform;J.unary=Rn.unary;J.union=Dt.union;J.unionBy=Dt.unionBy;J.unionWith=Dt.unionWith;J.uniq=Dt.uniq;J.uniqBy=Dt.uniqBy;J.uniqWith=Dt.uniqWith;J.unset=lr.unset;J.unzip=Dt.unzip;J.unzipWith=Dt.unzipWith;J.update=lr.update;J.updateWith=lr.updateWith;J.values=lr.values;J.valuesIn=lr.valuesIn;J.without=Dt.without;J.words=vi.words;J.wrap=Rn.wrap;J.xor=Dt.xor;J.xorBy=Dt.xorBy;J.xorWith=Dt.xorWith;J.zip=Dt.zip;J.zipObject=Dt.zipObject;J.zipObjectDeep=Dt.zipObjectDeep;J.zipWith=Dt.zipWith;J.entries=lr.toPairs;J.entriesIn=lr.toPairsIn;J.extend=lr.assignIn;J.extendWith=lr.assignInWith;Xg(J,J);J.add=Ya.add;J.attempt=xi.attempt;J.camelCase=vi.camelCase;J.capitalize=vi.capitalize;J.ceil=Ya.ceil;J.clamp=Vg.clamp;J.clone=Wt.clone;J.cloneDeep=Wt.cloneDeep;J.cloneDeepWith=Wt.cloneDeepWith;J.cloneWith=Wt.cloneWith;J.conformsTo=Wt.conformsTo;J.deburr=vi.deburr;J.defaultTo=xi.defaultTo;J.divide=Ya.divide;J.endsWith=vi.endsWith;J.eq=Wt.eq;J.escape=vi.escape;J.escapeRegExp=vi.escapeRegExp;J.every=Qi.every;J.find=Qi.find;J.findIndex=Dt.findIndex;J.findKey=lr.findKey;J.findLast=Qi.findLast;J.findLastIndex=Dt.findLastIndex;J.findLastKey=lr.findLastKey;J.floor=Ya.floor;J.forEach=Qi.forEach;J.forEachRight=Qi.forEachRight;J.forIn=lr.forIn;J.forInRight=lr.forInRight;J.forOwn=lr.forOwn;J.forOwnRight=lr.forOwnRight;J.get=lr.get;J.gt=Wt.gt;J.gte=Wt.gte;J.has=lr.has;J.hasIn=lr.hasIn;J.head=Dt.head;J.identity=t1;J.includes=Qi.includes;J.indexOf=Dt.indexOf;J.inRange=Vg.inRange;J.invoke=lr.invoke;J.isArguments=Wt.isArguments;J.isArray=yr;J.isArrayBuffer=Wt.isArrayBuffer;J.isArrayLike=Wt.isArrayLike;J.isArrayLikeObject=Wt.isArrayLikeObject;J.isBoolean=Wt.isBoolean;J.isBuffer=Wt.isBuffer;J.isDate=Wt.isDate;J.isElement=Wt.isElement;J.isEmpty=Wt.isEmpty;J.isEqual=Wt.isEqual;J.isEqualWith=Wt.isEqualWith;J.isError=Wt.isError;J.isFinite=Wt.isFinite;J.isFunction=Wt.isFunction;J.isInteger=Wt.isInteger;J.isLength=Wt.isLength;J.isMap=Wt.isMap;J.isMatch=Wt.isMatch;J.isMatchWith=Wt.isMatchWith;J.isNaN=Wt.isNaN;J.isNative=Wt.isNative;J.isNil=Wt.isNil;J.isNull=Wt.isNull;J.isNumber=Wt.isNumber;J.isObject=Sn;J.isObjectLike=Wt.isObjectLike;J.isPlainObject=Wt.isPlainObject;J.isRegExp=Wt.isRegExp;J.isSafeInteger=Wt.isSafeInteger;J.isSet=Wt.isSet;J.isString=Wt.isString;J.isSymbol=Wt.isSymbol;J.isTypedArray=Wt.isTypedArray;J.isUndefined=Wt.isUndefined;J.isWeakMap=Wt.isWeakMap;J.isWeakSet=Wt.isWeakSet;J.join=Dt.join;J.kebabCase=vi.kebabCase;J.last=B1;J.lastIndexOf=Dt.lastIndexOf;J.lowerCase=vi.lowerCase;J.lowerFirst=vi.lowerFirst;J.lt=Wt.lt;J.lte=Wt.lte;J.max=Ya.max;J.maxBy=Ya.maxBy;J.mean=Ya.mean;J.meanBy=Ya.meanBy;J.min=Ya.min;J.minBy=Ya.minBy;J.stubArray=xi.stubArray;J.stubFalse=xi.stubFalse;J.stubObject=xi.stubObject;J.stubString=xi.stubString;J.stubTrue=xi.stubTrue;J.multiply=Ya.multiply;J.nth=Dt.nth;J.noop=xi.noop;J.now=PU.now;J.pad=vi.pad;J.padEnd=vi.padEnd;J.padStart=vi.padStart;J.parseInt=vi.parseInt;J.random=Vg.random;J.reduce=Qi.reduce;J.reduceRight=Qi.reduceRight;J.repeat=vi.repeat;J.replace=vi.replace;J.result=lr.result;J.round=Ya.round;J.sample=Qi.sample;J.size=Qi.size;J.snakeCase=vi.snakeCase;J.some=Qi.some;J.sortedIndex=Dt.sortedIndex;J.sortedIndexBy=Dt.sortedIndexBy;J.sortedIndexOf=Dt.sortedIndexOf;J.sortedLastIndex=Dt.sortedLastIndex;J.sortedLastIndexBy=Dt.sortedLastIndexBy;J.sortedLastIndexOf=Dt.sortedLastIndexOf;J.startCase=vi.startCase;J.startsWith=vi.startsWith;J.subtract=Ya.subtract;J.sum=Ya.sum;J.sumBy=Ya.sumBy;J.template=vi.template;J.times=xi.times;J.toFinite=Wt.toFinite;J.toInteger=Er;J.toLength=Wt.toLength;J.toLower=vi.toLower;J.toNumber=Wt.toNumber;J.toSafeInteger=Wt.toSafeInteger;J.toString=Wt.toString;J.toUpper=vi.toUpper;J.trim=vi.trim;J.trimEnd=vi.trimEnd;J.trimStart=vi.trimStart;J.truncate=vi.truncate;J.unescape=vi.unescape;J.uniqueId=xi.uniqueId;J.upperCase=vi.upperCase;J.upperFirst=vi.upperFirst;J.each=Qi.forEach;J.eachRight=Qi.forEachRight;J.first=Dt.head;Xg(J,(function(){var a={};return fs(J,function(i,s){k6.call(J.prototype,s)||(a[s]=i)}),a})(),{chain:!1});J.VERSION=XU;(J.templateSettings=vi.templateSettings).imports._=J;S1(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){J[a].placeholder=J});S1(["drop","take"],function(a,i){zr.prototype[a]=function(s){s=s===void 0?1:tL(Er(s),0);var o=this.__filtered__&&!i?new zr(this):this.clone();return o.__filtered__?o.__takeCount__=Pm(s,o.__takeCount__):o.__views__.push({size:Pm(s,S6),type:a+(o.__dir__<0?"Right":"")}),o},zr.prototype[a+"Right"]=function(s){return this.reverse()[a](s).reverse()}});S1(["filter","map","takeWhile"],function(a,i){var s=i+1,o=s==JU||s==KU;zr.prototype[a]=function(v){var b=this.clone();return b.__iteratees__.push({iteratee:pr(v),type:s}),b.__filtered__=b.__filtered__||o,b}});S1(["head","last"],function(a,i){var s="take"+(i?"Right":"");zr.prototype[a]=function(){return this[s](1).value()[0]}});S1(["initial","tail"],function(a,i){var s="drop"+(i?"":"Right");zr.prototype[a]=function(){return this.__filtered__?new zr(this):this[s](1)}});zr.prototype.compact=function(){return this.filter(t1)};zr.prototype.find=function(a){return this.filter(a).head()};zr.prototype.findLast=function(a){return this.reverse().find(a)};zr.prototype.invokeMap=Mr(function(a,i){return typeof a=="function"?new zr(this):this.map(function(s){return Vl(s,a,i)})});zr.prototype.reject=function(a){return this.filter(Cu(pr(a)))};zr.prototype.slice=function(a,i){a=Er(a);var s=this;return s.__filtered__&&(a>0||i<0)?new zr(s):(a<0?s=s.takeRight(-a):a&&(s=s.drop(a)),i!==void 0&&(i=Er(i),s=i<0?s.dropRight(-i):s.take(i-a)),s)};zr.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()};zr.prototype.toArray=function(){return this.take(S6)};fs(zr.prototype,function(a,i){var s=/^(?:filter|find|map|reject)|While$/.test(i),o=/^(?:head|last)$/.test(i),v=J[o?"take"+(i=="last"?"Right":""):i],b=o||/^find/.test(i);v&&(J.prototype[i]=function(){var y=this.__wrapped__,g=o?[1]:arguments,l=y instanceof zr,h=g[0],u=l||yr(y),f=function(x){var C=v.apply(J,ro([x],g));return o&&p?C[0]:C};u&&s&&typeof h=="function"&&h.length!=1&&(l=u=!1);var p=this.__chain__,d=!!this.__actions__.length,A=b&&!p,w=l&&!d;if(!b&&u){y=w?y:new zr(this);var m=a.apply(y,g);return m.__actions__.push({func:Su,args:[f],thisArg:void 0}),new C1(m,p)}return A&&w?a.apply(this,g):(m=this.thru(f),A?o?m.value()[0]:m.value():m)})});S1(["pop","push","shift","sort","splice","unshift"],function(a){var i=ZU[a],s=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",o=/^(?:pop|shift)$/.test(a);J.prototype[a]=function(){var v=arguments;if(o&&!this.__chain__){var b=this.value();return i.apply(yr(b)?b:[],v)}return this[s](function(y){return i.apply(yr(y)?y:[],v)})}});fs(zr.prototype,function(a,i){var s=J[i];if(s){var o=s.name+"";k6.call(tc,o)||(tc[o]=[]),tc[o].push({name:i,func:s})}});tc[ou(void 0,$U).name]=[{name:"wrapper",func:void 0}];zr.prototype.clone=UU;zr.prototype.reverse=LU;zr.prototype.value=VU;J.prototype.at=us.at;J.prototype.chain=us.wrapperChain;J.prototype.commit=us.commit;J.prototype.next=us.next;J.prototype.plant=us.plant;J.prototype.reverse=us.reverse;J.prototype.toJSON=J.prototype.valueOf=J.prototype.value=us.value;J.prototype.first=J.prototype.head;Nm&&(J.prototype[Nm]=us.toIterator);const Bh=class Bh{constructor(i,s,o){this.canvas=i,this.editor=s,this.unit="px",this._originSize={mm:{width:0,height:0}},this.init(o),this._bindEvents()}hookSaveBefore(){return new Promise(i=>{i(!0)})}hookSaveAfter(){return new Promise(i=>{i(!0)})}init(i){i?.unit&&(this.unit=i?.unit),i?.precision&&(this.precision=i?.precision)}setUnit(i){this.unit!==i&&(this.unit=i,this.editor.emit("unitChange",i))}getUnit(){return this.unit}getPrecision(){return this.precision}getSizeByUnit(i,s,o){const v=s??this.editor.getUnit();if(v==="px")return i;if(v==="mm")return Bn.pxToMm(i,o,{direct:!0});if(v==="inch")return Bn.pxToMm(i,o,{direct:!0})/Bn.CONSTANTS.INCH_TO_MM}_toPrecisionValue(i){if(this.precision===void 0)return i;const s=Math.pow(10,this.precision);return Math.round(i*s)/s}_formatOriginUnitValues(i,s,o){const v={};for(const b in i){const y=i[b];v[b]=y===void 0?void 0:this._toPrecisionValue(y)}if(s&&o){const b=s._originSize?.[o]||{};Object.keys(b).forEach(y=>{y in v||(v[y]=b[y])})}return v}applyObjectPx(i,s){const{left:o,top:v,width:b,height:y,strokeWidth:g,fontSize:l}=s;l!==void 0&&i.set("fontSize",l),g!==void 0&&i.set("strokeWidth",g),b!==void 0&&i.set("width",b),y!==void 0&&i.set("height",y),o!==void 0&&i.set("left",o),v!==void 0&&i.set("top",v)}applyObjectMm(i,s,o){const v=y=>y===void 0?void 0:Bn.mmToPx(y,o,{direct:!0});this.applyObjectPx(i,{left:v(s.left),top:v(s.top),width:v(s.width),height:v(s.height),strokeWidth:v(s.strokeWidth),fontSize:v(s.fontSize)});const b=this._formatOriginUnitValues(s,i,"mm");i._originSize={...i._originSize,mm:b}}applyObjectInch(i,s,o){const v=y=>y===void 0?void 0:y*Bn.CONSTANTS.INCH_TO_MM;this.applyObjectMm(i,{left:v(s.left),top:v(s.top),width:v(s.width),height:v(s.height),strokeWidth:v(s.strokeWidth),fontSize:v(s.fontSize)},o);const b=this._formatOriginUnitValues(s,i,"inch");i._originSize={...i._originSize,inch:b}}applyObjectByUnit(i,s,o){const v=this.getUnit();return v==="mm"?this.applyObjectMm(i,s,o):v==="inch"?this.applyObjectInch(i,s,o):this.applyObjectPx(i,s)}setSizeMm(i,s,o){const v=Bn.mmToPx(i,o,{direct:!0}),b=Bn.mmToPx(s,o,{direct:!0});this.editor.setSize(v,b),this._syncOriginSize(i,s)}setSizeByUnit(i,s,o){const v=this.editor.getUnit?.()||"px";if(v==="mm")return this.setSizeMm(i,s,o?.dpi);if(v==="inch"){this._syncOriginSize(i,s);const b=i*Bn.CONSTANTS.INCH_TO_MM,y=s*Bn.CONSTANTS.INCH_TO_MM;return this.setSizeMm(b,y,o?.dpi)}this.editor.setSize(i,s,{slient:o.slient})}getOriginSize(i){const s=this.getUnit(),v=(this.canvas._originSize||{}).mm||{};if(s==="px")return{width:this.canvas.getWidth(),height:this.canvas.getHeight()};const b=v.width!==void 0?v.width:Bn.pxToMm(this.canvas.getWidth(),i,{direct:!0}),y=v.height!==void 0?v.height:Bn.pxToMm(this.canvas.getHeight(),i,{direct:!0});return s==="mm"?this._originSize.mm??{width:b,height:y}:this._originSize.inch??{width:b/Bn.CONSTANTS.INCH_TO_MM,height:y/Bn.CONSTANTS.INCH_TO_MM}}_syncOriginSize(i,s){const o=this.getUnit();o!=="px"&&(this._originSize[o]=this._originSize[o]||{width:0,height:0},i!==void 0&&(this._originSize[o].width=this._toPrecisionValue(i)),s!==void 0&&(this._originSize[o].height=this._toPrecisionValue(s)))}syncOriginSizeByUnit(i,s){const o=this.getUnit();if(o==="mm"){if(i!==void 0){const v=Bn.pxToMm(i,void 0,{direct:!0});this._originSize[o].width=this._toPrecisionValue(v)}if(s!==void 0){const v=Bn.pxToMm(s,void 0,{direct:!0});this._originSize[o].height=this._toPrecisionValue(v)}}}_bindEvents(){const i=Bs(s=>{FA(s,void 0,this.precision)},30);this.canvas.on("object:modified",s=>{const o=s.target;o&&FA(o,void 0,this.precision)}),this.canvas.on("object:moving",s=>{const o=s.target;o&&i(o)}),this.canvas.on("object:scaling",s=>{const o=s.target;o&&i(o)}),this.canvas.on("object:rotating",s=>{const o=s.target;o&&i(o)}),this.editor.on?.("sizeChange",s=>{const o=this.getUnit();if(o!=="px"&&o==="mm"){this._syncOriginSize(s.width,s.height);return}})}destroy(){console.log("pluginDestroy")}};Bh.pluginName="UnitPlugin",Bh.apis=["getUnit","setUnit","getSizeByUnit","setSizeByUnit","getOriginSize","getPrecision","syncOriginSizeByUnit","applyObjectPx","applyObjectMm","applyObjectInch","applyObjectByUnit"];let jf=Bh;const bl=class bl{constructor(i,s){this.canvas=i,this.editor=s,this.defautOption={},this.hotkeys=["space"],this.dragMode=!1,this.dragMode=!1,this.init()}init(){this._initDring()}startDring(){this.dragMode=!0,this.canvas.setCursor("grab"),this.editor.emit("startDring"),this.canvas.renderAll()}endDring(){this.dragMode=!1,this.canvas.setCursor("default"),this.canvas.isDragging=!1,this.editor.emit("endDring"),this.canvas.renderAll()}_initDring(){const i=this;this.canvas.on("mouse:down",function(s){const o=s.e;(o.altKey||i.dragMode||o.button===1)&&(i.canvas.setCursor("grabbing"),i.canvas.discardActiveObject(),i._setDring(),this.selection=!1,this.isDragging=!0,this.lastPosX=o.clientX,this.lastPosY=o.clientY,this.requestRenderAll())}),this.canvas.on("mouse:move",function(s){if(i.dragMode&&i.canvas.setCursor("grab"),this.isDragging){i.canvas.discardActiveObject(),i.canvas.setCursor("grabbing");const{e:o}=s;if(!this.viewportTransform)return;const v=this.viewportTransform;v[4]+=o.clientX-this.lastPosX,v[5]+=o.clientY-this.lastPosY,this.lastPosX=o.clientX,this.lastPosY=o.clientY,this.requestRenderAll()}}),this.canvas.on("mouse:up",function(){this.viewportTransform&&(this.setViewportTransform(this.viewportTransform),this.isDragging=!1,this.selection=!0,this.getObjects().forEach(s=>{s.id!=="workspace"&&s.hasControls&&(s.selectable=!0)}),i.dragMode&&i.canvas.setCursor("grab"),this.requestRenderAll())})}_setDring(){this.canvas.selection=!1,this.canvas.getObjects().forEach(i=>{i.selectable=!1}),this.canvas.requestRenderAll()}destroy(){console.log("pluginDestroy")}hotkeyEvent(i,s){s.code==="Space"&&s.type==="keydown"&&(this.dragMode||this.startDring()),s.code==="Space"&&s.type==="keyup"&&this.endDring()}};bl.pluginName="DringPlugin",bl.events=["startDring","endDring"],bl.apis=["startDring","endDring"];let Nf=bl;const Sh=class Sh{constructor(i,s,o){this.canvas=i,this.editor=s,this.defautOption={color:"rgba(255,95,95,1)",width:1},this.dragMode=!1,this.dragMode=!1,this.init(),this.switch=o?.switch??!0}init(){const{canvas:i}=this,s=i.getSelectionContext(),o=5,v=4,b=this;let y,g=1,l=0,h=0,u=0,f=0;function p(C){A(C.x+.5,C.y1>C.y2?C.y2:C.y1,C.x+.5,C.y2>C.y1?C.y2:C.y1)}function d(C){A(C.x1>C.x2?C.x2:C.x1,C.y+.5,C.x2>C.x1?C.x2:C.x1,C.y+.5)}function A(C,E,B,k){y!=null&&(s.moveTo(C*g+y[4],E*g+y[5]),s.lineTo(B*g+y[4],k*g+y[5]))}function w(C,E){C=Math.round(C),E=Math.round(E);for(let B=C-v,k=C+v;B<=k;B++)if(B===E)return!0;return!1}let m=[],x=[];i.on("mouse:down",C=>{y=i.viewportTransform,g=i.getZoom();try{C&&(u=C.target.left,f=C.target.top,l=C.target.getScaledWidth(),h=C.target.getScaledHeight())}catch{}}),i.on("object:moving",C=>{if(!this.switch||y===void 0||C.target===void 0)return;const E=C.target,B=i.getObjects(),k=E.getCenterPoint(),M=k.x,T=k.y;E.getBoundingRect();const R=E.getScaledHeight(),N=E.getScaledWidth();let Q=!1,Y=!1;const z=i._currentTransform;let V=!1,$=!1,Z=0,ae=0;if(E.set("hasControls",!1),!!z){for(let ge=B.length;ge--;){if(B[ge]===E||E instanceof Ce.fabric.GuideLine&&B[ge]instanceof Ce.fabric.GuideLine)continue;const re=B[ge].getCenterPoint(),F=re.x,j=re.y,q=B[ge].getBoundingRect(),H=q.height/y[3],K=q.width/y[0];if(w(F,M)&&(Y=!0,m=[],m.push({x:F,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),E.setPositionByOrigin(new Ce.fabric.Point(F,T),"center","center")),w(j,T)&&(Q=!0,x=[],x.push({y:j,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),E.setPositionByOrigin(new Ce.fabric.Point(M,j),"center","center")),w(F-K/2,M-N/2)){Y=!0,m=[],V=!0,m.push({x:F-K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F-K/2+N/2;let W=F-K/2+N/2,L=$?ae:T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(F+K/2,M+N/2)){V=!0,Y=!0,m=[],m.push({x:F+K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F+K/2-N/2;let W=F+K/2-N/2,L=$?ae:T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j-H/2,T-R/2)){$=!0,Q=!0,x=[],x.push({y:j-H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j-H/2+R/2;let W=V?Z:M,L=j-H/2+R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j+H/2,T+R/2)){$=!0,Q=!0,x=[],x.push({y:j+H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j+H/2-R/2;let W=V?Z:M,L=j+H/2-R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(F-K/2,M+N/2)){V=!0,Y=!0,Y=[],m.push({x:F-K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F-K/2-N/2;let W=F-K/2-N/2,L=T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(F+K/2,M-N/2)){V=!0,Y=!0,Y=[],m.push({x:F+K/2,y1:j<T?j-H/2-o:j+H/2+o,y2:T>j?T+R/2+o:T-R/2-o}),Z=F+K/2+N/2;let W=F+K/2+N/2,L=T;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j-H/2,T+R/2)){$=!0,Q=!0,x=[],x.push({y:j-H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j-H/2-R/2;let W=V?Z:M,L=j-H/2-R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}if(w(j+H/2,T-R/2)){$=!0,Q=!0,x=[],x.push({y:j+H/2,x1:F<M?F-K/2-o:F+K/2+o,x2:M>F?M+N/2+o:M-N/2-o}),ae=j+H/2+R/2;let W=V?Z:M,L=j+H/2+R/2;E.setPositionByOrigin(new Ce.fabric.Point(W,L),"center","center")}}Q||(x.length=0),Y||(m.length=0)}}),i.on("before:render",()=>{if(i.contextTop!==null)try{i.clearContext(i.contextTop)}catch(C){console.log(C)}}),i.on("object:scaling",C=>{if(y===void 0||C.target===void 0)return;const E=C.target,B=i.getObjects(),k=E.getCenterPoint(),M=k.x,T=k.y;E.getBoundingRect();const R=E.getScaledHeight(),N=E.getScaledWidth();let Q=!1,Y=!1;const z=i._currentTransform;if(E.set("hasControls",!1),!!z){for(let V=B.length;V--;){if(B[V]===E||E instanceof Ce.fabric.GuideLine&&B[V]instanceof Ce.fabric.GuideLine)continue;const $=B[V].getCenterPoint(),Z=$.x,ae=$.y,ge=B[V].getBoundingRect(),re=ge.height/y[3],F=ge.width/y[0];if(w(Z,M)&&(Y=!0,m=[],m.push({x:Z,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o})),w(Z-F/2,M-N/2)&&(Y=!0,m=[],m.push({x:Z-F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["bl",1],["ml",1],["tl",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(Z-F/2+N/2,T),"center","center"),E.set("scaleX",(u-(Z-F/2)+l)*E.scaleX/E.getScaledWidth());break}if(w(Z+F/2,M+N/2)&&(Y=!0,m=[],m.push({x:Z+F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["mr",1],["tr",1],["br",1]]).get(C.transform.corner))){E.set("scaleX",(Z+F/2-(u+l)+l)*E.scaleX/E.getScaledWidth());break}if(w(ae,T)&&(Q=!0,x=[],x.push({y:ae,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o})),w(ae-re/2,T-R/2)&&(Q=!0,x=[],x.push({y:ae-re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["tr",1],["tl",1],["mt",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(M,ae-re/2+R/2),"center","center"),E.set("scaleY",(f+h-(ae-re/2))*E.scaleY/E.getScaledHeight());break}if(w(ae+re/2,T+R/2)&&(Q=!0,x=[],x.push({y:ae+re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["mb",1],["bl",1],["br",1]]).get(C.transform.corner))){E.set("scaleY",(ae+re/2-(f+h)+h)*E.scaleY/E.getScaledHeight());break}if(w(Z-F/2,M+N/2)&&(Y=!0,m=[],m.push({x:Z-F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["mr",1],["tr",1],["br",1]]).get(C.transform.corner))){E.set("scaleX",(Z-F/2-E.left)*E.scaleX/E.getScaledWidth());break}if(w(Z+F/2,M-N/2)&&(Y=!0,m=[],m.push({x:Z+F/2,y1:ae<T?ae-re/2-o:ae+re/2+o,y2:T>ae?T+R/2+o:T-R/2-o}),new Map([["bl",1],["ml",1],["tl",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(Z+F/2+N/2,T),"center","center"),E.set("scaleX",(u+l-(Z+F/2))*E.scaleX/E.getScaledWidth());break}if(w(ae-re/2,T+R/2)&&(Q=!0,x=[],x.push({y:ae-re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["mb",1],["bl",1],["br",1]]).get(C.transform.corner))){E.set("scaleY",(ae-re/2-E.top)*E.scaleY/E.getScaledHeight());break}if(w(ae+re/2,T-R/2)&&(Q=!0,x=[],x.push({y:ae+re/2,x1:Z<M?Z-F/2-o:Z+F/2+o,x2:M>Z?M+N/2+o:M-N/2-o}),new Map([["tr",1],["tl",1],["mt",1]]).get(C.transform.corner))){E.setPositionByOrigin(new Ce.fabric.Point(M,ae+re/2+R/2),"center","center"),E.set("scaleY",(f+h-(ae+re/2))*E.scaleY/E.getScaledHeight());break}}Q||(x.length=0),Y||(m.length=0)}}),i.on("after:render",()=>{s.save(),s.beginPath(),s.lineWidth=b.defautOption.width,s.strokeStyle=b.defautOption.color;for(let C=m.length;C--;)m[C]&&p(m[C]);for(let C=x.length;C--;)x[C]&&d(x[C]);s.stroke(),s.restore(),m.length=0,x.length=0}),i.on("mouse:up",C=>{const E=C.target;E&&E.selectable&&!E.lockRotation&&E.set("hasControls",!0),m.length=0,x.length=0,i.renderAll()})}changeSwitch(i){this.switch=i??!this.switch}destroy(){console.log("pluginDestroy")}};Sh.pluginName="AlignGuidLinePlugin",Sh.apis=["changeSwitch"];let Pf=Sh;const rL="data:image/svg+xml,%3csvg%20width='12'%20height='24'%20viewBox='0%200%2012%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3crect%20x='4'%20y='4'%20width='4'%20height='16'%20rx='2'%20fill='white'/%3e%3crect%20x='4.25'%20y='4.25'%20width='3.5'%20height='15.5'%20rx='1.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='12'%20height='24'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",iL="data:image/svg+xml,%3csvg%20width='24'%20height='12'%20viewBox='0%200%2024%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3crect%20x='20'%20y='4'%20width='4'%20height='16'%20rx='2'%20transform='rotate(90%2020%204)'%20fill='white'/%3e%3crect%20x='19.75'%20y='4.25'%20width='3.5'%20height='15.5'%20rx='1.75'%20transform='rotate(90%2019.75%204.25)'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='24'%20height='12'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",_6="data:image/svg+xml,%3csvg%20width='19'%20height='18'%20viewBox='0%200%2019%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3ccircle%20cx='9.99609'%20cy='9'%20r='5'%20fill='white'/%3e%3ccircle%20cx='9.99609'%20cy='9'%20r='4.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0.996094'%20y='0'%20width='18'%20height='18'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e",nL="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_d)'%3e%3ccircle%20cx='9'%20cy='9'%20r='5'%20fill='white'/%3e%3ccircle%20cx='9'%20cy='9'%20r='4.75'%20stroke='black'%20stroke-opacity='0.3'%20stroke-width='0.5'/%3e%3c/g%3e%3cpath%20d='M10.8047%2011.1242L9.49934%2011.1242L9.49934%209.81885'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6.94856%206.72607L8.25391%206.72607L8.25391%208.03142'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9.69517%206.92267C10.007%207.03301%2010.2858%207.22054%2010.5055%207.46776C10.7252%207.71497%2010.8787%208.01382%2010.9517%208.33642C11.0247%208.65902%2011.0148%208.99485%2010.9229%209.31258C10.831%209.63031%2010.6601%209.91958%2010.4262%2010.1534L9.49701%2011.0421M8.25792%206.72607L7.30937%207.73554C7.07543%207.96936%206.90454%208.25863%206.81264%208.57636C6.72073%208.89408%206.71081%209.22992%206.78381%209.55251C6.8568%209.87511%207.01032%2010.174%207.23005%2010.4212C7.44978%2010.6684%207.72855%2010.8559%208.04036%2010.9663'%20stroke='black'%20stroke-width='0.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cdefs%3e%3cfilter%20id='filter0_d'%20x='0'%20y='0'%20width='18'%20height='18'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'/%3e%3cfeOffset/%3e%3cfeGaussianBlur%20stdDeviation='2'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.137674%200%200%200%200%200.190937%200%200%200%200%200.270833%200%200%200%200.15%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e";Ce.fabric.Object.NUM_FRACTION_DIGITS=4;const Y0={transparentCorners:!1,borderColor:"#51B9F9",cornerColor:"#FFF",borderScaleFactor:2.5,cornerStyle:"circle",cornerStrokeColor:"rgba(0,0,0,0.25)",borderOpacityWhenMoving:1};function Uf(a,i,s,o,v,b,y){y!==void 0&&(a.save(),a.translate(i,s),a.rotate(Ce.fabric.util.degreesToRadians(y)),a.drawImage(o,-v/2,-b/2,v,b),a.restore())}function aL(){const a=document.createElement("img");a.src=rL;const i=document.createElement("img");i.src=iL;function s(v,b,y,g,l){Uf(v,b,y,a,20,25,l.angle)}function o(v,b,y,g,l){Uf(v,b,y,i,25,20,l.angle)}Ce.fabric.Object.prototype.controls.ml=new Ce.fabric.Control({x:-.5,y:0,offsetX:-1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingXOrSkewingY,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:s}),Ce.fabric.Object.prototype.controls.mr=new Ce.fabric.Control({x:.5,y:0,offsetX:1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingXOrSkewingY,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:s}),Ce.fabric.Object.prototype.controls.mb=new Ce.fabric.Control({x:0,y:.5,offsetY:1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingYOrSkewingX,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:o}),Ce.fabric.Object.prototype.controls.mt=new Ce.fabric.Control({x:0,y:-.5,offsetY:-1,cursorStyleHandler:Ce.fabric.controlsUtils.scaleSkewCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingYOrSkewingX,getActionName:Ce.fabric.controlsUtils.scaleOrSkewActionName,render:o})}function sL(){const a=document.createElement("img");a.src=_6;function i(s,o,v,b,y){Uf(s,o,v,a,25,25,y.angle)}Ce.fabric.Object.prototype.controls.tl=new Ce.fabric.Control({x:-.5,y:-.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i}),Ce.fabric.Object.prototype.controls.bl=new Ce.fabric.Control({x:-.5,y:.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i}),Ce.fabric.Object.prototype.controls.tr=new Ce.fabric.Control({x:.5,y:-.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i}),Ce.fabric.Object.prototype.controls.br=new Ce.fabric.Control({x:.5,y:.5,cursorStyleHandler:Ce.fabric.controlsUtils.scaleCursorStyleHandler,actionHandler:Ce.fabric.controlsUtils.scalingEqually,render:i})}function oL(){const a=document.createElement("img");a.src=nL;function i(s,o,v,b,y){Uf(s,o,v,a,40,40,y.angle)}Ce.fabric.Object.prototype.controls.mtr=new Ce.fabric.Control({x:0,y:.5,cursorStyleHandler:Ce.fabric.controlsUtils.rotationStyleHandler,actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,offsetY:30,actionName:"rotate",render:i})}const m3=class m3{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){sL(),aL(),oL(),Ce.fabric.Object.prototype.set(Y0),this.customizeActiveSelection(),this.editor.on("loadJson",()=>{this.applyControlStyles()})}applyControlStyles(){this.canvas.getObjects().forEach(s=>{s.id==="workspace"||s.id==="coverMask"||s.set(Y0)}),this.canvas.renderAll()}customizeActiveSelection(){const i=(v,b,y,g,l)=>{const h=l.cornerSize||10;v.save(),v.translate(b,y),v.rotate(Ce.fabric.util.degreesToRadians(l.angle||0)),v.shadowColor="rgba(0,0,0,0.15)",v.shadowBlur=3,v.shadowOffsetX=0,v.shadowOffsetY=1,v.beginPath(),v.arc(0,0,h/2,0,2*Math.PI,!1),v.fillStyle="#FFF",v.fill(),v.shadowColor="transparent",v.shadowBlur=0,v.shadowOffsetX=0,v.shadowOffsetY=0,v.strokeStyle="rgba(0,0,0,0.25)",v.lineWidth=1.5,v.stroke(),v.restore()};["tl","tr","bl","br","ml","mr","mt","mb","mtr"].forEach(v=>{if(Ce.fabric.ActiveSelection.prototype.controls[v]){const b=Ce.fabric.ActiveSelection.prototype.controls[v];Ce.fabric.ActiveSelection.prototype.controls[v]=new Ce.fabric.Control({...b,render:i})}}),Ce.fabric.ActiveSelection.prototype.set(Y0);let o=!1;this.canvas.on("object:moving",v=>{v.target&&v.target.type==="activeSelection"&&(o=!0)}),this.canvas.on("object:scaling",v=>{v.target&&v.target.type==="activeSelection"&&(o=!0)}),this.canvas.on("object:rotating",v=>{v.target&&v.target.type==="activeSelection"&&(o=!0)}),this.canvas.on("object:modified",v=>{v.target&&v.target.type==="activeSelection"&&(o=!1,this.canvas.requestRenderAll())}),this.canvas.on("mouse:up",()=>{o&&(o=!1,this.canvas.requestRenderAll())}),this.canvas.on("after:render",()=>{if(o)return;const v=this.canvas.getActiveObject();if(v&&v.type==="activeSelection"){const b=this.canvas.getContext();if(!b)return;b.save(),b.globalCompositeOperation="source-over",v.forEachControl((y,g)=>{if(y.getVisibility(v,g)){const l=v.oCoords[g];l&&y.render(b,l.x,l.y,{},v)}}),b.restore()}})}destroy(){console.log("pluginDestroy")}};m3.pluginName="ControlsPlugin";let Lf=m3;function Us(a){return`url("data:image/svg+xml,%3Csvg height='18' width='18' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg' style='color: black;'%3E%3Cg fill='none' transform='rotate(${a} 16 16)'%3E%3Cpath d='M22.4484 0L32 9.57891L22.4484 19.1478V13.1032C17.6121 13.8563 13.7935 17.6618 13.0479 22.4914H19.2141L9.60201 32.01L0 22.4813H6.54912C7.36524 14.1073 14.0453 7.44023 22.4484 6.61688V0Z' fill='white'/%3E%3Cpath d='M24.0605 3.89587L29.7229 9.57896L24.0605 15.252V11.3562C17.0479 11.4365 11.3753 17.0895 11.3048 24.0879H15.3048L9.60201 29.7308L3.90932 24.0879H8.0806C8.14106 15.3223 15.2645 8.22345 24.0605 8.14313V3.89587Z' fill='black'/%3E%3C/g%3E%3C/svg%3E ") 12 12,crosshair`}const b3=class b3{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){const{canvas:i}=this;Ce.fabric.Object.prototype.controls.mtr=new Ce.fabric.Control({x:-.5,y:-.5,offsetY:-10,offsetX:-10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),Ce.fabric.Object.prototype.controls.mtr2=new Ce.fabric.Control({x:.5,y:-.5,offsetY:-10,offsetX:10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),Ce.fabric.Object.prototype.controls.mtr3=new Ce.fabric.Control({x:.5,y:.5,offsetY:10,offsetX:10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),Ce.fabric.Object.prototype.controls.mtr4=new Ce.fabric.Control({x:-.5,y:.5,offsetY:10,offsetX:-10,rotate:20,actionName:"rotate",actionHandler:Ce.fabric.controlsUtils.rotationWithSnapping,render:()=>""}),i.on("after:render",()=>{const o=i.getActiveObject()?.angle?.toFixed(2);o!==void 0&&(Ce.fabric.Object.prototype.controls.mtr.cursorStyle=Us(Number(o)),Ce.fabric.Object.prototype.controls.mtr2.cursorStyle=Us(Number(o)+90),Ce.fabric.Object.prototype.controls.mtr3.cursorStyle=Us(Number(o)+180),Ce.fabric.Object.prototype.controls.mtr4.cursorStyle=Us(Number(o)+270))}),i.on("object:rotating",s=>{const o=i.lowerCanvasEl.nextSibling,v=i.getActiveObject()?.angle?.toFixed(2);if(v!==void 0)switch(s.transform?.corner){case"mtr":o.style.cursor=Us(Number(v));break;case"mtr2":o.style.cursor=Us(Number(v)+90);break;case"mtr3":o.style.cursor=Us(Number(v)+180);break;case"mtr4":o.style.cursor=Us(Number(v)+270);break}})}destroy(){console.log("pluginDestroy")}};b3.pluginName="ControlsRotatePlugin";let Gf=b3;const Ys=class Ys{constructor(i,s){this.canvas=i,this.editor=s}center(i,s){const o=i.getCenterPoint();return this.canvas._centerObject(s,o)}centerV(i,s){return this.canvas._centerObject(s,new Ce.fabric.Point(s.getCenterPoint().x,i.getCenterPoint().y))}centerH(i,s){return this.canvas._centerObject(s,new Ce.fabric.Point(i.getCenterPoint().x,s.getCenterPoint().y))}position(i){const s=this.canvas.getActiveObject();if(Ys.anignType.includes(i)&&s){const o=this.canvas.getObjects().find(v=>v.id==="workspace");o&&this[i](o,s),this.canvas.renderAll()}}contextMenu(){if(this.canvas.getActiveObject())return[{text:"水平垂直居中",hotkey:"",disabled:!1,onclick:()=>this.position("center")}]}positionV2(i,s){if(Ys.alignTypeV2.includes(s)&&i){const o=this.canvas.getObjects().find(v=>v.id==="workspace");if(o){const v=o.getCenterPoint();switch(s){case"centerH":this.canvas._centerObject(i,new Ce.fabric.Point(o.getCenterPoint().x,i.getCenterPoint().y));break;case"centerV":this.canvas._centerObject(i,new Ce.fabric.Point(i.getCenterPoint().x,o.getCenterPoint().y));break;case"leftH":i.set("left",0);break;case"topV":i.set("top",0);break;case"rightH":i.set("left",o.get("left")+o.get("width")-i.get("width"));break;case"bottomV":i.set("top",o.get("top")+o.get("height")-i.get("height"));break;case"center":this.canvas._centerObject(i,v);break}}i.syncOriginSizeByUnit(),this.canvas.fire("object:modified",i),this.canvas.renderAll()}}destroy(){console.log("pluginDestroy")}};Ys.pluginName="CenterAlignPlugin",Ys.apis=["centerH","center","position","centerV","positionV2"],Ys.anignType=["centerH","center","centerV"],Ys.alignTypeV2=["centerH","center","centerV","leftH","topV","rightH","bottomV"];let Yf=Ys;const kh=class kh{constructor(i,s){this.canvas=i,this.editor=s}_getWorkspace(){return this.canvas.getObjects().find(i=>i.id==="workspace")}_workspaceSendToBack(){const i=this._getWorkspace();i&&i.sendToBack()}up(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.bringForward(),this.canvas.renderAll(),this._workspaceSendToBack()}}down(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.sendBackwards(),this.canvas.renderAll(),this._workspaceSendToBack()}}toFront(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.bringToFront(),this.canvas.renderAll(),this._workspaceSendToBack()}}toBack(){const i=this.canvas.getActiveObjects();if(i&&i.length===1){const s=this.canvas.getActiveObjects()[0];s&&s.sendToBack(),this.canvas.renderAll(),this._workspaceSendToBack()}}contextMenu(){if(this.canvas.getActiveObject())return[{text:"图层管理",hotkey:"❯",subitems:[{text:"上一个",hotkey:"",onclick:()=>this.up()},{text:"下一个",hotkey:"",onclick:()=>this.down()},{text:"置顶",hotkey:"",onclick:()=>this.toFront()},{text:"置底",hotkey:"",onclick:()=>this.toBack()}]}]}destroy(){console.log("pluginDestroy")}};kh.pluginName="LayerPlugin",kh.apis=["up","down","toFront","toBack"];let Hf=kh;var E2,cL=new Uint8Array(16);function lL(){if(!E2&&(E2=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!E2))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return E2(cL)}const fL=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function hL(a){return typeof a=="string"&&fL.test(a)}var ma=[];for(var H0=0;H0<256;++H0)ma.push((H0+256).toString(16).substr(1));function uL(a){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=(ma[a[i+0]]+ma[a[i+1]]+ma[a[i+2]]+ma[a[i+3]]+"-"+ma[a[i+4]]+ma[a[i+5]]+"-"+ma[a[i+6]]+ma[a[i+7]]+"-"+ma[a[i+8]]+ma[a[i+9]]+"-"+ma[a[i+10]]+ma[a[i+11]]+ma[a[i+12]]+ma[a[i+13]]+ma[a[i+14]]+ma[a[i+15]]).toLowerCase();if(!hL(s))throw TypeError("Stringified UUID is invalid");return s}function oa(a,i,s){a=a||{};var o=a.random||(a.rng||lL)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,i){s=s||0;for(var v=0;v<16;++v)i[s+v]=o[v];return i}return uL(o)}const _h=class _h{constructor(i,s){this.canvas=i,this.editor=s,this.hotkeys=["ctrl+v","ctrl+c"],this.cache=null,this.initPaste()}_copyActiveSelection(i){const o=this.canvas,v=this.editor.getExtensionKey();i?.clone(b=>{b.clone(y=>{o.discardActiveObject(),!(y.left===void 0||y.top===void 0)&&(y.canvas=o,y.set({left:y.left+10,top:y.top+10,evented:!0,id:oa()}),y.forEachObject(g=>{g.id=oa(),o.add(g)}),y.setCoords(),o.setActiveObject(y),o.requestRenderAll())})},v)}_copyObject(i){const o=this.canvas,v=this.editor.getExtensionKey();i?.clone(b=>{b.left===void 0||b.top===void 0||(o.discardActiveObject(),b.set({left:b.left+10,top:b.top+10,evented:!0,id:oa()}),this.editor.addSetAndSyncByUnit(b),b.extensionType==="barcode"?this.editor.initBarcodeEvents(b):b.extensionType==="qrcode"?this.editor.initQrcodeEvents(b):b.extensionType==="imageTextList"&&this.editor.initImageTextListEvents(b),o.add(b),o.setActiveObject(b),o.requestRenderAll())},v)}clone(i){const s=i||this.canvas.getActiveObject();s&&(s?.type==="activeSelection"?this._copyActiveSelection(s):this._copyObject(s))}hotkeyEvent(i,s){if(i==="ctrl+c"&&s.type==="keydown"){const o=this.canvas.getActiveObject();this.cache=o,navigator.clipboard.writeText("")}i==="ctrl+v"&&s.type==="keydown"&&setTimeout(()=>{this.cache&&this.clone(this.cache)},0)}contextMenu(){if(this.canvas.getActiveObject())return[{text:"复制",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.clone()}]}destroy(){console.log("pluginDestroy"),window.removeEventListener("paste",i=>this.pasteListener(i))}initPaste(){window.addEventListener("paste",i=>this.pasteListener(i))}async pasteListener(i){const s=this.canvas;if(document.activeElement===document.body)i.preventDefault();else return;const o=(i.clipboardData||i.originalEvent.clipboardData).items,v=".pdf,.psd,.cdr,.ai,.svg,.jpg,.jpeg,.png,.webp,.json";for(const b of o)if(b.kind==="file"){const y=b.getAsFile(),g=y.name.split(".").pop();if(!v.split(",").includes(`.${g}`))return;if(g==="svg"){const l=await P1.getImgStr(y);if(!l)throw new Error("file is undefined");Ce.fabric.loadSVGFromURL(l,(h,u)=>{const f=Ce.fabric.util.groupSVGElements(h,{...u,name:"defaultSVG",id:oa()});s.add(f).centerObject(f).renderAll()})}if(b.type.indexOf("image/")===0){const l=URL.createObjectURL(y),h=document.createElement("img");h.src=l,document.body.appendChild(h),h.onload=()=>{const u=new Ce.fabric.Image(h,{id:oa(),name:"图片1",left:100,top:100});s.add(u),s.setActiveObject(u),s.renderAll(),h.remove()}}}else b.kind==="string"&&b.type.indexOf("text/plain")===0&&b.getAsString(y=>{const g=s.getActiveObject();if(g&&(g.type==="textbox"||g.type==="i-text")&&g.text){const l=g.selectionStart,h=g.text.substring(0,l),u=g.text.substring(l);g.set("text",h+y+u),g.selectionStart=l+y.length,g.selectionEnd=l+y.length,g.dirty=!0,s.renderAll()}else{const l=new Ce.fabric.IText(y,{left:100,top:100,fontSize:80,id:oa()});s.add(l),s.setActiveObject(l)}});o.length&&(this.cache=null)}};_h.pluginName="CopyPlugin",_h.apis=["clone"];let zf=_h;const w3=class w3{constructor(i,s){this.canvas=i,this.editor=s,this.hotkeys=["left","right","down","up"]}hotkeyEvent(i,s){if(s.type==="keydown"){const{canvas:o}=this,v=o.getActiveObject();if(!v)return;switch(i){case"left":if(v.left===void 0)return;v.set("left",v.left-1);break;case"right":if(v.left===void 0)return;v.set("left",v.left+1);break;case"down":if(v.top===void 0)return;v.set("top",v.top+1);break;case"up":if(v.top===void 0)return;v.set("top",v.top-1);break}o.renderAll()}}destroy(){console.log("pluginDestroy")}};w3.pluginName="MoveHotKeyPlugin";let qf=w3;const Mh=class Mh{constructor(i,s){this.canvas=i,this.editor=s,this.hotkeys=["backspace"]}hotkeyEvent(i,s){s.type==="keydown"&&i==="backspace"&&this.del()}del(){const{canvas:i}=this,s=i.getActiveObjects();s&&(s.map(o=>i.remove(o)),i.requestRenderAll(),i.discardActiveObject())}contextMenu(){if(this.canvas.getActiveObject())return[null,{text:"删除",hotkey:"Backspace",disabled:!1,onclick:()=>this.del()}]}destroy(){console.log("pluginDestroy")}};Mh.pluginName="DeleteHotKeyPlugin",Mh.apis=["del"];let Wf=Mh;const Th=class Th{constructor(i,s){this.canvas=i,this.editor=s}unGroup(){const i=this.canvas.getActiveObject();if(!i)return;const s=i.getObjects();i.toActiveSelection();for(const o of s)o.set("id",oa());this.canvas.discardActiveObject().renderAll()}group(){const i=this.canvas.getActiveObject();if(!i)return;const s=i.toGroup(),o=s.getObjects();s.clone(v=>{v.set("id",oa()),this.canvas.remove(s),o.forEach(b=>{this.canvas.remove(b)}),this.canvas.add(v),this.canvas.setActiveObject(v)})}contextMenu(){const i=this.canvas.getActiveObject();if(P1.isActiveSelection(i))return[{text:"组合",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.group()}];if(P1.isGroup(i))return[{text:"拆分组合",hotkey:"Ctrl+V",disabled:!1,onclick:()=>this.unGroup()}]}destroy(){console.log("pluginDestroy")}};Th.pluginName="GroupPlugin",Th.apis=["unGroup","group"];let Vf=Th;Ce.fabric.Arrow=Ce.fabric.util.createClass(Ce.fabric.Line,{type:"arrow",superType:"drawing",initialize(a,i){if(!a){const{x1:s,x2:o,y1:v,y2:b}=i;a=[s,v,o,b]}i=i||{},this.callSuper("initialize",a,i)},_render(a){this.callSuper("_render",a),a.save(),a.scale(1/this.scaleX,1/this.scaleY);const i=(this.x2-this.x1)*this.scaleX,s=(this.y2-this.y1)*this.scaleY,o=Math.atan2(s,i);a.translate((this.x2-this.x1)/2*this.scaleX,(this.y2-this.y1)/2*this.scaleY),a.rotate(o),a.beginPath(),a.moveTo(0,0),a.lineTo(-10,5),a.lineTo(-10,-5),a.closePath(),a.lineWidth=this.lineWidth,a.strokeStyle=this.stroke,a.fillStyle=this.fill,a.stroke(),a.fill(),a.restore()}});Ce.fabric.Arrow.fromObject=(a,i)=>{const{x1:s,x2:o,y1:v,y2:b}=a;return i(new Ce.fabric.Arrow([s,v,o,b],a))};const dL=Ce.fabric.Arrow;Ce.fabric.ThinTailArrow=Ce.fabric.util.createClass(Ce.fabric.Line,{type:"thinTailArrow",superType:"drawing",initialize(a,i){if(!a){const{x1:s,x2:o,y1:v,y2:b}=i;a=[s,v,o,b]}i=i||{},this.callSuper("initialize",a,i)},_render(a){a.save(),a.scale(1/this.scaleX,1/this.scaleY);const i=(this.x2-this.x1)*this.scaleX,s=(this.y2-this.y1)*this.scaleY;a.translate(-i/2,-s/2);const o=Math.atan2(s,i);a.rotate(o);let v=Math.hypot(i,s);v=v<20?20:v,a.beginPath(),a.moveTo(0,0),a.lineTo(v-18,-5),a.lineTo(v-20,-12),a.lineTo(v,0),a.lineTo(v-20,12),a.lineTo(v-18,5),a.lineTo(0,0),a.lineWidth=this.strokeWidth,a.strokeStyle=this.stroke,a.fillStyle=this.fill,a.stroke(),a.fill(),a.restore()}});Ce.fabric.ThinTailArrow.fromObject=(a,i)=>{const{x1:s,x2:o,y1:v,y2:b}=a;return i(new Ce.fabric.ThinTailArrow([s,v,o,b],a))};const pL=Ce.fabric.ThinTailArrow,Oh=class Oh{constructor(i,s){this.canvas=i,this.editor=s,this.isDrawingLine=!1,this.isDrawingLineMode=!1,this.lineType="",this.lineToDraw=null,this.pointer=null,this.pointerPoints=null,this.init()}init(){const{canvas:i}=this;i.on("mouse:down",s=>{if(!this.isDrawingLineMode)return;i.discardActiveObject(),i.getObjects().forEach(b=>{b.selectable=!1,b.hasControls=!1}),i.requestRenderAll(),this.isDrawingLine=!0,this.pointer=i.getPointer(s.e),this.pointerPoints=[this.pointer.x,this.pointer.y,this.pointer.x,this.pointer.y];let o,v={strokeWidth:2,stroke:"#000000",id:oa()};switch(this.lineType){case"line":o=Ce.fabric.Line;break;case"arrow":o=dL;break;case"thinTailArrow":o=pL,v={strokeWidth:2,stroke:"#ff0000",fill:"#ff0000",id:oa()};break}if(!o)throw new Error("Draw failed: invalid lineType.");this.lineToDraw=new o(this.pointerPoints,v),this.lineToDraw.selectable=!1,this.lineToDraw.evented=!1,this.lineToDraw.strokeUniform=!0,i.add(this.lineToDraw)}),i.on("mouse:move",s=>{if(!(!this.isDrawingLine||!["line","arrow","thinTailArrow"].includes(this.lineType)||(i.discardActiveObject(),i.getActiveObject()))){if(this.pointer=i.getPointer(s.e),s.e.shiftKey){const v=this.pointerPoints[0],b=this.pointerPoints[1],y=this.pointer.x-v,g=this.pointer.y-b,l=Math.sqrt(y*y+g*g);let h=Math.atan2(g,y)/Math.PI*180;h=~~((h+7.5)%360/15)*15;const u=l*Math.cos(h*Math.PI/180),f=l*Math.sin(h*Math.PI/180);this.lineToDraw.set({x2:u+v,y2:f+b})}else this.lineToDraw.set({x2:this.pointer.x,y2:this.pointer.y});i.renderAll()}}),i.on("mouse:up",()=>{this.isDrawingLine&&(this.lineToDraw.setCoords(),this.isDrawingLine=!1,i.discardActiveObject(),i.renderAll(),this.editor.saveState())})}setLineType(i){this.lineType=i}setMode(i){this.isDrawingLineMode=i,this.isDrawingLineMode||this.endRest()}endRest(){this.canvas.getObjects().forEach(i=>{i.id!=="workspace"&&(i.selectable=!0,i.hasControls=!0)})}destroy(){console.log("pluginDestroy")}};Oh.pluginName="DrawLinePlugin",Oh.apis=["setLineType","setMode"];let Xf=Oh;const y3=class y3{constructor(i,s){this.canvas=i,this.editor=s,this.isDown=!1,this._init()}_init(){this.canvas.on("mouse:down",i=>{this.isDown=!0,i.target&&!i.target.lockMovementX&&!i.target.lockMovementY&&!i.target.lockRotation&&!i.target.lockScalingX&&!i.target.lockScalingY&&(i.target.hasControls=!0)}),this.canvas.on("mouse:up",()=>{this.isDown=!1}),this.canvas.on("mouse:dblclick",i=>{if(P1.isGroup(i.target)){const s=this._getGroupObj(i);if(!s)return;if(s.selectable=!0,s.hasControls&&(s.hasControls=!1),this.isText(s)){this._bedingTextEditingEvent(s,i.target);return}this.canvas.setActiveObject(s),this.canvas.renderAll()}})}_getGroupTextObj(i){const s=this.canvas.getPointer(i.e,!0);if(!P1.isGroup(i.target))return!1;const o=this.canvas._searchPossibleTargets(i.target._objects,s);return o&&this.isText(o)?o:!1}_getGroupObj(i){const s=this.canvas.getPointer(i.e,!0);return P1.isGroup(i.target)?this.canvas._searchPossibleTargets(i.target._objects,s):!1}_bedingTextEditingEvent(i,s){const o=i.toObject(),v=s.calcTransformMatrix(),b=v[0],y=v[1],g=v[2],l=v[3],h=v[4],u=v[5],f=b*(i.left??0)+g*(i.top??0)+h,p=y*(i.left??0)+l*(i.top??0)+u,d=new i.constructor(i.text??"",{...o,scaleX:o.scaleX*b,scaleY:o.scaleY*b,textAlign:i.textAlign,left:f,top:p,styles:i.styles,groupCopyed:i.group});d.id=oa(),i.visible=!1,s.addWithUpdate(),d.visible=!0,d.selectable=!0,d.hasControls=!1,d.editable=!0,this.canvas.add(d),this.canvas.setActiveObject(d),d.enterEditing(),d.selectAll(),d.on("editing:exited",()=>{const A=d.toObject();i.set({...f6(A,["fill","fontSize","fontStyle","fontFamily","lineHeight","backgroundColor"]),text:d.text,visible:!0}),s.addWithUpdate(),d.visible=!1,this.canvas.remove(d),this.canvas.setActiveObject(s)})}_bedingEditingEvent(i,s){if(!s.target)return;const o=s.target.left,v=s.target.top,b=this._unGroup()||[],y=()=>{const g=this.canvas.getObjects().filter(h=>h.id&&b.includes(h.id));g.forEach(h=>this.canvas.remove(h));const l=new Ce.fabric.Group([...g]);l.set("left",o),l.set("top",v),l.set("id",oa()),i.off("editing:exited",y),this.canvas.add(l),this.canvas.discardActiveObject().renderAll()};i.on("editing:exited",y)}_unGroup(){const i=[],s=this.canvas.getActiveObject();if(s)return s.getObjects().forEach(o=>{const v=oa();i.push(v),o.set("id",v)}),s.toActiveSelection(),i}isText(i){return i.type&&["i-text","text","textbox"].includes(i.type)}destroy(){console.log("pluginDestroy")}};y3.pluginName="GroupTextEditorPlugin";let $f=y3;const Rh=class Rh{constructor(i,s){this.canvas=i,this.editor=s}left(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{left:v=0}=s;i.discardActiveObject(),o.forEach(y=>{const g=y.getBoundingRect(!0);y.set({left:v-g.left+Number(y.left)}),y.setCoords()});const b=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(b),i.requestRenderAll()}}right(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{left:v=0,width:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({left:v+b-(l.left+l.width)+Number(g.left)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}xcenter(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{left:v=0,width:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({left:v+b/2-(l.left+l.width/2)+Number(g.left)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}ycenter(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{top:v=0,height:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({top:v+b/2-(l.top+l.height/2)+Number(g.top)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}top(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{top:v=0}=s;i.discardActiveObject(),o.forEach(y=>{const g=y.getBoundingRect(!0);y.set({top:v-g.top+Number(y.top)})});const b=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(b),i.requestRenderAll()}}bottom(){const{canvas:i}=this,s=i.getActiveObject(),o=i.getActiveObjects();if(s){const{top:v=0,height:b=0}=s;i.discardActiveObject(),o.forEach(g=>{const l=g.getBoundingRect(!0);g.set({top:v+b-(l.top+l.height)+Number(g.top)})});const y=new Ce.fabric.ActiveSelection(o,{canvas:i});i.setActiveObject(y),i.requestRenderAll()}}xequation(){const{canvas:i}=this,s=i.getActiveObject();function o(h){let u=1/0,f=-1/0;for(const p in h.aCoords)h.aCoords[p].x<u&&(u=h.aCoords[p].x),h.aCoords[p].x>f&&(f=h.aCoords[p].x);return f-u}function v(){let h=0;return s&&s.forEachObject(u=>{h+=o(u)}),h}function b(){const h=v();if(s)return(Number(s.width)-h)/(s._objects.length-1)}function y(h){if(h===0)return 0;let u=0;if(s)for(let f=0;f<h;f++)u+=o(s._objects[f]);return u}if(s&&s.type==="activeSelection"){s._objects.sort((p,d)=>p.left-d.left);const u=b(),f=Number(s.width)/2;s.forEachObject((p,d)=>{const A=y(d),w=u*d+A-f;p.set("left",w)})}const g=i.getActiveObjects();i.discardActiveObject(),g.forEach(h=>{let u=1/0;for(const f in h.aCoords)h.aCoords[f].x<u&&(u=h.aCoords[f].x);h.set("left",2*h.left-u)});const l=new Ce.fabric.ActiveSelection(g,{canvas:i});i.setActiveObject(l),i.requestRenderAll()}yequation(){const{canvas:i}=this,s=i.getActiveObject()||{top:0,height:0};function o(h){let u=1/0,f=-1/0;for(const p in h.aCoords)h.aCoords[p].y<u&&(u=h.aCoords[p].y),h.aCoords[p].y>f&&(f=h.aCoords[p].y);return f-u}function v(){let h=0;return s.forEachObject(u=>{h+=o(u)}),h}function b(){const h=v();return(s.height-h)/(s._objects.length-1)}function y(h){if(h===0)return 0;let u=0;for(let f=0;f<h;f++)u+=o(s._objects[f]);return u}if(s&&s.type==="activeSelection"){s._objects.sort((p,d)=>p.top-d.top);const u=b(),f=Number(s.height)/2;s.forEachObject((p,d)=>{const A=y(d),w=u*d+A-f;p.set("top",w)})}const g=i.getActiveObjects();i.discardActiveObject(),g.forEach(h=>{let u=1/0;for(const f in h.aCoords)h.aCoords[f].y<u&&(u=h.aCoords[f].y);h.set("top",2*h.top-u)});const l=new Ce.fabric.ActiveSelection(g,{canvas:i});i.setActiveObject(l),i.requestRenderAll()}destroy(){console.log("pluginDestroy")}};Rh.pluginName="GroupAlignPlugin",Rh.apis=["left","right","xcenter","ycenter","top","bottom","xequation","yequation"];let Jf=Rh;class gL{constructor(){this.maxZoom=20,this.minZoom=.01,this.zoomStep=.01}}const wl=class wl{constructor(i,s,o){this.canvas=i,this.editor=s,this.workspace=null,this.config=Object.assign(new gL,o),this.init({width:114,height:114}),this.zoomRatio=this._getValidZoom(.85)}init(i){const s=document.querySelector("#workspace");if(!s)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=s,this.workspace=null,this.option=i,this._initBackground(),this._initWorkspace(),this._initResizeObserve(),this._bindWheel()}hookImportAfter(){return new Promise(i=>{const s=this.canvas.getObjects().find(o=>o.id==="workspace");s&&(s.set("selectable",!1),s.set("hasControls",!1),s.set("evented",!1),s.width&&s.height&&(this.setSize(s.width,s.height),this.editor.emit("sizeChange",{width:this.editor.getSizeByUnit(s.width),height:this.editor.getSizeByUnit(s.height),unit:this.editor.getUnit()}))),i("")})}hookSaveAfter(){return new Promise(i=>{this.auto(),i(!0)})}_initBackground(){this.canvas.backgroundImage="",this.canvas.setWidth(this.workspaceEl.offsetWidth),this.canvas.setHeight(this.workspaceEl.offsetHeight)}_initWorkspace(){const{width:i,height:s}=this.option,o=new Ce.fabric.Rect({fill:"rgba(255,255,255,1)",width:i,height:s,id:"workspace",strokeWidth:0});o.set("selectable",!1),o.set("hasControls",!1),o.hoverCursor="default",this.canvas.add(o),this.canvas.renderAll(),this.workspace=o,this.canvas.clearHistory&&this.canvas.clearHistory(),this.auto()}getWorkspase(){return this.canvas.getObjects().find(i=>i.id==="workspace")}setCenterFromObject(i){const{canvas:s}=this,o=i.getCenterPoint(),v=s.viewportTransform;s.width===void 0||s.height===void 0||!v||(v[4]=s.width/2-o.x*v[0],v[5]=s.height/2-o.y*v[3],s.setViewportTransform(v),s.renderAll())}_initResizeObserve(){const i=new ResizeObserver(Bs(()=>{this.auto()},50));this.resizeObserver=i,this.resizeObserver.observe(this.workspaceEl)}_getValidZoom(i){return Math.max(this.config.minZoom,Math.min(this.config.maxZoom,i))}setSize(i,s,o){this._initBackground(),this.option.width=i,this.option.height=s,this.workspace=this.canvas.getObjects().find(v=>v.id==="workspace"),this.workspace.set("width",i),this.workspace.set("height",s),o?.slient!==!0&&this.editor.emit("sizeChange",{width:this.editor.getSizeByUnit(i),height:this.editor.getSizeByUnit(s),unit:this.editor.getUnit()}),this.auto()}setZoomAuto(i,s){const{workspaceEl:o}=this,v=o.offsetWidth,b=o.offsetHeight;this.canvas.setWidth(v),this.canvas.setHeight(b);const y=this.canvas.getCenter();this.canvas.setViewportTransform(Ce.fabric.iMatrix.concat()),this.canvas.zoomToPoint(new Ce.fabric.Point(y.left,y.top),i),this.workspace&&(this.setCenterFromObject(this.workspace),this.workspace.clone(g=>{this.canvas.clipPath=g,this.canvas.requestRenderAll()}),s&&s(this.workspace.left,this.workspace.top))}_getScale(){return Ce.fabric.util.findScaleToFit(this.getWorkspase(),{width:this.workspaceEl.offsetWidth,height:this.workspaceEl.offsetHeight})}big(){let i=this.canvas.getZoom();i=this._getValidZoom(i+this.config.zoomStep);const s=this.canvas.getCenter();this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),i)}small(){let i=this.canvas.getZoom();i=this._getValidZoom(i-this.config.zoomStep);const s=this.canvas.getCenter();this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),i)}auto(){const i=this._getScale(),s=this._getValidZoom(i*this.zoomRatio);this.setZoomAuto(s)}one(){this.setZoomAuto(1*this.zoomRatio),this.canvas.requestRenderAll()}getZoom(){return this.canvas.getZoom()}setZoom(i){const s=this.canvas.getCenter();this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),this._getValidZoom(i))}setWorkspaseBg(i){this.getWorkspase()?.set("fill",i)}_bindWheel(){const i=this._getValidZoom.bind(this);this.canvas.on("mouse:wheel",function(s){const o=s.e.deltaY;let v=this.getZoom();v*=.999**o,v=i(v);const b=this.getCenter();this.zoomToPoint(new Ce.fabric.Point(b.left,b.top),v),s.e.preventDefault(),s.e.stopPropagation()})}destroy(){this.resizeObserver.disconnect(),this.canvas.off(),console.log("pluginDestroy")}};wl.pluginName="WorkspacePlugin",wl.events=["sizeChange"],wl.apis=["big","small","auto","one","setSize","setSizeMm","getWorkspase","setWorkspaseBg","setCenterFromObject","getZoom","setZoom"];let Kf=wl;const Dh=class Dh{constructor(i,s){this.canvas=i,this.editor=s,this.coverMask=null,this.workspace=null,this.hackFlag=!1,this.init()}init(){const i=document.querySelector("#workspace");if(!i)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=i}workspaceMaskToggle(){const i=this.getWorkspaceMask();i?(i&&this.canvas.remove(i),this.workspace?.clone(s=>{this.canvas.clipPath=s,this.coverMask=null,this.canvas.requestRenderAll()}),this.editor.off("loadJson",this.initMask)):this.initMask()}getworkspaceMaskStatus(){return this.coverMask!==null}getWorkspaceMask(){return this.canvas.getObjects().find(i=>i.id==="coverMask")}getWorkspase(){return this.canvas.getObjects().find(i=>i.id==="workspace")}setCoverMask(i=!1){if(!this.coverMask||!this.workspace)return;const s=this.canvas.getCenter(),o=this.canvas.getZoom();let v=o;if(i&&(v+=1e-7*(this.hackFlag?1:-1),this.hackFlag=!this.hackFlag),this.canvas.zoomToPoint(new Ce.fabric.Point(s.left,s.top),v),o){const{workspaceEl:b}=this,y=b.offsetWidth,g=b.offsetHeight,l=y/o,h=g/o;this.coverMask.width=l,this.coverMask.height=h,this.coverMask.left=(this.workspace.left||0)+(this.workspace.width-l)/2,this.coverMask.top=(this.workspace.top||0)+(this.workspace.height-h)/2,this.workspace.clone(u=>{u.left=-u.width/2,u.top=-u.height/2,u.inverted=!0,this.coverMask.clipPath=u,this.canvas.requestRenderAll()})}}initMask(i=!0){if(this.workspace=this.getWorkspase(),!this.workspace)throw new Error("MaskPlugin must be used after WorkspacePlugin!");const s=new Ce.fabric.Rect({fill:"rgba(0,0,0,0.5)",id:"coverMask",strokeWidth:0});s.set("selectable",!1),s.set("hasControls",!1),s.set("evented",!1),s.hoverCursor="default",this.canvas.on("object:added",()=>{s.bringToFront()}),this.canvas.clipPath=void 0,this.canvas.add(s),this.coverMask=s,this.setCoverMask(),i&&this.editor.on("loadJson",()=>this.initMask(!1))}destroy(){console.log("pluginDestroy")}};Dh.pluginName="MaskPlugin",Dh.apis=["setCoverMask","workspaceMaskToggle","getworkspaceMaskStatus"];let Zf=Dh;const yl=class yl{constructor(i,s){this.canvas=i,this.editor=s,this.stack=[],this.currentIndex=0,this.maxLength=100,this.isProcessing=!1,this.isLoading=!1,this.hotkeys=["ctrl+z","ctrl+shift+z","⌘+z","⌘+shift+z"],this._init()}_init(){Object.entries({"object:removed":()=>this.saveState(),"object:modified":()=>this.saveState(),"object:skewing":()=>this.saveState()}).forEach(([s,o])=>{this.canvas.on(s,o)}),this.saveState(),this.canvas.on("history:append",()=>{this.historyUpdate()})}getCurrentState(){return this.editor.getJson()}saveState(){this.isProcessing||(this.stack.splice(this.currentIndex),this.stack.push(this.getCurrentState()),this.stack.length>this.maxLength?this.stack.shift():this.currentIndex++,this.historyUpdate())}_loadState(i,s,o){this.isLoading=!0,this.isProcessing=!0;const v=this.canvas.getActiveObjects().map(l=>l?.id).filter(Boolean),y=JSON.parse(i).objects?.find(l=>l.id==="workspace");y&&(y.evented=!1);const g=[];this.canvas.loadFromJSON(i,()=>{Promise.all(g).then(()=>{this.restoreActiveObjects(v),this.canvas.renderAll(),this.canvas.fire(s),this.isProcessing=!1,this.isLoading=!1,o?.()})},(l,h)=>{g.push(new Promise(u=>{this.editor.hooksEntity.hookTransformObjectEnd.callAsync({originObject:l,fabricObject:h},()=>u())}))})}restoreActiveObjects(i){if(this.canvas.discardActiveObject(),!i.length)return;const s=this.canvas.getObjects().filter(o=>i.includes(o?.id));if(s.length===1){this.canvas.setActiveObject(s[0]);return}if(s.length>1){const o=new Ce.fabric.ActiveSelection(s,{canvas:this.canvas});this.canvas.setActiveObject(o)}}getState(){return{undoCount:this.currentIndex-1,redoCount:this.stack.length-this.currentIndex}}clear(){this.stack=[],this.currentIndex=0,this.saveState()}historyUpdate(){const{undoCount:i,redoCount:s}=this.getState();this.editor.emit("historyUpdate",i,s)}hookImportAfter(){return this.clear(),this.historyUpdate(),Promise.resolve()}undo(){if(this.isLoading||this.currentIndex<=1)return;this.currentIndex--;const i=this.stack[this.currentIndex-1];i&&(this._loadState(JSON.stringify(i),"history:undo"),this.historyUpdate())}redo(){if(this.isLoading||this.currentIndex>=this.stack.length)return;const i=this.stack[this.currentIndex];i&&(this._loadState(JSON.stringify(i),"history:redo"),this.currentIndex++,this.historyUpdate())}hotkeyEvent(i,s){if(s.type==="keydown")switch(i){case"ctrl+z":case"⌘+z":this.undo();break;case"ctrl+shift+z":case"⌘+shift+z":this.redo();break}}clearAndSaveState(){const i=this.getCurrentState();this.stack=[i],this.currentIndex=1,this.historyUpdate()}};yl.pluginName="HistoryPlugin",yl.apis=["undo","redo","historyUpdate","clearAndSaveState","saveState"],yl.events=[];let eh=yl;const Fh=class Fh{constructor(i,s){this.canvas=i,this.editor=s}flip(i){const s=this.canvas.getActiveObject();s&&(s.set(`flip${i}`,!s[`flip${i}`]).setCoords(),this.canvas.requestRenderAll())}contextMenu(){if(this.editor.getSelectMode()===Zh.ONE)return[{text:"翻转",hotkey:"❯",subitems:[{text:"水平翻转",hotkey:"|",onclick:()=>this.flip("X")},{text:"垂直翻转",hotkey:"-",onclick:()=>this.flip("Y")}]}]}destroy(){console.log("pluginDestroy")}};Fh.pluginName="FlipPlugin",Fh.apis=["flip"];let th=Fh;const vL=a=>{const i=[.02,.03,.05,.1,.2,.5,1,2,5,10,18],s=[5e3,2500,1e3,500,250,100,50,25,10,5,2];let o=0;for(;o<i.length&&i[o]<a;)o++;return s[o-1]||5e3},B2=(a,i)=>{const s=i?"left":"top",o=i?"width":"height";a.sort((y,g)=>y[s]-g[s]);const v=[];let b=Object.assign({},a[0]);for(const y of a){const g=Object.assign({},y);b[s]+b[o]>=g[s]?b[o]=Math.max(b[s]+b[o],g[s]+g[o])-b[s]:(v.push(b),b=Object.assign({},g))}return v.push(b),v},z0=(a,i)=>{a.save();const{left:s,top:o,width:v,height:b,stroke:y,lineWidth:g}=i;a.beginPath(),y&&(a.strokeStyle=y),a.lineWidth=g??1,a.moveTo(s,o),a.lineTo(s+v,o+b),a.stroke(),a.restore()},q0=(a,i)=>{a.save();const{left:s,top:o,text:v,fill:b,align:y,angle:g,fontSize:l}=i;b&&(a.fillStyle=b),a.textAlign=y??"left",a.textBaseline="top",a.font=`${l??10}px sans-serif`,g&&(a.translate(s,o),a.rotate(Math.PI/180*g),a.translate(-s,-o)),a.fillText(v,s,o),a.restore()},xp=(a,i)=>{a.save();const{left:s,top:o,width:v,height:b,fill:y,stroke:g,strokeWidth:l}=i;a.beginPath(),y&&(a.fillStyle=y),a.rect(s,o,v,b),a.fill(),g&&(a.strokeStyle=g,a.lineWidth=l??1,a.stroke()),a.restore()},S2=(a,i)=>{a.save();const{isHorizontal:s,left:o,top:v,width:b,height:y,backgroundColor:g}=i,l=s?a.createLinearGradient(o,y/2,o+b,y/2):a.createLinearGradient(b/2,v,b/2,y+v),h=new Ce.fabric.Color(g);h.setAlpha(0),l.addColorStop(0,h.toRgba()),l.addColorStop(.33,g),l.addColorStop(.67,g),l.addColorStop(1,h.toRgba()),xp(a,{left:o,top:v,width:b,height:y,fill:l}),a.restore()};function AL(){Ce.fabric.GuideLine||(Ce.fabric.GuideLine=Ce.fabric.util.createClass(Ce.fabric.Line,{type:"GuideLine",selectable:!1,hasControls:!1,hasBorders:!1,stroke:"#4bec13",originX:"center",originY:"center",padding:4,globalCompositeOperation:"difference",axis:"horizontal",initialize(a,i){const s=i.axis==="horizontal";this.hoverCursor=s?"ns-resize":"ew-resize";const o=s?[-999999,a,999999,a]:[a,-999999,a,999999];i[s?"lockMovementX":"lockMovementY"]=!0,this.callSuper("initialize",o,i),this.on("mousedown:before",v=>{this.activeOn==="down"&&this.canvas&&this.canvas.setActiveObject(this,v.e)}),this.on("moving",v=>{this.canvas&&this.canvas.ruler.options.enabled&&this.isPointOnRuler(v.e)?this.moveCursor="not-allowed":this.moveCursor=this.isHorizontal()?"ns-resize":"ew-resize",this.canvas&&this.canvas.fire("guideline:moving",{target:this,e:v.e})}),this.on("mouseup",v=>{if(this.canvas&&this.canvas.ruler.options.enabled&&this.isPointOnRuler(v.e)){this.canvas.remove(this);return}this.moveCursor=this.isHorizontal()?"ns-resize":"ew-resize",this.canvas&&this.canvas.fire("guideline:mouseup",{target:this,e:v.e})}),this.on("removed",()=>{this.off("removed"),this.off("mousedown:before"),this.off("moving"),this.off("mouseup")})},getBoundingRect(a,i){this.bringToFront();const s=this.isHorizontal(),o=this.callSuper("getBoundingRect",a,i);return o[s?"top":"left"]+=o[s?"height":"width"]/2,o[s?"height":"width"]=0,o},isPointOnRuler(a){const i=this.isHorizontal(),s=this.canvas&&this.canvas.ruler.isPointOnRuler(new Ce.fabric.Point(a.offsetX,a.offsetY));return i&&s==="horizontal"||!i&&s==="vertical"?s:!1},isHorizontal(){return this.height===0}}),Ce.fabric.GuideLine.fromObject=function(a,i){const s=Ce.fabric.util.object.clone;function o(y){delete y.xy,i&&i(y)}const v=s(a,!0),b=v.height===0;v.xy=b?v.y1:v.x1,v.axis=b?"horizontal":"vertical",Ce.fabric.Object._fromObject(v.type,v,o,"xy")})}Ce.fabric.GuideLine;class mL{constructor(i){this.unit="px",this.activeOn="up",this.eventHandler={calcObjectRect:Bs(this.calcObjectRect.bind(this),15),markRectDirtyImmediate:s=>{this.currentMovingTarget=s?.target,this.needsRectUpdate=!0,this.options.canvas.requestRenderAll()},markRectDirtyThrottled:Bs(s=>{this.currentMovingTarget=s?.target,this.needsRectUpdate=!0,this.options.canvas.requestRenderAll()},30),clearStatus:this.clearStatus.bind(this),canvasMouseDown:this.canvasMouseDown.bind(this),canvasMouseMove:Bs(this.canvasMouseMove.bind(this),15),canvasMouseUp:this.canvasMouseUp.bind(this),render:s=>{s.ctx&&this.render()}},this.lastAttr={status:"out",cursor:void 0,selection:void 0},this.needsRectUpdate=!0,this.getCommonEventInfo=s=>{if(!(!this.tempGuidelLine||!s.absolutePointer))return{e:s.e,transform:this.tempGuidelLine.get("transform"),pointer:{x:s.absolutePointer.x,y:s.absolutePointer.y},target:this.tempGuidelLine}},this.options=Object.assign({ruleSize:20,fontSize:10,enabled:!1,backgroundColor:"#fff",borderColor:"#ddd",highlightColor:"#007fff",textColor:"#888",unit:"px"},i),this.ctx=this.options.canvas.getContext(),this.unit=this.options.unit||"px",Ce.fabric.util.object.extend(this.options.canvas,{ruler:this}),AL(),this.options.enabled&&this.enable()}setUnit(i){this.unit!==i&&(this.unit=i,this.render())}formatValueByUnit(i){return this.unit==="px"?i:Bn.pxToMm(i)}formatLabel(i){const s=this.formatValueByUnit(i);return this.unit==="px"?String(Math.round(s)):String(Math.round(s*10)/10)}destroy(){this.disable()}clearGuideline(){this.options.canvas.remove(...this.options.canvas.getObjects(Ce.fabric.GuideLine.prototype.type))}showGuideline(){this?.options?.canvas?.getObjects(Ce.fabric.GuideLine.prototype.type).forEach(i=>{i.set("visible",!0)}),this?.options?.canvas?.renderAll()}hideGuideline(){this.options.canvas.getObjects(Ce.fabric.GuideLine.prototype.type).forEach(i=>{i.set("visible",!1)}),this.options.canvas.renderAll()}enable(){this.options.enabled=!0,this.options.canvas.on("after:render",this.eventHandler.calcObjectRect),this.options.canvas.on("after:render",this.eventHandler.render),this.options.canvas.on("mouse:down",this.eventHandler.canvasMouseDown),this.options.canvas.on("mouse:move",this.eventHandler.canvasMouseMove),this.options.canvas.on("mouse:up",this.eventHandler.canvasMouseUp),this.options.canvas.on("selection:cleared",this.eventHandler.clearStatus),this.options.canvas.on("selection:created",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("selection:updated",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("object:moving",this.eventHandler.markRectDirtyThrottled),this.options.canvas.on("object:modified",this.eventHandler.markRectDirtyImmediate),this.options.canvas.on("object:scaling",this.eventHandler.markRectDirtyThrottled),this.options.canvas.on("object:rotating",this.eventHandler.markRectDirtyThrottled),this.showGuideline(),this.render()}disable(){this.options.canvas.off("after:render",this.eventHandler.calcObjectRect),this.options.canvas.off("after:render",this.eventHandler.render),this.options.canvas.off("mouse:down",this.eventHandler.canvasMouseDown),this.options.canvas.off("mouse:move",this.eventHandler.canvasMouseMove),this.options.canvas.off("mouse:up",this.eventHandler.canvasMouseUp),this.options.canvas.off("selection:cleared",this.eventHandler.clearStatus),this.options.canvas.off("object:added",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("selection:created",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("selection:updated",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("object:moving",this.eventHandler.markRectDirtyThrottled),this.options.canvas.off("object:modified",this.eventHandler.markRectDirtyImmediate),this.options.canvas.off("object:scaling",this.eventHandler.markRectDirtyThrottled),this.options.canvas.off("object:rotating",this.eventHandler.markRectDirtyThrottled),this.hideGuideline(),this.options.enabled=!1}render(){const i=this.options.canvas.viewportTransform;i&&((!this.lastViewportTransform||this.lastViewportTransform.some((s,o)=>s!==i[o]))&&(this.needsRectUpdate=!0,this.lastViewportTransform=[...i]),this.needsRectUpdate&&(this.currentMovingTarget?this.calcObjectRectFromTarget(this.currentMovingTarget):this.calcObjectRect(),this.currentMovingTarget=void 0,this.needsRectUpdate=!1),this.draw({isHorizontal:!0,rulerLength:this.getSize().width,startCalibration:this.startCalibration?.x?this.startCalibration.x:-(i[4]/i[0])}),this.draw({isHorizontal:!1,rulerLength:this.getSize().height,startCalibration:this.startCalibration?.y?this.startCalibration.y:-(i[5]/i[3])}),S2(this.ctx,{isHorizontal:!0,left:-10,top:-10,width:this.options.ruleSize*2+10,height:this.options.ruleSize+10,backgroundColor:this.options.backgroundColor}),S2(this.ctx,{isHorizontal:!1,left:-10,top:-10,width:this.options.ruleSize+10,height:this.options.ruleSize*2+10,backgroundColor:this.options.backgroundColor}))}getSize(){return{width:this.options.canvas.width??0,height:this.options.canvas.height??0}}getZoom(){return this.options.canvas.getZoom()}draw(i){const{isHorizontal:s,rulerLength:o,startCalibration:v}=i,b=this.getZoom();let y=vL(b),g=1;if(this.unit==="mm"){const d=Bn.mmToPx(1,void 0,{direct:!0}),A=d*b;A<4?g=10:A<8&&(g=5),y=d*g}const l=o/b,h=Math[v>0?"floor":"ceil"](v/y)*y,u=h-v,f=this.getSize();xp(this.ctx,{left:0,top:0,width:s?f.width:this.options.ruleSize,height:s?this.options.ruleSize:f.height,fill:this.options.backgroundColor,stroke:this.options.borderColor});const p=new Ce.fabric.Color(this.options.textColor);for(let d=0;d+u<=Math.ceil(l);d+=y){const A=(u+d)*b,w=this.formatLabel(h+d);if(this.unit==="mm"){const E=Bn.pxToMm(h+d);if(Math.round(E)%5!==0)continue}const m=10*w.length/4,x=s?A-m-1:this.options.ruleSize/2-this.options.fontSize/2-4,C=s?this.options.ruleSize/2-this.options.fontSize/2-4:A+m;q0(this.ctx,{text:w,left:x,top:C,fill:p.toRgb(),angle:s?0:-90})}for(let d=0;d+u<=Math.ceil(l);d+=y){const A=Math.round((u+d)*b);let w=8;if(this.unit==="mm"){const B=Bn.pxToMm(h+d),k=Math.round(B);k%10===0?w=12:k%5===0?w=10:w=6}const m=s?A:this.options.ruleSize-w,x=s?this.options.ruleSize-w:A,C=s?0:w,E=s?w:0;z0(this.ctx,{left:m,top:x,width:C,height:E,stroke:p.toRgb()})}if(this.objectRect){const d=s?"x":"y";this.objectRect[d].forEach(A=>{if(A.skip===d)return;const w=z=>{if(this.unit==="px"){const V=this.options.editor.getSizeByUnit((z==="start"?s?A.left:A.top:s?A.left+A.width:A.top+A.height)/b+v),$=Number(V);return Number.isNaN($)?void 0:Math.round($*100)/100}return s?z==="start"?A.originXStart:A.originXEnd:z==="start"?A.originYStart:A.originYEnd},m=w("start"),x=w("end"),C=this.options.editor.getPrecision?.()??2,E=m!==void 0?QA(m,C):void 0,B=x!==void 0?QA(x,C):void 0,k=m!==void 0&&x!==void 0&&m===x,M={isHorizontal:s,width:s?160:this.options.ruleSize-8,height:s?this.options.ruleSize-8:160,backgroundColor:this.options.backgroundColor};S2(this.ctx,{...M,left:s?A.left-80:0,top:s?0:A.top-80}),k||S2(this.ctx,{...M,left:s?A.width+A.left-80:0,top:s?0:A.height+A.top-80});const T=new Ce.fabric.Color(this.options.highlightColor);T.setAlpha(.5),xp(this.ctx,{left:s?A.left:this.options.ruleSize-8,top:s?this.options.ruleSize-8:A.top,width:s?A.width:8,height:s?8:A.height,fill:T.toRgba()});const R=this.options.ruleSize/2-this.options.fontSize/2-4,N={fill:T.toRgba(),angle:s?0:-90};E!==void 0&&q0(this.ctx,{...N,text:E,left:s?A.left-2:R,top:s?R:A.top-2,align:k?"center":s?"right":"left"}),!k&&B!==void 0&&q0(this.ctx,{...N,text:B,left:s?A.left+A.width+2:R,top:s?R:A.top+A.height+2,align:s?"left":"right"});const Q=k?8:14;T.setAlpha(1);const Y={width:s?0:Q,height:s?Q:0,stroke:T.toRgba()};z0(this.ctx,{...Y,left:s?A.left:this.options.ruleSize-Q,top:s?this.options.ruleSize-Q:A.top}),k||z0(this.ctx,{...Y,left:s?A.left+A.width:this.options.ruleSize-Q,top:s?this.options.ruleSize-Q:A.top+A.height})})}}calcObjectRect(){const i=this.options.canvas.getActiveObjects();if(i.length===0)return;const s=i.reduce((o,v)=>{const b=v.getBoundingRect(!1,!0);if(v.group){const y=v.group,g={...y,scaleX:y?.scaleX??1,scaleY:y?.scaleY??1};b.width*=g.scaleX,b.height*=g.scaleY;const l=g.width/2+g.left,h=(g.width/2+(v.left??0))*(1-g.scaleX);b.left+=(l-h)*this.getZoom();const u=g.height/2+g.top,f=(g.height/2+(v.top??0))*(1-g.scaleY);b.top+=(u-f)*this.getZoom()}if(v instanceof Ce.fabric.GuideLine&&(b.skip=v.isHorizontal()?"x":"y"),this.unit!=="px"){const y=v._originSize?.[this.unit];if(y)if(v instanceof Ce.fabric.Polygon&&Array.isArray(y.points)){const g=y.points.map(d=>d.x),l=y.points.map(d=>d.y),h=Math.min(...g),u=Math.max(...g),f=Math.min(...l),p=Math.max(...l);b.originXStart=h,b.originXEnd=u,b.originYStart=f,b.originYEnd=p}else{const g=y.left,l=y.top;let h=y.width,u=y.height;h===void 0&&y.rx!==void 0&&(h=y.rx*2),u===void 0&&y.ry!==void 0&&(u=y.ry*2),g!==void 0&&h!==void 0&&(b.originXStart=g,b.originXEnd=g+h),l!==void 0&&u!==void 0&&(b.originYStart=l,b.originYEnd=l+u)}}return o.push(b),o},[]);s.length!==0&&(this.objectRect={x:B2(s,!0),y:B2(s,!1)})}calcObjectRectFromTarget(i){const o=(v=>{const b=v.getBoundingRect(!1,!0);if(v.group){const y=v.group,g={...y,scaleX:y?.scaleX??1,scaleY:y?.scaleY??1};b.width*=g.scaleX,b.height*=g.scaleY;const l=g.width/2+g.left,h=(g.width/2+(v.left??0))*(1-g.scaleX);b.left+=(l-h)*this.getZoom();const u=g.height/2+g.top,f=(g.height/2+(v.top??0))*(1-g.scaleY);b.top+=(u-f)*this.getZoom()}if(v instanceof Ce.fabric.GuideLine&&(b.skip=v.isHorizontal()?"x":"y"),this.unit!=="px"){const y=v._originSize?.[this.unit];if(y)if(v instanceof Ce.fabric.Polygon&&Array.isArray(y.points)){const g=y.points.map(d=>d.x),l=y.points.map(d=>d.y),h=Math.min(...g),u=Math.max(...g),f=Math.min(...l),p=Math.max(...l);b.originXStart=h,b.originXEnd=u,b.originYStart=f,b.originYEnd=p}else{const g=y.left,l=y.top;let h=y.width,u=y.height;h===void 0&&y.rx!==void 0&&(h=y.rx*2),u===void 0&&y.ry!==void 0&&(u=y.ry*2),g!==void 0&&h!==void 0&&(b.originXStart=g,b.originXEnd=g+h),l!==void 0&&u!==void 0&&(b.originYStart=l,b.originYEnd=l+u)}}return b})(i);this.objectRect={x:B2([o],!0),y:B2([o],!1)}}clearStatus(){this.objectRect=void 0}isPointOnRuler(i){return new Ce.fabric.Rect({left:0,top:0,width:this.options.ruleSize,height:this.options.canvas.height}).containsPoint(i)?"vertical":new Ce.fabric.Rect({left:0,top:0,width:this.options.canvas.width,height:this.options.ruleSize}).containsPoint(i)?"horizontal":!1}canvasMouseDown(i){if(!i.pointer||!i.absolutePointer)return;const s=this.isPointOnRuler(i.pointer);s&&this.activeOn==="up"&&(this.lastAttr.selection=this.options.canvas.selection,this.options.canvas.selection=!1,this.activeOn="down",this.tempGuidelLine=new Ce.fabric.GuideLine(s==="horizontal"?i.absolutePointer.y:i.absolutePointer.x,{axis:s,visible:!1}),this.options.canvas.add(this.tempGuidelLine),this.options.canvas.setActiveObject(this.tempGuidelLine),this.options.canvas._setupCurrentTransform(i.e,this.tempGuidelLine,!0),this.tempGuidelLine.fire("down",this.getCommonEventInfo(i)))}canvasMouseMove(i){if(!i.pointer)return;if(this.tempGuidelLine&&i.absolutePointer){const o={};this.tempGuidelLine.axis==="horizontal"?o.top=i.absolutePointer.y:o.left=i.absolutePointer.x,this.tempGuidelLine.set({...o,visible:!0}),this.options.canvas.requestRenderAll();const v=this.getCommonEventInfo(i);this.options.canvas.fire("object:moving",v),this.tempGuidelLine.fire("moving",v)}const s=this.isPointOnRuler(i.pointer);if(!s){this.lastAttr.status!=="out"&&(this.options.canvas.defaultCursor=this.lastAttr.cursor,this.lastAttr.status="out");return}(this.lastAttr.status==="out"||s!==this.lastAttr.status)&&(this.lastAttr.cursor=this.options.canvas.defaultCursor,this.options.canvas.defaultCursor=s==="horizontal"?"ns-resize":"ew-resize",this.lastAttr.status=s)}canvasMouseUp(i){this.activeOn==="down"&&(this.options.canvas.selection=this.lastAttr.selection,this.activeOn="up",this.tempGuidelLine?.fire("up",this.getCommonEventInfo(i)),this.tempGuidelLine=void 0)}}function bL(a,i,s){const o=new mL({canvas:a,editor:i,...s});let v;const b=()=>{v=a.getObjects().find(g=>g.id==="workspace")},y=(g,l)=>{const{top:h,height:u,left:f,width:p}=g;if(h===void 0||u===void 0||f===void 0||p===void 0)return!1;const d=l.getBoundingRect(!0,!0),{top:A,height:w,left:m,width:x}=d;return l.isHorizontal()&&(h>A+1||h+u<A+w-1)?!0:!l.isHorizontal()&&(f>m+1||f+p<m+x-1)};return a.on("guideline:moving",g=>{if(!v){b();return}const{target:l}=g;y(v,l)&&(l.moveCursor="not-allowed")}),a.on("guideline:mouseup",g=>{if(!v){b();return}const{target:l}=g;y(v,l)&&(a.remove(l),a.setCursor(a.defaultCursor??""))}),o}const Qh=class Qh{constructor(i,s){this.canvas=i,this.editor=s,this.init()}hookSaveBefore(){return new Promise(i=>{this.hideGuideline(),i(!0)})}hookSaveAfter(){return new Promise(i=>{this.showGuideline(),i(!0)})}init(){this.ruler=bL(this.canvas,this.editor,{unit:this.editor.getUnit?.()||"px"}),this.editor.on?.("unitChange",i=>{this.ruler?.setUnit?.(i)})}hideGuideline(){this.ruler.hideGuideline()}showGuideline(){this.ruler.showGuideline()}rulerEnable(){this.ruler.enable()}rulerDisable(){this.ruler.disable()}destroy(){console.log("pluginDestroy")}};Qh.pluginName="RulerPlugin",Qh.apis=["hideGuideline","showGuideline","rulerEnable","rulerDisable"];let rh=Qh;function M6(a,i){return function(){return a.apply(i,arguments)}}const{toString:wL}=Object.prototype,{getPrototypeOf:$g}=Object,{iterator:ku,toStringTag:T6}=Symbol,_u=(a=>i=>{const s=wL.call(i);return a[s]||(a[s]=s.slice(8,-1).toLowerCase())})(Object.create(null)),H1=a=>(a=a.toLowerCase(),i=>_u(i)===a),Mu=a=>i=>typeof i===a,{isArray:yc}=Array,ac=Mu("undefined");function $l(a){return a!==null&&!ac(a)&&a.constructor!==null&&!ac(a.constructor)&&Ka(a.constructor.isBuffer)&&a.constructor.isBuffer(a)}const O6=H1("ArrayBuffer");function yL(a){let i;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?i=ArrayBuffer.isView(a):i=a&&a.buffer&&O6(a.buffer),i}const xL=Mu("string"),Ka=Mu("function"),R6=Mu("number"),Jl=a=>a!==null&&typeof a=="object",CL=a=>a===!0||a===!1,bf=a=>{if(_u(a)!=="object")return!1;const i=$g(a);return(i===null||i===Object.prototype||Object.getPrototypeOf(i)===null)&&!(T6 in a)&&!(ku in a)},IL=a=>{if(!Jl(a)||$l(a))return!1;try{return Object.keys(a).length===0&&Object.getPrototypeOf(a)===Object.prototype}catch{return!1}},EL=H1("Date"),BL=H1("File"),SL=H1("Blob"),kL=H1("FileList"),_L=a=>Jl(a)&&Ka(a.pipe),ML=a=>{let i;return a&&(typeof FormData=="function"&&a instanceof FormData||Ka(a.append)&&((i=_u(a))==="formdata"||i==="object"&&Ka(a.toString)&&a.toString()==="[object FormData]"))},TL=H1("URLSearchParams"),[OL,RL,DL,FL]=["ReadableStream","Request","Response","Headers"].map(H1),QL=a=>a.trim?a.trim():a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Kl(a,i,{allOwnKeys:s=!1}={}){if(a===null||typeof a>"u")return;let o,v;if(typeof a!="object"&&(a=[a]),yc(a))for(o=0,v=a.length;o<v;o++)i.call(null,a[o],o,a);else{if($l(a))return;const b=s?Object.getOwnPropertyNames(a):Object.keys(a),y=b.length;let g;for(o=0;o<y;o++)g=b[o],i.call(null,a[g],g,a)}}function D6(a,i){if($l(a))return null;i=i.toLowerCase();const s=Object.keys(a);let o=s.length,v;for(;o-- >0;)if(v=s[o],i===v.toLowerCase())return v;return null}const bo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,F6=a=>!ac(a)&&a!==bo;function Cp(){const{caseless:a,skipUndefined:i}=F6(this)&&this||{},s={},o=(v,b)=>{const y=a&&D6(s,b)||b;bf(s[y])&&bf(v)?s[y]=Cp(s[y],v):bf(v)?s[y]=Cp({},v):yc(v)?s[y]=v.slice():(!i||!ac(v))&&(s[y]=v)};for(let v=0,b=arguments.length;v<b;v++)arguments[v]&&Kl(arguments[v],o);return s}const jL=(a,i,s,{allOwnKeys:o}={})=>(Kl(i,(v,b)=>{s&&Ka(v)?a[b]=M6(v,s):a[b]=v},{allOwnKeys:o}),a),NL=a=>(a.charCodeAt(0)===65279&&(a=a.slice(1)),a),PL=(a,i,s,o)=>{a.prototype=Object.create(i.prototype,o),a.prototype.constructor=a,Object.defineProperty(a,"super",{value:i.prototype}),s&&Object.assign(a.prototype,s)},UL=(a,i,s,o)=>{let v,b,y;const g={};if(i=i||{},a==null)return i;do{for(v=Object.getOwnPropertyNames(a),b=v.length;b-- >0;)y=v[b],(!o||o(y,a,i))&&!g[y]&&(i[y]=a[y],g[y]=!0);a=s!==!1&&$g(a)}while(a&&(!s||s(a,i))&&a!==Object.prototype);return i},LL=(a,i,s)=>{a=String(a),(s===void 0||s>a.length)&&(s=a.length),s-=i.length;const o=a.indexOf(i,s);return o!==-1&&o===s},GL=a=>{if(!a)return null;if(yc(a))return a;let i=a.length;if(!R6(i))return null;const s=new Array(i);for(;i-- >0;)s[i]=a[i];return s},YL=(a=>i=>a&&i instanceof a)(typeof Uint8Array<"u"&&$g(Uint8Array)),HL=(a,i)=>{const o=(a&&a[ku]).call(a);let v;for(;(v=o.next())&&!v.done;){const b=v.value;i.call(a,b[0],b[1])}},zL=(a,i)=>{let s;const o=[];for(;(s=a.exec(i))!==null;)o.push(s);return o},qL=H1("HTMLFormElement"),WL=a=>a.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(s,o,v){return o.toUpperCase()+v}),Um=(({hasOwnProperty:a})=>(i,s)=>a.call(i,s))(Object.prototype),VL=H1("RegExp"),Q6=(a,i)=>{const s=Object.getOwnPropertyDescriptors(a),o={};Kl(s,(v,b)=>{let y;(y=i(v,b,a))!==!1&&(o[b]=y||v)}),Object.defineProperties(a,o)},XL=a=>{Q6(a,(i,s)=>{if(Ka(a)&&["arguments","caller","callee"].indexOf(s)!==-1)return!1;const o=a[s];if(Ka(o)){if(i.enumerable=!1,"writable"in i){i.writable=!1;return}i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")})}})},$L=(a,i)=>{const s={},o=v=>{v.forEach(b=>{s[b]=!0})};return yc(a)?o(a):o(String(a).split(i)),s},JL=()=>{},KL=(a,i)=>a!=null&&Number.isFinite(a=+a)?a:i;function ZL(a){return!!(a&&Ka(a.append)&&a[T6]==="FormData"&&a[ku])}const eG=a=>{const i=new Array(10),s=(o,v)=>{if(Jl(o)){if(i.indexOf(o)>=0)return;if($l(o))return o;if(!("toJSON"in o)){i[v]=o;const b=yc(o)?[]:{};return Kl(o,(y,g)=>{const l=s(y,v+1);!ac(l)&&(b[g]=l)}),i[v]=void 0,b}}return o};return s(a,0)},tG=H1("AsyncFunction"),rG=a=>a&&(Jl(a)||Ka(a))&&Ka(a.then)&&Ka(a.catch),j6=((a,i)=>a?setImmediate:i?((s,o)=>(bo.addEventListener("message",({source:v,data:b})=>{v===bo&&b===s&&o.length&&o.shift()()},!1),v=>{o.push(v),bo.postMessage(s,"*")}))(`axios@${Math.random()}`,[]):s=>setTimeout(s))(typeof setImmediate=="function",Ka(bo.postMessage)),iG=typeof queueMicrotask<"u"?queueMicrotask.bind(bo):typeof process<"u"&&process.nextTick||j6,nG=a=>a!=null&&Ka(a[ku]),Ye={isArray:yc,isArrayBuffer:O6,isBuffer:$l,isFormData:ML,isArrayBufferView:yL,isString:xL,isNumber:R6,isBoolean:CL,isObject:Jl,isPlainObject:bf,isEmptyObject:IL,isReadableStream:OL,isRequest:RL,isResponse:DL,isHeaders:FL,isUndefined:ac,isDate:EL,isFile:BL,isBlob:SL,isRegExp:VL,isFunction:Ka,isStream:_L,isURLSearchParams:TL,isTypedArray:YL,isFileList:kL,forEach:Kl,merge:Cp,extend:jL,trim:QL,stripBOM:NL,inherits:PL,toFlatObject:UL,kindOf:_u,kindOfTest:H1,endsWith:LL,toArray:GL,forEachEntry:HL,matchAll:zL,isHTMLForm:qL,hasOwnProperty:Um,hasOwnProp:Um,reduceDescriptors:Q6,freezeMethods:XL,toObjectSet:$L,toCamelCase:WL,noop:JL,toFiniteNumber:KL,findKey:D6,global:bo,isContextDefined:F6,isSpecCompliantForm:ZL,toJSONObject:eG,isAsyncFn:tG,isThenable:rG,setImmediate:j6,asap:iG,isIterable:nG};function Cr(a,i,s,o,v){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=a,this.name="AxiosError",i&&(this.code=i),s&&(this.config=s),o&&(this.request=o),v&&(this.response=v,this.status=v.status?v.status:null)}Ye.inherits(Cr,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ye.toJSONObject(this.config),code:this.code,status:this.status}}});const N6=Cr.prototype,P6={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(a=>{P6[a]={value:a}});Object.defineProperties(Cr,P6);Object.defineProperty(N6,"isAxiosError",{value:!0});Cr.from=(a,i,s,o,v,b)=>{const y=Object.create(N6);Ye.toFlatObject(a,y,function(u){return u!==Error.prototype},h=>h!=="isAxiosError");const g=a&&a.message?a.message:"Error",l=i==null&&a?a.code:i;return Cr.call(y,g,l,s,o,v),a&&y.cause==null&&Object.defineProperty(y,"cause",{value:a,configurable:!0}),y.name=a&&a.name||"Error",b&&Object.assign(y,b),y};const aG=null;function Ip(a){return Ye.isPlainObject(a)||Ye.isArray(a)}function U6(a){return Ye.endsWith(a,"[]")?a.slice(0,-2):a}function Lm(a,i,s){return a?a.concat(i).map(function(v,b){return v=U6(v),!s&&b?"["+v+"]":v}).join(s?".":""):i}function sG(a){return Ye.isArray(a)&&!a.some(Ip)}const oG=Ye.toFlatObject(Ye,{},null,function(i){return/^is[A-Z]/.test(i)});function Tu(a,i,s){if(!Ye.isObject(a))throw new TypeError("target must be an object");i=i||new FormData,s=Ye.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,m){return!Ye.isUndefined(m[w])});const o=s.metaTokens,v=s.visitor||u,b=s.dots,y=s.indexes,l=(s.Blob||typeof Blob<"u"&&Blob)&&Ye.isSpecCompliantForm(i);if(!Ye.isFunction(v))throw new TypeError("visitor must be a function");function h(A){if(A===null)return"";if(Ye.isDate(A))return A.toISOString();if(Ye.isBoolean(A))return A.toString();if(!l&&Ye.isBlob(A))throw new Cr("Blob is not supported. Use a Buffer instead.");return Ye.isArrayBuffer(A)||Ye.isTypedArray(A)?l&&typeof Blob=="function"?new Blob([A]):Buffer.from(A):A}function u(A,w,m){let x=A;if(A&&!m&&typeof A=="object"){if(Ye.endsWith(w,"{}"))w=o?w:w.slice(0,-2),A=JSON.stringify(A);else if(Ye.isArray(A)&&sG(A)||(Ye.isFileList(A)||Ye.endsWith(w,"[]"))&&(x=Ye.toArray(A)))return w=U6(w),x.forEach(function(E,B){!(Ye.isUndefined(E)||E===null)&&i.append(y===!0?Lm([w],B,b):y===null?w:w+"[]",h(E))}),!1}return Ip(A)?!0:(i.append(Lm(m,w,b),h(A)),!1)}const f=[],p=Object.assign(oG,{defaultVisitor:u,convertValue:h,isVisitable:Ip});function d(A,w){if(!Ye.isUndefined(A)){if(f.indexOf(A)!==-1)throw Error("Circular reference detected in "+w.join("."));f.push(A),Ye.forEach(A,function(x,C){(!(Ye.isUndefined(x)||x===null)&&v.call(i,x,Ye.isString(C)?C.trim():C,w,p))===!0&&d(x,w?w.concat(C):[C])}),f.pop()}}if(!Ye.isObject(a))throw new TypeError("data must be an object");return d(a),i}function Gm(a){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(a).replace(/[!'()~]|%20|%00/g,function(o){return i[o]})}function Jg(a,i){this._pairs=[],a&&Tu(a,this,i)}const L6=Jg.prototype;L6.append=function(i,s){this._pairs.push([i,s])};L6.toString=function(i){const s=i?function(o){return i.call(this,o,Gm)}:Gm;return this._pairs.map(function(v){return s(v[0])+"="+s(v[1])},"").join("&")};function cG(a){return encodeURIComponent(a).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function G6(a,i,s){if(!i)return a;const o=s&&s.encode||cG;Ye.isFunction(s)&&(s={serialize:s});const v=s&&s.serialize;let b;if(v?b=v(i,s):b=Ye.isURLSearchParams(i)?i.toString():new Jg(i,s).toString(o),b){const y=a.indexOf("#");y!==-1&&(a=a.slice(0,y)),a+=(a.indexOf("?")===-1?"?":"&")+b}return a}class Ym{constructor(){this.handlers=[]}use(i,s,o){return this.handlers.push({fulfilled:i,rejected:s,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(i){this.handlers[i]&&(this.handlers[i]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(i){Ye.forEach(this.handlers,function(o){o!==null&&i(o)})}}const Y6={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},lG=typeof URLSearchParams<"u"?URLSearchParams:Jg,fG=typeof FormData<"u"?FormData:null,hG=typeof Blob<"u"?Blob:null,uG={isBrowser:!0,classes:{URLSearchParams:lG,FormData:fG,Blob:hG},protocols:["http","https","file","blob","url","data"]},Kg=typeof window<"u"&&typeof document<"u",Ep=typeof navigator=="object"&&navigator||void 0,dG=Kg&&(!Ep||["ReactNative","NativeScript","NS"].indexOf(Ep.product)<0),pG=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",gG=Kg&&window.location.href||"http://localhost",vG=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Kg,hasStandardBrowserEnv:dG,hasStandardBrowserWebWorkerEnv:pG,navigator:Ep,origin:gG},Symbol.toStringTag,{value:"Module"})),ka={...vG,...uG};function AG(a,i){return Tu(a,new ka.classes.URLSearchParams,{visitor:function(s,o,v,b){return ka.isNode&&Ye.isBuffer(s)?(this.append(o,s.toString("base64")),!1):b.defaultVisitor.apply(this,arguments)},...i})}function mG(a){return Ye.matchAll(/\w+|\[(\w*)]/g,a).map(i=>i[0]==="[]"?"":i[1]||i[0])}function bG(a){const i={},s=Object.keys(a);let o;const v=s.length;let b;for(o=0;o<v;o++)b=s[o],i[b]=a[b];return i}function H6(a){function i(s,o,v,b){let y=s[b++];if(y==="__proto__")return!0;const g=Number.isFinite(+y),l=b>=s.length;return y=!y&&Ye.isArray(v)?v.length:y,l?(Ye.hasOwnProp(v,y)?v[y]=[v[y],o]:v[y]=o,!g):((!v[y]||!Ye.isObject(v[y]))&&(v[y]=[]),i(s,o,v[y],b)&&Ye.isArray(v[y])&&(v[y]=bG(v[y])),!g)}if(Ye.isFormData(a)&&Ye.isFunction(a.entries)){const s={};return Ye.forEachEntry(a,(o,v)=>{i(mG(o),v,s,0)}),s}return null}function wG(a,i,s){if(Ye.isString(a))try{return(i||JSON.parse)(a),Ye.trim(a)}catch(o){if(o.name!=="SyntaxError")throw o}return(s||JSON.stringify)(a)}const Zl={transitional:Y6,adapter:["xhr","http","fetch"],transformRequest:[function(i,s){const o=s.getContentType()||"",v=o.indexOf("application/json")>-1,b=Ye.isObject(i);if(b&&Ye.isHTMLForm(i)&&(i=new FormData(i)),Ye.isFormData(i))return v?JSON.stringify(H6(i)):i;if(Ye.isArrayBuffer(i)||Ye.isBuffer(i)||Ye.isStream(i)||Ye.isFile(i)||Ye.isBlob(i)||Ye.isReadableStream(i))return i;if(Ye.isArrayBufferView(i))return i.buffer;if(Ye.isURLSearchParams(i))return s.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),i.toString();let g;if(b){if(o.indexOf("application/x-www-form-urlencoded")>-1)return AG(i,this.formSerializer).toString();if((g=Ye.isFileList(i))||o.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Tu(g?{"files[]":i}:i,l&&new l,this.formSerializer)}}return b||v?(s.setContentType("application/json",!1),wG(i)):i}],transformResponse:[function(i){const s=this.transitional||Zl.transitional,o=s&&s.forcedJSONParsing,v=this.responseType==="json";if(Ye.isResponse(i)||Ye.isReadableStream(i))return i;if(i&&Ye.isString(i)&&(o&&!this.responseType||v)){const y=!(s&&s.silentJSONParsing)&&v;try{return JSON.parse(i,this.parseReviver)}catch(g){if(y)throw g.name==="SyntaxError"?Cr.from(g,Cr.ERR_BAD_RESPONSE,this,null,this.response):g}}return i}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ka.classes.FormData,Blob:ka.classes.Blob},validateStatus:function(i){return i>=200&&i<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ye.forEach(["delete","get","head","post","put","patch"],a=>{Zl.headers[a]={}});const yG=Ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),xG=a=>{const i={};let s,o,v;return a&&a.split(`
|
|
461
461
|
`).forEach(function(y){v=y.indexOf(":"),s=y.substring(0,v).trim().toLowerCase(),o=y.substring(v+1).trim(),!(!s||i[s]&&yG[s])&&(s==="set-cookie"?i[s]?i[s].push(o):i[s]=[o]:i[s]=i[s]?i[s]+", "+o:o)}),i},Hm=Symbol("internals");function il(a){return a&&String(a).trim().toLowerCase()}function wf(a){return a===!1||a==null?a:Ye.isArray(a)?a.map(wf):String(a)}function CG(a){const i=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=s.exec(a);)i[o[1]]=o[2];return i}const IG=a=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(a.trim());function W0(a,i,s,o,v){if(Ye.isFunction(o))return o.call(this,i,s);if(v&&(i=s),!!Ye.isString(i)){if(Ye.isString(o))return i.indexOf(o)!==-1;if(Ye.isRegExp(o))return o.test(i)}}function EG(a){return a.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(i,s,o)=>s.toUpperCase()+o)}function BG(a,i){const s=Ye.toCamelCase(" "+i);["get","set","has"].forEach(o=>{Object.defineProperty(a,o+s,{value:function(v,b,y){return this[o].call(this,i,v,b,y)},configurable:!0})})}let Za=class{constructor(i){i&&this.set(i)}set(i,s,o){const v=this;function b(g,l,h){const u=il(l);if(!u)throw new Error("header name must be a non-empty string");const f=Ye.findKey(v,u);(!f||v[f]===void 0||h===!0||h===void 0&&v[f]!==!1)&&(v[f||l]=wf(g))}const y=(g,l)=>Ye.forEach(g,(h,u)=>b(h,u,l));if(Ye.isPlainObject(i)||i instanceof this.constructor)y(i,s);else if(Ye.isString(i)&&(i=i.trim())&&!IG(i))y(xG(i),s);else if(Ye.isObject(i)&&Ye.isIterable(i)){let g={},l,h;for(const u of i){if(!Ye.isArray(u))throw TypeError("Object iterator must return a key-value pair");g[h=u[0]]=(l=g[h])?Ye.isArray(l)?[...l,u[1]]:[l,u[1]]:u[1]}y(g,s)}else i!=null&&b(s,i,o);return this}get(i,s){if(i=il(i),i){const o=Ye.findKey(this,i);if(o){const v=this[o];if(!s)return v;if(s===!0)return CG(v);if(Ye.isFunction(s))return s.call(this,v,o);if(Ye.isRegExp(s))return s.exec(v);throw new TypeError("parser must be boolean|regexp|function")}}}has(i,s){if(i=il(i),i){const o=Ye.findKey(this,i);return!!(o&&this[o]!==void 0&&(!s||W0(this,this[o],o,s)))}return!1}delete(i,s){const o=this;let v=!1;function b(y){if(y=il(y),y){const g=Ye.findKey(o,y);g&&(!s||W0(o,o[g],g,s))&&(delete o[g],v=!0)}}return Ye.isArray(i)?i.forEach(b):b(i),v}clear(i){const s=Object.keys(this);let o=s.length,v=!1;for(;o--;){const b=s[o];(!i||W0(this,this[b],b,i,!0))&&(delete this[b],v=!0)}return v}normalize(i){const s=this,o={};return Ye.forEach(this,(v,b)=>{const y=Ye.findKey(o,b);if(y){s[y]=wf(v),delete s[b];return}const g=i?EG(b):String(b).trim();g!==b&&delete s[b],s[g]=wf(v),o[g]=!0}),this}concat(...i){return this.constructor.concat(this,...i)}toJSON(i){const s=Object.create(null);return Ye.forEach(this,(o,v)=>{o!=null&&o!==!1&&(s[v]=i&&Ye.isArray(o)?o.join(", "):o)}),s}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([i,s])=>i+": "+s).join(`
|
|
462
462
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(i){return i instanceof this?i:new this(i)}static concat(i,...s){const o=new this(i);return s.forEach(v=>o.set(v)),o}static accessor(i){const o=(this[Hm]=this[Hm]={accessors:{}}).accessors,v=this.prototype;function b(y){const g=il(y);o[g]||(BG(v,y),o[g]=!0)}return Ye.isArray(i)?i.forEach(b):b(i),this}};Za.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Ye.reduceDescriptors(Za.prototype,({value:a},i)=>{let s=i[0].toUpperCase()+i.slice(1);return{get:()=>a,set(o){this[s]=o}}});Ye.freezeMethods(Za);function V0(a,i){const s=this||Zl,o=i||s,v=Za.from(o.headers);let b=o.data;return Ye.forEach(a,function(g){b=g.call(s,b,v.normalize(),i?i.status:void 0)}),v.normalize(),b}function z6(a){return!!(a&&a.__CANCEL__)}function xc(a,i,s){Cr.call(this,a??"canceled",Cr.ERR_CANCELED,i,s),this.name="CanceledError"}Ye.inherits(xc,Cr,{__CANCEL__:!0});function q6(a,i,s){const o=s.config.validateStatus;!s.status||!o||o(s.status)?a(s):i(new Cr("Request failed with status code "+s.status,[Cr.ERR_BAD_REQUEST,Cr.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s))}function SG(a){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(a);return i&&i[1]||""}function kG(a,i){a=a||10;const s=new Array(a),o=new Array(a);let v=0,b=0,y;return i=i!==void 0?i:1e3,function(l){const h=Date.now(),u=o[b];y||(y=h),s[v]=l,o[v]=h;let f=b,p=0;for(;f!==v;)p+=s[f++],f=f%a;if(v=(v+1)%a,v===b&&(b=(b+1)%a),h-y<i)return;const d=u&&h-u;return d?Math.round(p*1e3/d):void 0}}function _G(a,i){let s=0,o=1e3/i,v,b;const y=(h,u=Date.now())=>{s=u,v=null,b&&(clearTimeout(b),b=null),a(...h)};return[(...h)=>{const u=Date.now(),f=u-s;f>=o?y(h,u):(v=h,b||(b=setTimeout(()=>{b=null,y(v)},o-f)))},()=>v&&y(v)]}const ih=(a,i,s=3)=>{let o=0;const v=kG(50,250);return _G(b=>{const y=b.loaded,g=b.lengthComputable?b.total:void 0,l=y-o,h=v(l),u=y<=g;o=y;const f={loaded:y,total:g,progress:g?y/g:void 0,bytes:l,rate:h||void 0,estimated:h&&g&&u?(g-y)/h:void 0,event:b,lengthComputable:g!=null,[i?"download":"upload"]:!0};a(f)},s)},zm=(a,i)=>{const s=a!=null;return[o=>i[0]({lengthComputable:s,total:a,loaded:o}),i[1]]},qm=a=>(...i)=>Ye.asap(()=>a(...i)),MG=ka.hasStandardBrowserEnv?((a,i)=>s=>(s=new URL(s,ka.origin),a.protocol===s.protocol&&a.host===s.host&&(i||a.port===s.port)))(new URL(ka.origin),ka.navigator&&/(msie|trident)/i.test(ka.navigator.userAgent)):()=>!0,TG=ka.hasStandardBrowserEnv?{write(a,i,s,o,v,b,y){if(typeof document>"u")return;const g=[`${a}=${encodeURIComponent(i)}`];Ye.isNumber(s)&&g.push(`expires=${new Date(s).toUTCString()}`),Ye.isString(o)&&g.push(`path=${o}`),Ye.isString(v)&&g.push(`domain=${v}`),b===!0&&g.push("secure"),Ye.isString(y)&&g.push(`SameSite=${y}`),document.cookie=g.join("; ")},read(a){if(typeof document>"u")return null;const i=document.cookie.match(new RegExp("(?:^|; )"+a+"=([^;]*)"));return i?decodeURIComponent(i[1]):null},remove(a){this.write(a,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function OG(a){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(a)}function RG(a,i){return i?a.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):a}function W6(a,i,s){let o=!OG(i);return a&&(o||s==!1)?RG(a,i):i}const Wm=a=>a instanceof Za?{...a}:a;function ko(a,i){i=i||{};const s={};function o(h,u,f,p){return Ye.isPlainObject(h)&&Ye.isPlainObject(u)?Ye.merge.call({caseless:p},h,u):Ye.isPlainObject(u)?Ye.merge({},u):Ye.isArray(u)?u.slice():u}function v(h,u,f,p){if(Ye.isUndefined(u)){if(!Ye.isUndefined(h))return o(void 0,h,f,p)}else return o(h,u,f,p)}function b(h,u){if(!Ye.isUndefined(u))return o(void 0,u)}function y(h,u){if(Ye.isUndefined(u)){if(!Ye.isUndefined(h))return o(void 0,h)}else return o(void 0,u)}function g(h,u,f){if(f in i)return o(h,u);if(f in a)return o(void 0,h)}const l={url:b,method:b,data:b,baseURL:y,transformRequest:y,transformResponse:y,paramsSerializer:y,timeout:y,timeoutMessage:y,withCredentials:y,withXSRFToken:y,adapter:y,responseType:y,xsrfCookieName:y,xsrfHeaderName:y,onUploadProgress:y,onDownloadProgress:y,decompress:y,maxContentLength:y,maxBodyLength:y,beforeRedirect:y,transport:y,httpAgent:y,httpsAgent:y,cancelToken:y,socketPath:y,responseEncoding:y,validateStatus:g,headers:(h,u,f)=>v(Wm(h),Wm(u),f,!0)};return Ye.forEach(Object.keys({...a,...i}),function(u){const f=l[u]||v,p=f(a[u],i[u],u);Ye.isUndefined(p)&&f!==g||(s[u]=p)}),s}const V6=a=>{const i=ko({},a);let{data:s,withXSRFToken:o,xsrfHeaderName:v,xsrfCookieName:b,headers:y,auth:g}=i;if(i.headers=y=Za.from(y),i.url=G6(W6(i.baseURL,i.url,i.allowAbsoluteUrls),a.params,a.paramsSerializer),g&&y.set("Authorization","Basic "+btoa((g.username||"")+":"+(g.password?unescape(encodeURIComponent(g.password)):""))),Ye.isFormData(s)){if(ka.hasStandardBrowserEnv||ka.hasStandardBrowserWebWorkerEnv)y.setContentType(void 0);else if(Ye.isFunction(s.getHeaders)){const l=s.getHeaders(),h=["content-type","content-length"];Object.entries(l).forEach(([u,f])=>{h.includes(u.toLowerCase())&&y.set(u,f)})}}if(ka.hasStandardBrowserEnv&&(o&&Ye.isFunction(o)&&(o=o(i)),o||o!==!1&&MG(i.url))){const l=v&&b&&TG.read(b);l&&y.set(v,l)}return i},DG=typeof XMLHttpRequest<"u",FG=DG&&function(a){return new Promise(function(s,o){const v=V6(a);let b=v.data;const y=Za.from(v.headers).normalize();let{responseType:g,onUploadProgress:l,onDownloadProgress:h}=v,u,f,p,d,A;function w(){d&&d(),A&&A(),v.cancelToken&&v.cancelToken.unsubscribe(u),v.signal&&v.signal.removeEventListener("abort",u)}let m=new XMLHttpRequest;m.open(v.method.toUpperCase(),v.url,!0),m.timeout=v.timeout;function x(){if(!m)return;const E=Za.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),k={data:!g||g==="text"||g==="json"?m.responseText:m.response,status:m.status,statusText:m.statusText,headers:E,config:a,request:m};q6(function(T){s(T),w()},function(T){o(T),w()},k),m=null}"onloadend"in m?m.onloadend=x:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.indexOf("file:")===0)||setTimeout(x)},m.onabort=function(){m&&(o(new Cr("Request aborted",Cr.ECONNABORTED,a,m)),m=null)},m.onerror=function(B){const k=B&&B.message?B.message:"Network Error",M=new Cr(k,Cr.ERR_NETWORK,a,m);M.event=B||null,o(M),m=null},m.ontimeout=function(){let B=v.timeout?"timeout of "+v.timeout+"ms exceeded":"timeout exceeded";const k=v.transitional||Y6;v.timeoutErrorMessage&&(B=v.timeoutErrorMessage),o(new Cr(B,k.clarifyTimeoutError?Cr.ETIMEDOUT:Cr.ECONNABORTED,a,m)),m=null},b===void 0&&y.setContentType(null),"setRequestHeader"in m&&Ye.forEach(y.toJSON(),function(B,k){m.setRequestHeader(k,B)}),Ye.isUndefined(v.withCredentials)||(m.withCredentials=!!v.withCredentials),g&&g!=="json"&&(m.responseType=v.responseType),h&&([p,A]=ih(h,!0),m.addEventListener("progress",p)),l&&m.upload&&([f,d]=ih(l),m.upload.addEventListener("progress",f),m.upload.addEventListener("loadend",d)),(v.cancelToken||v.signal)&&(u=E=>{m&&(o(!E||E.type?new xc(null,a,m):E),m.abort(),m=null)},v.cancelToken&&v.cancelToken.subscribe(u),v.signal&&(v.signal.aborted?u():v.signal.addEventListener("abort",u)));const C=SG(v.url);if(C&&ka.protocols.indexOf(C)===-1){o(new Cr("Unsupported protocol "+C+":",Cr.ERR_BAD_REQUEST,a));return}m.send(b||null)})},QG=(a,i)=>{const{length:s}=a=a?a.filter(Boolean):[];if(i||s){let o=new AbortController,v;const b=function(h){if(!v){v=!0,g();const u=h instanceof Error?h:this.reason;o.abort(u instanceof Cr?u:new xc(u instanceof Error?u.message:u))}};let y=i&&setTimeout(()=>{y=null,b(new Cr(`timeout ${i} of ms exceeded`,Cr.ETIMEDOUT))},i);const g=()=>{a&&(y&&clearTimeout(y),y=null,a.forEach(h=>{h.unsubscribe?h.unsubscribe(b):h.removeEventListener("abort",b)}),a=null)};a.forEach(h=>h.addEventListener("abort",b));const{signal:l}=o;return l.unsubscribe=()=>Ye.asap(g),l}},jG=function*(a,i){let s=a.byteLength;if(s<i){yield a;return}let o=0,v;for(;o<s;)v=o+i,yield a.slice(o,v),o=v},NG=async function*(a,i){for await(const s of PG(a))yield*jG(s,i)},PG=async function*(a){if(a[Symbol.asyncIterator]){yield*a;return}const i=a.getReader();try{for(;;){const{done:s,value:o}=await i.read();if(s)break;yield o}}finally{await i.cancel()}},Vm=(a,i,s,o)=>{const v=NG(a,i);let b=0,y,g=l=>{y||(y=!0,o&&o(l))};return new ReadableStream({async pull(l){try{const{done:h,value:u}=await v.next();if(h){g(),l.close();return}let f=u.byteLength;if(s){let p=b+=f;s(p)}l.enqueue(new Uint8Array(u))}catch(h){throw g(h),h}},cancel(l){return g(l),v.return()}},{highWaterMark:2})},Xm=64*1024,{isFunction:k2}=Ye,UG=(({Request:a,Response:i})=>({Request:a,Response:i}))(Ye.global),{ReadableStream:$m,TextEncoder:Jm}=Ye.global,Km=(a,...i)=>{try{return!!a(...i)}catch{return!1}},LG=a=>{a=Ye.merge.call({skipUndefined:!0},UG,a);const{fetch:i,Request:s,Response:o}=a,v=i?k2(i):typeof fetch=="function",b=k2(s),y=k2(o);if(!v)return!1;const g=v&&k2($m),l=v&&(typeof Jm=="function"?(A=>w=>A.encode(w))(new Jm):async A=>new Uint8Array(await new s(A).arrayBuffer())),h=b&&g&&Km(()=>{let A=!1;const w=new s(ka.origin,{body:new $m,method:"POST",get duplex(){return A=!0,"half"}}).headers.has("Content-Type");return A&&!w}),u=y&&g&&Km(()=>Ye.isReadableStream(new o("").body)),f={stream:u&&(A=>A.body)};v&&["text","arrayBuffer","blob","formData","stream"].forEach(A=>{!f[A]&&(f[A]=(w,m)=>{let x=w&&w[A];if(x)return x.call(w);throw new Cr(`Response type '${A}' is not supported`,Cr.ERR_NOT_SUPPORT,m)})});const p=async A=>{if(A==null)return 0;if(Ye.isBlob(A))return A.size;if(Ye.isSpecCompliantForm(A))return(await new s(ka.origin,{method:"POST",body:A}).arrayBuffer()).byteLength;if(Ye.isArrayBufferView(A)||Ye.isArrayBuffer(A))return A.byteLength;if(Ye.isURLSearchParams(A)&&(A=A+""),Ye.isString(A))return(await l(A)).byteLength},d=async(A,w)=>{const m=Ye.toFiniteNumber(A.getContentLength());return m??p(w)};return async A=>{let{url:w,method:m,data:x,signal:C,cancelToken:E,timeout:B,onDownloadProgress:k,onUploadProgress:M,responseType:T,headers:R,withCredentials:N="same-origin",fetchOptions:Q}=V6(A),Y=i||fetch;T=T?(T+"").toLowerCase():"text";let z=QG([C,E&&E.toAbortSignal()],B),V=null;const $=z&&z.unsubscribe&&(()=>{z.unsubscribe()});let Z;try{if(M&&h&&m!=="get"&&m!=="head"&&(Z=await d(R,x))!==0){let q=new s(w,{method:"POST",body:x,duplex:"half"}),H;if(Ye.isFormData(x)&&(H=q.headers.get("content-type"))&&R.setContentType(H),q.body){const[K,W]=zm(Z,ih(qm(M)));x=Vm(q.body,Xm,K,W)}}Ye.isString(N)||(N=N?"include":"omit");const ae=b&&"credentials"in s.prototype,ge={...Q,signal:z,method:m.toUpperCase(),headers:R.normalize().toJSON(),body:x,duplex:"half",credentials:ae?N:void 0};V=b&&new s(w,ge);let re=await(b?Y(V,Q):Y(w,ge));const F=u&&(T==="stream"||T==="response");if(u&&(k||F&&$)){const q={};["status","statusText","headers"].forEach(L=>{q[L]=re[L]});const H=Ye.toFiniteNumber(re.headers.get("content-length")),[K,W]=k&&zm(H,ih(qm(k),!0))||[];re=new o(Vm(re.body,Xm,K,()=>{W&&W(),$&&$()}),q)}T=T||"text";let j=await f[Ye.findKey(f,T)||"text"](re,A);return!F&&$&&$(),await new Promise((q,H)=>{q6(q,H,{data:j,headers:Za.from(re.headers),status:re.status,statusText:re.statusText,config:A,request:V})})}catch(ae){throw $&&$(),ae&&ae.name==="TypeError"&&/Load failed|fetch/i.test(ae.message)?Object.assign(new Cr("Network Error",Cr.ERR_NETWORK,A,V),{cause:ae.cause||ae}):Cr.from(ae,ae&&ae.code,A,V)}}},GG=new Map,X6=a=>{let i=a&&a.env||{};const{fetch:s,Request:o,Response:v}=i,b=[o,v,s];let y=b.length,g=y,l,h,u=GG;for(;g--;)l=b[g],h=u.get(l),h===void 0&&u.set(l,h=g?new Map:LG(i)),u=h;return h};X6();const Zg={http:aG,xhr:FG,fetch:{get:X6}};Ye.forEach(Zg,(a,i)=>{if(a){try{Object.defineProperty(a,"name",{value:i})}catch{}Object.defineProperty(a,"adapterName",{value:i})}});const Zm=a=>`- ${a}`,YG=a=>Ye.isFunction(a)||a===null||a===!1;function HG(a,i){a=Ye.isArray(a)?a:[a];const{length:s}=a;let o,v;const b={};for(let y=0;y<s;y++){o=a[y];let g;if(v=o,!YG(o)&&(v=Zg[(g=String(o)).toLowerCase()],v===void 0))throw new Cr(`Unknown adapter '${g}'`);if(v&&(Ye.isFunction(v)||(v=v.get(i))))break;b[g||"#"+y]=v}if(!v){const y=Object.entries(b).map(([l,h])=>`adapter ${l} `+(h===!1?"is not supported by the environment":"is not available in the build"));let g=s?y.length>1?`since :
|
|
463
463
|
`+y.map(Zm).join(`
|
|
@@ -480,4 +480,4 @@ Additional information: `+s(a);function s(o){if(o instanceof Array){let v="";for
|
|
|
480
480
|
`;var R=l.backgroundcolor;return'<svg viewBox="0 0 '+x+" "+C+`" xmlns="http://www.w3.org/2000/svg">
|
|
481
481
|
`+(p.length?"<defs>"+p.join("")+"</defs>":"")+(/^[0-9A-Fa-f]{6}$/.test(""+R)?'<rect width="100%" height="100%" fill="#'+R+`" />
|
|
482
482
|
`:"")+M+h+`</svg>
|
|
483
|
-
`}};function k(M,T){M+=E,T+=B;var R=a*M+i*T+s*(x-1)+o*(C-1),N=v*M+b*T+y*(x-1)+g*(C-1);return""+((R|0)==R?R:R.toFixed(2))+" "+((N|0)==N?N:N.toFixed(2))}}var Wa=(function(){var a=[],i={},s={},o={},v=0;return o.next=o,o.prev=o,{lookup:y,monochrome:g,getglyph:l,getpaths:h,loadFont:b};function b(u){var f=100,p=100,d=null;if(arguments.length==2)d=arguments[1];else if(arguments.length==3)f=p=+arguments[1]||100,d=arguments[2];else if(arguments.length==4)p=+arguments[1]||100,f=+arguments[2]||100,d=arguments[3];else throw new Error("bwipjs: loadFont: invalid number of arguments");var A=uf.InitFont(PV(d));A.bwipjs_name=u,A.bwipjs_multx=f,A.bwipjs_multy=p;var w=a.push(A)-1;return i[u.toUpperCase()]=w,w}function y(u){var f=i[u.toUpperCase()];return f===void 0?1:f}function g(u){if(u)throw new Error("bwipjs: monochrome fonts not implemented")}function l(u,f,p,d){u=u|0,f=f|0,p=+p,d=+d,(!p||p<8)&&(p=8),(!d||d<8)&&(d=p),(u<0||u>=a.length)&&(u=1),(!f||f<32)&&(f=32);var A=""+u+"c"+f+"w"+p+"h"+d,m=s[A];if(m){m.prev.next=m.next,m.next.prev=m.prev;var C=o;return C.next.prev=m,m.next=C.next,m.prev=C,C.next=m,m}var w=a[u],m=uf.GetGlyph(w,f,p*w.bwipjs_multx/100,d*w.bwipjs_multy/100)||uf.GetGlyph(w,0,p*w.bwipjs_multx/100,d*w.bwipjs_multy/100);if(m.bytes=m.pixels,m.cachekey=A,m.offset=0,v>250){var C=o,x=C.prev;x.prev.next=C,C.prev=x.prev,x.next=x.prev=null,delete s[x.cachekey]}else v++;s[A]=m;var C=o;return C.next.prev=m,m.next=C.next,m.prev=C,C.next=m,m}function h(u,f,p,d){u=u|0,f=f|0,p=+p,d=+d,(!p||p<8)&&(p=8),(!d||d<8)&&(d=p),(u<0||u>=a.length)&&(u=1),(!f||f<32)&&(f=32);var A=a[u];return uf.GetPaths(A,f,p*A.bwipjs_multx/100,d*A.bwipjs_multy/100)}})();function NV(){return Wa.loadFont.apply(Wa,Array.prototype.slice.call(arguments))}var uf=(function(){var a=1,i=2,s=3,o=4,v=0,b=3,y=1,g=10,l=Math.floor,h=Math.ceil,u=Math.sqrt,f=Math.abs;function p(O){for(var P=[],X=0;X<O;X++)P.push({});return P}function d(O){return O[O.cursor++]||0}function A(O){return O[O.cursor]}function w(O,P){O.cursor=P>O.length||P<0?O.length:P}function m(O,P){w(O,O.cursor+P)}function x(O,P){for(var X=0,se=0;se<P;se++)X=X<<8|d(O);return X}function C(){return{length:0}}function E(O,P,X){if(P<0||X<0||P>O.length||X>O.length-P)return C();var se=O.subarray(P,P+X);return se.cursor=0,se}function B(O){var P=O.cursor,X=x(O,2);if(X){var se=d(O);m(O,se*X),m(O,x(O,se)-1)}return E(O,P,O.cursor-P)}function k(O){var P=d(O);return P>=32&&P<=246?P-139:P>=247&&P<=250?(P-247)*256+d(O)+108:P>=251&&P<=254?-(P-251)*256-d(O)-108:P==28?x(O,2):P==29?x(O,4):0}function M(O){var P=A(O);if(P==30)for(m(O,1);O.cursor<O.length;){var X=d(O);if((X&15)==15||X>>4==15)break}else k(O)}function T(O,P){for(w(O,0);O.cursor<O.length;){for(var X=O.cursor,se,le;A(O)>=28;)M(O);if(se=O.cursor,le=d(O),le==12&&(le=d(O)|256),le==P)return E(O,X,se-X)}return E(O,0,0)}function R(O,P,X,se){for(var le=T(O,P),be=0;be<X&&le.cursor<le.length;be++)se[be]=k(le)}function N(O,P,X){var se=T(O,P);return se.cursor<se.length&&(X=k(se)),X}function Q(O){return w(O,0),x(O,2)}function Y(O,P){var X,se,le,be;return w(O,0),X=x(O,2),se=d(O),m(O,P*se),le=x(O,se),be=x(O,se),E(O,2+(X+1)*se+le,be-le)}function z(O){return O&32768?(4294901760|O)>>0:O}function V(O,P){return O[P]*256+O[P+1]}function $(O,P){var X=O[P]*256+O[P+1];return X&32768?(4294901760|X)>>0:X}function Z(O,P){return(O[P]<<24)+(O[P+1]<<16)+(O[P+2]<<8)+O[P+3]}function ae(O,P,X){for(var se=V(O,P+4),le=P+12,be=0;be<se;++be){var ce=le+16*be;if(O[ce]==X[0]&&O[ce+1]==X[1]&&O[ce+2]==X[2]&&O[ce+3]==X[3])return Z(O,ce+8)}return 0}function ge(O,P){var X=[0,0];if(R(P,18,2,X),!X[1]||!X[0])return C();var se=E(O,X[1],X[0]),le=N(se,19,0);return le?(w(O,X[1]+le),B(O)):C()}function re(O,P,X){var se,le,be,ce;if(O.data=P,O.fontstart=X,O.cff=C(),se=ae(P,X,[99,109,97,112]),O.loca=ae(P,X,[108,111,99,97]),O.head=ae(P,X,[104,101,97,100]),O.glyf=ae(P,X,[103,108,121,102]),O.hhea=ae(P,X,[104,104,101,97]),O.hmtx=ae(P,X,[104,109,116,120]),O.kern=ae(P,X,[107,101,114,110]),!se||!O.head||!O.hhea||!O.hmtx)return 0;if(O.glyf){if(!O.loca)return 0}else{var Re,ie,Be,Se,Oe=2,fe=0,Te=0,Qe=0;if(Se=ae(P,X,[67,70,70,32]),!Se||(O.fontdicts=C(),O.fdselect=C(),O.cff=P.subarray(Se),O.cff.cursor=0,Re=O.cff,m(Re,2),w(Re,d(Re)),B(Re),Be=B(Re),ie=Y(Be,0),B(Re),O.gsubrs=B(Re),fe=N(ie,17,fe),Oe=N(ie,262,Oe),Te=N(ie,292,Te),Qe=N(ie,293,Qe),O.subrs=ge(Re,ie),Oe!=2)||fe==0)return 0;if(Te){if(!Qe)return 0;w(Re,Te),O.fontdicts=B(Re),O.fdselect=E(Re,Qe,Re.length-Qe)}w(Re,fe),O.charstrings=B(Re)}for(le=ae(P,X,[109,97,120,112]),le?O.numGlyphs=V(P,le+4):O.numGlyphs=65535,ce=V(P,se+2),O.index_map=0,be=0;be<ce;++be){var Ee=se+4+8*be;switch(V(P,Ee)){case b:switch(V(P,Ee+2)){case y:case g:O.index_map=se+Z(P,Ee+4);break}break;case v:O.index_map=se+Z(P,Ee+4);break}}return O.index_map==0?0:(O.indexToLocFormat=V(P,O.head+50),1)}function F(O,P){var X=O.data,se=O.index_map,le=V(X,se+0);if(le==0){var be=V(X,se+2);return P<be-6?X[se+6+P]:0}else if(le==6){var ce=V(X,se+6),Re=V(X,se+8);return P>=ce&&P<ce+Re?V(X,se+10+(P-ce)*2):0}else{if(le==2)return 0;if(le==4){var ie=V(X,se+6)>>1,Be=V(X,se+8)>>1,Se=V(X,se+10),Oe=V(X,se+12)>>1,fe=se+14,Te=fe;if(P>65535)return 0;for(P>=V(X,Te+Oe*2)&&(Te+=Oe*2),Te-=2;Se;){Be>>=1;var Qe=V(X,Te+Be*2);P>Qe&&(Te+=Be*2),--Se}Te+=2;var Ee,Pe,Ne=Te-fe>>>1;return Pe=V(X,se+14+ie*2+2+2*Ne),P<Pe?0:(Ee=V(X,se+14+ie*6+2+2*Ne),Ee==0?P+$(X,se+14+ie*4+2+2*Ne):V(X,Ee+(P-Pe)*2+se+14+ie*6+2+2*Ne))}else if(le==12||le==13){for(var je=Z(X,se+12),Ve=0,ze=je;Ve<ze;){var et=Ve+(ze-Ve>>1),st=Z(X,se+16+et*12),rt=Z(X,se+16+et*12+4);if(P<st)ze=et;else if(P>rt)Ve=et+1;else{var De=Z(X,se+16+et*12+8);return le==12?De+P-st:De}}return 0}}return 0}function j(O,P,X,se,le,be){O.type=P,O.x=X,O.y=se,O.cx=le,O.cy=be}function q(O,P){var X,se;return P>=O.numGlyphs||O.indexToLocFormat>=2?-1:(O.indexToLocFormat==0?(X=O.glyf+V(O.data,O.loca+P*2)*2,se=O.glyf+V(O.data,O.loca+P*2+2)*2):(X=O.glyf+Z(O.data,O.loca+P*4),se=O.glyf+Z(O.data,O.loca+P*4+4)),X==se?-1:X)}function H(O,P,X){if(O.cff.length)we(O,P,X);else{var se=q(O,P);if(se<0)return 0;X.x0=$(O.data,se+2),X.y0=$(O.data,se+4),X.x1=$(O.data,se+6),X.y1=$(O.data,se+8)}return 1}function K(O,P,X,se,le,be,ce,Re,ie,Be){return se?(X&&j(O[P++],s,ie+ce>>1,Be+Re>>1,ie,Be),j(O[P++],s,le,be,ce,Re)):X?j(O[P++],s,le,be,ie,Be):j(O[P++],i,le,be,0,0),P}function W(O,P){var X=O.data,se=q(O,P);if(se<0)return null;var le=[],be=$(X,se);if(be>0){var ce=0,Re,ie,Be=0,Se,Oe,fe,Te=0,Qe,Ee=0,Pe,Ne,je,Ve,ze,et,st,rt,De=se+10,Je=V(X,se+10+be*2),Xe=X.subarray(se+10+be*2+2+Je),tt=0;for(Oe=1+V(X,De+be*2-2),Se=Oe+2*be,le=p(Se),fe=0,Re=0,Qe=Se-Oe,ie=0;ie<Oe;++ie)Re==0?(ce=Xe[tt++],ce&8&&(Re=Xe[tt++])):--Re,le[Qe+ie].type=ce;for(Pe=0,ie=0;ie<Oe;++ie){if(ce=le[Qe+ie].type,ce&2){var dt=Xe[tt++];Pe+=ce&16?dt:-dt}else ce&16||(Pe=Pe+z(Xe[tt]*256+Xe[tt+1]),tt+=2);le[Qe+ie].x=Pe}for(Ne=0,ie=0;ie<Oe;++ie){if(ce=le[Qe+ie].type,ce&4){var pt=Xe[tt++];Ne+=ce&32?pt:-pt}else ce&32||(Ne=Ne+z(Xe[tt]*256+Xe[tt+1]),tt+=2);le[Qe+ie].y=Ne}var ut=0;for(ze=et=je=Ve=st=rt=0,ie=0;ie<Oe;++ie)ce=le[Qe+ie].type,Pe=le[Qe+ie].x,Ne=le[Qe+ie].y,fe==ie?(ie!=0&&(ut=K(le,ut,Te,Ee,ze,et,st,rt,je,Ve)),Ee=!(ce&1),Ee?(st=Pe,rt=Ne,le[Qe+ie+1].type&1?(ze=le[Qe+ie+1].x,et=le[Qe+ie+1].y,++ie):(ze=Pe+le[Qe+ie+1].x>>1,et=Ne+le[Qe+ie+1].y>>1)):(ze=Pe,et=Ne),j(le[ut++],a,ze,et,0,0),Te=0,fe=1+V(X,De+Be*2),++Be):ce&1?(Te?j(le[ut++],s,Pe,Ne,je,Ve):j(le[ut++],i,Pe,Ne,0,0),Te=0):(Te&&j(le[ut++],s,je+Pe>>1,Ve+Ne>>1,je,Ve),je=Pe,Ve=Ne,Te=1);le.length=K(le,ut,Te,Ee,ze,et,st,rt,je,Ve)}else if(be==-1)for(var bt=1,ct=se+10;bt;){var ce,Ot,it=[1,0,0,1,0,0];ce=$(X,ct),ct+=2,Ot=$(X,ct),ct+=2,ce&2&&(ce&1?(it[4]=$(X,ct),ct+=2,it[5]=$(X,ct),ct+=2):(it[4]=d(X),ct+=1,it[5]=d(X),ct+=1)),ce&8?(it[0]=it[3]=$(X,ct)/16384,ct+=2,it[1]=it[2]=0):ce&64?(it[0]=$(X,ct)/16384,ct+=2,it[1]=it[2]=0,it[3]=$(X,ct)/16384,ct+=2):ce&128&&(it[0]=$(X,ct)/16384,ct+=2,it[1]=$(X,ct)/16384,ct+=2,it[2]=$(X,ct)/16384,ct+=2,it[3]=$(X,ct)/16384,ct+=2);var Se=u(it[0]*it[0]+it[1]*it[1]),Oe=u(it[2]*it[2]+it[3]*it[3]),Nt=me(O,Ot);if(Nt.length>0){for(var ie=0,Pt=Nt.length;ie<Pt;++ie){var Ft=Nt[ie],Pe,Ne;Pe=Ft.x,Ne=Ft.y,Ft.x=l(Se*(it[0]*Pe+it[2]*Ne+it[4])),Ft.y=l(Oe*(it[1]*Pe+it[3]*Ne+it[5])),Pe=Ft.cx,Ne=Ft.cy,Ft.cx=l(Se*(it[0]*Pe+it[2]*Ne+it[4])),Ft.cy=l(Oe*(it[1]*Pe+it[3]*Ne+it[5]))}le=le.concat(Nt)}bt=ce&32}return le}function L(O,P,X){(P>O.max_x||!O.started)&&(O.max_x=P),(X>O.max_y||!O.started)&&(O.max_y=X),(P<O.min_x||!O.started)&&(O.min_x=P),(X<O.min_y||!O.started)&&(O.min_y=X),O.started=1}function ee(O,P,X,se,le,be,ce,Re){L(O,X,se),P==o&&(L(O,le,be),L(O,ce,Re));var ie={};j(ie,P,X,se,le,be),ie.cx1=ce,ie.cy1=Re,O.vertices.push(ie)}function he(O){(O.first_x!=O.x||O.first_y!=O.y)&&ee(O,i,O.first_x,O.first_y,0,0,0,0)}function Ae(O,P,X){he(O),O.first_x=O.x=O.x+P,O.first_y=O.y=O.y+X,ee(O,a,O.x,O.y,0,0,0,0)}function de(O,P,X){O.x+=P,O.y+=X,ee(O,i,O.x,O.y,0,0,0,0)}function pe(O,P,X,se,le,be,ce){var Re=O.x+P,ie=O.y+X,Be=Re+se,Se=ie+le;O.x=Be+be,O.y=Se+ce,ee(O,o,O.x,O.y,Re,ie,Be,Se)}function Ie(O,P){var X=Q(O),se=107;return X>=33900?se=32768:X>=1240&&(se=1131),P+=se,P<0||P>=X?C():Y(O,P)}function Me(O,P){var X=O.fdselect,se,le,be,ce,Re,ie=-1,Be;if(w(X,0),Re=d(X),Re==0)m(X,P),ie=d(X);else if(Re==3)for(se=x(X,2),le=x(X,2),Be=0;Be<se;Be++){if(ce=d(X),be=x(X,2),P>=le&&P<be){ie=ce;break}le=be}return ge(O.cff,Y(O.fontdicts,ie))}function ve(O,P,X){var se=1,le=0,be=0,ce=0,Re,ie,Be,Se=0,Oe,fe=[],Te=[],Qe=O.subrs,Ee,Pe;for(Ee=Y(O.charstrings,P);Ee.cursor<Ee.length;){switch(ie=0,Oe=1,Be=d(Ee),Be){case 19:case 20:se&&(le+=ce/2|0),se=0,m(Ee,(le+7)/8|0);break;case 1:case 3:case 18:case 23:le+=ce/2|0;break;case 21:if(se=0,ce<2)return 0;Ae(X,fe[ce-2],fe[ce-1]);break;case 4:if(se=0,ce<1)return 0;Ae(X,0,fe[ce-1]);break;case 22:if(se=0,ce<1)return 0;Ae(X,fe[ce-1],0);break;case 5:if(ce<2)return 0;for(;ie+1<ce;ie+=2)de(X,fe[ie],fe[ie+1]);break;case 7:if(ce<1)return 0;for(;!(ie>=ce||(de(X,0,fe[ie]),ie++,ie>=ce));)de(X,fe[ie],0),ie++;break;case 6:if(ce<1)return 0;for(;!(ie>=ce||(de(X,fe[ie],0),ie++,ie>=ce));)de(X,0,fe[ie]),ie++;break;case 31:if(ce<4)return 0;for(;!(ie+3>=ce||(pe(X,fe[ie],0,fe[ie+1],fe[ie+2],ce-ie==5?fe[ie+4]:0,fe[ie+3]),ie+=4,ie+3>=ce));)pe(X,0,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],ce-ie==5?fe[ie+4]:0),ie+=4;break;case 30:if(ce<4)return 0;for(;!(ie+3>=ce||(pe(X,0,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],ce-ie==5?fe[ie+4]:0),ie+=4,ie+3>=ce));)pe(X,fe[ie],0,fe[ie+1],fe[ie+2],ce-ie==5?fe[ie+4]:0,fe[ie+3]),ie+=4;break;case 8:if(ce<6)return 0;for(;ie+5<ce;ie+=6)pe(X,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],fe[ie+4],fe[ie+5]);break;case 24:if(ce<8)return 0;for(;ie+5<ce-2;ie+=6)pe(X,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],fe[ie+4],fe[ie+5]);if(ie+1>=ce)return 0;de(X,fe[ie],fe[ie+1]);break;case 25:if(ce<8)return 0;for(;ie+1<ce-6;ie+=2)de(X,fe[ie],fe[ie+1]);if(ie+5>=ce)return 0;pe(X,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],fe[ie+4],fe[ie+5]);break;case 26:case 27:if(ce<4)return 0;for(Pe=0,ce&1&&(Pe=fe[ie],ie++);ie+3<ce;ie+=4)Be==27?pe(X,fe[ie],Pe,fe[ie+1],fe[ie+2],fe[ie+3],0):pe(X,Pe,fe[ie],fe[ie+1],fe[ie+2],0,fe[ie+3]),Pe=0;break;case 10:Se||(O.fdselect.length&&(Qe=Me(O,P)),Se=1);case 29:if(ce<1||(Re=fe[--ce]|0,be>=10)||(Te[be++]=Ee,Ee=Ie(Be==10?Qe:O.gsubrs,Re),Ee.length==0))return 0;Ee.cursor=0,Oe=0;break;case 11:if(be<=0)return 0;Ee=Te[--be],Oe=0;break;case 14:return he(X),1;case 12:var Ne,je,Ve,ze,et,st,rt,De,Je,Xe,tt,dt,pt,ut,bt=d(Ee);switch(bt){case 34:if(ce<7)return 0;Ne=fe[0],je=fe[1],De=fe[2],Ve=fe[3],ze=fe[4],et=fe[5],st=fe[6],pe(X,Ne,0,je,De,Ve,0),pe(X,ze,0,et,-De,st,0);break;case 35:if(ce<13)return 0;Ne=fe[0],rt=fe[1],je=fe[2],De=fe[3],Ve=fe[4],Je=fe[5],ze=fe[6],Xe=fe[7],et=fe[8],tt=fe[9],st=fe[10],dt=fe[11],pe(X,Ne,rt,je,De,Ve,Je),pe(X,ze,Xe,et,tt,st,dt);break;case 36:if(ce<9)return 0;Ne=fe[0],rt=fe[1],je=fe[2],De=fe[3],Ve=fe[4],ze=fe[5],et=fe[6],tt=fe[7],st=fe[8],pe(X,Ne,rt,je,De,Ve,0),pe(X,ze,0,et,tt,st,-(rt+De+tt));break;case 37:if(ce<11)return 0;Ne=fe[0],rt=fe[1],je=fe[2],De=fe[3],Ve=fe[4],Je=fe[5],ze=fe[6],Xe=fe[7],et=fe[8],tt=fe[9],st=dt=fe[10],pt=Ne+je+Ve+ze+et,ut=rt+De+Je+Xe+tt,f(pt)>f(ut)?dt=-ut:st=-pt,pe(X,Ne,rt,je,De,Ve,Je),pe(X,ze,Xe,et,tt,st,dt);break;default:return 0}break;default:if(Be!=255&&Be!=28&&(Be<32||Be>254)||(Be==255?Pe=(x(Ee,4)|0)/65536:(m(Ee,-1),Pe=(k(Ee)<<16|0)>>16),ce>=48))return 0;fe[ce++]=Pe,Oe=0;break}Oe&&(ce=0)}return 0}function ue(){return{started:0,first_x:0,first_y:0,x:0,y:0,min_x:0,max_x:0,min_y:0,max_y:0,vertices:[]}}function ye(O,P){var X=ue();return ve(O,P,X)?X.vertices:null}function we(O,P,X){var se=ue(),le=ve(O,P,se);return X.x0=le?se.min_x:0,X.y0=le?se.min_y:0,X.x1=le?se.max_x:0,X.y1=le?se.max_y:0,le&&se.vertices?se.vertices.length:0}function me(O,P){return O.cff.length?ye(O,P):W(O,P)}function _e(O,P){var X=V(O.data,O.hhea+34);return P<X?{advanceWidth:$(O.data,O.hmtx+4*P),leftSideBearing:$(O.data,O.hmtx+4*P+2)}:{advanceWidth:$(O.data,O.hmtx+4*(X-1)),leftSideBearing:$(O.data,O.hmtx+4*X+2*(P-X))}}function Fe(O){return{ascent:$(O.data,O.hhea+4),descent:$(O.data,O.hhea+6),linegap:$(O.data,O.hhea+8)}}function qe(O,P,X,se,le,be){var ce={};return H(O,P,ce)?{x0:l(ce.x0*X+le),y0:l(-ce.y1*se+be),x1:h(ce.x1*X+le),y1:h(-ce.y0*se+be)}:{x0:0,y0:0,x1:0,y1:0}}function Le(O,P,X){var se=(O.x1-O.x0)/(O.y1-O.y0);return{fdx:se,fdy:se!=0?1/se:0,fx:O.x0+se*(X-O.y0)-(P|0),direction:O.invert?1:-1,sy:O.y0,ey:O.y1,next:0}}function xe(O,P,X,se,le,be,ce){P=P|0,le!=ce&&(le>X.ey||ce<X.sy||(le<X.sy&&(se+=(be-se)*(X.sy-le)/(ce-le),le=X.sy),ce>X.ey&&(be+=(be-se)*(X.ey-ce)/(ce-le),ce=X.ey),se<=P&&be<=P?O[P]+=X.direction*(ce-le):se>=P+1&&be>=P+1||(O[P]+=X.direction*(ce-le)*(1-(se-P+(be-P))/2))))}function He(O,P,X,se,le){for(var be=le+1;se;){if(se.fdx==0){var ce=se.fx;ce<X&&(ce>=0?(xe(O,ce,se,ce,le,ce,be),xe(P,ce+1,se,ce,le,ce,be)):xe(P,0,se,ce,le,ce,be))}else{var ce=se.fx,Re=se.fdx,ie=ce+Re,Be,Se,Oe,fe,Te=se.fdy;if(se.sy>le?(Be=ce+Re*(se.sy-le),Oe=se.sy):(Be=ce,Oe=le),se.ey<be?(Se=ce+Re*(se.ey-le),fe=se.ey):(Se=ie,fe=be),Be>=0&&Se>=0&&Be<X&&Se<X)if((Be|0)==(Se|0)){var Qe=fe-Oe,Ee=Be|0;O[Ee]+=se.direction*(1-(Be-Ee+(Se-Ee))/2)*Qe,P[Ee+1]+=se.direction*Qe}else{var Pe,Ee,Ne,je,Ve,ze,et,st;for(Be>Se&&(Oe=be-(Oe-le),fe=be-(fe-le),Pe=Oe,Oe=fe,fe=Pe,Pe=Se,Se=Be,Be=Pe,Re=-Re,Te=-Te,Pe=ce,ce=ie,ie=Pe),Ne=Be|0,je=Se|0,Ve=(Ne+1-ce)*Te+le,et=se.direction,st=et*(Ve-Oe),O[Ne]+=st*(1-(Be-Ne+(Ne+1-Ne))/2),ze=et*Te,Ee=Ne+1;Ee<je;++Ee)O[Ee]+=st+ze/2,st+=ze;Ve+=Te*(je-(Ne+1)),O[je]+=st+et*(1-(je-je+(Se-je))/2)*(fe-Ve),P[je+1]+=et*(fe-Oe)}else for(var Ee=0;Ee<X;++Ee){var rt=le,Ne=Ee,je=Ee+1,De=ie,Je=be,Xe=(Ee-ce)/Re+le,tt=(Ee+1-ce)/Re+le;ce<Ne&&De>je?(xe(O,Ee,se,ce,rt,Ne,Xe),xe(O,Ee,se,Ne,Xe,je,tt),xe(O,Ee,se,je,tt,De,Je)):De<Ne&&ce>je?(xe(O,Ee,se,ce,rt,je,tt),xe(O,Ee,se,je,tt,Ne,Xe),xe(O,Ee,se,Ne,Xe,De,Je)):ce<Ne&&De>Ne||De<Ne&&ce>Ne?(xe(O,Ee,se,ce,rt,Ne,Xe),xe(O,Ee,se,Ne,Xe,De,Je)):ce<je&&De>je||De<je&&ce>je?(xe(O,Ee,se,ce,rt,je,tt),xe(O,Ee,se,je,tt,De,Je)):xe(O,Ee,se,ce,rt,De,Je)}}se=se.next}}function $e(O,P,X,se,le,be){le|=0,be|=0;var ce=null,Re,ie=be,Be=0,Se,Oe=new Float32Array(O.w*2+1),fe=Oe.subarray(O.w),Te=0;for(P[X].y0=be+O.h+1;Be<O.h;){var Qe=ie+0,Ee=ie+1,Pe=ce;if(Oe.fill)Oe.fill(0);else for(var Ne=0,je=Oe.length;Ne<je;Ne++)Oe[Ne]=0;for(;Pe;)Re=Pe,Pe=Re.next,Re.ey<=Qe&&(Re.direction=0);for(;P[Te].y0<=Ee;)P[Te].y0!=P[Te].y1&&(Re=Le(P[Te],le,Qe),Re.next=ce,ce=Re),++Te;ce&&He(Oe,fe,O.w,ce,Qe);for(var Se=0,Ve=0;Se<O.w;++Se){var ze,et;Ve+=fe[Se],ze=Oe[Se]+Ve,ze=f(ze)*255+.5,et=ze>>>0,et>255&&(et=255),O.pixels[Be*O.stride+Se]=et}for(Pe=ce;Pe;)Re=Pe,Re.fx+=Re.fdx,Pe=Re.next;++ie,++Be}}function ot(O,P){for(var X=1;X<P;++X){for(var se=O[X],le=X;le>0&&se.y0<O[le-1].y0;)O[le]=O[le-1],--le;X!=le&&(O[le]=se)}}function ht(O,P,X){for(;X>12;){var se,le,be,ce,Re,ie=X>>1,Be=O[P].y0<O[P+ie].y0,Se=O[P+ie].y0<O[P+X-1].y0;for(Be!=Se&&(le=O[P].y0<O[P+X-11].y0,Re=le==Se?0:X-1,se=O[P+Re],O[P+Re]=O[P+ie],O[P+ie]=se),se=O[P],O[P]=O[P+ie],O[P+ie]=se,be=1,ce=X-1;;){for(;O[P+be].y0<O[P].y0;++be);for(;O[P].y0<O[P+ce].y0;--ce);if(be>=ce)break;se=O[P+be],O[P+be]=O[P+ce],O[P+ce]=se,++be,--ce}ce<X-be?(ht(O,P,ce),P+=be,X-=be):(ht(O,P+be,X-be),X=ce)}}function at(O,P){ht(O,0,P),ot(O,P)}function At(O,P,X,se,le,be,ce,Re,ie,Be){var Se=-le,Oe,fe,Te,Qe,Ee,Pe,Ne=1;for(fe=0,Te=0;Te<X.length;++Te)fe+=X[Te];for(Oe=p(fe+1),fe=0,Pe=0,Te=0;Te<X.length;++Te){var je=Pe;for(Pe+=X[Te],Qe=X[Te]-1,Ee=0;Ee<X[Te];Qe=Ee++){var Ve=Ee,ze=Qe;P[je+Qe].y!=P[je+Ee].y&&(Oe[fe].invert=0,P[je+Qe].y>P[je+Ee].y&&(Oe[fe].invert=1,Ve=Qe,ze=Ee),Oe[fe].x0=P[je+Ve].x*se+be,Oe[fe].y0=(P[je+Ve].y*Se+ce)*Ne,Oe[fe].x1=P[je+ze].x*se+be,Oe[fe].y1=(P[je+ze].y*Se+ce)*Ne,++fe)}}at(Oe,fe),$e(O,Oe,fe,Ne,Re,ie)}function lt(O,P,X,se,le,be,ce,Re,ie){var Be=(P+2*se+be)/4,Se=(X+2*le+ce)/4,Oe=(P+be)/2-Be,fe=(X+ce)/2-Se;return ie>16||(Oe*Oe+fe*fe>Re?(lt(O,P,X,(P+se)/2,(X+le)/2,Be,Se,Re,ie+1),lt(O,Be,Se,(se+be)/2,(le+ce)/2,be,ce,Re,ie+1)):O.push({x:be,y:ce})),1}function mt(O,P,X,se,le,be,ce,Re,ie,Be,Se){var Oe=se-P,fe=le-X,Te=be-se,Qe=ce-le,Ee=Re-be,Pe=ie-ce,Ne=Re-P,je=ie-X,Ve=u(Oe*Oe+fe*fe)+u(Te*Te+Qe*Qe)+u(Ee*Ee+Pe*Pe),ze=u(Ne*Ne+je*je),et=Ve*Ve-ze*ze;if(!(Se>16))if(et>Be){var st=(P+se)/2,rt=(X+le)/2,De=(se+be)/2,Je=(le+ce)/2,Xe=(be+Re)/2,tt=(ce+ie)/2,dt=(st+De)/2,pt=(rt+Je)/2,ut=(De+Xe)/2,bt=(Je+tt)/2,ct=(dt+ut)/2,Ot=(pt+bt)/2;mt(O,P,X,st,rt,dt,pt,ct,Ot,Be,Se+1),mt(O,ct,Ot,ut,bt,Xe,tt,Re,ie,Be,Se+1)}else O.push({x:Re,y:ie})}function Tt(O,P,X){for(var se=[],le=P*P,be=-1,ce=0,Re=0,ie=0,Be=0,Se=O.length;Be<Se;++Be)switch(O[Be].type){case a:be>=0&&(X[be]=se.length-ce),++be,ce=se.length,Re=O[Be].x,ie=O[Be].y,se.push({x:Re,y:ie});break;case i:Re=O[Be].x,ie=O[Be].y,se.push({x:Re,y:ie});break;case s:lt(se,Re,ie,O[Be].cx,O[Be].cy,O[Be].x,O[Be].y,le,0),Re=O[Be].x,ie=O[Be].y;break;case o:mt(se,Re,ie,O[Be].cx,O[Be].cy,O[Be].cx1,O[Be].cy1,O[Be].x,O[Be].y,le,0),Re=O[Be].x,ie=O[Be].y;break}return X[be]=se.length-ce,se}function It(O,P,X,se,le,be,ce,Re,ie,Be){Re|=0,ie|=0;var Se=se>le?le:se,Oe=[],fe=Tt(X,P/Se,Oe);fe&&At(O,fe,Oe,se,le,be,ce,Re,ie)}function Qt(O){var P={};if(!re(P,O,0))return null;var X=Fe(P);return P.ascent=X.ascent,P.descent=X.descent,P.linegap=X.linegap,P}function Bt(O,P,X,se){se=se||X;var le=X/O.ascent,be=se/O.ascent,ce=F(O,P);if(!ce&&P)return null;var Re=me(O,ce),ie=qe(O,ce,le,be,0,0),Be=ie.x1-ie.x0,Se=ie.y1-ie.y0,Oe=null;if(Be&&Se){var fe={pixels:Oe=new Uint8Array(Be*Se),w:Be,h:Se,stride:Be};It(fe,.35,Re,le,be,0,0,ie.x0,ie.y0)}var Te=_e(O,ce);return{glyph:ce,pixels:Oe,width:Be,height:Se,top:-ie.y0,left:ie.x0,advance:l(Te.advanceWidth*le)}}function xt(O,P,X,se){se=se||X;var le=X/O.ascent,be=se/O.ascent,ce=F(O,P);if(!ce&&P)return null;var Re=me(O,ce),ie=_e(O,ce),Be=0,Se=0,Oe=[];if(Re)for(var fe=0,Te=Re.length;fe<Te;fe++){var Qe=Re[fe],Ee;if(Qe.type==a)Ee={type:"M",x:Qe.x*le,y:Qe.y*be};else if(Qe.type==i)Ee={type:"L",x:Qe.x*le,y:Qe.y*be};else if(Qe.type==s)Ee={type:"Q",x:Qe.x*le,y:Qe.y*be,cx:Qe.cx*le,cy:Qe.cy*be};else if(Qe.type==o)Ee={type:"C",x:Qe.x*le,y:Qe.y*be,cx1:Qe.cx*le,cy1:Qe.cy*be,cx2:Qe.cx1*le,cy2:Qe.cy1*be};else continue;Ee.y>Be&&(Be=Ee.y),Ee.y<Se&&(Se=Ee.y),Oe.push(Ee)}return Oe.advance=ie.advanceWidth*le,Oe.ascent=Be,Oe.descent=Se,Oe}return{InitFont:Qt,GetGlyph:Bt,GetPaths:xt}})();function PV(a){if(typeof a=="string"){for(var i=/[^A-Za-z0-9+\/=\s]/.test(a),s=i?a:atob(a),o=s.length,v=new Uint8Array(o),b=0;b<o;b++)v[b]=s.charCodeAt(b);return v}else{if(a instanceof Uint8Array)return a;if(a instanceof ArrayBuffer)return new Uint8Array(a)}throw new ReferenceError("data must be a binary or base64 encoded string or Uint8Array")}Wa.loadFont("OCR-A",100,100,"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");Wa.loadFont("OCR-B",96,100,"AAEAAAAPAIAAAwBwRkZUTXxHn14AADmUAAAAHEdERUYAkwAEAAA4IAAAACBHUE9TuP+4/gAAOWQAAAAwR1NVQnZYZVQAADhAAAABJE9TLzJa+GPlAAABeAAAAGBjbWFwzJGg2QAAA2QAAAFCZ2FzcP//AAMAADgYAAAACGdseWbm+CwyAAAFeAAALwRoZWFkFgqHXQAAAPwAAAA2aGhlYQeFAeAAAAE0AAAAJGhtdHgIFCYVAAAB2AAAAYpsb2NhZAZYlAAABKgAAADObWF4cACtAGkAAAFYAAAAIG5hbWWukZg3AAA0fAAAAnlwb3N0tfQXywAANvgAAAEdAAEAAAACAADO4NltXw889QALA+gAAAAA2gMiKgAAAADaAyIqAA7/GQLWAwsAAAAIAAIAAAAAAAAAAQAABFL+sABaAtMAAP/9AtYAAQAAAAAAAAAAAAAAAAAAAF8AAQAAAGYAZgAFAAAAAAACAAAAAQABAAAAQAAAAAAAAAACAsMBkAAFAAACigK8AAAAjAKKArwAAAHgADEBAgAAAgAFCQAAAAAAAAAAAK8AAABoAAAAAAAAAABQZkVkAEAAIAB+AyD/OABaBFIBUAAAAAEAAAAAAiAC+QAAACAAAQLTAAAAAAAAAtMAAALTAAAC0wD1AtMAdALTAEQCvwA/Ar8APwLTAEQC0wDnAtMA0wLTAIgC0wBEAtMARALTAHIC0wBEAtMAxALTAIACvwA/AskAXgK/AFACvwA/Ar8APwK/AFkCvwA/Ar8APwK/AD8CvwA/AtMA1gLTAG8C0wBBAtMARALTAEEC0wBgAtMARAK/AEUCvwA/Ar8AbwK/AHICvwBtAr8AoAK/AEcCvwBbAr8AeAK/AFACvwBNAr8AWwK/AD8CvwBNAr8AQgK/AFsCvwBBAr8AZwK/AGECvwA/Ar8ATQK/AD4CvwA/Ar8AUwK/AFYCvwBbAtMApQLTAIAC0wBVAtMARALTAEQC0wC2Ar8ATQK/AEoCvwB1Ar8APwK/AE0CvwBhAr8AQgK/AGoCyQCDAskAZwK/AHsCyQDLAr8APwK/AE0CvwA/Ar8ASgK/AD8CvwCaAr8AZwK/AE0CvwBNAr8AQgK/AEECvwBhAr8APwK/AGEC0wBEAQwARABSAnICBgG2AA4AAAAAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAABAAEAAEAAAB+//8AAAAg////4wABAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALABiAMYBUAG6AkICYgKMArQC8gMaAzoDVgNwA5QEEgQ2BIgE2AUSBVYFngXSBjQGegaoBtwHDAcyB1oHxAhUCIQI2glACXgJrAnaCjQKYgqYCswLAgskC2QLlgvuDB4MgAzODUQNbA2eDcgOEg5ODoAOsg7WDvoPHA9ED2APgg/eECoQaBCyEPgRLBGUEdISAhJOEoASqBLyEygTVhOiE+gUIhSYFN4VGBVGFYYVvBXyFiAWbBaEFs4XDhcmF0QXaheCAAAAAgD1/7wBfQL9AA8AGwAAFzU0NjsBMhYdARQGKwEiJhMRNDYyFhURFAYiJvUbEi4SGxsSLhIbFxskGxomGhcuEhsbEi4SGxsBcgGHExobEv55EhsaAAAAAAIAdAHHAgkC/QASACMAABM1NDY7ATIXFhUwFQ8BDgEjIiYlNTQ2OwEyFxYdAQcOASMiJnQbEh0SDg4BHQIZEhEcASQbEhcRDg4ZBBYREhsB9NwSGw0MDwEC5BAXGxLcExoNDBAE5RAUGwAAAAIARP/4Ai4DAABEAEgAADc0NjsBNyMiJjQ2OwE3PgEzMhcWFQczNzYzMhYdAQcXHgEVFAYrAQczMhYUBisBBw4BIyImPQE3IwcOASMiJyY1NycuATczNyNEGhMVJicSGxoTOygDGRASDQ4liCgNHxIbIwUQFxsSFCUlExobEjopAxoPEhskhykDGRASDQ4mBRIXnoglh/4TGqcaJhqxDhUODhCosSMaEwqcAQMZERIbpxskG7YOFRsSCqK2DxQODRGsAQIaPqcAAwA///sCHwL9AEcAWABfAAA3JjU0NjMyFxYXFhczNScuAScuAjU0NzY/ATU0NjIWHQEXFhcxFhUUBiMiJyYvARUXFhcWFx4BFRQHBg8BFRQGIiY9ASMmJxMGFRQXFhcWFxYXHgIfATUTNzY1NC8BQQIbEhYVFwwYLQUEIS4cGyIWNjZSBBoiGgRpOAkbEhcOITUGBCwcHR8fHjc3UwQaIhoFlSi8YwMECAgFBgwMChwCB1YGZWQHoAUMExodIQYNBNwBChEPDyQ2IkwqKwoBCRMaGxIJAQ5SDA4SGhMsCwHFAQ4MDBYVPytNMDENAQYSGxoTBw1kAcoORQsKCggHBQUGBgUKAQKq/iABFEo8JAIAAAAABQA///gCHwMAAA0AHAAoADcARwAAJSIVFBcWHwEzMjc2NTQHJjU0NzYzMhcWFAcGIyIDIhUUFzsBMjc2NTQHJjU0NzYzMhcWFAcGIyICJjU0NwE2MzIWFRQHAQYjAaIhBQUOAQgRCQl6HyAfNzogICAgOjiuIxgBChEJB3wgISA6Nx8fHx83OycbBgGMDRQSGwb+exAYtTIPDxABAhAPEjKVKDg5KyspKXIqKQKuMikIEA8SMpUoODkrKykqcikp/hQbEw0JAq0MGxIMCv1dFwAAAAADAET/9wIuAwAAQgBOAFwAADc0PwEnJjU0NzYzMhcWFRQHDgEHDgIPARc3NjU0NjIWFRQPARcWFx4BFxYVFAYjIicmJyYnJicmJyYvAQcGKwEuATcUFzMyPwEnBwYHBhMUHwE3Njc2NTQnJiMiRF8EA0Q1NVhKNTQJChQYFxY+BASXBBUcJBs3AgICBwcHAwMbEgYFBgQDBAUCAQUGAQMEPlEGYnVafwYwKAShBRwPEBwwAwRMHiAcGyJozXJUAwRdVVQwMCgmRBsaGyMXGBMuAwPSCDRFExscEnxTAwIFCAgKCQgIEhsCAgEBBQUCAQcIAgICJwFyYnkCFwLhBB0bGwFXOEQEAzYlJx0eDgwAAAEA5wGIAY0C/QASAAATNDY7AR4BFTAVBwMGKwEiJyYn5xsSURAXARUIJCISDQ0BAtATGgIZDwEB/twlCwoRAAABANP/+AHpAwAAGQAAEzU2NzYzMhYVFAcGBwYHFRQXFhUUBiMiJybTA80LDhIbFE4sLQGoFBsSDgvQAXMG8I8IGhMXDjNKS20FvmsOGBMaB4wAAAABAIj/+AGfAwAAGAAANzQ3NjU0LwEmJyY1NDYzMhcWFRQHBiMiJogUqakBBwYGGxIOC9HRCw4SGyUYDm7AwnMBAgwMChIbCJDv7I4HGwAAAAEARACeAi4ChQAqAAATNDc2Mxc1NDYyFh0BNzE2MzIWFRQPARcWFRQGIyIvAQcGIyImNTQ/AScmRA4OEZsbJBuNBggSGyB6UAUaExQMV3AMFBMaCV6MHwG+Eg8OM54TGhsSni4DGxIgCymICwwTGguWlgsbEg0Ofy4MAAABAEQAagIuAo0AGwAAEjQ2OwE1NDYyFh0BMzIWFAYrARUUBiImPQEjIkQbEpsaJhqbEhsbEpsbJBubEgFpJhq3ExobErcbJBu4EhsaE7gAAAEAcv9NAeYAygASAAAXNDcTNjsBMhYdARQHAwYrASImcgWyDBVvEhsN/gwUHBMahgwKAS4MGhMfEwz++w0aAAABAEQBQQIuAbcADwAAEzU0NjMhMhYdARQGIyEiJkQaEwGQExoaE/5wExoBbhwTGhsSHBIbGgAAAAEAxP/7Aa0AtgAPAAA3NTQ2OwEyFh0BFAYrASImxBsSjxIbGxKPEhsoYRIbGhNhExobAAABAID/+AHyAwAAEwAANzQ3MwE+ATMyFhUUByMBDgEjIiaAAwEBGAQYDRIbAwH+6AQYDRIbJQoHAq4MEBsSCgf9UgwQGgAAAAACAD//+AIfAv8AJQBUAAAFIyYnLgEnJicmNTQ2Nz4BNz4CMzIeARceARceARUUDgUDFRQWFxYXHgE7ATI2Nz4BNz4BPQE0JicmJyYnJicmJyYnLgEjIg4CBw4BBw4BATMEOywsNA8QBQUDBgYVEhIySC4tSDITEhUGBgMEDRQmMEbFBQkIEBA4KBUcLA0OEgQFAwEBAQMDBQUICAsMDg8nGBknHhcICAoCAgMIARMSOy8vMC9AOVEvMEEhICYYGCYgIUIvL1I4KEFMOTYkFgGwUi1AJSUXGB8XFhUxHyA0Hy4fJRwdEBEXFw4ODw8ICQoLFB0SESkXFi8AAAABAF7/+wGMAv0AFQAAEiY1ND8BNjsBMhYVERQGIiY1EQcGI3gaDbcNECASGxskG4kNEQIJGxIVCp0LGxL9WBIbGhMCYXULAAABAFAABgILAwAANwAAEiY1NDc2MzIXFhUUBw4BBw4BBw4BBwYHBgcVITIWFAYjISImPQE0NzY3Njc2NzY1NCcmIyIHBiNrGxNbcVs9Pg0NISAgISMmIhgYCwsCASgTGhsS/qoSGwoRLy9EXhkcJSM0Wj4LDwJyGxEZDTw6OV0lIiMsGxsYFxkaGhkgHysFGyQbGxIVTiI8LzAuPyQkKDUhICwIAAEAP//4AhYC/AA3AAA3JjU0NjMyFxYzMjc2NzU0JyYnJiMiJjU0PwEhIiY0NjMhMhYdARQPARcWFxYdAQYHBiMiJyYnJlQVGxIGC0BGTDQ1BCAeLCs1ERoJuP7nEhsaEwFhEhsOoQhVNjUFUE5wHBwcIyMeEBgTGwQdJidKCjMkIw8OGxMSCswbJhobEiQQDrECFjs7WRBtQEADAwcIAAABAD//+wIfAv0AKAAANiY9ATQ3Ez4BMzIWFRQHAzM1NDYyFxYdATMyFhQGKwEVFAcGIiY9ASNaGwXVBBYMEhoFyMMaIg0OOhMaGxI6Dg0iGvWpGhMrCAsBzwsPGxIKCf5GeRIbDg0SeRskG4ESDQ4bEoEAAAIAWf/4AfcC/AAqAC0AABYmNDYzMjc2NTQnJiMiByMiJj0BEz4BMyEyFhQGKwEHMzIXFhUUBwYHBiMSIjN0GxsSyjsSIi1xHyAEEhsOAhkSARwTGhsS8ggTf01OFxgkYL4YAQEIGicacSIfSSU1AxkSAwD/EhgbJBydQUB+NS4vIVoBrQAAAAACAD//+AIfAv0AHwAvAAA3Jic1NDc2Nz4BNzYzMhYVFAcGDwE3NjMyFxYVFAcGIgMGFRQXFjMyNzY1NCcmIyKFQwNFHCgnNjILFBEaC3E1BwsdHm1BQkRE0AYoKilDQikrJyZJRzlBawx9ci80NT85DRsSEQ6ATQoCBkRFdGlCQgFkK0xEKCcoKENOKisAAAABAD//+wIfAvwAHwAAEiY0NjMhMhYVFAcGBwYHBhUUBiImNTQ3Njc2NzY/ASFaGxoTAYYTGjsSNDQWQRoiGkwXNDURGAkC/q8CoRsmGhsSTFkcQUIpeMETGxoU2o0pRUYaKBQHAAAAAAMAP//3Ah8DAAAVACQAQgAAEwYVFBYXHgEXOwE2NzY3PgE1NCcmIhMGFRQXFjsBMjc2NTQvAQMmNTQ/AScmNTQ3NjMyFxYVFAcGDwEXFhUUBgcjIuEmEhUUGxwCAhwODhQUEiYlUimXLSpAFDUmJ5ICrUWOBgZsQD9PTkBAHB0zBgaOdFIqZwKSFCYZJhAPEA4NCAgPECcZJhQU/s9PXjgfHyMjMF9OAv67Olx5YgQEQmtJLzAwMEg7KSghBARieU96BwACAD//+wIfAwAADwAtAAATBhUUFxYzMjc2NTQnJiMiAyY1NDc2MzIXFhUUBwYHBgcGIyImNDc2PwEHBiMixSwqKER3FQoqKUM/bURIRmJlRUYVFSZTeA0PERoOX0QFChogagJ1MENBKShJIShLLC3+tENlaEtLRkZyRzk5QpFvDBomDltuCgIEAAAAAAIA1v/7AZwCEAAPAB8AADc1NDY7ATIWHQEUBisBIiYRNTQ2OwEyFh0BFAYrASIm1hsSbBIbGxJsEhsbEmwSGxoTbBMaKFATGhsSUBIbGgF+UBMaGxJQEhsaAAAAAgBv/1IBswIQABIAIgAAFzQ/ATM2OwEyFhUUBwMGKwEiJhM1NDY7ATIWHQEUBisBIiZvA3wBCR9vEhsBzA4RKxIbexsSbBIbGhNsExqBDAf9GRsSDgP+9Q0aAidQExobElASGxoAAAABAEEARQIuArMAHQAAEy4BJyYnLgE1NDcBMDE2MzIWFRQHDQEWFRQGIyInTwEGAQECAQIOAZkLDhIbDf6hAV8NGxIOCwFcAQUBAgMECAcREAEPCBsSFwnq6g4SEhsIAAACAEQA3QIuAhsACwAXAAA2NDYzITIWFAYjISImNDYzITIWFAYjISJEGxIBkBIbGhP+cBMaGhMBkBMaGxL+cBL3JhobJBv+JhobJBsAAQBBAEUCLgKzABcAAAkBBiMiJjU0Ny0BJjU0NjMyFzAxARYVFAIg/mcLDhIbDQFf/qENGxIOCwGZDgFc/vEIGxISDurqCRcSGwj+8RAREgACAGD/vAH1AwEAOQBLAAATNTQ2NzYzMhcWHQEOAQcGBwYHBhUUBwYiJjU0NzY3Njc2NzY3NjU0JyMiJyYrAgYdARQHBiMiJyYTNTQ2OwEyFh0BFAcGKwEiJyZgPi8vNlA6OQEsHwcUFgkJDg0kGwoKCwwUFQgSEBFTAQUICgQDAW4NDRMSDQ2UGxIuEhsODRIuEg0OAjQMPFsVFTAwWAIxZCMIExQOCwsUDw8dFRoYFw4OFBUKEyIiG0IVAQIOUgkUDw4ODv3MMRUdHRUxFA8PDw8AAAIARP/yAi4DBABKAGUAADc1NDcyHwE3NjMyFxYVERY7ATY3Njc+AT0BNCYnLgEnJicmKwEGBw4BIyInJj0BNjc2NzMyFhcWFx4BHQEUBwYHBiMiLwEHBisBJjcUFxYXHgEXMzI3Njc9AiYnJiMiBwYHDgEVRIgvJwUCDhkSDQ4CHAETDQwEBQMDBQUXEBEbGyMJggsCGRETDQ0MPT9eCTpZGxsREQ0KCiMmNzYdAwQrPQiMWgEBBQQYEwYcEQ8NDRcXHBALCgMEAtIB7wIdAwUYDw8T/vk2AQwNFhUmHZgqPyYlNBcYDAwGVxIYDg8VB1ItLgMqIyM1NXBGfFsxMCInJgQDKAXWGw8QFBUVAREQHQGMARoTFAwMFhQiGAAAAAIARf/1AhoC9gAZABwAABYmPQETPgE7ATIWFxMUBwYjIiYvASMHDgEjEwMzYBufBBgOQg0XA6MODhIPGQMtyywDGQ+9T54LHRUOAp4OFREM/U0TDw8VD8PDDxUCov6qAAMAPwAGAh8C/QAhACsAOQAANiY1ETQ3NjsBMhcWFxYXHgEVFA8BFx4BHQEUBgcGBwYrARMVNzI9ASYnJiMDFRcyPQEmJyYnJicmI1obDQ0TpyQVFR4dFiwyOgQEIicnJCUvLz6nLXqyASspQZaWiAMODRgYGRkkBh0VApIWDw4BAgcIDRxiOVo4BAQeWDACMlkfHwsLAVr1AXwBPh0cATrVAWMLIRUWCwoDBAABAG//8gHwAwsARQAAEyYnNTQ2NzY3Njc2NzMyFxYXFRQHBiMiJyYnJicwMSYrAQYRFR4BFxYXFhceATMyNzY3PgEzMhcWHQEGBwYjIicmJyYnJnYGAQ0QERkYJyQvBTsuLQ0NDRITCQsICQsVHQWBAQQFBAoJDg4tHBwTFgQDGRASDQ0KLS09MiUoGBkREQD/NT8OQGw0MyUkFhYCJiY9ChQPDw0NFRYKEgf+6RIlOiMkGhoXFxoPDxoSFw8PFAo8JiYVFSQkMzMAAAACAHIABgIFAv4AFAAhAAA3JjURNDc2MzIXFhcWFRQHBgcGIyITJxE3Njc2NTQnJicmgA4NDRNmQ0M1RUhGayJLEkUGBmU5OyEgMysVDxUCkxQPDyssTmiFi19eFwcCkQH91AELQUB1UkFAKyQAAAAAAQBtAAYCEwL7ACIAADYmNRE0NzYzITIXFhQGIyEVMzIXFhQHBisBFSEyFxYUBiMhiBsNDRMBTBMNDRsS/uHvEg0ODQ0T7wEfEw0NGxL+tAYdFQKRFQ8ODg8qHdQPDykPDvUODyodAAABAKD/9QICAvoAHgAANyY1ETQ3NjMhMhcWFAYrARUzMhcWFAcGKwERFAcGIq4ODQ0TAQgTDQ0bEtuuEg0ODg0Srg4NJAQPFQKgFA8PDg8qHdQPDygPD/7KFQ8PAAEAR//xAg4DCAA+AAA3Jj0BNDc2NzYzMhcWFxYVFAYjIicmIyIHBgcGFRQXHgEzMj8BNSMiJyY0NjsBMhYVERQHDgEHDgEHBiMiJyZeFxcXLEZeExNYNwsbEhQOK0M+Kh8PEBwSTDUuMgNyEgwNGhGfEhsHCBIREhEQLC5sQivEV2MDYVNUME8DEEgOExQdETYxJD4+SWlYODoUAckODykdHRX+6Q4LDA4ICAYFDk0wAAAAAAEAW//1AgIDBAAdAAAWJjURNDc2MhYVETMRNDc2MhYVERQGIiY1ESMRFAZ2Gw4NJBvzDg0kGxskG/MbCx0VAqoVDw8dFv7lARsVDw8dFv1WFR0dFQEt/tMVHQAAAQB4AAYB5gL6ACMAADcmNDc2OwERIyInJjQ3NjsBMhcWFAcGKwERMzIXFhQHBiMhIoYODQ0TYEwSDQ4NDRPsEw0NDg0STGATDQ0ODRL+7BIVDykPDgIsDw8oDw8PDygPD/3UDg8pDw8AAAAAAQBQ//ABpQMHACMAADYmNTQzMhcWHQEGFRQXFjMyNzY1ETQ2MhYVERQXFBUUBiMiJ4Y2MBMMDQIcGiAeFRcbJBsBZ0EpJyBXN04ODxUKDAQpGhoYGS0CJBUdHRX95wMFBAJMchcAAAABAE3/9QIfAwcAHwAANyY1ETQ2MhYVEQE2MhYUBwMBFhUUBwYjIicBERQHBiJbDhskGwEUDiQbDvwBEw4ODRITDf7VDg0kBA8VAq0VHR0U/ucBOw8dKRD+3P6+ERIVDw8OAVv+yRQPDwAAAAABAFsACwIfAwcAEwAANyY1ETQ2MhYVESEyFxYUBwYjISJpDhskGwE9Ew0NDg0S/pYSGg8UApkUHR0U/ZkPDygPDwAAAAEAP//1Ah8DBAAoAAAWJjURNDY7ATIXFhcbAT4BOwEyFxYVERQGIiY1EQMGBwYjIiYnAxEUBlobGxJNDgwLBE1NAxgOTRINDhskG2wGCwoPDhcEbRsLHRUCqhYdCgsO/uUBGw4VDw8V/VYVHR0UAmv+cxAKChQPAY79lRQdAAAAAQBN//UCEQMIAB8AADcmNRE0NjsBMhYXExE0NjIWFREUBwYrASInAxEUBwYiWw4bEiUMFwXwGyQbDg0SJhwM7w4NJAQPFQKtFR0PDf3JAiMUHR0V/VMVDw8bAjf93xQPDwAAAAIAQv/yAhwDBwAeADkAADYmPQE0PgE3Njc2MzIXFhceAR0BFAYHBgcGIyInJicSBh0BFBYXFhcWMjc2Nz4BNTQmJyYnJiIHBgdkIhEmHRsoJy81LS4eHiEhHR4uLTY1LS4eLBESEREdHkgeHREREhERER0eSh8dEKuLRwM2bWcnJxcYIiE4OItJA0eLOjkjIyMjOQGdYSwELmItLx4fHx4vLWMtMWQtLR0dHh4vAAAAAgBb//UCHwL8ABUAHwAANyY1ETQ3NjsBMhcWFRQHBisBERQGIhMVMzI3NTQnJiNpDg0NE6hoQ0QmPYx7GyQ/e5AFKSdFBA8VAqEVDw85OWxRNVj+6BYdAqP1dAdEGxsAAgBB//UCHwMIACMAQwAANyY9ATQ3Njc2OwEyFxYXHgEVFA8BFxYVFAYjIi8BBwYjIicmEgYdARAzMj8BJyY1NDc2MzIfATc2NTQnJicmIyIHBgdfHh4ZMzFBCDYrKxsbHTACQwocEhYKOAQ1Oz03OTIMhSAeBGAKDQwRFwpRAxQPDyEiLiUbGw3DUYMDgk1BLy8fHzU1gUeMZAJfDxEUHg5SBC4uLwGzTS0D/tgZA4sPEBQPDw52CkFLRjs8KSkWFSUAAAIAZ//1AggC+AAkADEAABYmNRE0NzY7ARYXFhcWFxYHBgcGDwETFhUUBwYjIicDIxEUBwYTFTcyNzY3NjU0JyYjghsNDROfKiMkHx4REQEBICFCBYoFDg0SFgueWw4NG242GhoKCiUiOAsdFQKeFg8OAQoLFRUnJjRfOjobAv77ChEUDw8NAT7+6BUPDwKk9QIaGRwcLDAWFgAAAAEAYf/wAf0DBwBRAAA3Jic1NDYzMhYXFhcWMzI3NjU0JyYnLgEnLgInJicmJyYnJjU0NzY3MzIXFhcWFRQHBiInJicmJyYjIgcGFRQXFhcWFx4BFx4CFRQGBwYjIqU6ChsSERoCBiEfKTAlJAcHDg0WEw45IhoaDxAQDwgHPDxPBkcyNBECDQ0mCwwJCgobMC0jJBUTJBAjIyceHSEXZksSEkkiMk0IFB0YEi0YGCAcOxgUEw4OEQoIHxUQERARFxcdHCNSNTYCJydDCAQUDw4NDhUYChoZGSotGBgUCxITFxcWLUQpVXQOAwAAAQA///UCHwL4ABgAABMmNDc2MyEyFxYUBwYrAREUBwYiJjURIyJNDg0NEwGGEw0NDg0SmA0NIhqYEgKiDyoPDg8PKQ8P/ZQUDw8dFQJsAAABAE3/8gIRAwgAIAAANyY1ETQ2MhYVERQXFjMyNzY1ETQ2MhYVERQHBgcGIicmZRgbJBsyHzc+JCYbJBsYGCw1ojUscDY9AfMVHR0V/g1RJhcmJkEB8xUdHRX+Dj02NiAoKCAAAQA+//UCIAMGABgAADcDNDc2MzIWFxsBPgEzMhcWFQMOASsBIibjpQ4OEg8ZA5iXBhcPEg4OpwMYDkIOGhkCvBQODxUO/YACgA8UDw8T/UQPFRYAAQA///QCHwMFAC8AADcmAzU0NjIXFhcSHwE3NjsBMhcWHwE3NhM0NjMyFh0BAgMOAQcjIi8BBwYrASInJn4xDhskDQ0BCxgDPwsdEQ4LDAQ+AxkKHBIRHA4yAxkQBTQNPj8KIBsRDAwb9AHFAhQbDg8U/r+4GfUhCgsO6xjBATEUHR0TAv5G/wAOFgEw6/giCwsAAAEAU//1AgsDBgAlAAAWJj0BNDcTAyY1NDYzMhcbATYzMhcWFRQHAxMWFRQGIyInCwEGI24bBaCaBRsSFAyJgRMVEg0OBZqgBRsSFQ2NhxIWCx0VAQ8KAUYBMgwOFh0N/u0BBRsPDxUODP7O/roKDxUdDQEj/ukaAAEAVv/0AggC+QAeAAATJjU0NjMyFxsBMz4BMzIXFhUUBxUDERQGIiY1EQMwWwUbEhkPhIQBAxgMEg0OBakaIhqpArAIDxUdG/7rARULEA8PFA8IAf6l/tEUHR0UAS8BWwAAAAABAFsABgICAv4AHgAANyY1NDcBIyInJjQ3NjMhMhcWFRQHASEyFxYUBiMhImkOBQEL4BINDg0NEwEoEg0OBf73AQMTDQ0bEv6zEhUPFA4KAkkPDykPDw8QFA0K/bcPDyodAAAAAQCl//gCHQMAABUAADcRNDYzITIWFAYrAREzMhYUBiMhIialGxIBHhIbGhPx8RIbGxL+4hIbJQKuEhsbJBv9rBskGxsAAAAAAQCA//gB8gMAABQAABM0NjMyFhcBMDMWFRQGIyInATAjJoAbEgwZBAEYAQMbEh4L/ugBAwLTExoQDP1SBwoSGxwCrgcAAAAAAQBV//gBzQMAABUAADY0NjsBESMiJjQ2MyEyFhURFAYjISJVGxLx8RMaGxIBHhIbGxL+4hITJBsCVBskGxsS/VISGwABAEQBdAIuAvsAGAAAEzU0NxM2NzIXEzAxFhUUBiMiLwEHBiMiJkQHzg8QGAnNCBsSEw2pqAwTEhsBoQoOCwErCgEM/swLDhIbDbKyDRoAAAEARP8ZAi7/kAAPAAAXNDYzITIWHQEUBiMhIiY1RBsSAZASGxsS/nASG50TGhsSHRIbGhMAAAAAAQC2AgcBuQMAABIAAAEnJjU0PwE2MzIfAhYUBwYjIgFvqRALDw0XDgoDnwsLDRURAhGODRUQDRIQCQKmDh4NDwAAAAACAE3/7wH6AiAADQA/AAAlIhUUFxYXMzI/ATUjJgcmNTQ3Njc2NzY3PgE7AScmJyYjIgcGIyImNTQ3NjMyFxYVERQGIiY9AQcGIyIjJiMmAVixHRodCFZGAQUr7zQNDBkaHR0pKUQyBgEGGRo5PC4MEBMaEU9TWzU8GyQbCERPAgYFBD/3YCEVFQJ6ATAC1C9FKh8fExMMDQYGBAY/GRonCRoTFg06MjpY/sUSHBoTEwc9AQUAAAAAAgBK//ACHwMFAB4AMgAAFiY1ETQ2MhYdATc2MzIXHgEXFRQHBiMiJyYvARUUBjcVFhcWMzI3Nj0BJicmIyIHBg8BZRsbJBsIQkoYIE9fATo5aBEIRDsIGxsUKysxJSFAAiUlNxsdQCUBDRsTArcSGxoT+QY2CBV/XweBVVMBBzAGDhMa0gExJSUXLYgJQDIzDh9NAQAAAAABAHX/7gHwAhoAKgAANyY1NDc2MzIXFhcWFxUUBiMiJyYjIgcGFRQzMjc2Nz4BMzIWHQEGBwYjIuVwNTVjExQwIyMLGRMfDAw+JRg9bBIPMQsDGRASGg4yNDwwBz7NeElHAwYbGyoLExokIw0fgsoEDCsOFRsSCzckJQAAAgA///ECEwMFAB4AMQAANyY1NDc2NzYzMh8BNTQ2MhYVERQGIiYvAQcGIyInJhMGFRQXFjMyNzY3PQImJyYjImwtLy5RHBhKRggbJBsbJBoBAQc/TxocVUA/IiI9HB5MGRUpKTAoVEpvZkVEFwg1BvgSGxoT/UkUGhoRCgYxBhQBnCxuTzs8DiBQAYUBLyMjAAAAAAIATf/xAhECIAAkAC0AADcmNTQ3NjczMhcWFRQGIyEXFhcWMzI3Njc2MzIWFRQHBiMiJyYTByEnJicmIyJ2KT49ZgZoOjsbEv7EAQclJEMREh4UDBITGy0tPzMmTA8CAQQBCxwcPGNgSmhzTUwCR0dzEhwGSyssAwQVDRoTKxQVDRoBOgcGPBwdAAAAAQBh//MB/QMCACMAABImNDY7ATU0MzIWFAYjIgcGBwYdATMyFhQGKwETFAYiJjUDI3saGxJxzhIbGxIsICAJBHwSGxsSfAYaIhoFcQG7GyQbDt8bJBsPECINNw4bJBv+ZhIcGxMBmgACAEL/QgIGAhsANABJAAA3JjU0NzYzMhcWHwE3PgEzMhYVERUWHQEUBwYjIicmJyMmNTQ2MzIXFhcWMzI3Nj0BBwYjIhMGFRQXFjMyNjc2NzY/AT0BJicjIns5OjlmDwg/MgcBARsREhsBOzxhTjAwFQEDGxIUEBEKFkVbGAoIPlJfCCAfHjocMRISDAsPAStVDUJbR2t4S0sBBikGChEYGxP+UQEJDBdeNzcTEzEHCxMaFRgFCjgXLDsHNwF8L09CLC0UFBMQEBkCVgF3BgAAAQBq//MB9AMFACkAABYmNRE0NjIWHQE3NjMyFxYXFh0BFAYiJjURNCc0Jy4CIyIHBg8BERQGhRsbJBsIOUo4KioPChskGwEEBBAdFTEgHxoBGw0aFAK3ExobEvUHMSMjNyVb/RIcHBIBCxsRERUXGRMhHzMB/tQSHAAAAAIAg//zAZQDBQAQACAAABImNDY7ATIWFREUBiImNREjNiY9ATQ2OwEyFh0BFAYrAZ4bGhO0ExobJBuHeBsbEi0SGxsSLQGoGyQbGhP+SxMaGxIBiNUaEy4TGhoTLhMaAAIAZ/9JAZQDBAAPADQAAAAmPQE0NjsBMhYdARQGKwEDIj0BNDc2MzIXFjMyNzY3NjURIyImNDY7ATIWFREUBwYHBgcGASgbGxItEhsbEi10Xw4PFQQQEAoICD0UCmUSGxoTkhMaERMdHSciAnwaEy4TGhoTLhMa/M0uCREKCwECAQQtFkkBdBskGxsS/lJVJCUbGgYFAAAAAQB7//MCBQMFACEAABYmNRE0NjIWFREzNzM2MzIWFRQPARcWFRQGIyIvASMVFAaWGxskGwq7AQ0REhsOqssMGxIVC9kKGw0aFAK3ExobEv6Asg4cEhQNpOUOERIcDfTUEhsAAAEAy//5AfADBQAYAAA3JjUTNDYzMhYVAxQXFhcWMzIWFAYjIicm9CkGGhMSGwcQES8PQBIbGxJTMC48N28B9RMbGxP+Cj8iJAcCGyQbDQ4AAQA///MCHwIbADIAABYmNRE0NjMyHwE3NjMyHwE3NjMyFhURFAYiJjURJiMiBwYVERQGIiY1ESYjIgcGFREUBlobGxIXDgMEIig4JAMEKTQ2RxskGwIhHxUUGiIaAiAgFRQbDRsTAckTGxUEAxktBQUtTzX+ihIcGxMBbzEvLif+5BIcGxMBbzEwLib+5BIcAAAAAAEATf/zAhECGwAjAAAWJjURNDYyFh0BNzYzMhcWHQEUBiImNRE0JyYjIgcGBxURFAZoGxskGwhDWGUxMRskGxcXPzsoKBgbDRwSAckSGxoSFAc9Q0N3/RIcGxMA/08oKiopOwH+7xIcAAAAAAIAP//wAh8CIAAPABsAADcmNTQ3NjMyFxYVFAcGIyIDBhQXFjI3NjQnJiKAQUFAb2xCQkJBbW4BJycmkiYnJyeQPk96e09PT1B6eU9PAaA2pjU1NTWmNjYAAAAAAgBK/0gCHwIbABUAMwAANxcWMzI3NjU0JyYjIgciIzEGBwYHFQImNRE0NjIWHQE3NjMyFxYXFhUUBwYrASYvARUUBqQBPlQPFWohIUQDBAMDLyUlFUAaGyQbCD5LGSFWLS09PGkRRjoIGssBgAUdlVQ2NwEDJCMvAf4BGxICdRMbGhMLBzQIFkZHb3dNTQQxB7cTGgAAAAACAD//SAITAhsAHAAvAAA3JjU0NzYzMh8BNTQ2MhYVERQGIiY9AQcGIyInJhMGFRQXFjMyNzY3PQImJyYjIm0uryEZSz4IGyQbGiYaCD5OHBtTPT8jIzwZIEIjFygpMSNQRmvmLAg0BwsSGxsT/YsTGhsStgc0BxMBoCiBSzY4DR1VAX0BMiQlAAAAAAEAmv/zAg4CGwAnAAAWJjURNDYzMhYdATc2MzIWFxQGIiYnNCcjIicmIgcGKwEGBwYdARQGtRsbEhMaCDdPPE8BGyQaASMBAgQFBwcGAwE3ICIbDRwSAckSGxkTCwc0TTgTGxoSIggBAgIBCTg3QOUTGwAAAQBn//AB/QIgAFEAADcmNTQ2MzIXFhcWMzI3NjU0JyYnJicuAicuAScmJyYnJjU0NzY7ARYXFhcWFRQGIyImJyYnIyIHBgcGFRQXFhceARcWFxYXFhcWFRQHBgcjImwFGxITEhUJITIwIyYPDgwKFgs5GhkaGRISCQgHBzg4Uh02LC0MAhsSEBkDCEAZGxMUEhQ+Dx8gIhwdDxAREQcHOjxYCYVFCA8TGhUYBBESEyYTDg0EBQYDDwgJCQ8ODg8OFhUZTiUmAxsbLwkDEhsTDiIEAwIODxswEgQHCAsKCQwLEREWFx1SJygCAAABAE3/8wHjAqYAMQAAEiY0NjsBNzQ2MhYVBzMyFhQGKwEHFBUWFx4COwEyNzYzMhYVFAcGIyInJicmPQE3I2gbGxJSARkkGAKWEhsbEpcDAQMEDRsUAhAcGw0SGyMlNCofLxQUA1ABshslG2wUGRsSbBwkHO0aDQwTExENCgobEiAQEQwTLi9MDOsAAAEATf/wAhECGAAoAAA3Jj0BNDYzMhYdARQXFhczMjc2NzERNDYyFhURFAYiJj0BBwYrASYnJlcKGxESHBUVQwU7KCYVGyQbGyQbCEFYBEgwMYEmS/gSHBwS6lwrLQIsKz8BChMbHBL+NxIcGhMSBzsBJyYAAQBC//MCHAIYAB0AABMmNTQ2MzIXEzMTMDU+ATMyFhUUBzEDDgErASImJ0UDGxIfC5EKkQMZDhIbA54DGQ1GDhcEAdsGCRMbH/5eAaIBDBIcEgkG/jYMEhENAAABAEH/8wIeAhgAKAAANwM0NzYzMhYXEzc+ATsBMh8BEz4BMzIXFh0BAw4BKwEiLwEHBisBIiZ4Nw4OEhEZAiorAxcPLCAKKikDGRESDg44AhkRMCAJMTELHTERGhsBzxMNDhcR/qSWDRMglgFcEBgNDRAE/jEQGB+wryAYAAAAAAEAYf/zAf0CGAAjAAAWJjU0PwEnJjU0NjMyHwE3NjMyFhUUDwEXFhUUBiMiLwEHBiN8GwiMgQcbEhcJdXUNExIbB4KMCRsSGAmAgQwUDRwSDg3OxgwOExsMtbUMHBIODMbODg0SHAy/vwwAAAEAP/9JAh8CGAAjAAAWJjU0NjsBMj8BAyY1NDYzMhcbATYzMhYVFAcBMDEGBwYjIidTFBsSEBYHa78GGxITDaicDhQSGwX+zQ0dHSMNDrEZEBMaEMsBVAkNExsM/tcBKQwbEw0K/bccEhMDAAEAYQAEAgUCBwAcAAA2Jj0BNDcBIyImNDYzITIWHQEUBxUBITIWFAYjIXsaDAEU6hIbGhMBKhMaDf7zAQQSGxoT/rYEGxIjDw4BPBomGhoTKBEMAf7KGyQbAAAAAQBE//gCLgMAADQAABI0NjMyNzY9ATQ3Njc2MzIWFAYrASIHBgcGFRQPARcWFRQXFhcWMzIWFAYjIicmNTQnJiMiRBsSVhcRJiE0NmESGxoTIjUdHxEUMQUEMgcIGhd4EhsbEpAtVRYYUBMBaCYbGxQ9CmM1Lg0OGyQbBgYYGkl7JQMFMWE3Hh8RDhskGxsznzsXGAAAAAABAQz/ZAFmAwAACwAABRE0NjIWFREUBiImAQwbJBsaJhpvA0ITGhsS/L4SGxoAAAABAET/+AIuAwAAMwAANjQ2OwEyNzY3NjU0PwEnJjU0JyYnJiMiJjQ2MzIXFhcWFRQXFjsBMhYUBiMiBhUUBwYjIkQbEiE9HyIOCjIEBTENDScVYRMaGxJhNjQhJRIXUgQSGxsSUC9UK5ISEiYaCQkgGUhhMQUDJXs1HyELBxomGg4NLjNlRhUbHCQaLzufMxsAAAAAAQBSAhwCIALNACsAABM1Njc2MzIzFjMWFxYzMjc+ATMyFhUUBxUOASMiIyYjJicmIyIHMQ4BIyImUgonJzACBQQDLj4rICAIAxoPEhsCCkwwAgUEAy4+KiAgCQMZEBIbAlUKMB8fAQUvIicPFRsSAwUBMD8BBDAhJg8VGwAAAAABAnIB9QLWAq8ACwAAATU0NjIWHQEUBiImAnIeKB4eKB4CJ1YVHR4UVhQeHQAAAAABAgYB9QKgAq8ADwAAATQ2MzIfARYVFAYjIi8BJgIGHhQbCTwIHhQTET0HAn0VHQ5fDQ4UHg9eCwAAAAACAbYCVALWAwIACwAXAAABNTQ2MhYdARQGIiY3NTQ2MhYdARQGIiYBth4oHh0qHbweKB4dKh0ChkoVHR4UShQeHRVKFB4eFEoUHh4AAQAO/4cAcgK1AAsAABcRNDYyFhURFAYiJg4eKB4dKh1HAsoUHh4U/TYUHh4AAAAAAAAOAK4AAQAAAAAAAABDAIgAAQAAAAAAAQAEANYAAQAAAAAAAgAHAOsAAQAAAAAAAwApAUcAAQAAAAAABAANAY0AAQAAAAAABQAKAbEAAQAAAAAABgAEAcYAAwABBAkAAACGAAAAAwABBAkAAQAIAMwAAwABBAkAAgAOANsAAwABBAkAAwBSAPMAAwABBAkABAAaAXEAAwABBAkABQAUAZsAAwABBAkABgAIAbwATQBhAHQAdABoAGUAdwAgAFMAawBhAGwAYQAgACgAMgAwADEAMQApADsAIABiAGEAcwBlAGQAIABvAG4AIABjAG8AZABlACAAYgB5ACAATgBvAHIAYgBlAHIAdAAgAFMAYwBoAHcAYQByAHoAIAAoADEAOQA4ADYALAAgADIAMAAxADEAKQAATWF0dGhldyBTa2FsYSAoMjAxMSk7IGJhc2VkIG9uIGNvZGUgYnkgTm9yYmVydCBTY2h3YXJ6ICgxOTg2LCAyMDExKQAATwBDAFIAQgAAT0NSQgAAUgBlAGcAdQBsAGEAcgAAUmVndWxhcgAARgBvAG4AdABGAG8AcgBnAGUAIAAyAC4AMAAgADoAIABPAEMAUgAgAEIAIABSAGUAZwB1AGwAYQByACAAOgAgADIANwAtADkALQAyADAAMQAyAABGb250Rm9yZ2UgMi4wIDogT0NSIEIgUmVndWxhciA6IDI3LTktMjAxMgAATwBDAFIAIABCACAAUgBlAGcAdQBsAGEAcgAAT0NSIEIgUmVndWxhcgAAVgBlAHIAcwBpAG8AbgAgADIAIAAAVmVyc2lvbiAyIAAATwBDAFIAQgAAT0NSQgAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAAAAQACAAMABAAFAAYABwAIAAkAtwALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAtgBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQECAQMBBAEFD3F1b3Rlc2luZ2xlLmFsdAlncmF2ZS5hbHQMcXVvdGVkYmwuYWx0B2Jhci5hbHQAAAAAAAAB//8AAgABAAAADgAAABgAAAAAAAIAAQABAGUAAQAEAAAAAgAAAAEAAAAKAEAAjgACREZMVAAObGF0bgAiAAQAAAAA//8ABQAAAAEAAgADAAQABAAAAAD//wAFAAAAAQACAAMABAAFYWFsdAAgc3MwMQAmc3MwMgAsc3MwMwAyc3MwNAA4AAAAAQAAABgAAQABABYAAQACABQAAQADABIAAQAEAAABAAAAAQEAAAECAAABAwAFAAwAFAAcACQALAADAAAAAQAoAAEAAAABAFIAAQAAAAEAVgABAAAAAQBaAAEAAAABAF4AAQAmAAQADgAUABoAIAACAAUAZAACAAoAYgACAEMAYwACAF8AZQABAAQABQAKAEMAXwABAAYAIAABAAEAQwABAAYAXwABAAEABQABAAYAWAABAAEACgABAAYABgABAAEAXwABAAAACgAsAC4AAkRGTFQADmxhdG4AGAAEAAAAAP//AAAABAAAAAD//wAAAAAAAAAAAAEAAAAAzD2izwAAAADWBtqRAAAAANoDIf0=");const UV={toCanvas:TV,toSVG:RV,render:FV,raw:QV,drawingCanvas:ul,drawingSVG:Z8,fixupOptions:$8,loadFont:NV,FontLib:Wa,BWIPJS_VERSION:MV,BWIPP_VERSION:_V},qh=class qh{constructor(i,s){this.canvas=i,this.editor=s}async hookTransform(i){if(i.extensionType==="qrcode"){const s=this._paramsToOption(i.extension),{url:o,width:v,height:b}=await this._getQrCodeResult(s);if(i.src=o,v>0&&b>0){const y=i.width||0,g=i.height||0,l=i.scaleX||1,h=i.scaleY||1,u=y*l,f=g*h;u>0&&f>0&&(i.width=v,i.height=b,i.scaleX=u/v,i.scaleY=f/b)}}}async hookTransformObjectEnd({originObject:i,fabricObject:s}){i.extensionType==="qrcode"&&this.initQrcodeEvents(s)}async _getQrCodeResult(i){const s=this.canvas.getZoom()||1,o=window&&window.devicePixelRatio||1,v=(i.width||300)*s*o;let y=Math.ceil(v/35);y<2&&(y=2);const g=document.createElement("canvas"),l=i.color?.replace("#","")||"000000",h=i.bgColor?.replace("#","")||"ffffff",u=i.ecLevel||"M";try{return UV.toCanvas(g,{bcid:"qrcode",text:i.data||" ",scale:y,eclevel:u,barcolor:l,backgroundcolor:h}),{url:g.toDataURL("image/png"),width:g.width,height:g.height}}catch(f){return console.error("QR Code generation failed:",f),{url:"",width:0,height:0}}}async _getBase64Str(i){const{url:s}=await this._getQrCodeResult(i);return s}_defaultBarcodeOption(){return{value:"@hprint/print",width:300,margin:10,ecLevel:"M"}}_paramsToOption(i){const s=Number.isFinite(i.width),o=Number.isFinite(i.height),v=s&&o?Math.max(i.width,i.height):s?i.width:o?i.height:void 0;return{...i,width:v,height:v??i.width,type:"canvas",data:i.value!=null?String(i.value):void 0,margin:i.margin}}async _updateQrCodeImage(i,s=!1){const o=i.get("extension");if(!o)return;const v=async()=>{const b=i.getScaledWidth(),y=i.getScaledHeight(),g=Math.max(b,y),l={...o,width:g,height:g},h=this._paramsToOption(l);try{const u=await this._getBase64Str(h);await new Promise(f=>{i.setSrc(u,()=>{this._setImageScale(i,b,y),i.set("extension",l),this.canvas.renderAll(),f()})})}catch(u){console.error(u)}};s?await v():setTimeout(v,300)}_setImageScale(i,s,o){const v=i.width||0,b=i.height||0;if(v>0&&b>0){const y=s/v,g=o/b;i.set({scaleX:y,scaleY:g})}}initQrcodeEvents(i){i.setExtension=async s=>{const v={...i.get("extension")||{},...s||{}};i.set("extension",v),await this._updateQrCodeImage(i,!0)},i.setExtensionByUnit=async(s,o)=>{const v=Ln(this.editor),{processed:b,originByUnit:y}=u1(s||{},v,o),g=this.editor.getPrecision?.(),l=sa(y[v]||{},g),h=i._originSize||{},u=h[v]||{};u.extension={...u.extension||{},...l},i._originSize={...h,[v]:u};const p={...i.get("extension")||{},...b};i.set("extension",p),await this._updateQrCodeImage(i,!0)},i.off?.("modified"),i.off?.("scaled"),i.on("modified",async s=>{const o=s?.target||i;await this._updateQrCodeImage(o,!0)}),i.on("scaled",async()=>{await this._updateQrCodeImage(i,!0)})}async addQrCode(i,s,o){const v={...this._defaultBarcodeOption(),...s||{},...i?{value:i}:{}},b=Ln(this.editor),{processed:y,originByUnit:g}=u1(v,b,o,["left","top","width","height","margin"]),l={...v,...y},h=this._paramsToOption(l),u=await this._getBase64Str(h);return new Promise(f=>{Ce.fabric.Image.fromURL(u,p=>{const d=Number.isFinite(y.left)?y.left:0,A=Number.isFinite(y.top)?y.top:0;p.set({left:d,top:A,extensionType:"qrcode",extension:l,imageSmoothing:!1});const w=typeof l.width=="number"?l.width:p.width??0,m=typeof l.height=="number"?l.height:w;this._setImageScale(p,w,m);const C={...g[b]||{}};C.height===void 0&&C.width!==void 0&&(C.height=C.width),p._originSize={[b]:C},this.initQrcodeEvents(p),f(p)},{crossOrigin:"anonymous"})})}async setQrCode(i){try{const s=this._paramsToOption(i),o=await this._getBase64Str(s),v=this.canvas.getActiveObjects()[0];Ce.fabric.Image.fromURL(o,b=>{b.set({left:v.left,top:v.top,extensionType:"qrcode",extension:{...i}}),b.scaleToWidth(v.getScaledWidth()),this.initQrcodeEvents(b),this.editor.del(),this.canvas.add(b),this.canvas.setActiveObject(b)},{crossOrigin:"anonymous"})}catch(s){console.log(s)}}destroy(){console.log("pluginDestroy")}};qh.pluginName="QrCodePlugin",qh.apis=["addQrCode","setQrCode","initQrcodeEvents"];let Ah=qh;const Wh=class Wh{constructor(i,s){this.canvas=i,this.editor=s}addImage(i){return new Promise((s,o)=>{const v=new Image;v.crossOrigin="anonymous",v.onload=()=>s(v),v.onerror=()=>o(),v.src=i})}async imageStrokeDraw(i,s,o="source-over"){const v=this.canvas.getActiveObject();if(!v)return;const b=v.originWidth||0,y=v.originHeight||0,g=v?.originSrc||v.getSrc();let l=document.createElement("canvas");const h=l.getContext("2d");if(!h)return;if(s===0){v.setSrc(g,()=>{v.canvas?.renderAll()});return}h.save(),h.clearRect(0,0,l.width,l.height),h.restore(),l.width=b+s*2,l.height=y+s*2;const u=[-1,-1,0,-1,1,-1,-1,0,1,0,-1,1,0,1,1,1],f=await this.addImage(g);if(!f)return;for(let d=0;d<u.length;d+=2)h.drawImage(f,s+u[d]*s,s+u[d+1]*s,b,y);h.globalCompositeOperation="source-in",h.fillStyle=i,h.fillRect(0,0,b+s*2,y+s*2),h.globalCompositeOperation=o,h.drawImage(f,s,s,b,y);const p=l?.toDataURL();l=null,p&&v.setSrc(p,()=>{v.canvas?.renderAll()})}destroy(){}};Wh.pluginName="ImageStroke",Wh.apis=["imageStrokeDraw"];let mh=Wh;const Cl=class Cl{constructor(i,s){this.canvas=i,this.editor=s,this.minSize={width:1,height:1},this.barOpts={bWidth:30,bHeight:6,bPadding:10},this.hasCreatedBar=!1,this.isDragging=!1,this.dragEl=null,this.startPoints={x:0,y:0},this.barOffset={x:0,y:0},this.wsOffset={left:0,top:0,width:0,height:0},this.eventHandler={render:Bs(this.renderBars.bind(this),50),onDragging:Bs(this.onDragging.bind(this),30)},this._init(),this._initResizeObserve(),this._addListeners()}_init(){const i=document.querySelector("#workspace");if(!i)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=i}_initResizeObserve(){new ResizeObserver(Bs(()=>{this.renderBars()},50)).observe(this.workspaceEl)}renderBars(){const i=this.canvas.viewportTransform,[s,,,o,v,b]=i||[],y=this.getWorkspase(),g=y.width*s,l=y.height*o,h=y.left*s,u=y.top*o,{bWidth:f,bHeight:p,bPadding:d}=this.barOpts;if(!i)return;const A=this._getBarFromType("left");A.style.left=`${v+h-p-d}px`,A.style.top=`${b+u+l/2-f/2}px`;const w=this._getBarFromType("right");w.style.left=`${v+h+g+d}px`,w.style.top=`${b+u+l/2-f/2}px`;const m=this._getBarFromType("top");m.style.left=`${v+h+g/2-f/2}px`,m.style.top=`${b+u-p-d}px`;const x=this._getBarFromType("bottom");x.style.left=`${v+h+g/2-f/2}px`,x.style.top=`${b+u+l+d}px`,this.hasCreatedBar||(this.hasCreatedBar=!0,this._watchDrag())}_getBarFromType(i){let s=document.querySelector(`#resize-${i}-bar`);return s||(s=document.createElement("div"),s.id=`resize-${i}-bar`,s.className="resize-bar",["left","right"].includes(i)?s.classList.add("horizontal"):s.classList.add("vertical"),this.workspaceEl.appendChild(s),s)}_watchDrag(){Array.from(document.getElementsByClassName("resize-bar")).forEach(s=>{s.addEventListener("mousedown",o=>{this.isDragging=!0,this.dragEl=s,this.dragEl.classList.add("active"),this.startPoints={x:o.clientX,y:o.clientY},this.barOffset={x:s.offsetLeft,y:s.offsetTop};const v=this.getWorkspase(),{width:b,height:y,left:g,top:l}=v;this.wsOffset={width:b,height:y,left:g,top:l}})}),document.addEventListener("mousemove",this.eventHandler.onDragging),document.addEventListener("mouseup",()=>{this.isDragging&&this.dragEl&&(this.isDragging=!1,this.dragEl.classList.remove("active"),this.dragEl=null,this.canvas.defaultCursor="default")})}onDragging(i){if(this.isDragging&&this.dragEl){const s=this.getWorkspase(),o=this.canvas.viewportTransform,[v,,,b]=o||[],y=i.clientX-this.startPoints.x,g=i.clientY-this.startPoints.y,l=y/v,h=g/b,u=this.dragEl.id.split("-")[1];let f=0;switch(u){case"left":f=Math.round(this.wsOffset.width-l*2),f>=this.minSize.width?(this.dragEl.style.left=`${this.barOffset.x+y}px`,s.set("left",this.wsOffset.left+l*2),s.set("width",f),this.editor.syncOriginSizeByUnit(f,void 0)):(s.set("left",this.wsOffset.left+this.wsOffset.width-this.minSize.width),s.set("width",this.minSize.width),this.editor.syncOriginSizeByUnit(this.minSize.width,void 0));break;case"right":f=Math.round(this.wsOffset.width+l*2),f>=this.minSize.width?(this.dragEl.style.left=`${this.barOffset.x+y}px`,s.set("width",f),this.editor.syncOriginSizeByUnit(f,void 0)):(s.set("width",this.minSize.width),this.editor.syncOriginSizeByUnit(this.minSize.width,void 0));break;case"top":f=Math.round(this.wsOffset.height-h*2),f>=this.minSize.height?(this.dragEl.style.top=`${this.barOffset.y+g}px`,s.set("top",this.wsOffset.top+h*2),s.set("height",f),this.editor.syncOriginSizeByUnit(void 0,f)):(s.set("top",this.wsOffset.top+this.wsOffset.height-this.minSize.height),s.set("height",this.minSize.height),this.editor.syncOriginSizeByUnit(void 0,this.minSize.height));break;case"bottom":f=Math.round(this.wsOffset.height+h*2),f>=this.minSize.height?(this.dragEl.style.top=`${this.barOffset.y+g}px`,s.set("height",f),this.editor.syncOriginSizeByUnit(void 0,f)):(s.set("height",this.minSize.height),this.editor.syncOriginSizeByUnit(void 0,this.minSize.height));break}this.editor.setCenterFromObject(s),s.clone(A=>{this.canvas.clipPath=A,this.canvas.requestRenderAll()}),["left","right"].includes(u)?this.canvas.defaultCursor="ew-resize":this.canvas.defaultCursor="ns-resize";let p=s.width,d=s.height;this.editor.getUnit()!=="px"&&({width:p,height:d}=this.editor.getOriginSize()),this.editor.emit("sizeChange",{width:this.editor.getSizeByUnit(p),height:this.editor.getSizeByUnit(d),unit:this.editor.getUnit()})}}_addListeners(){this.canvas.on("after:render",this.eventHandler.render)}getWorkspase(){return this.canvas.getObjects().find(i=>i.id==="workspace")}destroy(){console.log("pluginDestroy")}};Cl.pluginName="ResizePlugin",Cl.events=[],Cl.apis=[];let bh=Cl;const LV="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2022C17.5228%2022%2022%2017.5228%2022%2012C22%206.47715%2017.5228%202%2012%202C6.47715%202%202%206.47715%202%2012C2%2017.5228%206.47715%2022%2012%2022Z'%20stroke='black'%20fill='white'%20stroke-opacity='0.3'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9%2011V10C9%208.34%209.5%207%2012%207C14.5%207%2015%208.34%2015%2010V11'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M12%2014.6C12.3314%2014.6%2012.6%2014.3314%2012.6%2014C12.6%2013.6687%2012.3314%2013.4%2012%2013.4C11.6686%2013.4%2011.4%2013.6687%2011.4%2014C11.4%2014.3314%2011.6686%2014.6%2012%2014.6Z'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M14.5%2017H9.5C7.5%2017%207%2016.5%207%2014.5V13.5C7%2011.5%207.5%2011%209.5%2011H14.5C16.5%2011%2017%2011.5%2017%2013.5V14.5C17%2016.5%2016.5%2017%2014.5%2017Z'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e";var Np=(a=>(a.lockMovementX="lockMovementX",a.lockMovementY="lockMovementY",a.lockRotation="lockRotation",a.lockScalingX="lockScalingX",a.lockScalingY="lockScalingY",a))(Np||{}),e5=(a=>(a.bl="bl",a.br="br",a.mb="mb",a.ml="ml",a.mr="mr",a.mt="mt",a.tl="tl",a.tr="tr",a.mtr="mtr",a.lock="lock",a))(e5||{});const Vh=class Vh{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){const i=document.createElement("img");i.src=LV;const s=this;function o(b,y,g,l,h){b.save(),b.translate(y,g);const f=h.angle;b.rotate(Ce.fabric.util.degreesToRadians(f)),b.drawImage(i,-25/2,-25/2,25,25),b.restore()}function v(b,y){return s.unLock(),!0}Ce.fabric.Object.prototype.controls.lock=new Ce.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:v,render:o}),Ce.fabric.Textbox.prototype.controls.lock=new Ce.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:v,render:o}),this.canvas.on("selection:created",()=>this.renderCornerByActiveObj()),this.canvas.on("selection:updated",()=>this.renderCornerByActiveObj()),Ce.fabric.Canvas.prototype._groupSelectedObjects=function(b){const y=this._collectObjects(b);let g;for(let l=y.length-1;l>=0;l--)y[l].lockMovementX&&y.splice(l,1);y.length===1?this.setActiveObject(y[0],b):y.length>1&&(g=new Ce.fabric.ActiveSelection(y.reverse(),{canvas:this}),this.setActiveObject(g,b))},Ce.fabric.Canvas.prototype._handleGrouping=function(b,y){const g=this._activeObject;g.__corner||y.lockMovementX||g.lockMovementX||y===g&&(y=this.findTarget(b,!0),!y||!y.selectable||y.lockMovementX)||(g&&g.type==="activeSelection"?this._updateActiveSelection(y,b):this._createActiveSelection(y,b))}}controlCornersVisible(i){const s=i.lockMovementX;Object.values(e5).forEach(o=>{o==="lock"?i.setControlVisible(o,s):i.setControlVisible(o,!s)})}renderCornerByActiveObj(){const i=this.canvas.getActiveObjects().filter(s=>!(s instanceof Ce.fabric.GuideLine));if(i&&i.length===1){const s=i[0];this.controlCornersVisible(s)}else if(i&&i.length>1){const s=this.canvas.getActiveObject();s&&this.controlCornersVisible(s)}}hookImportAfter(){return this.canvas.forEachObject(i=>{i.id!=="workspace"&&i.hasControls===!1&&i.selectable===!1&&(this.canvas.setActiveObject(i),this.lock())}),Promise.resolve()}lock(){const i=this.canvas.getActiveObject();i&&(Object.values(Np).forEach(s=>{i[s]=!0}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(Sf.ONE,[i]))}unLock(){const i=this.canvas.getActiveObject();i&&(i.hasControls=!0,i.selectable=!0,i.evented=!0,Object.values(Np).forEach(s=>{i[s]=!1}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(Sf.ONE,[i]))}contextMenu(){const i=this.editor.getSelectMode(),s=this.canvas.getActiveObject();if(i===Zh.ONE&&s)return s.selectable?[{text:"锁定",hotkey:"",onclick:()=>this.lock()}]:[{text:"解锁",hotkey:"",onclick:()=>this.unLock()}]}destroy(){console.log("pluginDestroy")}};Vh.pluginName="LockPlugin",Vh.apis=["lock","unLock"];let wh=Vh;const Xh=class Xh{constructor(i,s){this.canvas=i,this.editor=s,this.editor=s,this.canvas=i}addObject(i,s){const{event:o=!1,scale:v=!1,center:b=!0}=s||{};i.set({id:oa()}),v&&this._toScale(i),o&&this._toEvent(i,o),this.canvas.add(i),!o&&b&&this._toCenter(i),i.syncOriginSizeByUnit(["left","top"]),this.canvas.setActiveObject(i),this.canvas.renderAll(),this.editor.saveState()}_toEvent(i,s){const{left:o,top:v}=this.canvas.getSelectionElement().getBoundingClientRect();if(s.x<o||s.y<v||i.width===void 0)return;const b={x:s.x-o,y:s.y-v},y=this.canvas.restorePointerVpt(b);i.set({left:y.x,top:y.y})}_toCenter(i){this.editor.positionV2(i,"center")}_toScale(i){const{width:s}=this.editor.getWorkspase();s!==void 0&&i.scaleToWidth(s/2)}createImgByElement(i){return new Promise(s=>{this.getImageExtension(i.src)==="svg"?Ce.fabric.loadSVGFromURL(i.src,v=>{const b=Ce.fabric.util.groupSVGElements(v,{shadow:"",fontFamily:"arial",name:"svg元素"});s(b)}):Ce.fabric.Image.fromURL(i.src,v=>{s(v)},{crossOrigin:"anonymous"})})}getImageExtension(i){const s=i.split("/"),v=s[s.length-1].split(".");return v[v.length-1]}destroy(){console.log("pluginDestroy")}};Xh.pluginName="AddBaseTypePlugin",Xh.apis=["addObject","createImgByElement"];let yh=Xh;const os=Object.create(null);os.open="0";os.close="1";os.ping="2";os.pong="3";os.message="4";os.upgrade="5";os.noop="6";const Cf=Object.create(null);Object.keys(os).forEach(a=>{Cf[os[a]]=a});const Pp={type:"error",data:"parser error"},t5=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",r5=typeof ArrayBuffer=="function",i5=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a&&a.buffer instanceof ArrayBuffer,d3=({type:a,data:i},s,o)=>t5&&i instanceof Blob?s?o(i):vw(i,o):r5&&(i instanceof ArrayBuffer||i5(i))?s?o(i):vw(new Blob([i]),o):o(os[a]+(i||"")),vw=(a,i)=>{const s=new FileReader;return s.onload=function(){const o=s.result.split(",")[1];i("b"+(o||""))},s.readAsDataURL(a)};function Aw(a){return a instanceof Uint8Array?a:a instanceof ArrayBuffer?new Uint8Array(a):new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}let Jd;function GV(a,i){if(t5&&a.data instanceof Blob)return a.data.arrayBuffer().then(Aw).then(i);if(r5&&(a.data instanceof ArrayBuffer||i5(a.data)))return i(Aw(a.data));d3(a,!1,s=>{Jd||(Jd=new TextEncoder),i(Jd.encode(s))})}const mw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",dl=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let a=0;a<mw.length;a++)dl[mw.charCodeAt(a)]=a;const YV=a=>{let i=a.length*.75,s=a.length,o,v=0,b,y,g,l;a[a.length-1]==="="&&(i--,a[a.length-2]==="="&&i--);const h=new ArrayBuffer(i),u=new Uint8Array(h);for(o=0;o<s;o+=4)b=dl[a.charCodeAt(o)],y=dl[a.charCodeAt(o+1)],g=dl[a.charCodeAt(o+2)],l=dl[a.charCodeAt(o+3)],u[v++]=b<<2|y>>4,u[v++]=(y&15)<<4|g>>2,u[v++]=(g&3)<<6|l&63;return h},HV=typeof ArrayBuffer=="function",p3=(a,i)=>{if(typeof a!="string")return{type:"message",data:n5(a,i)};const s=a.charAt(0);return s==="b"?{type:"message",data:zV(a.substring(1),i)}:Cf[s]?a.length>1?{type:Cf[s],data:a.substring(1)}:{type:Cf[s]}:Pp},zV=(a,i)=>{if(HV){const s=YV(a);return n5(s,i)}else return{base64:!0,data:a}},n5=(a,i)=>{switch(i){case"blob":return a instanceof Blob?a:new Blob([a]);case"arraybuffer":default:return a instanceof ArrayBuffer?a:a.buffer}},a5="",qV=(a,i)=>{const s=a.length,o=new Array(s);let v=0;a.forEach((b,y)=>{d3(b,!1,g=>{o[y]=g,++v===s&&i(o.join(a5))})})},WV=(a,i)=>{const s=a.split(a5),o=[];for(let v=0;v<s.length;v++){const b=p3(s[v],i);if(o.push(b),b.type==="error")break}return o};function VV(){return new TransformStream({transform(a,i){GV(a,s=>{const o=s.length;let v;if(o<126)v=new Uint8Array(1),new DataView(v.buffer).setUint8(0,o);else if(o<65536){v=new Uint8Array(3);const b=new DataView(v.buffer);b.setUint8(0,126),b.setUint16(1,o)}else{v=new Uint8Array(9);const b=new DataView(v.buffer);b.setUint8(0,127),b.setBigUint64(1,BigInt(o))}a.data&&typeof a.data!="string"&&(v[0]|=128),i.enqueue(v),i.enqueue(s)})}})}let Kd;function df(a){return a.reduce((i,s)=>i+s.length,0)}function pf(a,i){if(a[0].length===i)return a.shift();const s=new Uint8Array(i);let o=0;for(let v=0;v<i;v++)s[v]=a[0][o++],o===a[0].length&&(a.shift(),o=0);return a.length&&o<a[0].length&&(a[0]=a[0].slice(o)),s}function XV(a,i){Kd||(Kd=new TextDecoder);const s=[];let o=0,v=-1,b=!1;return new TransformStream({transform(y,g){for(s.push(y);;){if(o===0){if(df(s)<1)break;const l=pf(s,1);b=(l[0]&128)===128,v=l[0]&127,v<126?o=3:v===126?o=1:o=2}else if(o===1){if(df(s)<2)break;const l=pf(s,2);v=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),o=3}else if(o===2){if(df(s)<8)break;const l=pf(s,8),h=new DataView(l.buffer,l.byteOffset,l.length),u=h.getUint32(0);if(u>Math.pow(2,21)-1){g.enqueue(Pp);break}v=u*Math.pow(2,32)+h.getUint32(4),o=3}else{if(df(s)<v)break;const l=pf(s,v);g.enqueue(p3(b?l:Kd.decode(l),i)),o=0}if(v===0||v>a){g.enqueue(Pp);break}}}})}const s5=4;function Xn(a){if(a)return $V(a)}function $V(a){for(var i in Xn.prototype)a[i]=Xn.prototype[i];return a}Xn.prototype.on=Xn.prototype.addEventListener=function(a,i){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(i),this};Xn.prototype.once=function(a,i){function s(){this.off(a,s),i.apply(this,arguments)}return s.fn=i,this.on(a,s),this};Xn.prototype.off=Xn.prototype.removeListener=Xn.prototype.removeAllListeners=Xn.prototype.removeEventListener=function(a,i){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var s=this._callbacks["$"+a];if(!s)return this;if(arguments.length==1)return delete this._callbacks["$"+a],this;for(var o,v=0;v<s.length;v++)if(o=s[v],o===i||o.fn===i){s.splice(v,1);break}return s.length===0&&delete this._callbacks["$"+a],this};Xn.prototype.emit=function(a){this._callbacks=this._callbacks||{};for(var i=new Array(arguments.length-1),s=this._callbacks["$"+a],o=1;o<arguments.length;o++)i[o-1]=arguments[o];if(s){s=s.slice(0);for(var o=0,v=s.length;o<v;++o)s[o].apply(this,i)}return this};Xn.prototype.emitReserved=Xn.prototype.emit;Xn.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]};Xn.prototype.hasListeners=function(a){return!!this.listeners(a).length};const Hu=typeof Promise=="function"&&typeof Promise.resolve=="function"?i=>Promise.resolve().then(i):(i,s)=>s(i,0),w1=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),JV="arraybuffer";function o5(a,...i){return i.reduce((s,o)=>(a.hasOwnProperty(o)&&(s[o]=a[o]),s),{})}const KV=w1.setTimeout,ZV=w1.clearTimeout;function zu(a,i){i.useNativeTimers?(a.setTimeoutFn=KV.bind(w1),a.clearTimeoutFn=ZV.bind(w1)):(a.setTimeoutFn=w1.setTimeout.bind(w1),a.clearTimeoutFn=w1.clearTimeout.bind(w1))}const eX=1.33;function tX(a){return typeof a=="string"?rX(a):Math.ceil((a.byteLength||a.size)*eX)}function rX(a){let i=0,s=0;for(let o=0,v=a.length;o<v;o++)i=a.charCodeAt(o),i<128?s+=1:i<2048?s+=2:i<55296||i>=57344?s+=3:(o++,s+=4);return s}function c5(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function iX(a){let i="";for(let s in a)a.hasOwnProperty(s)&&(i.length&&(i+="&"),i+=encodeURIComponent(s)+"="+encodeURIComponent(a[s]));return i}function nX(a){let i={},s=a.split("&");for(let o=0,v=s.length;o<v;o++){let b=s[o].split("=");i[decodeURIComponent(b[0])]=decodeURIComponent(b[1])}return i}class aX extends Error{constructor(i,s,o){super(i),this.description=s,this.context=o,this.type="TransportError"}}class g3 extends Xn{constructor(i){super(),this.writable=!1,zu(this,i),this.opts=i,this.query=i.query,this.socket=i.socket,this.supportsBinary=!i.forceBase64}onError(i,s,o){return super.emitReserved("error",new aX(i,s,o)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(i){this.readyState==="open"&&this.write(i)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(i){const s=p3(i,this.socket.binaryType);this.onPacket(s)}onPacket(i){super.emitReserved("packet",i)}onClose(i){this.readyState="closed",super.emitReserved("close",i)}pause(i){}createUri(i,s={}){return i+"://"+this._hostname()+this._port()+this.opts.path+this._query(s)}_hostname(){const i=this.opts.hostname;return i.indexOf(":")===-1?i:"["+i+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(i){const s=iX(i);return s.length?"?"+s:""}}class sX extends g3{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(i){this.readyState="pausing";const s=()=>{this.readyState="paused",i()};if(this._polling||!this.writable){let o=0;this._polling&&(o++,this.once("pollComplete",function(){--o||s()})),this.writable||(o++,this.once("drain",function(){--o||s()}))}else s()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(i){const s=o=>{if(this.readyState==="opening"&&o.type==="open"&&this.onOpen(),o.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(o)};WV(i,this.socket.binaryType).forEach(s),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const i=()=>{this.write([{type:"close"}])};this.readyState==="open"?i():this.once("open",i)}write(i){this.writable=!1,qV(i,s=>{this.doWrite(s,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const i=this.opts.secure?"https":"http",s=this.query||{};return this.opts.timestampRequests!==!1&&(s[this.opts.timestampParam]=c5()),!this.supportsBinary&&!s.sid&&(s.b64=1),this.createUri(i,s)}}let l5=!1;try{l5=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const oX=l5;function cX(){}class lX extends sX{constructor(i){if(super(i),typeof location<"u"){const s=location.protocol==="https:";let o=location.port;o||(o=s?"443":"80"),this.xd=typeof location<"u"&&i.hostname!==location.hostname||o!==i.port}}doWrite(i,s){const o=this.request({method:"POST",data:i});o.on("success",s),o.on("error",(v,b)=>{this.onError("xhr post error",v,b)})}doPoll(){const i=this.request();i.on("data",this.onData.bind(this)),i.on("error",(s,o)=>{this.onError("xhr poll error",s,o)}),this.pollXhr=i}}class ns extends Xn{constructor(i,s,o){super(),this.createRequest=i,zu(this,o),this._opts=o,this._method=o.method||"GET",this._uri=s,this._data=o.data!==void 0?o.data:null,this._create()}_create(){var i;const s=o5(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");s.xdomain=!!this._opts.xd;const o=this._xhr=this.createRequest(s);try{o.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){o.setDisableHeaderCheck&&o.setDisableHeaderCheck(!0);for(let v in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(v)&&o.setRequestHeader(v,this._opts.extraHeaders[v])}}catch{}if(this._method==="POST")try{o.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{o.setRequestHeader("Accept","*/*")}catch{}(i=this._opts.cookieJar)===null||i===void 0||i.addCookies(o),"withCredentials"in o&&(o.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(o.timeout=this._opts.requestTimeout),o.onreadystatechange=()=>{var v;o.readyState===3&&((v=this._opts.cookieJar)===null||v===void 0||v.parseCookies(o.getResponseHeader("set-cookie"))),o.readyState===4&&(o.status===200||o.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof o.status=="number"?o.status:0)},0))},o.send(this._data)}catch(v){this.setTimeoutFn(()=>{this._onError(v)},0);return}typeof document<"u"&&(this._index=ns.requestsCount++,ns.requests[this._index]=this)}_onError(i){this.emitReserved("error",i,this._xhr),this._cleanup(!0)}_cleanup(i){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=cX,i)try{this._xhr.abort()}catch{}typeof document<"u"&&delete ns.requests[this._index],this._xhr=null}}_onLoad(){const i=this._xhr.responseText;i!==null&&(this.emitReserved("data",i),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}ns.requestsCount=0;ns.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",bw);else if(typeof addEventListener=="function"){const a="onpagehide"in w1?"pagehide":"unload";addEventListener(a,bw,!1)}}function bw(){for(let a in ns.requests)ns.requests.hasOwnProperty(a)&&ns.requests[a].abort()}const fX=(function(){const a=f5({xdomain:!1});return a&&a.responseType!==null})();class hX extends lX{constructor(i){super(i);const s=i&&i.forceBase64;this.supportsBinary=fX&&!s}request(i={}){return Object.assign(i,{xd:this.xd},this.opts),new ns(f5,this.uri(),i)}}function f5(a){const i=a.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!i||oX))return new XMLHttpRequest}catch{}if(!i)try{return new w1[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const h5=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class uX extends g3{get name(){return"websocket"}doOpen(){const i=this.uri(),s=this.opts.protocols,o=h5?{}:o5(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(o.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(i,s,o)}catch(v){return this.emitReserved("error",v)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=i=>this.onClose({description:"websocket connection closed",context:i}),this.ws.onmessage=i=>this.onData(i.data),this.ws.onerror=i=>this.onError("websocket error",i)}write(i){this.writable=!1;for(let s=0;s<i.length;s++){const o=i[s],v=s===i.length-1;d3(o,this.supportsBinary,b=>{try{this.doWrite(o,b)}catch{}v&&Hu(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const i=this.opts.secure?"wss":"ws",s=this.query||{};return this.opts.timestampRequests&&(s[this.opts.timestampParam]=c5()),this.supportsBinary||(s.b64=1),this.createUri(i,s)}}const Zd=w1.WebSocket||w1.MozWebSocket;class dX extends uX{createSocket(i,s,o){return h5?new Zd(i,s,o):s?new Zd(i,s):new Zd(i)}doWrite(i,s){this.ws.send(s)}}class pX extends g3{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(i){return this.emitReserved("error",i)}this._transport.closed.then(()=>{this.onClose()}).catch(i=>{this.onError("webtransport error",i)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(i=>{const s=XV(Number.MAX_SAFE_INTEGER,this.socket.binaryType),o=i.readable.pipeThrough(s).getReader(),v=VV();v.readable.pipeTo(i.writable),this._writer=v.writable.getWriter();const b=()=>{o.read().then(({done:g,value:l})=>{g||(this.onPacket(l),b())}).catch(g=>{})};b();const y={type:"open"};this.query.sid&&(y.data=`{"sid":"${this.query.sid}"}`),this._writer.write(y).then(()=>this.onOpen())})})}write(i){this.writable=!1;for(let s=0;s<i.length;s++){const o=i[s],v=s===i.length-1;this._writer.write(o).then(()=>{v&&Hu(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var i;(i=this._transport)===null||i===void 0||i.close()}}const gX={websocket:dX,webtransport:pX,polling:hX},vX=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,AX=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Up(a){if(a.length>8e3)throw"URI too long";const i=a,s=a.indexOf("["),o=a.indexOf("]");s!=-1&&o!=-1&&(a=a.substring(0,s)+a.substring(s,o).replace(/:/g,";")+a.substring(o,a.length));let v=vX.exec(a||""),b={},y=14;for(;y--;)b[AX[y]]=v[y]||"";return s!=-1&&o!=-1&&(b.source=i,b.host=b.host.substring(1,b.host.length-1).replace(/;/g,":"),b.authority=b.authority.replace("[","").replace("]","").replace(/;/g,":"),b.ipv6uri=!0),b.pathNames=mX(b,b.path),b.queryKey=bX(b,b.query),b}function mX(a,i){const s=/\/{2,9}/g,o=i.replace(s,"/").split("/");return(i.slice(0,1)=="/"||i.length===0)&&o.splice(0,1),i.slice(-1)=="/"&&o.splice(o.length-1,1),o}function bX(a,i){const s={};return i.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(o,v,b){v&&(s[v]=b)}),s}const Lp=typeof addEventListener=="function"&&typeof removeEventListener=="function",If=[];Lp&&addEventListener("offline",()=>{If.forEach(a=>a())},!1);class Vs extends Xn{constructor(i,s){if(super(),this.binaryType=JV,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,i&&typeof i=="object"&&(s=i,i=null),i){const o=Up(i);s.hostname=o.host,s.secure=o.protocol==="https"||o.protocol==="wss",s.port=o.port,o.query&&(s.query=o.query)}else s.host&&(s.hostname=Up(s.host).host);zu(this,s),this.secure=s.secure!=null?s.secure:typeof location<"u"&&location.protocol==="https:",s.hostname&&!s.port&&(s.port=this.secure?"443":"80"),this.hostname=s.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=s.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},s.transports.forEach(o=>{const v=o.prototype.name;this.transports.push(v),this._transportsByName[v]=o}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},s),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=nX(this.opts.query)),Lp&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},If.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(i){const s=Object.assign({},this.opts.query);s.EIO=s5,s.transport=i,this.id&&(s.sid=this.id);const o=Object.assign({},this.opts,{query:s,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[i]);return new this._transportsByName[i](o)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const i=this.opts.rememberUpgrade&&Vs.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const s=this.createTransport(i);s.open(),this.setTransport(s)}setTransport(i){this.transport&&this.transport.removeAllListeners(),this.transport=i,i.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",s=>this._onClose("transport close",s))}onOpen(){this.readyState="open",Vs.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(i){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",i),this.emitReserved("heartbeat"),i.type){case"open":this.onHandshake(JSON.parse(i.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const s=new Error("server error");s.code=i.data,this._onError(s);break;case"message":this.emitReserved("data",i.data),this.emitReserved("message",i.data);break}}onHandshake(i){this.emitReserved("handshake",i),this.id=i.sid,this.transport.query.sid=i.sid,this._pingInterval=i.pingInterval,this._pingTimeout=i.pingTimeout,this._maxPayload=i.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const i=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+i,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},i),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const i=this._getWritablePackets();this.transport.send(i),this._prevBufferLen=i.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let s=1;for(let o=0;o<this.writeBuffer.length;o++){const v=this.writeBuffer[o].data;if(v&&(s+=tX(v)),o>0&&s>this._maxPayload)return this.writeBuffer.slice(0,o);s+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const i=Date.now()>this._pingTimeoutTime;return i&&(this._pingTimeoutTime=0,Hu(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),i}write(i,s,o){return this._sendPacket("message",i,s,o),this}send(i,s,o){return this._sendPacket("message",i,s,o),this}_sendPacket(i,s,o,v){if(typeof s=="function"&&(v=s,s=void 0),typeof o=="function"&&(v=o,o=null),this.readyState==="closing"||this.readyState==="closed")return;o=o||{},o.compress=o.compress!==!1;const b={type:i,data:s,options:o};this.emitReserved("packetCreate",b),this.writeBuffer.push(b),v&&this.once("flush",v),this.flush()}close(){const i=()=>{this._onClose("forced close"),this.transport.close()},s=()=>{this.off("upgrade",s),this.off("upgradeError",s),i()},o=()=>{this.once("upgrade",s),this.once("upgradeError",s)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?o():i()}):this.upgrading?o():i()),this}_onError(i){if(Vs.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",i),this._onClose("transport error",i)}_onClose(i,s){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Lp&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const o=If.indexOf(this._offlineEventListener);o!==-1&&If.splice(o,1)}this.readyState="closed",this.id=null,this.emitReserved("close",i,s),this.writeBuffer=[],this._prevBufferLen=0}}}Vs.protocol=s5;class wX extends Vs{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let i=0;i<this._upgrades.length;i++)this._probe(this._upgrades[i])}_probe(i){let s=this.createTransport(i),o=!1;Vs.priorWebsocketSuccess=!1;const v=()=>{o||(s.send([{type:"ping",data:"probe"}]),s.once("packet",f=>{if(!o)if(f.type==="pong"&&f.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",s),!s)return;Vs.priorWebsocketSuccess=s.name==="websocket",this.transport.pause(()=>{o||this.readyState!=="closed"&&(u(),this.setTransport(s),s.send([{type:"upgrade"}]),this.emitReserved("upgrade",s),s=null,this.upgrading=!1,this.flush())})}else{const p=new Error("probe error");p.transport=s.name,this.emitReserved("upgradeError",p)}}))};function b(){o||(o=!0,u(),s.close(),s=null)}const y=f=>{const p=new Error("probe error: "+f);p.transport=s.name,b(),this.emitReserved("upgradeError",p)};function g(){y("transport closed")}function l(){y("socket closed")}function h(f){s&&f.name!==s.name&&b()}const u=()=>{s.removeListener("open",v),s.removeListener("error",y),s.removeListener("close",g),this.off("close",l),this.off("upgrading",h)};s.once("open",v),s.once("error",y),s.once("close",g),this.once("close",l),this.once("upgrading",h),this._upgrades.indexOf("webtransport")!==-1&&i!=="webtransport"?this.setTimeoutFn(()=>{o||s.open()},200):s.open()}onHandshake(i){this._upgrades=this._filterUpgrades(i.upgrades),super.onHandshake(i)}_filterUpgrades(i){const s=[];for(let o=0;o<i.length;o++)~this.transports.indexOf(i[o])&&s.push(i[o]);return s}}let yX=class extends wX{constructor(i,s={}){const o=typeof i=="object"?i:s;(!o.transports||o.transports&&typeof o.transports[0]=="string")&&(o.transports=(o.transports||["polling","websocket","webtransport"]).map(v=>gX[v]).filter(v=>!!v)),super(i,o)}};function xX(a,i="",s){let o=a;s=s||typeof location<"u"&&location,a==null&&(a=s.protocol+"//"+s.host),typeof a=="string"&&(a.charAt(0)==="/"&&(a.charAt(1)==="/"?a=s.protocol+a:a=s.host+a),/^(https?|wss?):\/\//.test(a)||(typeof s<"u"?a=s.protocol+"//"+a:a="https://"+a),o=Up(a)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";const b=o.host.indexOf(":")!==-1?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+b+":"+o.port+i,o.href=o.protocol+"://"+b+(s&&s.port===o.port?"":":"+o.port),o}const CX=typeof ArrayBuffer=="function",IX=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a.buffer instanceof ArrayBuffer,u5=Object.prototype.toString,EX=typeof Blob=="function"||typeof Blob<"u"&&u5.call(Blob)==="[object BlobConstructor]",BX=typeof File=="function"||typeof File<"u"&&u5.call(File)==="[object FileConstructor]";function v3(a){return CX&&(a instanceof ArrayBuffer||IX(a))||EX&&a instanceof Blob||BX&&a instanceof File}function Ef(a,i){if(!a||typeof a!="object")return!1;if(Array.isArray(a)){for(let s=0,o=a.length;s<o;s++)if(Ef(a[s]))return!0;return!1}if(v3(a))return!0;if(a.toJSON&&typeof a.toJSON=="function"&&arguments.length===1)return Ef(a.toJSON(),!0);for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)&&Ef(a[s]))return!0;return!1}function SX(a){const i=[],s=a.data,o=a;return o.data=Gp(s,i),o.attachments=i.length,{packet:o,buffers:i}}function Gp(a,i){if(!a)return a;if(v3(a)){const s={_placeholder:!0,num:i.length};return i.push(a),s}else if(Array.isArray(a)){const s=new Array(a.length);for(let o=0;o<a.length;o++)s[o]=Gp(a[o],i);return s}else if(typeof a=="object"&&!(a instanceof Date)){const s={};for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&(s[o]=Gp(a[o],i));return s}return a}function kX(a,i){return a.data=Yp(a.data,i),delete a.attachments,a}function Yp(a,i){if(!a)return a;if(a&&a._placeholder===!0){if(typeof a.num=="number"&&a.num>=0&&a.num<i.length)return i[a.num];throw new Error("illegal attachments")}else if(Array.isArray(a))for(let s=0;s<a.length;s++)a[s]=Yp(a[s],i);else if(typeof a=="object")for(const s in a)Object.prototype.hasOwnProperty.call(a,s)&&(a[s]=Yp(a[s],i));return a}const _X=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],MX=5;var Jr;(function(a){a[a.CONNECT=0]="CONNECT",a[a.DISCONNECT=1]="DISCONNECT",a[a.EVENT=2]="EVENT",a[a.ACK=3]="ACK",a[a.CONNECT_ERROR=4]="CONNECT_ERROR",a[a.BINARY_EVENT=5]="BINARY_EVENT",a[a.BINARY_ACK=6]="BINARY_ACK"})(Jr||(Jr={}));class TX{constructor(i){this.replacer=i}encode(i){return(i.type===Jr.EVENT||i.type===Jr.ACK)&&Ef(i)?this.encodeAsBinary({type:i.type===Jr.EVENT?Jr.BINARY_EVENT:Jr.BINARY_ACK,nsp:i.nsp,data:i.data,id:i.id}):[this.encodeAsString(i)]}encodeAsString(i){let s=""+i.type;return(i.type===Jr.BINARY_EVENT||i.type===Jr.BINARY_ACK)&&(s+=i.attachments+"-"),i.nsp&&i.nsp!=="/"&&(s+=i.nsp+","),i.id!=null&&(s+=i.id),i.data!=null&&(s+=JSON.stringify(i.data,this.replacer)),s}encodeAsBinary(i){const s=SX(i),o=this.encodeAsString(s.packet),v=s.buffers;return v.unshift(o),v}}function ww(a){return Object.prototype.toString.call(a)==="[object Object]"}class A3 extends Xn{constructor(i){super(),this.reviver=i}add(i){let s;if(typeof i=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");s=this.decodeString(i);const o=s.type===Jr.BINARY_EVENT;o||s.type===Jr.BINARY_ACK?(s.type=o?Jr.EVENT:Jr.ACK,this.reconstructor=new OX(s),s.attachments===0&&super.emitReserved("decoded",s)):super.emitReserved("decoded",s)}else if(v3(i)||i.base64)if(this.reconstructor)s=this.reconstructor.takeBinaryData(i),s&&(this.reconstructor=null,super.emitReserved("decoded",s));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+i)}decodeString(i){let s=0;const o={type:Number(i.charAt(0))};if(Jr[o.type]===void 0)throw new Error("unknown packet type "+o.type);if(o.type===Jr.BINARY_EVENT||o.type===Jr.BINARY_ACK){const b=s+1;for(;i.charAt(++s)!=="-"&&s!=i.length;);const y=i.substring(b,s);if(y!=Number(y)||i.charAt(s)!=="-")throw new Error("Illegal attachments");o.attachments=Number(y)}if(i.charAt(s+1)==="/"){const b=s+1;for(;++s&&!(i.charAt(s)===","||s===i.length););o.nsp=i.substring(b,s)}else o.nsp="/";const v=i.charAt(s+1);if(v!==""&&Number(v)==v){const b=s+1;for(;++s;){const y=i.charAt(s);if(y==null||Number(y)!=y){--s;break}if(s===i.length)break}o.id=Number(i.substring(b,s+1))}if(i.charAt(++s)){const b=this.tryParse(i.substr(s));if(A3.isPayloadValid(o.type,b))o.data=b;else throw new Error("invalid payload")}return o}tryParse(i){try{return JSON.parse(i,this.reviver)}catch{return!1}}static isPayloadValid(i,s){switch(i){case Jr.CONNECT:return ww(s);case Jr.DISCONNECT:return s===void 0;case Jr.CONNECT_ERROR:return typeof s=="string"||ww(s);case Jr.EVENT:case Jr.BINARY_EVENT:return Array.isArray(s)&&(typeof s[0]=="number"||typeof s[0]=="string"&&_X.indexOf(s[0])===-1);case Jr.ACK:case Jr.BINARY_ACK:return Array.isArray(s)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class OX{constructor(i){this.packet=i,this.buffers=[],this.reconPack=i}takeBinaryData(i){if(this.buffers.push(i),this.buffers.length===this.reconPack.attachments){const s=kX(this.reconPack,this.buffers);return this.finishedReconstruction(),s}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const RX=Object.freeze(Object.defineProperty({__proto__:null,Decoder:A3,Encoder:TX,get PacketType(){return Jr},protocol:MX},Symbol.toStringTag,{value:"Module"}));function j1(a,i,s){return a.on(i,s),function(){a.off(i,s)}}const DX=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class d5 extends Xn{constructor(i,s,o){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=i,this.nsp=s,o&&o.auth&&(this.auth=o.auth),this._opts=Object.assign({},o),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const i=this.io;this.subs=[j1(i,"open",this.onopen.bind(this)),j1(i,"packet",this.onpacket.bind(this)),j1(i,"error",this.onerror.bind(this)),j1(i,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...i){return i.unshift("message"),this.emit.apply(this,i),this}emit(i,...s){var o,v,b;if(DX.hasOwnProperty(i))throw new Error('"'+i.toString()+'" is a reserved event name');if(s.unshift(i),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(s),this;const y={type:Jr.EVENT,data:s};if(y.options={},y.options.compress=this.flags.compress!==!1,typeof s[s.length-1]=="function"){const u=this.ids++,f=s.pop();this._registerAckCallback(u,f),y.id=u}const g=(v=(o=this.io.engine)===null||o===void 0?void 0:o.transport)===null||v===void 0?void 0:v.writable,l=this.connected&&!(!((b=this.io.engine)===null||b===void 0)&&b._hasPingExpired());return this.flags.volatile&&!g||(l?(this.notifyOutgoingListeners(y),this.packet(y)):this.sendBuffer.push(y)),this.flags={},this}_registerAckCallback(i,s){var o;const v=(o=this.flags.timeout)!==null&&o!==void 0?o:this._opts.ackTimeout;if(v===void 0){this.acks[i]=s;return}const b=this.io.setTimeoutFn(()=>{delete this.acks[i];for(let g=0;g<this.sendBuffer.length;g++)this.sendBuffer[g].id===i&&this.sendBuffer.splice(g,1);s.call(this,new Error("operation has timed out"))},v),y=(...g)=>{this.io.clearTimeoutFn(b),s.apply(this,g)};y.withError=!0,this.acks[i]=y}emitWithAck(i,...s){return new Promise((o,v)=>{const b=(y,g)=>y?v(y):o(g);b.withError=!0,s.push(b),this.emit(i,...s)})}_addToQueue(i){let s;typeof i[i.length-1]=="function"&&(s=i.pop());const o={id:this._queueSeq++,tryCount:0,pending:!1,args:i,flags:Object.assign({fromQueue:!0},this.flags)};i.push((v,...b)=>o!==this._queue[0]?void 0:(v!==null?o.tryCount>this._opts.retries&&(this._queue.shift(),s&&s(v)):(this._queue.shift(),s&&s(null,...b)),o.pending=!1,this._drainQueue())),this._queue.push(o),this._drainQueue()}_drainQueue(i=!1){if(!this.connected||this._queue.length===0)return;const s=this._queue[0];s.pending&&!i||(s.pending=!0,s.tryCount++,this.flags=s.flags,this.emit.apply(this,s.args))}packet(i){i.nsp=this.nsp,this.io._packet(i)}onopen(){typeof this.auth=="function"?this.auth(i=>{this._sendConnectPacket(i)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(i){this.packet({type:Jr.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},i):i})}onerror(i){this.connected||this.emitReserved("connect_error",i)}onclose(i,s){this.connected=!1,delete this.id,this.emitReserved("disconnect",i,s),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(i=>{if(!this.sendBuffer.some(o=>String(o.id)===i)){const o=this.acks[i];delete this.acks[i],o.withError&&o.call(this,new Error("socket has been disconnected"))}})}onpacket(i){if(i.nsp===this.nsp)switch(i.type){case Jr.CONNECT:i.data&&i.data.sid?this.onconnect(i.data.sid,i.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Jr.EVENT:case Jr.BINARY_EVENT:this.onevent(i);break;case Jr.ACK:case Jr.BINARY_ACK:this.onack(i);break;case Jr.DISCONNECT:this.ondisconnect();break;case Jr.CONNECT_ERROR:this.destroy();const o=new Error(i.data.message);o.data=i.data.data,this.emitReserved("connect_error",o);break}}onevent(i){const s=i.data||[];i.id!=null&&s.push(this.ack(i.id)),this.connected?this.emitEvent(s):this.receiveBuffer.push(Object.freeze(s))}emitEvent(i){if(this._anyListeners&&this._anyListeners.length){const s=this._anyListeners.slice();for(const o of s)o.apply(this,i)}super.emit.apply(this,i),this._pid&&i.length&&typeof i[i.length-1]=="string"&&(this._lastOffset=i[i.length-1])}ack(i){const s=this;let o=!1;return function(...v){o||(o=!0,s.packet({type:Jr.ACK,id:i,data:v}))}}onack(i){const s=this.acks[i.id];typeof s=="function"&&(delete this.acks[i.id],s.withError&&i.data.unshift(null),s.apply(this,i.data))}onconnect(i,s){this.id=i,this.recovered=s&&this._pid===s,this._pid=s,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(i=>this.emitEvent(i)),this.receiveBuffer=[],this.sendBuffer.forEach(i=>{this.notifyOutgoingListeners(i),this.packet(i)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(i=>i()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Jr.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(i){return this.flags.compress=i,this}get volatile(){return this.flags.volatile=!0,this}timeout(i){return this.flags.timeout=i,this}onAny(i){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(i),this}prependAny(i){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(i),this}offAny(i){if(!this._anyListeners)return this;if(i){const s=this._anyListeners;for(let o=0;o<s.length;o++)if(i===s[o])return s.splice(o,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(i){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(i),this}prependAnyOutgoing(i){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(i),this}offAnyOutgoing(i){if(!this._anyOutgoingListeners)return this;if(i){const s=this._anyOutgoingListeners;for(let o=0;o<s.length;o++)if(i===s[o])return s.splice(o,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(i){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const s=this._anyOutgoingListeners.slice();for(const o of s)o.apply(this,i.data)}}}function Ec(a){a=a||{},this.ms=a.min||100,this.max=a.max||1e4,this.factor=a.factor||2,this.jitter=a.jitter>0&&a.jitter<=1?a.jitter:0,this.attempts=0}Ec.prototype.duration=function(){var a=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var i=Math.random(),s=Math.floor(i*this.jitter*a);a=(Math.floor(i*10)&1)==0?a-s:a+s}return Math.min(a,this.max)|0};Ec.prototype.reset=function(){this.attempts=0};Ec.prototype.setMin=function(a){this.ms=a};Ec.prototype.setMax=function(a){this.max=a};Ec.prototype.setJitter=function(a){this.jitter=a};class Hp extends Xn{constructor(i,s){var o;super(),this.nsps={},this.subs=[],i&&typeof i=="object"&&(s=i,i=void 0),s=s||{},s.path=s.path||"/socket.io",this.opts=s,zu(this,s),this.reconnection(s.reconnection!==!1),this.reconnectionAttempts(s.reconnectionAttempts||1/0),this.reconnectionDelay(s.reconnectionDelay||1e3),this.reconnectionDelayMax(s.reconnectionDelayMax||5e3),this.randomizationFactor((o=s.randomizationFactor)!==null&&o!==void 0?o:.5),this.backoff=new Ec({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(s.timeout==null?2e4:s.timeout),this._readyState="closed",this.uri=i;const v=s.parser||RX;this.encoder=new v.Encoder,this.decoder=new v.Decoder,this._autoConnect=s.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(i){return arguments.length?(this._reconnection=!!i,i||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(i){return i===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=i,this)}reconnectionDelay(i){var s;return i===void 0?this._reconnectionDelay:(this._reconnectionDelay=i,(s=this.backoff)===null||s===void 0||s.setMin(i),this)}randomizationFactor(i){var s;return i===void 0?this._randomizationFactor:(this._randomizationFactor=i,(s=this.backoff)===null||s===void 0||s.setJitter(i),this)}reconnectionDelayMax(i){var s;return i===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=i,(s=this.backoff)===null||s===void 0||s.setMax(i),this)}timeout(i){return arguments.length?(this._timeout=i,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(i){if(~this._readyState.indexOf("open"))return this;this.engine=new yX(this.uri,this.opts);const s=this.engine,o=this;this._readyState="opening",this.skipReconnect=!1;const v=j1(s,"open",function(){o.onopen(),i&&i()}),b=g=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",g),i?i(g):this.maybeReconnectOnOpen()},y=j1(s,"error",b);if(this._timeout!==!1){const g=this._timeout,l=this.setTimeoutFn(()=>{v(),b(new Error("timeout")),s.close()},g);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(v),this.subs.push(y),this}connect(i){return this.open(i)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const i=this.engine;this.subs.push(j1(i,"ping",this.onping.bind(this)),j1(i,"data",this.ondata.bind(this)),j1(i,"error",this.onerror.bind(this)),j1(i,"close",this.onclose.bind(this)),j1(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(i){try{this.decoder.add(i)}catch(s){this.onclose("parse error",s)}}ondecoded(i){Hu(()=>{this.emitReserved("packet",i)},this.setTimeoutFn)}onerror(i){this.emitReserved("error",i)}socket(i,s){let o=this.nsps[i];return o?this._autoConnect&&!o.active&&o.connect():(o=new d5(this,i,s),this.nsps[i]=o),o}_destroy(i){const s=Object.keys(this.nsps);for(const o of s)if(this.nsps[o].active)return;this._close()}_packet(i){const s=this.encoder.encode(i);for(let o=0;o<s.length;o++)this.engine.write(s[o],i.options)}cleanup(){this.subs.forEach(i=>i()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(i,s){var o;this.cleanup(),(o=this.engine)===null||o===void 0||o.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",i,s),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const i=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const s=this.backoff.duration();this._reconnecting=!0;const o=this.setTimeoutFn(()=>{i.skipReconnect||(this.emitReserved("reconnect_attempt",i.backoff.attempts),!i.skipReconnect&&i.open(v=>{v?(i._reconnecting=!1,i.reconnect(),this.emitReserved("reconnect_error",v)):i.onreconnect()}))},s);this.opts.autoUnref&&o.unref(),this.subs.push(()=>{this.clearTimeoutFn(o)})}}onreconnect(){const i=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",i)}}const hl={};function Bf(a,i){typeof a=="object"&&(i=a,a=void 0),i=i||{};const s=xX(a,i.path||"/socket.io"),o=s.source,v=s.id,b=s.path,y=hl[v]&&b in hl[v].nsps,g=i.forceNew||i["force new connection"]||i.multiplex===!1||y;let l;return g?l=new Hp(o,i):(hl[v]||(hl[v]=new Hp(o,i)),l=hl[v]),s.query&&!i.query&&(i.query=s.queryKey),l.socket(s.path,i)}Object.assign(Bf,{Manager:Hp,Socket:d5,io:Bf,connect:Bf});const $h=class $h{constructor(i,s){this.canvas=i,this.editor=s,this.isConnect=!1,this.printerList=[],this.editor=s,this.canvas=i,this.socket=Bf("http://localhost:17521",{transports:["websocket"],auth:{token:"vue-plugin-hiprint"}}),this.socket.on("connect",()=>{this.isConnect=!0}),this.socket.on("printerList",o=>{console.log("printerList",o),this.printerList=o})}printPDF(i){this.socket.emit("printPDF",{...i,unit:"mm"})}getPrinterList(){return this.printerList}destroy(){console.log("pluginDestroy")}};$h.pluginName="PrintPlugin",$h.apis=["printPDF","getPrinterList"];let xh=$h;const Ba=class Ba{constructor(i,s){this.canvas=i,this.editor=s}async hookTransformObjectEnd({originObject:i,fabricObject:s}){s&&this.addSetAndSyncByUnit(s)}_processPoints(i,s){const o=Ba.lengthFieldConfigs.some(g=>g.field==="points"&&g.dealMethod==="points"),v=Ln(this.editor);if(!o)return{processed:i,originByUnit:{[v]:{}}};const b=i.map(g=>({x:m1(g.x,v,s),y:m1(g.y,v,s)})),y={points:i};return{processed:b,originByUnit:{[v]:y}}}addSetAndSyncByUnit(i){const s=i.set.bind(i),o=this.editor,v=Ba.lengthFieldConfigs.filter(l=>l.dealMethod==="single").map(l=>l.field),b=Ba.lengthFieldConfigs.some(l=>l.field==="points"&&l.dealMethod==="points"),y=(l,h,u)=>{const f=l._originSize||{},p=o.getPrecision?.(),d=sa(u,p),A={...f[h]||{},...d};l._originSize={...f,[h]:A}},g=l=>{const h=Ln(o),f=(l._originSize?.[h]||{}).strokeDashArray;if(Array.isArray(f)&&f.length>0){const p=l.get("strokeWidth")||1,d=f.map(A=>A*p);s("strokeDashArray",d)}};i.setByUnit=function(l,h){const u=Ln(o),f=96,p=!!(this.canvas&&this.canvas._currentTransform),d=this.type==="line"||this.type==="arrow"||this.type==="thinTailArrow";if(typeof l=="string"){const A=l;if(v.includes(A)){if(p)return s(A,h);if(h!==void 0){const w=m1(h,u,f);if(y(this,u,{[A]:h}),d&&(A==="width"||A==="height")){const x=Math.abs(this.x2-this.x1),C=Math.abs(this.y2-this.y1);if(A==="width"&&x>0){const E=this.x1,B=this.x2,k=this.left;this.top;const M=Math.sign(B-E),T=E+w*M,R=Math.min(E,B),N=Math.min(E,T),Q=R-N;if(s("x2",T),Q!==0){const Y=k+Q;s("left",Y);const z=o.getSizeByUnit(Y);y(this,u,{left:z})}return this}if(A==="height"&&C>0){const E=this.y1,B=this.y2;this.left;const k=this.top,M=Math.sign(B-E),T=E+w*M,R=Math.min(E,B),N=Math.min(E,T),Q=R-N;if(s("y2",T),Q!==0){const Y=k+Q;s("top",Y);const z=o.getSizeByUnit(Y);y(this,u,{top:z})}return this}}if(this.type==="image"&&(A==="width"||A==="height"))return A==="width"?s("scaleX",w/(this.width||1)):s("scaleY",w/(this.height||1));const m=s(A,w);return A==="strokeWidth"&&g(this),m}}if(A==="strokeDashArray"&&Array.isArray(h)){if(p)return s(A,h);y(this,u,{strokeDashArray:h});const w=this.get("strokeWidth")||1,m=h.map(x=>x*w);return s(A,m)}if(A==="points"&&b&&Array.isArray(h)){if(p)return s(A,h);const w=h.map(m=>({x:m1(m.x,u,f),y:m1(m.y,u,f)}));return y(this,u,{points:h}),s(A,w)}return s(l,h)}if(l&&typeof l=="object"){const A={...l};if(b&&Array.isArray(A.points)){if(p)return s(A);const B=A.points.map(k=>({x:m1(k.x,u,f),y:m1(k.y,u,f)}));y(this,u,{points:A.points}),A.points=B}if(p)return s(A);const{processed:w,originByUnit:m}=u1(A,u,f,v),x=m[u]||{};Array.isArray(A.strokeDashArray)&&(x.strokeDashArray=A.strokeDashArray),Object.keys(x).length&&y(this,u,x);const C={...A,...w};if(d){const B=this.left,k=this.top;let M=0,T=0;if(C.width!==void 0&&Math.abs(this.x2-this.x1)>0){const N=this.x1,Q=this.x2,Y=Math.sign(Q-N),z=N+C.width*Y,V=Math.min(N,Q),$=Math.min(N,z);M=V-$,C.x2=z,delete C.width}if(C.height!==void 0&&Math.abs(this.y2-this.y1)>0){const N=this.y1,Q=this.y2,Y=Math.sign(Q-N),z=N+C.height*Y,V=Math.min(N,Q),$=Math.min(N,z);T=V-$,C.y2=z,delete C.height}M!==0&&(C.left=B+M,x.left=o.getSizeByUnit(C.left)),T!==0&&(C.top=k+T,x.top=o.getSizeByUnit(C.top))}if(this.type==="image"&&(C.width!==void 0&&(C.scaleX=C.width/(this.width||1),delete C.width),C.height!==void 0&&(C.scaleY=C.height/(this.height||1),delete C.height)),Array.isArray(C.strokeDashArray)){const B=C.strokeWidth??this.get("strokeWidth")??1;C.strokeDashArray=C.strokeDashArray.map(k=>k*B)}const E=s(C);return C.strokeWidth!==void 0&&g(this),E}return s(l,h)},i.syncOriginSizeByUnit=function(l,h){const u=Ln(o);if(u==="px")return;const f=Array.isArray(l),d=m1(1,u,f?h??96:l??96)||1,A={},w=this.type==="image",m=this.type==="line"||this.type==="arrow"||this.type==="thinTailArrow";if((f&&l?.length?l:v).forEach(E=>{if(E==="points")return;let B;w&&(E==="width"||E==="height")?E==="width"?B=this.getScaledWidth?.():B=this.getScaledHeight?.():m&&(E==="width"||E==="height")?E==="width"?B=Math.abs(this.x2-this.x1):B=Math.abs(this.y2-this.y1):B=this.get?this.get(E):this[E],typeof B=="number"&&!isNaN(B)&&(A[E]=o.getSizeByUnit(B))}),b&&Array.isArray(this.points)&&(f&&l.includes("points")||!f)){const E=this.points.map(B=>({x:B.x/d,y:B.y/d}));A.points=E}Object.keys(A).length&&y(this,u,A)}}createRect(i,s){const o=Ln(this.editor),v=Ba.lengthFieldConfigs.filter(u=>u.dealMethod==="single").map(u=>u.field),{processed:b,originByUnit:y}=u1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:sa(y[o]||{},g)},h=new Ce.fabric.Rect({...i,...b});return h._originSize=l,this.addSetAndSyncByUnit(h),h}createText(i,s,o){const v=Ln(this.editor),b=Ba.lengthFieldConfigs.filter(f=>f.dealMethod==="single").map(f=>f.field),{processed:y,originByUnit:g}=u1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:sa(g[v]||{},l)},u=new Ce.fabric.Textbox(i,{...s,...y});return u._originSize=h,this.addSetAndSyncByUnit(u),u}createIText(i,s,o){const v=Ln(this.editor),b=Ba.lengthFieldConfigs.filter(f=>f.dealMethod==="single").map(f=>f.field),{processed:y,originByUnit:g}=u1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:sa(g[v]||{},l)},u=new Ce.fabric.IText(i,{...s,...y});return u._originSize=h,this.addSetAndSyncByUnit(u),u}createLine(i,s,o){const v=Ln(this.editor),{processed:b,originByUnit:y}=this._processPoints(i,o),g=Ba.lengthFieldConfigs.filter(w=>w.dealMethod==="single").map(w=>w.field),{processed:l,originByUnit:h}=u1(s||{},v,o,g),u=l.strokeWidth??(s?.strokeWidth!==void 0?m1(s.strokeWidth,v,o):1),f={...s,strokeWidth:l.strokeWidth!==void 0?l.strokeWidth:void 0};if(Array.isArray(s?.strokeDashArray)){const w=s.strokeDashArray.map(m=>m*u);f.strokeDashArray=w}const p=new Ce.fabric.Line([b[0].x,b[0].y,b[1].x,b[1].y],f),d=this.editor.getPrecision?.(),A={[v]:{...sa(h[v]||{},d),...sa(y[v]||{},d)}};return Array.isArray(s?.strokeDashArray)&&(A[v].strokeDashArray=sa({arr:s.strokeDashArray},d).arr),p._originSize=A,this.addSetAndSyncByUnit(p),p}createEllipse(i,s){const o=Ln(this.editor),v=Ba.lengthFieldConfigs.filter(u=>u.dealMethod==="single").map(u=>u.field),{processed:b,originByUnit:y}=u1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:sa(y[o]||{},g)},h=new Ce.fabric.Ellipse({...i,...b});return h._originSize=l,this.addSetAndSyncByUnit(h),h}createPolygon(i,s,o){const v=Ln(this.editor),{processed:b,originByUnit:y}=this._processPoints(i,o),g=Ba.lengthFieldConfigs.filter(d=>d.dealMethod==="single").map(d=>d.field),{processed:l,originByUnit:h}=u1(s||{},v,o,g),u=new Ce.fabric.Polygon(b,{fill:s?.fill});if(s?.strokeWidth!==void 0){const d=m1(s.strokeWidth,v,o);u.set("strokeWidth",d)}u.set({...s||{},...l});const f=this.editor.getPrecision?.(),p={[v]:{...sa(h[v]||{},f),...sa(y[v]||{},f)}};return u._originSize=p,this.addSetAndSyncByUnit(u),u}async createImageFromURL(i,s,o){return new Promise(v=>{Ce.fabric.Image.fromURL(i,b=>{const y=Ln(this.editor),g=this.editor.getPrecision?.();if(this.addSetAndSyncByUnit(b),s){const u=Ba.lengthFieldConfigs.filter(d=>d.dealMethod==="single").map(d=>d.field),{originByUnit:f}=u1(s,y,o,u);b.set({...s});const p={[y]:sa(f[y]||{},g)};b._originSize=p}const l=!s?.width,h=!s?.height;if(l&&h){const f=this.editor.getWorkspase?.()?.width??this.canvas.getWidth()??b.width??0,p=b.width??0,d=b.height??0,A=f/2,w=p>0?A/p:1;b.set({scaleX:w,scaleY:w});const m={width:this.editor.getSizeByUnit?.(A),height:this.editor.getSizeByUnit?.(d*w)},x={[y]:sa(m,g)};b._originSize=x}v(b)},{crossOrigin:"anonymous"})})}async createImage(i,s,o){return new Promise(v=>{let b,y=!1;if(typeof i=="string"){const l=i.trim();l.startsWith("data:")?b=l:b="data:image/png;base64,"+l}else b=URL.createObjectURL(i),y=!0;const g=typeof i=="string"?{crossOrigin:"anonymous"}:void 0;Ce.fabric.Image.fromURL(b,l=>{const h=Ln(this.editor),u=this.editor.getPrecision?.();if(this.addSetAndSyncByUnit(l),s){const d=Ba.lengthFieldConfigs.filter(m=>m.dealMethod==="single").map(m=>m.field),{originByUnit:A}=u1(s,h,o,d);l.set({...s});const w={[h]:sa(A[h]||{},u)};l._originSize=w}const f=!s?.width,p=!s?.height;if(f&&p){const A=this.editor.getWorkspase?.()?.width??this.canvas.getWidth()??l.width??0,w=l.width??0,m=l.height??0,x=A/2,C=w>0?x/w:1;l.set({scaleX:C,scaleY:C});const E={width:this.editor.getSizeByUnit?.(x),height:this.editor.getSizeByUnit?.(m*C)},B={[h]:sa(E,u)};l._originSize=B}if(y)try{URL.revokeObjectURL(b)}catch{}v(l)},g)})}async createBarcode(i,s,o){const v=await this.editor.addBarcode?.(i,s,o);return v&&this.addSetAndSyncByUnit(v),v}async createQrcode(i,s,o){const v=await this.editor.addQrCode?.(i,s,o);return v&&this.addSetAndSyncByUnit(v),v}destroy(){console.log("pluginDestroy")}};Ba.pluginName="CreateElementPlugin",Ba.apis=["createRect","createText","createLine","createIText","createEllipse","createPolygon","createImageFromURL","createImage","createBarcode","createQrcode","addSetAndSyncByUnit"],Ba.lengthFieldConfigs=[{field:"left",dealMethod:"single"},{field:"top",dealMethod:"single"},{field:"width",dealMethod:"single"},{field:"height",dealMethod:"single"},{field:"fontSize",dealMethod:"single"},{field:"strokeWidth",dealMethod:"single"},{field:"rx",dealMethod:"single"},{field:"ry",dealMethod:"single"},{field:"boxWidth",dealMethod:"single"},{field:"points",dealMethod:"points"}];let Ch=Ba;const yw={layout:"item-vertical",width:30,iconSize:5,horizontalGap:1.5,verticalGap:1.5,itemGap:1.5,fontFamily:"Microsoft YaHei",fontSize:3,fontWeight:"normal",fontStyle:"normal",underline:!1,linethrough:!1,textAlign:"left",textWrap:!0,lineHeight:1.5,charSpacing:0,color:"#000000"},Jh=class Jh{constructor(i,s){this.canvas=i,this.editor=s}async hookTransform(i){if(i.extensionType!=="imageTextList")return;const s=i.left,o=i.top,b=(await this.buildGroup(i.extension||{})).toObject(this.editor.getExtensionKey?.()||[]);Object.assign(i,b,{left:s,top:o,extensionType:"imageTextList",extension:this.normalizeOptions(i.extension||{})})}async hookTransformObjectEnd(...i){const{originObject:s,fabricObject:o}=i[0];s.extensionType==="imageTextList"&&this.initImageTextListEvents(o)}async createImageTextList(i,s={}){const o=this.normalizeOptions({...s,items:i}),v=await this.buildGroup(o);return v.set({extensionType:"imageTextList",extension:o}),this.updateOriginSize(v,o),this.initImageTextListEvents(v),v}initImageTextListEvents(i){i.setExtension=async o=>{const v=this.normalizeOptions({...i.get("extension")||{},...o||{}});i.set("extension",v),await this.refreshImageTextList(i)},i.setExtensionByUnit=i.setExtension,this.editor.addSetAndSyncByUnit?.(i);const s=i.setByUnit?.bind(i);s&&(i.setByUnit=async(o,v)=>{if(o==="width"||o==="height"){const b=this.normalizeOptions({...i.get("extension")||{},[o]:Number(v)});return i.set("extension",b),await this.refreshImageTextList(i),i}return s(o,v)}),i.__imageTextListModified&&i.off("modified",i.__imageTextListModified),i.__imageTextListModified=()=>{const o=i.scaleX||1,v=i.scaleY||1;if(o===1&&v===1)return;const b=this.normalizeOptions(i.get("extension")||{}),y=Math.max(1,(i.width||1)*o),g=Math.max(1,(i.height||1)*v);i.set({scaleX:1,scaleY:1}),i.set("extension",{...b,width:Ln(this.editor)==="px"?y:this.editor.getSizeByUnit(y),height:Ln(this.editor)==="px"?g:this.editor.getSizeByUnit(g)}),this.refreshImageTextList(i)},i.on("modified",i.__imageTextListModified)}async refreshImageTextList(i){const s=this.normalizeOptions(i.get("extension")||{}),o={...s,_clipContent:s._clipContent===!0||!!i.clipPath},v=i.left,b=i.top,y=await this.buildGroup(o),g=y.getObjects();i._objects=g,g.forEach(l=>{l.group=i}),y._objects=[],i.set({left:v,top:b,width:y.width,height:y.height,scaleX:1,scaleY:1,visible:y.visible,clipPath:y.clipPath,objectCaching:!!y.clipPath,dirty:!0}),i.set("extension",o),this.updateOriginSize(i,o),i.setCoords(),this.canvas.requestRenderAll()}normalizeOptions(i){return{...yw,...i,items:Array.isArray(i.items)?i.items:[]}}toPx(i){return m1(Number(i)||0,Ln(this.editor))}getItems(i){return(i._renderItems?.length?i._renderItems:i.items||[]).filter(s=>s&&(s.src||s.name))}createText(i,s,o){const v=Math.max(1,this.toPx(s.fontSize)),b=Math.max(0,this.toPx(s.charSpacing)),y={fontFamily:s.fontFamily,fontSize:v,fontWeight:s.fontWeight,fontStyle:s.fontStyle,underline:!!s.underline,linethrough:!!s.linethrough,fill:s.color,textAlign:s.textAlign,lineHeight:Number(s.lineHeight)||1,charSpacing:b/v*1e3,splitByGrapheme:!0,selectable:!1,evented:!1,objectCaching:!1},g=o&&s.textWrap!==!1?new Ce.fabric.Textbox(i||"",{...y,width:o}):new Ce.fabric.Text(i||"",y);return g.initDimensions(),g.setCoords(),g}loadImage(i,s){return new Promise(o=>{if(!i)return o(null);Ce.fabric.Image.fromURL(i,v=>{v.set({scaleX:s/Math.max(1,v.width||1),scaleY:s/Math.max(1,v.height||1),selectable:!1,evented:!1,objectCaching:!1}),o(v)},{crossOrigin:"anonymous"})})}async buildGroup(i){const s=this.normalizeOptions(i),o=this.getItems(s),v=Math.max(1,this.toPx(s.width));if(!o.length)return this.createGroup([],v,1,!1);const b=s.layout||yw.layout,y=b!=="text-only",g=b!=="icon-only",l=Math.max(1,this.toPx(s.iconSize)),h=Math.max(0,this.toPx(s.horizontalGap)),u=Math.max(0,this.toPx(s.verticalGap)),f=Math.max(0,this.toPx(s.itemGap)),p=y?await Promise.all(o.map(E=>this.loadImage(E.src,l))):o.map(()=>null),d=[];let A=0;if(b==="icon-text-split")this.flowRows(o.map(()=>l),v,h).forEach(B=>{B.items.forEach(k=>{const M=p[k.index];M&&(M.set({left:k.x,top:A}),d.push(M))}),A+=l+u}),o.forEach(B=>{const k=this.createText(B.name||"",s,v);k.set({left:0,top:A}),d.push(k),A+=k.getScaledHeight()+f});else if(b==="item-vertical"){const E=l+h,B=Math.max(1,v-E);o.forEach((k,M)=>{const T=p[M],R=this.createText(k.name||"",s,B),N=R.getScaledHeight(),Q=Math.max(l,N);T&&(T.set({left:0,top:A+(Q-l)/2}),d.push(T)),R.set({left:E,top:A+(Q-N)/2}),d.push(R),A+=Q+u})}else{const E=o.map(M=>g?this.createText(M.name||"",s):null),B=o.map((M,T)=>{const R=E[T]?.getScaledWidth()||0;return y&&g?l+h+R:y?l:R});this.flowRows(B,v,h).forEach(M=>{const T=Math.max(y?l:0,...M.items.map(R=>E[R.index]?.getScaledHeight()||0));M.items.forEach(R=>{let N=R.x;const Q=p[R.index],Y=E[R.index];y&&Q&&(Q.set({left:N,top:A+(T-l)/2}),d.push(Q),N+=l+(g?h:0)),g&&Y&&(Y.set({left:N,top:A+(T-Y.getScaledHeight())/2}),d.push(Y))}),A+=T+u})}const m=Math.max(1,A-(b==="icon-text-split"?f:u)),x=Number(s.height),C=x>0?Math.max(1,this.toPx(x)):m;return this.createGroup(d,v,C,!0,s._clipContent)}createGroup(i,s,o,v,b=!1){const y=new Ce.fabric.Rect({left:0,top:0,width:s,height:o,fill:"rgba(0,0,0,0)",strokeWidth:0,selectable:!1,evented:!1}),g=new Ce.fabric.Group([y],{width:s,height:o,visible:v,objectCaching:b,subTargetCheck:!1,clipPath:b?new Ce.fabric.Rect({width:s,height:o,originX:"center",originY:"center"}):void 0});return i.forEach(l=>{l.set({left:(l.left||0)-s/2,top:(l.top||0)-o/2}),l.group=g}),g._objects.push(...i),g.setCoords(),g}flowRows(i,s,o){const v=[];let b={items:[]},y=0;return i.forEach((g,l)=>{const h=Math.min(Math.max(1,g),s);b.items.length&&y+h>s&&(v.push(b),b={items:[]},y=0),b.items.push({index:l,x:y,width:h}),y+=h+o}),b.items.length&&v.push(b),v}updateOriginSize(i,s){const o=Ln(this.editor),v=i._originSize||{};i._originSize={...v,[o]:sa({...v[o]||{},width:s.width,height:s.height??(o==="px"?i.height:this.editor.getSizeByUnit(i.height||1))},this.editor.getPrecision?.())}}destroy(){}};Jh.pluginName="ImageTextListPlugin",Jh.apis=["createImageTextList","initImageTextListEvents","refreshImageTextList"];let Ih=Jh;const Kh=class Kh{constructor(i,s){this.canvas=i,this.editor=s,this.layoutOrigins=new WeakMap}async hookTransformObjectEnd(...i){const{originObject:s,fabricObject:o}=i[0];if(!this.isPrintableObject(s))return;const v=Number(this.editor.getSizeByUnit?.(1,"mm"))||1;this.layoutOrigins.set(o,{top:this.getOriginalTop(s,o,v),height:this.getOriginalHeight(s,o,v)})}applyActualContentLayout(i,s){const o=i?.templateSettings||{};if(!o.actualContentLayout)return s;const v=this.canvas.getObjects().filter(this.isPrintableObject),b=Number(this.editor.getSizeByUnit?.(1,"mm"))||1;v.forEach(A=>this.preparePrintLayoutObject(A));const y=v.map((A,w)=>{const m=this.layoutOrigins.get(A),x=m?.top??Number(A.top||0)*b,C=m?.height??Number(A.getScaledHeight?.()||A.height||0)*b;return{object:A,index:w,originalTop:x,originalBottom:x+C}});y.sort((A,w)=>A.originalTop-w.originalTop||A.index-w.index);const g=[],l=.01;y.forEach(A=>{const w=g[g.length-1];w&&Math.abs(w[0].originalTop-A.originalTop)<=l?w.push(A):g.push([A])});let h,u,f=0,p=0;if(g.forEach(A=>{const w=A[0].originalTop,m=Math.max(...A.map(E=>E.originalBottom));h!==void 0&&(f+=Math.max(0,w-h)),h=m;const x=A.filter(E=>!this.isEmptyLayoutObject(E.object));if(!x.length)return;const C=u===void 0?w:u+f;x.forEach(E=>{E.object.set("top",C/b),E.object.setCoords()}),u=Math.max(...x.map(E=>(Number(E.object.top||0)+this.getActualLayoutHeight(E.object))*b)),p=m,f=0}),this.canvas.requestRenderAll(),o.overflowMode!=="expand"||u===void 0)return s;const d=Math.max(0,s-p);return Math.max(s,u+d)}getOriginalTop(i,s,o){const v=Number(i?.top);return Number.isFinite(v)?v*o:this.getOriginMmValue(i,"top",Number(s.top||0)*o)}getOriginalHeight(i,s,o){const v=Number(i?.height),b=Number(i?.scaleY??1);return Number.isFinite(v)&&Number.isFinite(b)?Math.abs(v*b)*o:this.getOriginMmValue(i,"height",Number(s.getScaledHeight?.()||s.height||0)*o)}getOriginMmValue(i,s,o){const v=i?._originSize?.mm?.[s];if(v==null||v==="")return o;const b=Number(v);return Number.isFinite(b)?b:o}preparePrintLayoutObject(i){i?.extensionType==="imageTextList"&&i.extension?._clipContent!==!0&&(i.clipPath&&i.set("clipPath",void 0),i.set({objectCaching:!1,dirty:!0}))}isPrintableObject(i){return i?.id!=="workspace"&&i?.id!=="coverMask"&&i?.type!=="GuideLine"}isEmptyLayoutObject(i){return i?.visible===!1?!0:i?.extension?._field_?i.type==="textbox"?String(i.text??"")==="":["barcode","qrcode"].includes(i.extensionType)?String(i.extension?.value??"")==="":i.extensionType==="imageTextList"?!Array.isArray(i.extension?.items)||i.extension.items.length===0:!1:!1}getActualLayoutHeight(i){if(i?.extensionType!=="imageTextList")return Number(i.getScaledHeight?.()||i.height||0);const o=(i.getObjects?.()||i._objects||[]).slice(1);if(!o.length)return 0;const v=Number(i.height||0),b=Math.abs(Number(i.scaleY??1)),y=Math.max(...o.map(g=>Number(g.top||0)+v/2+Number(g.getScaledHeight?.()||g.height||0)));return Math.max(0,y)*b}};Kh.pluginName="ActualContentLayoutPlugin",Kh.apis=["applyActualContentLayout"];let Eh=Kh;const FX={UnitPlugin:jf,DringPlugin:Nf,AlignGuidLinePlugin:Pf,ControlsPlugin:Lf,ControlsRotatePlugin:Gf,CenterAlignPlugin:Yf,LayerPlugin:Hf,CopyPlugin:zf,MoveHotKeyPlugin:qf,DeleteHotKeyPlugin:Wf,GroupPlugin:Vf,DrawLinePlugin:Xf,GroupTextEditorPlugin:$f,GroupAlignPlugin:Jf,WorkspacePlugin:Kf,MaskPlugin:Zf,HistoryPlugin:eh,FlipPlugin:th,RulerPlugin:rh,MaterialPlugin:nh,WaterMarkPlugin:ah,FontPlugin:sh,PolygonModifyPlugin:oh,DrawPolygonPlugin:ch,FreeDrawPlugin:lh,PathTextPlugin:fh,PsdPlugin:uh,SimpleClipImagePlugin:dh,BarCodePlugin:ph,QrCodePlugin:Ah,ImageStroke:mh,ResizePlugin:bh,LockPlugin:wh,AddBaseTypePlugin:yh,PrintPlugin:xh,CreateElementPlugin:Ch,ImageTextListPlugin:Ih,ActualContentLayoutPlugin:Eh},QX=[jf,Nf,Pf,Lf,Gf,Yf,Hf,zf,qf,Wf,Vf,Xf,$f,Jf,Kf,Zf,eh,th,rh,nh,ah,sh,oh,ch,lh,fh,uh,dh,ph,Ah,mh,bh,wh,yh,xh,Ch,Ih,Eh];exports.SelectEvent=Sf;exports.SelectMode=Zh;exports.pluginsList=QX;exports.pluginsObject=FX;
|
|
483
|
+
`}};function k(M,T){M+=E,T+=B;var R=a*M+i*T+s*(x-1)+o*(C-1),N=v*M+b*T+y*(x-1)+g*(C-1);return""+((R|0)==R?R:R.toFixed(2))+" "+((N|0)==N?N:N.toFixed(2))}}var Wa=(function(){var a=[],i={},s={},o={},v=0;return o.next=o,o.prev=o,{lookup:y,monochrome:g,getglyph:l,getpaths:h,loadFont:b};function b(u){var f=100,p=100,d=null;if(arguments.length==2)d=arguments[1];else if(arguments.length==3)f=p=+arguments[1]||100,d=arguments[2];else if(arguments.length==4)p=+arguments[1]||100,f=+arguments[2]||100,d=arguments[3];else throw new Error("bwipjs: loadFont: invalid number of arguments");var A=uf.InitFont(PV(d));A.bwipjs_name=u,A.bwipjs_multx=f,A.bwipjs_multy=p;var w=a.push(A)-1;return i[u.toUpperCase()]=w,w}function y(u){var f=i[u.toUpperCase()];return f===void 0?1:f}function g(u){if(u)throw new Error("bwipjs: monochrome fonts not implemented")}function l(u,f,p,d){u=u|0,f=f|0,p=+p,d=+d,(!p||p<8)&&(p=8),(!d||d<8)&&(d=p),(u<0||u>=a.length)&&(u=1),(!f||f<32)&&(f=32);var A=""+u+"c"+f+"w"+p+"h"+d,m=s[A];if(m){m.prev.next=m.next,m.next.prev=m.prev;var C=o;return C.next.prev=m,m.next=C.next,m.prev=C,C.next=m,m}var w=a[u],m=uf.GetGlyph(w,f,p*w.bwipjs_multx/100,d*w.bwipjs_multy/100)||uf.GetGlyph(w,0,p*w.bwipjs_multx/100,d*w.bwipjs_multy/100);if(m.bytes=m.pixels,m.cachekey=A,m.offset=0,v>250){var C=o,x=C.prev;x.prev.next=C,C.prev=x.prev,x.next=x.prev=null,delete s[x.cachekey]}else v++;s[A]=m;var C=o;return C.next.prev=m,m.next=C.next,m.prev=C,C.next=m,m}function h(u,f,p,d){u=u|0,f=f|0,p=+p,d=+d,(!p||p<8)&&(p=8),(!d||d<8)&&(d=p),(u<0||u>=a.length)&&(u=1),(!f||f<32)&&(f=32);var A=a[u];return uf.GetPaths(A,f,p*A.bwipjs_multx/100,d*A.bwipjs_multy/100)}})();function NV(){return Wa.loadFont.apply(Wa,Array.prototype.slice.call(arguments))}var uf=(function(){var a=1,i=2,s=3,o=4,v=0,b=3,y=1,g=10,l=Math.floor,h=Math.ceil,u=Math.sqrt,f=Math.abs;function p(O){for(var P=[],X=0;X<O;X++)P.push({});return P}function d(O){return O[O.cursor++]||0}function A(O){return O[O.cursor]}function w(O,P){O.cursor=P>O.length||P<0?O.length:P}function m(O,P){w(O,O.cursor+P)}function x(O,P){for(var X=0,se=0;se<P;se++)X=X<<8|d(O);return X}function C(){return{length:0}}function E(O,P,X){if(P<0||X<0||P>O.length||X>O.length-P)return C();var se=O.subarray(P,P+X);return se.cursor=0,se}function B(O){var P=O.cursor,X=x(O,2);if(X){var se=d(O);m(O,se*X),m(O,x(O,se)-1)}return E(O,P,O.cursor-P)}function k(O){var P=d(O);return P>=32&&P<=246?P-139:P>=247&&P<=250?(P-247)*256+d(O)+108:P>=251&&P<=254?-(P-251)*256-d(O)-108:P==28?x(O,2):P==29?x(O,4):0}function M(O){var P=A(O);if(P==30)for(m(O,1);O.cursor<O.length;){var X=d(O);if((X&15)==15||X>>4==15)break}else k(O)}function T(O,P){for(w(O,0);O.cursor<O.length;){for(var X=O.cursor,se,le;A(O)>=28;)M(O);if(se=O.cursor,le=d(O),le==12&&(le=d(O)|256),le==P)return E(O,X,se-X)}return E(O,0,0)}function R(O,P,X,se){for(var le=T(O,P),be=0;be<X&&le.cursor<le.length;be++)se[be]=k(le)}function N(O,P,X){var se=T(O,P);return se.cursor<se.length&&(X=k(se)),X}function Q(O){return w(O,0),x(O,2)}function Y(O,P){var X,se,le,be;return w(O,0),X=x(O,2),se=d(O),m(O,P*se),le=x(O,se),be=x(O,se),E(O,2+(X+1)*se+le,be-le)}function z(O){return O&32768?(4294901760|O)>>0:O}function V(O,P){return O[P]*256+O[P+1]}function $(O,P){var X=O[P]*256+O[P+1];return X&32768?(4294901760|X)>>0:X}function Z(O,P){return(O[P]<<24)+(O[P+1]<<16)+(O[P+2]<<8)+O[P+3]}function ae(O,P,X){for(var se=V(O,P+4),le=P+12,be=0;be<se;++be){var ce=le+16*be;if(O[ce]==X[0]&&O[ce+1]==X[1]&&O[ce+2]==X[2]&&O[ce+3]==X[3])return Z(O,ce+8)}return 0}function ge(O,P){var X=[0,0];if(R(P,18,2,X),!X[1]||!X[0])return C();var se=E(O,X[1],X[0]),le=N(se,19,0);return le?(w(O,X[1]+le),B(O)):C()}function re(O,P,X){var se,le,be,ce;if(O.data=P,O.fontstart=X,O.cff=C(),se=ae(P,X,[99,109,97,112]),O.loca=ae(P,X,[108,111,99,97]),O.head=ae(P,X,[104,101,97,100]),O.glyf=ae(P,X,[103,108,121,102]),O.hhea=ae(P,X,[104,104,101,97]),O.hmtx=ae(P,X,[104,109,116,120]),O.kern=ae(P,X,[107,101,114,110]),!se||!O.head||!O.hhea||!O.hmtx)return 0;if(O.glyf){if(!O.loca)return 0}else{var Re,ie,Be,Se,Oe=2,fe=0,Te=0,Qe=0;if(Se=ae(P,X,[67,70,70,32]),!Se||(O.fontdicts=C(),O.fdselect=C(),O.cff=P.subarray(Se),O.cff.cursor=0,Re=O.cff,m(Re,2),w(Re,d(Re)),B(Re),Be=B(Re),ie=Y(Be,0),B(Re),O.gsubrs=B(Re),fe=N(ie,17,fe),Oe=N(ie,262,Oe),Te=N(ie,292,Te),Qe=N(ie,293,Qe),O.subrs=ge(Re,ie),Oe!=2)||fe==0)return 0;if(Te){if(!Qe)return 0;w(Re,Te),O.fontdicts=B(Re),O.fdselect=E(Re,Qe,Re.length-Qe)}w(Re,fe),O.charstrings=B(Re)}for(le=ae(P,X,[109,97,120,112]),le?O.numGlyphs=V(P,le+4):O.numGlyphs=65535,ce=V(P,se+2),O.index_map=0,be=0;be<ce;++be){var Ee=se+4+8*be;switch(V(P,Ee)){case b:switch(V(P,Ee+2)){case y:case g:O.index_map=se+Z(P,Ee+4);break}break;case v:O.index_map=se+Z(P,Ee+4);break}}return O.index_map==0?0:(O.indexToLocFormat=V(P,O.head+50),1)}function F(O,P){var X=O.data,se=O.index_map,le=V(X,se+0);if(le==0){var be=V(X,se+2);return P<be-6?X[se+6+P]:0}else if(le==6){var ce=V(X,se+6),Re=V(X,se+8);return P>=ce&&P<ce+Re?V(X,se+10+(P-ce)*2):0}else{if(le==2)return 0;if(le==4){var ie=V(X,se+6)>>1,Be=V(X,se+8)>>1,Se=V(X,se+10),Oe=V(X,se+12)>>1,fe=se+14,Te=fe;if(P>65535)return 0;for(P>=V(X,Te+Oe*2)&&(Te+=Oe*2),Te-=2;Se;){Be>>=1;var Qe=V(X,Te+Be*2);P>Qe&&(Te+=Be*2),--Se}Te+=2;var Ee,Pe,Ne=Te-fe>>>1;return Pe=V(X,se+14+ie*2+2+2*Ne),P<Pe?0:(Ee=V(X,se+14+ie*6+2+2*Ne),Ee==0?P+$(X,se+14+ie*4+2+2*Ne):V(X,Ee+(P-Pe)*2+se+14+ie*6+2+2*Ne))}else if(le==12||le==13){for(var je=Z(X,se+12),Ve=0,ze=je;Ve<ze;){var et=Ve+(ze-Ve>>1),st=Z(X,se+16+et*12),rt=Z(X,se+16+et*12+4);if(P<st)ze=et;else if(P>rt)Ve=et+1;else{var De=Z(X,se+16+et*12+8);return le==12?De+P-st:De}}return 0}}return 0}function j(O,P,X,se,le,be){O.type=P,O.x=X,O.y=se,O.cx=le,O.cy=be}function q(O,P){var X,se;return P>=O.numGlyphs||O.indexToLocFormat>=2?-1:(O.indexToLocFormat==0?(X=O.glyf+V(O.data,O.loca+P*2)*2,se=O.glyf+V(O.data,O.loca+P*2+2)*2):(X=O.glyf+Z(O.data,O.loca+P*4),se=O.glyf+Z(O.data,O.loca+P*4+4)),X==se?-1:X)}function H(O,P,X){if(O.cff.length)we(O,P,X);else{var se=q(O,P);if(se<0)return 0;X.x0=$(O.data,se+2),X.y0=$(O.data,se+4),X.x1=$(O.data,se+6),X.y1=$(O.data,se+8)}return 1}function K(O,P,X,se,le,be,ce,Re,ie,Be){return se?(X&&j(O[P++],s,ie+ce>>1,Be+Re>>1,ie,Be),j(O[P++],s,le,be,ce,Re)):X?j(O[P++],s,le,be,ie,Be):j(O[P++],i,le,be,0,0),P}function W(O,P){var X=O.data,se=q(O,P);if(se<0)return null;var le=[],be=$(X,se);if(be>0){var ce=0,Re,ie,Be=0,Se,Oe,fe,Te=0,Qe,Ee=0,Pe,Ne,je,Ve,ze,et,st,rt,De=se+10,Je=V(X,se+10+be*2),Xe=X.subarray(se+10+be*2+2+Je),tt=0;for(Oe=1+V(X,De+be*2-2),Se=Oe+2*be,le=p(Se),fe=0,Re=0,Qe=Se-Oe,ie=0;ie<Oe;++ie)Re==0?(ce=Xe[tt++],ce&8&&(Re=Xe[tt++])):--Re,le[Qe+ie].type=ce;for(Pe=0,ie=0;ie<Oe;++ie){if(ce=le[Qe+ie].type,ce&2){var dt=Xe[tt++];Pe+=ce&16?dt:-dt}else ce&16||(Pe=Pe+z(Xe[tt]*256+Xe[tt+1]),tt+=2);le[Qe+ie].x=Pe}for(Ne=0,ie=0;ie<Oe;++ie){if(ce=le[Qe+ie].type,ce&4){var pt=Xe[tt++];Ne+=ce&32?pt:-pt}else ce&32||(Ne=Ne+z(Xe[tt]*256+Xe[tt+1]),tt+=2);le[Qe+ie].y=Ne}var ut=0;for(ze=et=je=Ve=st=rt=0,ie=0;ie<Oe;++ie)ce=le[Qe+ie].type,Pe=le[Qe+ie].x,Ne=le[Qe+ie].y,fe==ie?(ie!=0&&(ut=K(le,ut,Te,Ee,ze,et,st,rt,je,Ve)),Ee=!(ce&1),Ee?(st=Pe,rt=Ne,le[Qe+ie+1].type&1?(ze=le[Qe+ie+1].x,et=le[Qe+ie+1].y,++ie):(ze=Pe+le[Qe+ie+1].x>>1,et=Ne+le[Qe+ie+1].y>>1)):(ze=Pe,et=Ne),j(le[ut++],a,ze,et,0,0),Te=0,fe=1+V(X,De+Be*2),++Be):ce&1?(Te?j(le[ut++],s,Pe,Ne,je,Ve):j(le[ut++],i,Pe,Ne,0,0),Te=0):(Te&&j(le[ut++],s,je+Pe>>1,Ve+Ne>>1,je,Ve),je=Pe,Ve=Ne,Te=1);le.length=K(le,ut,Te,Ee,ze,et,st,rt,je,Ve)}else if(be==-1)for(var bt=1,ct=se+10;bt;){var ce,Ot,it=[1,0,0,1,0,0];ce=$(X,ct),ct+=2,Ot=$(X,ct),ct+=2,ce&2&&(ce&1?(it[4]=$(X,ct),ct+=2,it[5]=$(X,ct),ct+=2):(it[4]=d(X),ct+=1,it[5]=d(X),ct+=1)),ce&8?(it[0]=it[3]=$(X,ct)/16384,ct+=2,it[1]=it[2]=0):ce&64?(it[0]=$(X,ct)/16384,ct+=2,it[1]=it[2]=0,it[3]=$(X,ct)/16384,ct+=2):ce&128&&(it[0]=$(X,ct)/16384,ct+=2,it[1]=$(X,ct)/16384,ct+=2,it[2]=$(X,ct)/16384,ct+=2,it[3]=$(X,ct)/16384,ct+=2);var Se=u(it[0]*it[0]+it[1]*it[1]),Oe=u(it[2]*it[2]+it[3]*it[3]),Nt=me(O,Ot);if(Nt.length>0){for(var ie=0,Pt=Nt.length;ie<Pt;++ie){var Ft=Nt[ie],Pe,Ne;Pe=Ft.x,Ne=Ft.y,Ft.x=l(Se*(it[0]*Pe+it[2]*Ne+it[4])),Ft.y=l(Oe*(it[1]*Pe+it[3]*Ne+it[5])),Pe=Ft.cx,Ne=Ft.cy,Ft.cx=l(Se*(it[0]*Pe+it[2]*Ne+it[4])),Ft.cy=l(Oe*(it[1]*Pe+it[3]*Ne+it[5]))}le=le.concat(Nt)}bt=ce&32}return le}function L(O,P,X){(P>O.max_x||!O.started)&&(O.max_x=P),(X>O.max_y||!O.started)&&(O.max_y=X),(P<O.min_x||!O.started)&&(O.min_x=P),(X<O.min_y||!O.started)&&(O.min_y=X),O.started=1}function ee(O,P,X,se,le,be,ce,Re){L(O,X,se),P==o&&(L(O,le,be),L(O,ce,Re));var ie={};j(ie,P,X,se,le,be),ie.cx1=ce,ie.cy1=Re,O.vertices.push(ie)}function he(O){(O.first_x!=O.x||O.first_y!=O.y)&&ee(O,i,O.first_x,O.first_y,0,0,0,0)}function Ae(O,P,X){he(O),O.first_x=O.x=O.x+P,O.first_y=O.y=O.y+X,ee(O,a,O.x,O.y,0,0,0,0)}function de(O,P,X){O.x+=P,O.y+=X,ee(O,i,O.x,O.y,0,0,0,0)}function pe(O,P,X,se,le,be,ce){var Re=O.x+P,ie=O.y+X,Be=Re+se,Se=ie+le;O.x=Be+be,O.y=Se+ce,ee(O,o,O.x,O.y,Re,ie,Be,Se)}function Ie(O,P){var X=Q(O),se=107;return X>=33900?se=32768:X>=1240&&(se=1131),P+=se,P<0||P>=X?C():Y(O,P)}function Me(O,P){var X=O.fdselect,se,le,be,ce,Re,ie=-1,Be;if(w(X,0),Re=d(X),Re==0)m(X,P),ie=d(X);else if(Re==3)for(se=x(X,2),le=x(X,2),Be=0;Be<se;Be++){if(ce=d(X),be=x(X,2),P>=le&&P<be){ie=ce;break}le=be}return ge(O.cff,Y(O.fontdicts,ie))}function ve(O,P,X){var se=1,le=0,be=0,ce=0,Re,ie,Be,Se=0,Oe,fe=[],Te=[],Qe=O.subrs,Ee,Pe;for(Ee=Y(O.charstrings,P);Ee.cursor<Ee.length;){switch(ie=0,Oe=1,Be=d(Ee),Be){case 19:case 20:se&&(le+=ce/2|0),se=0,m(Ee,(le+7)/8|0);break;case 1:case 3:case 18:case 23:le+=ce/2|0;break;case 21:if(se=0,ce<2)return 0;Ae(X,fe[ce-2],fe[ce-1]);break;case 4:if(se=0,ce<1)return 0;Ae(X,0,fe[ce-1]);break;case 22:if(se=0,ce<1)return 0;Ae(X,fe[ce-1],0);break;case 5:if(ce<2)return 0;for(;ie+1<ce;ie+=2)de(X,fe[ie],fe[ie+1]);break;case 7:if(ce<1)return 0;for(;!(ie>=ce||(de(X,0,fe[ie]),ie++,ie>=ce));)de(X,fe[ie],0),ie++;break;case 6:if(ce<1)return 0;for(;!(ie>=ce||(de(X,fe[ie],0),ie++,ie>=ce));)de(X,0,fe[ie]),ie++;break;case 31:if(ce<4)return 0;for(;!(ie+3>=ce||(pe(X,fe[ie],0,fe[ie+1],fe[ie+2],ce-ie==5?fe[ie+4]:0,fe[ie+3]),ie+=4,ie+3>=ce));)pe(X,0,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],ce-ie==5?fe[ie+4]:0),ie+=4;break;case 30:if(ce<4)return 0;for(;!(ie+3>=ce||(pe(X,0,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],ce-ie==5?fe[ie+4]:0),ie+=4,ie+3>=ce));)pe(X,fe[ie],0,fe[ie+1],fe[ie+2],ce-ie==5?fe[ie+4]:0,fe[ie+3]),ie+=4;break;case 8:if(ce<6)return 0;for(;ie+5<ce;ie+=6)pe(X,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],fe[ie+4],fe[ie+5]);break;case 24:if(ce<8)return 0;for(;ie+5<ce-2;ie+=6)pe(X,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],fe[ie+4],fe[ie+5]);if(ie+1>=ce)return 0;de(X,fe[ie],fe[ie+1]);break;case 25:if(ce<8)return 0;for(;ie+1<ce-6;ie+=2)de(X,fe[ie],fe[ie+1]);if(ie+5>=ce)return 0;pe(X,fe[ie],fe[ie+1],fe[ie+2],fe[ie+3],fe[ie+4],fe[ie+5]);break;case 26:case 27:if(ce<4)return 0;for(Pe=0,ce&1&&(Pe=fe[ie],ie++);ie+3<ce;ie+=4)Be==27?pe(X,fe[ie],Pe,fe[ie+1],fe[ie+2],fe[ie+3],0):pe(X,Pe,fe[ie],fe[ie+1],fe[ie+2],0,fe[ie+3]),Pe=0;break;case 10:Se||(O.fdselect.length&&(Qe=Me(O,P)),Se=1);case 29:if(ce<1||(Re=fe[--ce]|0,be>=10)||(Te[be++]=Ee,Ee=Ie(Be==10?Qe:O.gsubrs,Re),Ee.length==0))return 0;Ee.cursor=0,Oe=0;break;case 11:if(be<=0)return 0;Ee=Te[--be],Oe=0;break;case 14:return he(X),1;case 12:var Ne,je,Ve,ze,et,st,rt,De,Je,Xe,tt,dt,pt,ut,bt=d(Ee);switch(bt){case 34:if(ce<7)return 0;Ne=fe[0],je=fe[1],De=fe[2],Ve=fe[3],ze=fe[4],et=fe[5],st=fe[6],pe(X,Ne,0,je,De,Ve,0),pe(X,ze,0,et,-De,st,0);break;case 35:if(ce<13)return 0;Ne=fe[0],rt=fe[1],je=fe[2],De=fe[3],Ve=fe[4],Je=fe[5],ze=fe[6],Xe=fe[7],et=fe[8],tt=fe[9],st=fe[10],dt=fe[11],pe(X,Ne,rt,je,De,Ve,Je),pe(X,ze,Xe,et,tt,st,dt);break;case 36:if(ce<9)return 0;Ne=fe[0],rt=fe[1],je=fe[2],De=fe[3],Ve=fe[4],ze=fe[5],et=fe[6],tt=fe[7],st=fe[8],pe(X,Ne,rt,je,De,Ve,0),pe(X,ze,0,et,tt,st,-(rt+De+tt));break;case 37:if(ce<11)return 0;Ne=fe[0],rt=fe[1],je=fe[2],De=fe[3],Ve=fe[4],Je=fe[5],ze=fe[6],Xe=fe[7],et=fe[8],tt=fe[9],st=dt=fe[10],pt=Ne+je+Ve+ze+et,ut=rt+De+Je+Xe+tt,f(pt)>f(ut)?dt=-ut:st=-pt,pe(X,Ne,rt,je,De,Ve,Je),pe(X,ze,Xe,et,tt,st,dt);break;default:return 0}break;default:if(Be!=255&&Be!=28&&(Be<32||Be>254)||(Be==255?Pe=(x(Ee,4)|0)/65536:(m(Ee,-1),Pe=(k(Ee)<<16|0)>>16),ce>=48))return 0;fe[ce++]=Pe,Oe=0;break}Oe&&(ce=0)}return 0}function ue(){return{started:0,first_x:0,first_y:0,x:0,y:0,min_x:0,max_x:0,min_y:0,max_y:0,vertices:[]}}function ye(O,P){var X=ue();return ve(O,P,X)?X.vertices:null}function we(O,P,X){var se=ue(),le=ve(O,P,se);return X.x0=le?se.min_x:0,X.y0=le?se.min_y:0,X.x1=le?se.max_x:0,X.y1=le?se.max_y:0,le&&se.vertices?se.vertices.length:0}function me(O,P){return O.cff.length?ye(O,P):W(O,P)}function _e(O,P){var X=V(O.data,O.hhea+34);return P<X?{advanceWidth:$(O.data,O.hmtx+4*P),leftSideBearing:$(O.data,O.hmtx+4*P+2)}:{advanceWidth:$(O.data,O.hmtx+4*(X-1)),leftSideBearing:$(O.data,O.hmtx+4*X+2*(P-X))}}function Fe(O){return{ascent:$(O.data,O.hhea+4),descent:$(O.data,O.hhea+6),linegap:$(O.data,O.hhea+8)}}function qe(O,P,X,se,le,be){var ce={};return H(O,P,ce)?{x0:l(ce.x0*X+le),y0:l(-ce.y1*se+be),x1:h(ce.x1*X+le),y1:h(-ce.y0*se+be)}:{x0:0,y0:0,x1:0,y1:0}}function Le(O,P,X){var se=(O.x1-O.x0)/(O.y1-O.y0);return{fdx:se,fdy:se!=0?1/se:0,fx:O.x0+se*(X-O.y0)-(P|0),direction:O.invert?1:-1,sy:O.y0,ey:O.y1,next:0}}function xe(O,P,X,se,le,be,ce){P=P|0,le!=ce&&(le>X.ey||ce<X.sy||(le<X.sy&&(se+=(be-se)*(X.sy-le)/(ce-le),le=X.sy),ce>X.ey&&(be+=(be-se)*(X.ey-ce)/(ce-le),ce=X.ey),se<=P&&be<=P?O[P]+=X.direction*(ce-le):se>=P+1&&be>=P+1||(O[P]+=X.direction*(ce-le)*(1-(se-P+(be-P))/2))))}function He(O,P,X,se,le){for(var be=le+1;se;){if(se.fdx==0){var ce=se.fx;ce<X&&(ce>=0?(xe(O,ce,se,ce,le,ce,be),xe(P,ce+1,se,ce,le,ce,be)):xe(P,0,se,ce,le,ce,be))}else{var ce=se.fx,Re=se.fdx,ie=ce+Re,Be,Se,Oe,fe,Te=se.fdy;if(se.sy>le?(Be=ce+Re*(se.sy-le),Oe=se.sy):(Be=ce,Oe=le),se.ey<be?(Se=ce+Re*(se.ey-le),fe=se.ey):(Se=ie,fe=be),Be>=0&&Se>=0&&Be<X&&Se<X)if((Be|0)==(Se|0)){var Qe=fe-Oe,Ee=Be|0;O[Ee]+=se.direction*(1-(Be-Ee+(Se-Ee))/2)*Qe,P[Ee+1]+=se.direction*Qe}else{var Pe,Ee,Ne,je,Ve,ze,et,st;for(Be>Se&&(Oe=be-(Oe-le),fe=be-(fe-le),Pe=Oe,Oe=fe,fe=Pe,Pe=Se,Se=Be,Be=Pe,Re=-Re,Te=-Te,Pe=ce,ce=ie,ie=Pe),Ne=Be|0,je=Se|0,Ve=(Ne+1-ce)*Te+le,et=se.direction,st=et*(Ve-Oe),O[Ne]+=st*(1-(Be-Ne+(Ne+1-Ne))/2),ze=et*Te,Ee=Ne+1;Ee<je;++Ee)O[Ee]+=st+ze/2,st+=ze;Ve+=Te*(je-(Ne+1)),O[je]+=st+et*(1-(je-je+(Se-je))/2)*(fe-Ve),P[je+1]+=et*(fe-Oe)}else for(var Ee=0;Ee<X;++Ee){var rt=le,Ne=Ee,je=Ee+1,De=ie,Je=be,Xe=(Ee-ce)/Re+le,tt=(Ee+1-ce)/Re+le;ce<Ne&&De>je?(xe(O,Ee,se,ce,rt,Ne,Xe),xe(O,Ee,se,Ne,Xe,je,tt),xe(O,Ee,se,je,tt,De,Je)):De<Ne&&ce>je?(xe(O,Ee,se,ce,rt,je,tt),xe(O,Ee,se,je,tt,Ne,Xe),xe(O,Ee,se,Ne,Xe,De,Je)):ce<Ne&&De>Ne||De<Ne&&ce>Ne?(xe(O,Ee,se,ce,rt,Ne,Xe),xe(O,Ee,se,Ne,Xe,De,Je)):ce<je&&De>je||De<je&&ce>je?(xe(O,Ee,se,ce,rt,je,tt),xe(O,Ee,se,je,tt,De,Je)):xe(O,Ee,se,ce,rt,De,Je)}}se=se.next}}function $e(O,P,X,se,le,be){le|=0,be|=0;var ce=null,Re,ie=be,Be=0,Se,Oe=new Float32Array(O.w*2+1),fe=Oe.subarray(O.w),Te=0;for(P[X].y0=be+O.h+1;Be<O.h;){var Qe=ie+0,Ee=ie+1,Pe=ce;if(Oe.fill)Oe.fill(0);else for(var Ne=0,je=Oe.length;Ne<je;Ne++)Oe[Ne]=0;for(;Pe;)Re=Pe,Pe=Re.next,Re.ey<=Qe&&(Re.direction=0);for(;P[Te].y0<=Ee;)P[Te].y0!=P[Te].y1&&(Re=Le(P[Te],le,Qe),Re.next=ce,ce=Re),++Te;ce&&He(Oe,fe,O.w,ce,Qe);for(var Se=0,Ve=0;Se<O.w;++Se){var ze,et;Ve+=fe[Se],ze=Oe[Se]+Ve,ze=f(ze)*255+.5,et=ze>>>0,et>255&&(et=255),O.pixels[Be*O.stride+Se]=et}for(Pe=ce;Pe;)Re=Pe,Re.fx+=Re.fdx,Pe=Re.next;++ie,++Be}}function ot(O,P){for(var X=1;X<P;++X){for(var se=O[X],le=X;le>0&&se.y0<O[le-1].y0;)O[le]=O[le-1],--le;X!=le&&(O[le]=se)}}function ht(O,P,X){for(;X>12;){var se,le,be,ce,Re,ie=X>>1,Be=O[P].y0<O[P+ie].y0,Se=O[P+ie].y0<O[P+X-1].y0;for(Be!=Se&&(le=O[P].y0<O[P+X-11].y0,Re=le==Se?0:X-1,se=O[P+Re],O[P+Re]=O[P+ie],O[P+ie]=se),se=O[P],O[P]=O[P+ie],O[P+ie]=se,be=1,ce=X-1;;){for(;O[P+be].y0<O[P].y0;++be);for(;O[P].y0<O[P+ce].y0;--ce);if(be>=ce)break;se=O[P+be],O[P+be]=O[P+ce],O[P+ce]=se,++be,--ce}ce<X-be?(ht(O,P,ce),P+=be,X-=be):(ht(O,P+be,X-be),X=ce)}}function at(O,P){ht(O,0,P),ot(O,P)}function At(O,P,X,se,le,be,ce,Re,ie,Be){var Se=-le,Oe,fe,Te,Qe,Ee,Pe,Ne=1;for(fe=0,Te=0;Te<X.length;++Te)fe+=X[Te];for(Oe=p(fe+1),fe=0,Pe=0,Te=0;Te<X.length;++Te){var je=Pe;for(Pe+=X[Te],Qe=X[Te]-1,Ee=0;Ee<X[Te];Qe=Ee++){var Ve=Ee,ze=Qe;P[je+Qe].y!=P[je+Ee].y&&(Oe[fe].invert=0,P[je+Qe].y>P[je+Ee].y&&(Oe[fe].invert=1,Ve=Qe,ze=Ee),Oe[fe].x0=P[je+Ve].x*se+be,Oe[fe].y0=(P[je+Ve].y*Se+ce)*Ne,Oe[fe].x1=P[je+ze].x*se+be,Oe[fe].y1=(P[je+ze].y*Se+ce)*Ne,++fe)}}at(Oe,fe),$e(O,Oe,fe,Ne,Re,ie)}function lt(O,P,X,se,le,be,ce,Re,ie){var Be=(P+2*se+be)/4,Se=(X+2*le+ce)/4,Oe=(P+be)/2-Be,fe=(X+ce)/2-Se;return ie>16||(Oe*Oe+fe*fe>Re?(lt(O,P,X,(P+se)/2,(X+le)/2,Be,Se,Re,ie+1),lt(O,Be,Se,(se+be)/2,(le+ce)/2,be,ce,Re,ie+1)):O.push({x:be,y:ce})),1}function mt(O,P,X,se,le,be,ce,Re,ie,Be,Se){var Oe=se-P,fe=le-X,Te=be-se,Qe=ce-le,Ee=Re-be,Pe=ie-ce,Ne=Re-P,je=ie-X,Ve=u(Oe*Oe+fe*fe)+u(Te*Te+Qe*Qe)+u(Ee*Ee+Pe*Pe),ze=u(Ne*Ne+je*je),et=Ve*Ve-ze*ze;if(!(Se>16))if(et>Be){var st=(P+se)/2,rt=(X+le)/2,De=(se+be)/2,Je=(le+ce)/2,Xe=(be+Re)/2,tt=(ce+ie)/2,dt=(st+De)/2,pt=(rt+Je)/2,ut=(De+Xe)/2,bt=(Je+tt)/2,ct=(dt+ut)/2,Ot=(pt+bt)/2;mt(O,P,X,st,rt,dt,pt,ct,Ot,Be,Se+1),mt(O,ct,Ot,ut,bt,Xe,tt,Re,ie,Be,Se+1)}else O.push({x:Re,y:ie})}function Tt(O,P,X){for(var se=[],le=P*P,be=-1,ce=0,Re=0,ie=0,Be=0,Se=O.length;Be<Se;++Be)switch(O[Be].type){case a:be>=0&&(X[be]=se.length-ce),++be,ce=se.length,Re=O[Be].x,ie=O[Be].y,se.push({x:Re,y:ie});break;case i:Re=O[Be].x,ie=O[Be].y,se.push({x:Re,y:ie});break;case s:lt(se,Re,ie,O[Be].cx,O[Be].cy,O[Be].x,O[Be].y,le,0),Re=O[Be].x,ie=O[Be].y;break;case o:mt(se,Re,ie,O[Be].cx,O[Be].cy,O[Be].cx1,O[Be].cy1,O[Be].x,O[Be].y,le,0),Re=O[Be].x,ie=O[Be].y;break}return X[be]=se.length-ce,se}function It(O,P,X,se,le,be,ce,Re,ie,Be){Re|=0,ie|=0;var Se=se>le?le:se,Oe=[],fe=Tt(X,P/Se,Oe);fe&&At(O,fe,Oe,se,le,be,ce,Re,ie)}function Qt(O){var P={};if(!re(P,O,0))return null;var X=Fe(P);return P.ascent=X.ascent,P.descent=X.descent,P.linegap=X.linegap,P}function Bt(O,P,X,se){se=se||X;var le=X/O.ascent,be=se/O.ascent,ce=F(O,P);if(!ce&&P)return null;var Re=me(O,ce),ie=qe(O,ce,le,be,0,0),Be=ie.x1-ie.x0,Se=ie.y1-ie.y0,Oe=null;if(Be&&Se){var fe={pixels:Oe=new Uint8Array(Be*Se),w:Be,h:Se,stride:Be};It(fe,.35,Re,le,be,0,0,ie.x0,ie.y0)}var Te=_e(O,ce);return{glyph:ce,pixels:Oe,width:Be,height:Se,top:-ie.y0,left:ie.x0,advance:l(Te.advanceWidth*le)}}function xt(O,P,X,se){se=se||X;var le=X/O.ascent,be=se/O.ascent,ce=F(O,P);if(!ce&&P)return null;var Re=me(O,ce),ie=_e(O,ce),Be=0,Se=0,Oe=[];if(Re)for(var fe=0,Te=Re.length;fe<Te;fe++){var Qe=Re[fe],Ee;if(Qe.type==a)Ee={type:"M",x:Qe.x*le,y:Qe.y*be};else if(Qe.type==i)Ee={type:"L",x:Qe.x*le,y:Qe.y*be};else if(Qe.type==s)Ee={type:"Q",x:Qe.x*le,y:Qe.y*be,cx:Qe.cx*le,cy:Qe.cy*be};else if(Qe.type==o)Ee={type:"C",x:Qe.x*le,y:Qe.y*be,cx1:Qe.cx*le,cy1:Qe.cy*be,cx2:Qe.cx1*le,cy2:Qe.cy1*be};else continue;Ee.y>Be&&(Be=Ee.y),Ee.y<Se&&(Se=Ee.y),Oe.push(Ee)}return Oe.advance=ie.advanceWidth*le,Oe.ascent=Be,Oe.descent=Se,Oe}return{InitFont:Qt,GetGlyph:Bt,GetPaths:xt}})();function PV(a){if(typeof a=="string"){for(var i=/[^A-Za-z0-9+\/=\s]/.test(a),s=i?a:atob(a),o=s.length,v=new Uint8Array(o),b=0;b<o;b++)v[b]=s.charCodeAt(b);return v}else{if(a instanceof Uint8Array)return a;if(a instanceof ArrayBuffer)return new Uint8Array(a)}throw new ReferenceError("data must be a binary or base64 encoded string or Uint8Array")}Wa.loadFont("OCR-A",100,100,"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");Wa.loadFont("OCR-B",96,100,"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");const UV={toCanvas:TV,toSVG:RV,render:FV,raw:QV,drawingCanvas:ul,drawingSVG:Z8,fixupOptions:$8,loadFont:NV,FontLib:Wa,BWIPJS_VERSION:MV,BWIPP_VERSION:_V},qh=class qh{constructor(i,s){this.canvas=i,this.editor=s}async hookTransform(i){if(i.extensionType==="qrcode"){const s=this._paramsToOption(i.extension),{url:o,width:v,height:b}=await this._getQrCodeResult(s);if(i.src=o,v>0&&b>0){const y=i.width||0,g=i.height||0,l=i.scaleX||1,h=i.scaleY||1,u=y*l,f=g*h;u>0&&f>0&&(i.width=v,i.height=b,i.scaleX=u/v,i.scaleY=f/b)}}}async hookTransformObjectEnd({originObject:i,fabricObject:s}){i.extensionType==="qrcode"&&this.initQrcodeEvents(s)}async hookImportAfter(){const i=this.canvas.getObjects().filter(s=>s.type==="image"&&s.extensionType==="qrcode");await Promise.all(i.map(async s=>{this.initQrcodeEvents(s),await this._updateQrCodeImage(s,!0)})),this.canvas.renderAll()}async _getQrCodeResult(i){const s=this.canvas.getZoom()||1,o=window&&window.devicePixelRatio||1,v=(i.width||300)*s*o;let y=Math.ceil(v/35);y<2&&(y=2);const g=document.createElement("canvas"),l=i.color?.replace("#","")||"000000",h=i.bgColor?.replace("#","")||"ffffff",u=i.ecLevel||"M";try{return UV.toCanvas(g,{bcid:"qrcode",text:i.data||" ",scale:y,eclevel:u,barcolor:l,backgroundcolor:h}),{url:g.toDataURL("image/png"),width:g.width,height:g.height}}catch(f){return console.error("QR Code generation failed:",f),{url:"",width:0,height:0}}}async _getBase64Str(i){const{url:s}=await this._getQrCodeResult(i);return s}_defaultBarcodeOption(){return{value:"@hprint/print",width:300,margin:10,ecLevel:"M"}}_paramsToOption(i){const s=Number.isFinite(i.width),o=Number.isFinite(i.height),v=s&&o?Math.max(i.width,i.height):s?i.width:o?i.height:void 0;return{...i,width:v,height:v??i.width,type:"canvas",data:i.value!=null?String(i.value):void 0,margin:i.margin}}async _updateQrCodeImage(i,s=!1){const o=i.get("extension");if(!o)return;const v=async()=>{const b=i.getScaledWidth(),y=i.getScaledHeight(),g=Math.max(b,y),l={...o,width:g,height:g},h=this._paramsToOption(l);try{const u=await this._getBase64Str(h);await new Promise(f=>{i.setSrc(u,()=>{this._setImageScale(i,b,y),i.set("extension",l),this.canvas.renderAll(),f()})})}catch(u){console.error(u)}};s?await v():setTimeout(v,300)}_setImageScale(i,s,o){const v=i.width||0,b=i.height||0;if(v>0&&b>0){const y=s/v,g=o/b;i.set({scaleX:y,scaleY:g})}}initQrcodeEvents(i){i.setExtension=async s=>{const v={...i.get("extension")||{},...s||{}};i.set("extension",v),await this._updateQrCodeImage(i,!0)},i.setExtensionByUnit=async(s,o)=>{const v=Ln(this.editor),{processed:b,originByUnit:y}=u1(s||{},v,o),g=this.editor.getPrecision?.(),l=sa(y[v]||{},g),h=i._originSize||{},u=h[v]||{};u.extension={...u.extension||{},...l},i._originSize={...h,[v]:u};const p={...i.get("extension")||{},...b};i.set("extension",p),await this._updateQrCodeImage(i,!0)},i.off?.("modified"),i.off?.("scaled"),i.on("modified",async s=>{const o=s?.target||i;await this._updateQrCodeImage(o,!0)}),i.on("scaled",async()=>{await this._updateQrCodeImage(i,!0)})}async addQrCode(i,s,o){const v={...this._defaultBarcodeOption(),...s||{},...i?{value:i}:{}},b=Ln(this.editor),{processed:y,originByUnit:g}=u1(v,b,o,["left","top","width","height","margin"]),l={...v,...y},h=this._paramsToOption(l),u=await this._getBase64Str(h);return new Promise(f=>{Ce.fabric.Image.fromURL(u,p=>{const d=Number.isFinite(y.left)?y.left:0,A=Number.isFinite(y.top)?y.top:0;p.set({left:d,top:A,extensionType:"qrcode",extension:l,imageSmoothing:!1});const w=typeof l.width=="number"?l.width:p.width??0,m=typeof l.height=="number"?l.height:w;this._setImageScale(p,w,m);const C={...g[b]||{}};C.height===void 0&&C.width!==void 0&&(C.height=C.width),p._originSize={[b]:C},this.initQrcodeEvents(p),f(p)},{crossOrigin:"anonymous"})})}async setQrCode(i){try{const s=this._paramsToOption(i),o=await this._getBase64Str(s),v=this.canvas.getActiveObjects()[0];Ce.fabric.Image.fromURL(o,b=>{b.set({left:v.left,top:v.top,extensionType:"qrcode",extension:{...i}}),b.scaleToWidth(v.getScaledWidth()),this.initQrcodeEvents(b),this.editor.del(),this.canvas.add(b),this.canvas.setActiveObject(b)},{crossOrigin:"anonymous"})}catch(s){console.log(s)}}destroy(){console.log("pluginDestroy")}};qh.pluginName="QrCodePlugin",qh.apis=["addQrCode","setQrCode","initQrcodeEvents"];let Ah=qh;const Wh=class Wh{constructor(i,s){this.canvas=i,this.editor=s}addImage(i){return new Promise((s,o)=>{const v=new Image;v.crossOrigin="anonymous",v.onload=()=>s(v),v.onerror=()=>o(),v.src=i})}async imageStrokeDraw(i,s,o="source-over"){const v=this.canvas.getActiveObject();if(!v)return;const b=v.originWidth||0,y=v.originHeight||0,g=v?.originSrc||v.getSrc();let l=document.createElement("canvas");const h=l.getContext("2d");if(!h)return;if(s===0){v.setSrc(g,()=>{v.canvas?.renderAll()});return}h.save(),h.clearRect(0,0,l.width,l.height),h.restore(),l.width=b+s*2,l.height=y+s*2;const u=[-1,-1,0,-1,1,-1,-1,0,1,0,-1,1,0,1,1,1],f=await this.addImage(g);if(!f)return;for(let d=0;d<u.length;d+=2)h.drawImage(f,s+u[d]*s,s+u[d+1]*s,b,y);h.globalCompositeOperation="source-in",h.fillStyle=i,h.fillRect(0,0,b+s*2,y+s*2),h.globalCompositeOperation=o,h.drawImage(f,s,s,b,y);const p=l?.toDataURL();l=null,p&&v.setSrc(p,()=>{v.canvas?.renderAll()})}destroy(){}};Wh.pluginName="ImageStroke",Wh.apis=["imageStrokeDraw"];let mh=Wh;const Cl=class Cl{constructor(i,s){this.canvas=i,this.editor=s,this.minSize={width:1,height:1},this.barOpts={bWidth:30,bHeight:6,bPadding:10},this.hasCreatedBar=!1,this.isDragging=!1,this.dragEl=null,this.startPoints={x:0,y:0},this.barOffset={x:0,y:0},this.wsOffset={left:0,top:0,width:0,height:0},this.eventHandler={render:Bs(this.renderBars.bind(this),50),onDragging:Bs(this.onDragging.bind(this),30)},this._init(),this._initResizeObserve(),this._addListeners()}_init(){const i=document.querySelector("#workspace");if(!i)throw new Error("element #workspace is missing, plz check!");this.workspaceEl=i}_initResizeObserve(){new ResizeObserver(Bs(()=>{this.renderBars()},50)).observe(this.workspaceEl)}renderBars(){const i=this.canvas.viewportTransform,[s,,,o,v,b]=i||[],y=this.getWorkspase(),g=y.width*s,l=y.height*o,h=y.left*s,u=y.top*o,{bWidth:f,bHeight:p,bPadding:d}=this.barOpts;if(!i)return;const A=this._getBarFromType("left");A.style.left=`${v+h-p-d}px`,A.style.top=`${b+u+l/2-f/2}px`;const w=this._getBarFromType("right");w.style.left=`${v+h+g+d}px`,w.style.top=`${b+u+l/2-f/2}px`;const m=this._getBarFromType("top");m.style.left=`${v+h+g/2-f/2}px`,m.style.top=`${b+u-p-d}px`;const x=this._getBarFromType("bottom");x.style.left=`${v+h+g/2-f/2}px`,x.style.top=`${b+u+l+d}px`,this.hasCreatedBar||(this.hasCreatedBar=!0,this._watchDrag())}_getBarFromType(i){let s=document.querySelector(`#resize-${i}-bar`);return s||(s=document.createElement("div"),s.id=`resize-${i}-bar`,s.className="resize-bar",["left","right"].includes(i)?s.classList.add("horizontal"):s.classList.add("vertical"),this.workspaceEl.appendChild(s),s)}_watchDrag(){Array.from(document.getElementsByClassName("resize-bar")).forEach(s=>{s.addEventListener("mousedown",o=>{this.isDragging=!0,this.dragEl=s,this.dragEl.classList.add("active"),this.startPoints={x:o.clientX,y:o.clientY},this.barOffset={x:s.offsetLeft,y:s.offsetTop};const v=this.getWorkspase(),{width:b,height:y,left:g,top:l}=v;this.wsOffset={width:b,height:y,left:g,top:l}})}),document.addEventListener("mousemove",this.eventHandler.onDragging),document.addEventListener("mouseup",()=>{this.isDragging&&this.dragEl&&(this.isDragging=!1,this.dragEl.classList.remove("active"),this.dragEl=null,this.canvas.defaultCursor="default")})}onDragging(i){if(this.isDragging&&this.dragEl){const s=this.getWorkspase(),o=this.canvas.viewportTransform,[v,,,b]=o||[],y=i.clientX-this.startPoints.x,g=i.clientY-this.startPoints.y,l=y/v,h=g/b,u=this.dragEl.id.split("-")[1];let f=0;switch(u){case"left":f=Math.round(this.wsOffset.width-l*2),f>=this.minSize.width?(this.dragEl.style.left=`${this.barOffset.x+y}px`,s.set("left",this.wsOffset.left+l*2),s.set("width",f),this.editor.syncOriginSizeByUnit(f,void 0)):(s.set("left",this.wsOffset.left+this.wsOffset.width-this.minSize.width),s.set("width",this.minSize.width),this.editor.syncOriginSizeByUnit(this.minSize.width,void 0));break;case"right":f=Math.round(this.wsOffset.width+l*2),f>=this.minSize.width?(this.dragEl.style.left=`${this.barOffset.x+y}px`,s.set("width",f),this.editor.syncOriginSizeByUnit(f,void 0)):(s.set("width",this.minSize.width),this.editor.syncOriginSizeByUnit(this.minSize.width,void 0));break;case"top":f=Math.round(this.wsOffset.height-h*2),f>=this.minSize.height?(this.dragEl.style.top=`${this.barOffset.y+g}px`,s.set("top",this.wsOffset.top+h*2),s.set("height",f),this.editor.syncOriginSizeByUnit(void 0,f)):(s.set("top",this.wsOffset.top+this.wsOffset.height-this.minSize.height),s.set("height",this.minSize.height),this.editor.syncOriginSizeByUnit(void 0,this.minSize.height));break;case"bottom":f=Math.round(this.wsOffset.height+h*2),f>=this.minSize.height?(this.dragEl.style.top=`${this.barOffset.y+g}px`,s.set("height",f),this.editor.syncOriginSizeByUnit(void 0,f)):(s.set("height",this.minSize.height),this.editor.syncOriginSizeByUnit(void 0,this.minSize.height));break}this.editor.setCenterFromObject(s),s.clone(A=>{this.canvas.clipPath=A,this.canvas.requestRenderAll()}),["left","right"].includes(u)?this.canvas.defaultCursor="ew-resize":this.canvas.defaultCursor="ns-resize";let p=s.width,d=s.height;this.editor.getUnit()!=="px"&&({width:p,height:d}=this.editor.getOriginSize()),this.editor.emit("sizeChange",{width:this.editor.getSizeByUnit(p),height:this.editor.getSizeByUnit(d),unit:this.editor.getUnit()})}}_addListeners(){this.canvas.on("after:render",this.eventHandler.render)}getWorkspase(){return this.canvas.getObjects().find(i=>i.id==="workspace")}destroy(){console.log("pluginDestroy")}};Cl.pluginName="ResizePlugin",Cl.events=[],Cl.apis=[];let bh=Cl;const LV="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2022C17.5228%2022%2022%2017.5228%2022%2012C22%206.47715%2017.5228%202%2012%202C6.47715%202%202%206.47715%202%2012C2%2017.5228%206.47715%2022%2012%2022Z'%20stroke='black'%20fill='white'%20stroke-opacity='0.3'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9%2011V10C9%208.34%209.5%207%2012%207C14.5%207%2015%208.34%2015%2010V11'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M12%2014.6C12.3314%2014.6%2012.6%2014.3314%2012.6%2014C12.6%2013.6687%2012.3314%2013.4%2012%2013.4C11.6686%2013.4%2011.4%2013.6687%2011.4%2014C11.4%2014.3314%2011.6686%2014.6%2012%2014.6Z'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M14.5%2017H9.5C7.5%2017%207%2016.5%207%2014.5V13.5C7%2011.5%207.5%2011%209.5%2011H14.5C16.5%2011%2017%2011.5%2017%2013.5V14.5C17%2016.5%2016.5%2017%2014.5%2017Z'%20stroke='%23292D32'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e";var Np=(a=>(a.lockMovementX="lockMovementX",a.lockMovementY="lockMovementY",a.lockRotation="lockRotation",a.lockScalingX="lockScalingX",a.lockScalingY="lockScalingY",a))(Np||{}),e5=(a=>(a.bl="bl",a.br="br",a.mb="mb",a.ml="ml",a.mr="mr",a.mt="mt",a.tl="tl",a.tr="tr",a.mtr="mtr",a.lock="lock",a))(e5||{});const Vh=class Vh{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){const i=document.createElement("img");i.src=LV;const s=this;function o(b,y,g,l,h){b.save(),b.translate(y,g);const f=h.angle;b.rotate(Ce.fabric.util.degreesToRadians(f)),b.drawImage(i,-25/2,-25/2,25,25),b.restore()}function v(b,y){return s.unLock(),!0}Ce.fabric.Object.prototype.controls.lock=new Ce.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:v,render:o}),Ce.fabric.Textbox.prototype.controls.lock=new Ce.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:v,render:o}),this.canvas.on("selection:created",()=>this.renderCornerByActiveObj()),this.canvas.on("selection:updated",()=>this.renderCornerByActiveObj()),Ce.fabric.Canvas.prototype._groupSelectedObjects=function(b){const y=this._collectObjects(b);let g;for(let l=y.length-1;l>=0;l--)y[l].lockMovementX&&y.splice(l,1);y.length===1?this.setActiveObject(y[0],b):y.length>1&&(g=new Ce.fabric.ActiveSelection(y.reverse(),{canvas:this}),this.setActiveObject(g,b))},Ce.fabric.Canvas.prototype._handleGrouping=function(b,y){const g=this._activeObject;g.__corner||y.lockMovementX||g.lockMovementX||y===g&&(y=this.findTarget(b,!0),!y||!y.selectable||y.lockMovementX)||(g&&g.type==="activeSelection"?this._updateActiveSelection(y,b):this._createActiveSelection(y,b))}}controlCornersVisible(i){const s=i.lockMovementX;Object.values(e5).forEach(o=>{o==="lock"?i.setControlVisible(o,s):i.setControlVisible(o,!s)})}renderCornerByActiveObj(){const i=this.canvas.getActiveObjects().filter(s=>!(s instanceof Ce.fabric.GuideLine));if(i&&i.length===1){const s=i[0];this.controlCornersVisible(s)}else if(i&&i.length>1){const s=this.canvas.getActiveObject();s&&this.controlCornersVisible(s)}}hookImportAfter(){return this.canvas.forEachObject(i=>{i.id!=="workspace"&&i.hasControls===!1&&i.selectable===!1&&(this.canvas.setActiveObject(i),this.lock())}),Promise.resolve()}lock(){const i=this.canvas.getActiveObject();i&&(Object.values(Np).forEach(s=>{i[s]=!0}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(Sf.ONE,[i]))}unLock(){const i=this.canvas.getActiveObject();i&&(i.hasControls=!0,i.selectable=!0,i.evented=!0,Object.values(Np).forEach(s=>{i[s]=!1}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(Sf.ONE,[i]))}contextMenu(){const i=this.editor.getSelectMode(),s=this.canvas.getActiveObject();if(i===Zh.ONE&&s)return s.selectable?[{text:"锁定",hotkey:"",onclick:()=>this.lock()}]:[{text:"解锁",hotkey:"",onclick:()=>this.unLock()}]}destroy(){console.log("pluginDestroy")}};Vh.pluginName="LockPlugin",Vh.apis=["lock","unLock"];let wh=Vh;const Xh=class Xh{constructor(i,s){this.canvas=i,this.editor=s,this.editor=s,this.canvas=i}addObject(i,s){const{event:o=!1,scale:v=!1,center:b=!0}=s||{};i.set({id:oa()}),v&&this._toScale(i),o&&this._toEvent(i,o),this.canvas.add(i),!o&&b&&this._toCenter(i),i.syncOriginSizeByUnit(["left","top"]),this.canvas.setActiveObject(i),this.canvas.renderAll(),this.editor.saveState()}_toEvent(i,s){const{left:o,top:v}=this.canvas.getSelectionElement().getBoundingClientRect();if(s.x<o||s.y<v||i.width===void 0)return;const b={x:s.x-o,y:s.y-v},y=this.canvas.restorePointerVpt(b);i.set({left:y.x,top:y.y})}_toCenter(i){this.editor.positionV2(i,"center")}_toScale(i){const{width:s}=this.editor.getWorkspase();s!==void 0&&i.scaleToWidth(s/2)}createImgByElement(i){return new Promise(s=>{this.getImageExtension(i.src)==="svg"?Ce.fabric.loadSVGFromURL(i.src,v=>{const b=Ce.fabric.util.groupSVGElements(v,{shadow:"",fontFamily:"arial",name:"svg元素"});s(b)}):Ce.fabric.Image.fromURL(i.src,v=>{s(v)},{crossOrigin:"anonymous"})})}getImageExtension(i){const s=i.split("/"),v=s[s.length-1].split(".");return v[v.length-1]}destroy(){console.log("pluginDestroy")}};Xh.pluginName="AddBaseTypePlugin",Xh.apis=["addObject","createImgByElement"];let yh=Xh;const os=Object.create(null);os.open="0";os.close="1";os.ping="2";os.pong="3";os.message="4";os.upgrade="5";os.noop="6";const Cf=Object.create(null);Object.keys(os).forEach(a=>{Cf[os[a]]=a});const Pp={type:"error",data:"parser error"},t5=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",r5=typeof ArrayBuffer=="function",i5=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a&&a.buffer instanceof ArrayBuffer,d3=({type:a,data:i},s,o)=>t5&&i instanceof Blob?s?o(i):vw(i,o):r5&&(i instanceof ArrayBuffer||i5(i))?s?o(i):vw(new Blob([i]),o):o(os[a]+(i||"")),vw=(a,i)=>{const s=new FileReader;return s.onload=function(){const o=s.result.split(",")[1];i("b"+(o||""))},s.readAsDataURL(a)};function Aw(a){return a instanceof Uint8Array?a:a instanceof ArrayBuffer?new Uint8Array(a):new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}let Jd;function GV(a,i){if(t5&&a.data instanceof Blob)return a.data.arrayBuffer().then(Aw).then(i);if(r5&&(a.data instanceof ArrayBuffer||i5(a.data)))return i(Aw(a.data));d3(a,!1,s=>{Jd||(Jd=new TextEncoder),i(Jd.encode(s))})}const mw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",dl=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let a=0;a<mw.length;a++)dl[mw.charCodeAt(a)]=a;const YV=a=>{let i=a.length*.75,s=a.length,o,v=0,b,y,g,l;a[a.length-1]==="="&&(i--,a[a.length-2]==="="&&i--);const h=new ArrayBuffer(i),u=new Uint8Array(h);for(o=0;o<s;o+=4)b=dl[a.charCodeAt(o)],y=dl[a.charCodeAt(o+1)],g=dl[a.charCodeAt(o+2)],l=dl[a.charCodeAt(o+3)],u[v++]=b<<2|y>>4,u[v++]=(y&15)<<4|g>>2,u[v++]=(g&3)<<6|l&63;return h},HV=typeof ArrayBuffer=="function",p3=(a,i)=>{if(typeof a!="string")return{type:"message",data:n5(a,i)};const s=a.charAt(0);return s==="b"?{type:"message",data:zV(a.substring(1),i)}:Cf[s]?a.length>1?{type:Cf[s],data:a.substring(1)}:{type:Cf[s]}:Pp},zV=(a,i)=>{if(HV){const s=YV(a);return n5(s,i)}else return{base64:!0,data:a}},n5=(a,i)=>{switch(i){case"blob":return a instanceof Blob?a:new Blob([a]);case"arraybuffer":default:return a instanceof ArrayBuffer?a:a.buffer}},a5="",qV=(a,i)=>{const s=a.length,o=new Array(s);let v=0;a.forEach((b,y)=>{d3(b,!1,g=>{o[y]=g,++v===s&&i(o.join(a5))})})},WV=(a,i)=>{const s=a.split(a5),o=[];for(let v=0;v<s.length;v++){const b=p3(s[v],i);if(o.push(b),b.type==="error")break}return o};function VV(){return new TransformStream({transform(a,i){GV(a,s=>{const o=s.length;let v;if(o<126)v=new Uint8Array(1),new DataView(v.buffer).setUint8(0,o);else if(o<65536){v=new Uint8Array(3);const b=new DataView(v.buffer);b.setUint8(0,126),b.setUint16(1,o)}else{v=new Uint8Array(9);const b=new DataView(v.buffer);b.setUint8(0,127),b.setBigUint64(1,BigInt(o))}a.data&&typeof a.data!="string"&&(v[0]|=128),i.enqueue(v),i.enqueue(s)})}})}let Kd;function df(a){return a.reduce((i,s)=>i+s.length,0)}function pf(a,i){if(a[0].length===i)return a.shift();const s=new Uint8Array(i);let o=0;for(let v=0;v<i;v++)s[v]=a[0][o++],o===a[0].length&&(a.shift(),o=0);return a.length&&o<a[0].length&&(a[0]=a[0].slice(o)),s}function XV(a,i){Kd||(Kd=new TextDecoder);const s=[];let o=0,v=-1,b=!1;return new TransformStream({transform(y,g){for(s.push(y);;){if(o===0){if(df(s)<1)break;const l=pf(s,1);b=(l[0]&128)===128,v=l[0]&127,v<126?o=3:v===126?o=1:o=2}else if(o===1){if(df(s)<2)break;const l=pf(s,2);v=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),o=3}else if(o===2){if(df(s)<8)break;const l=pf(s,8),h=new DataView(l.buffer,l.byteOffset,l.length),u=h.getUint32(0);if(u>Math.pow(2,21)-1){g.enqueue(Pp);break}v=u*Math.pow(2,32)+h.getUint32(4),o=3}else{if(df(s)<v)break;const l=pf(s,v);g.enqueue(p3(b?l:Kd.decode(l),i)),o=0}if(v===0||v>a){g.enqueue(Pp);break}}}})}const s5=4;function Xn(a){if(a)return $V(a)}function $V(a){for(var i in Xn.prototype)a[i]=Xn.prototype[i];return a}Xn.prototype.on=Xn.prototype.addEventListener=function(a,i){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(i),this};Xn.prototype.once=function(a,i){function s(){this.off(a,s),i.apply(this,arguments)}return s.fn=i,this.on(a,s),this};Xn.prototype.off=Xn.prototype.removeListener=Xn.prototype.removeAllListeners=Xn.prototype.removeEventListener=function(a,i){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var s=this._callbacks["$"+a];if(!s)return this;if(arguments.length==1)return delete this._callbacks["$"+a],this;for(var o,v=0;v<s.length;v++)if(o=s[v],o===i||o.fn===i){s.splice(v,1);break}return s.length===0&&delete this._callbacks["$"+a],this};Xn.prototype.emit=function(a){this._callbacks=this._callbacks||{};for(var i=new Array(arguments.length-1),s=this._callbacks["$"+a],o=1;o<arguments.length;o++)i[o-1]=arguments[o];if(s){s=s.slice(0);for(var o=0,v=s.length;o<v;++o)s[o].apply(this,i)}return this};Xn.prototype.emitReserved=Xn.prototype.emit;Xn.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]};Xn.prototype.hasListeners=function(a){return!!this.listeners(a).length};const Hu=typeof Promise=="function"&&typeof Promise.resolve=="function"?i=>Promise.resolve().then(i):(i,s)=>s(i,0),w1=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),JV="arraybuffer";function o5(a,...i){return i.reduce((s,o)=>(a.hasOwnProperty(o)&&(s[o]=a[o]),s),{})}const KV=w1.setTimeout,ZV=w1.clearTimeout;function zu(a,i){i.useNativeTimers?(a.setTimeoutFn=KV.bind(w1),a.clearTimeoutFn=ZV.bind(w1)):(a.setTimeoutFn=w1.setTimeout.bind(w1),a.clearTimeoutFn=w1.clearTimeout.bind(w1))}const eX=1.33;function tX(a){return typeof a=="string"?rX(a):Math.ceil((a.byteLength||a.size)*eX)}function rX(a){let i=0,s=0;for(let o=0,v=a.length;o<v;o++)i=a.charCodeAt(o),i<128?s+=1:i<2048?s+=2:i<55296||i>=57344?s+=3:(o++,s+=4);return s}function c5(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function iX(a){let i="";for(let s in a)a.hasOwnProperty(s)&&(i.length&&(i+="&"),i+=encodeURIComponent(s)+"="+encodeURIComponent(a[s]));return i}function nX(a){let i={},s=a.split("&");for(let o=0,v=s.length;o<v;o++){let b=s[o].split("=");i[decodeURIComponent(b[0])]=decodeURIComponent(b[1])}return i}class aX extends Error{constructor(i,s,o){super(i),this.description=s,this.context=o,this.type="TransportError"}}class g3 extends Xn{constructor(i){super(),this.writable=!1,zu(this,i),this.opts=i,this.query=i.query,this.socket=i.socket,this.supportsBinary=!i.forceBase64}onError(i,s,o){return super.emitReserved("error",new aX(i,s,o)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(i){this.readyState==="open"&&this.write(i)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(i){const s=p3(i,this.socket.binaryType);this.onPacket(s)}onPacket(i){super.emitReserved("packet",i)}onClose(i){this.readyState="closed",super.emitReserved("close",i)}pause(i){}createUri(i,s={}){return i+"://"+this._hostname()+this._port()+this.opts.path+this._query(s)}_hostname(){const i=this.opts.hostname;return i.indexOf(":")===-1?i:"["+i+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(i){const s=iX(i);return s.length?"?"+s:""}}class sX extends g3{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(i){this.readyState="pausing";const s=()=>{this.readyState="paused",i()};if(this._polling||!this.writable){let o=0;this._polling&&(o++,this.once("pollComplete",function(){--o||s()})),this.writable||(o++,this.once("drain",function(){--o||s()}))}else s()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(i){const s=o=>{if(this.readyState==="opening"&&o.type==="open"&&this.onOpen(),o.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(o)};WV(i,this.socket.binaryType).forEach(s),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const i=()=>{this.write([{type:"close"}])};this.readyState==="open"?i():this.once("open",i)}write(i){this.writable=!1,qV(i,s=>{this.doWrite(s,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const i=this.opts.secure?"https":"http",s=this.query||{};return this.opts.timestampRequests!==!1&&(s[this.opts.timestampParam]=c5()),!this.supportsBinary&&!s.sid&&(s.b64=1),this.createUri(i,s)}}let l5=!1;try{l5=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const oX=l5;function cX(){}class lX extends sX{constructor(i){if(super(i),typeof location<"u"){const s=location.protocol==="https:";let o=location.port;o||(o=s?"443":"80"),this.xd=typeof location<"u"&&i.hostname!==location.hostname||o!==i.port}}doWrite(i,s){const o=this.request({method:"POST",data:i});o.on("success",s),o.on("error",(v,b)=>{this.onError("xhr post error",v,b)})}doPoll(){const i=this.request();i.on("data",this.onData.bind(this)),i.on("error",(s,o)=>{this.onError("xhr poll error",s,o)}),this.pollXhr=i}}class ns extends Xn{constructor(i,s,o){super(),this.createRequest=i,zu(this,o),this._opts=o,this._method=o.method||"GET",this._uri=s,this._data=o.data!==void 0?o.data:null,this._create()}_create(){var i;const s=o5(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");s.xdomain=!!this._opts.xd;const o=this._xhr=this.createRequest(s);try{o.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){o.setDisableHeaderCheck&&o.setDisableHeaderCheck(!0);for(let v in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(v)&&o.setRequestHeader(v,this._opts.extraHeaders[v])}}catch{}if(this._method==="POST")try{o.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{o.setRequestHeader("Accept","*/*")}catch{}(i=this._opts.cookieJar)===null||i===void 0||i.addCookies(o),"withCredentials"in o&&(o.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(o.timeout=this._opts.requestTimeout),o.onreadystatechange=()=>{var v;o.readyState===3&&((v=this._opts.cookieJar)===null||v===void 0||v.parseCookies(o.getResponseHeader("set-cookie"))),o.readyState===4&&(o.status===200||o.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof o.status=="number"?o.status:0)},0))},o.send(this._data)}catch(v){this.setTimeoutFn(()=>{this._onError(v)},0);return}typeof document<"u"&&(this._index=ns.requestsCount++,ns.requests[this._index]=this)}_onError(i){this.emitReserved("error",i,this._xhr),this._cleanup(!0)}_cleanup(i){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=cX,i)try{this._xhr.abort()}catch{}typeof document<"u"&&delete ns.requests[this._index],this._xhr=null}}_onLoad(){const i=this._xhr.responseText;i!==null&&(this.emitReserved("data",i),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}ns.requestsCount=0;ns.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",bw);else if(typeof addEventListener=="function"){const a="onpagehide"in w1?"pagehide":"unload";addEventListener(a,bw,!1)}}function bw(){for(let a in ns.requests)ns.requests.hasOwnProperty(a)&&ns.requests[a].abort()}const fX=(function(){const a=f5({xdomain:!1});return a&&a.responseType!==null})();class hX extends lX{constructor(i){super(i);const s=i&&i.forceBase64;this.supportsBinary=fX&&!s}request(i={}){return Object.assign(i,{xd:this.xd},this.opts),new ns(f5,this.uri(),i)}}function f5(a){const i=a.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!i||oX))return new XMLHttpRequest}catch{}if(!i)try{return new w1[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const h5=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class uX extends g3{get name(){return"websocket"}doOpen(){const i=this.uri(),s=this.opts.protocols,o=h5?{}:o5(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(o.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(i,s,o)}catch(v){return this.emitReserved("error",v)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=i=>this.onClose({description:"websocket connection closed",context:i}),this.ws.onmessage=i=>this.onData(i.data),this.ws.onerror=i=>this.onError("websocket error",i)}write(i){this.writable=!1;for(let s=0;s<i.length;s++){const o=i[s],v=s===i.length-1;d3(o,this.supportsBinary,b=>{try{this.doWrite(o,b)}catch{}v&&Hu(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const i=this.opts.secure?"wss":"ws",s=this.query||{};return this.opts.timestampRequests&&(s[this.opts.timestampParam]=c5()),this.supportsBinary||(s.b64=1),this.createUri(i,s)}}const Zd=w1.WebSocket||w1.MozWebSocket;class dX extends uX{createSocket(i,s,o){return h5?new Zd(i,s,o):s?new Zd(i,s):new Zd(i)}doWrite(i,s){this.ws.send(s)}}class pX extends g3{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(i){return this.emitReserved("error",i)}this._transport.closed.then(()=>{this.onClose()}).catch(i=>{this.onError("webtransport error",i)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(i=>{const s=XV(Number.MAX_SAFE_INTEGER,this.socket.binaryType),o=i.readable.pipeThrough(s).getReader(),v=VV();v.readable.pipeTo(i.writable),this._writer=v.writable.getWriter();const b=()=>{o.read().then(({done:g,value:l})=>{g||(this.onPacket(l),b())}).catch(g=>{})};b();const y={type:"open"};this.query.sid&&(y.data=`{"sid":"${this.query.sid}"}`),this._writer.write(y).then(()=>this.onOpen())})})}write(i){this.writable=!1;for(let s=0;s<i.length;s++){const o=i[s],v=s===i.length-1;this._writer.write(o).then(()=>{v&&Hu(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var i;(i=this._transport)===null||i===void 0||i.close()}}const gX={websocket:dX,webtransport:pX,polling:hX},vX=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,AX=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Up(a){if(a.length>8e3)throw"URI too long";const i=a,s=a.indexOf("["),o=a.indexOf("]");s!=-1&&o!=-1&&(a=a.substring(0,s)+a.substring(s,o).replace(/:/g,";")+a.substring(o,a.length));let v=vX.exec(a||""),b={},y=14;for(;y--;)b[AX[y]]=v[y]||"";return s!=-1&&o!=-1&&(b.source=i,b.host=b.host.substring(1,b.host.length-1).replace(/;/g,":"),b.authority=b.authority.replace("[","").replace("]","").replace(/;/g,":"),b.ipv6uri=!0),b.pathNames=mX(b,b.path),b.queryKey=bX(b,b.query),b}function mX(a,i){const s=/\/{2,9}/g,o=i.replace(s,"/").split("/");return(i.slice(0,1)=="/"||i.length===0)&&o.splice(0,1),i.slice(-1)=="/"&&o.splice(o.length-1,1),o}function bX(a,i){const s={};return i.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(o,v,b){v&&(s[v]=b)}),s}const Lp=typeof addEventListener=="function"&&typeof removeEventListener=="function",If=[];Lp&&addEventListener("offline",()=>{If.forEach(a=>a())},!1);class Vs extends Xn{constructor(i,s){if(super(),this.binaryType=JV,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,i&&typeof i=="object"&&(s=i,i=null),i){const o=Up(i);s.hostname=o.host,s.secure=o.protocol==="https"||o.protocol==="wss",s.port=o.port,o.query&&(s.query=o.query)}else s.host&&(s.hostname=Up(s.host).host);zu(this,s),this.secure=s.secure!=null?s.secure:typeof location<"u"&&location.protocol==="https:",s.hostname&&!s.port&&(s.port=this.secure?"443":"80"),this.hostname=s.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=s.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},s.transports.forEach(o=>{const v=o.prototype.name;this.transports.push(v),this._transportsByName[v]=o}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},s),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=nX(this.opts.query)),Lp&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},If.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(i){const s=Object.assign({},this.opts.query);s.EIO=s5,s.transport=i,this.id&&(s.sid=this.id);const o=Object.assign({},this.opts,{query:s,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[i]);return new this._transportsByName[i](o)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const i=this.opts.rememberUpgrade&&Vs.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const s=this.createTransport(i);s.open(),this.setTransport(s)}setTransport(i){this.transport&&this.transport.removeAllListeners(),this.transport=i,i.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",s=>this._onClose("transport close",s))}onOpen(){this.readyState="open",Vs.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(i){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",i),this.emitReserved("heartbeat"),i.type){case"open":this.onHandshake(JSON.parse(i.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const s=new Error("server error");s.code=i.data,this._onError(s);break;case"message":this.emitReserved("data",i.data),this.emitReserved("message",i.data);break}}onHandshake(i){this.emitReserved("handshake",i),this.id=i.sid,this.transport.query.sid=i.sid,this._pingInterval=i.pingInterval,this._pingTimeout=i.pingTimeout,this._maxPayload=i.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const i=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+i,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},i),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const i=this._getWritablePackets();this.transport.send(i),this._prevBufferLen=i.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let s=1;for(let o=0;o<this.writeBuffer.length;o++){const v=this.writeBuffer[o].data;if(v&&(s+=tX(v)),o>0&&s>this._maxPayload)return this.writeBuffer.slice(0,o);s+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const i=Date.now()>this._pingTimeoutTime;return i&&(this._pingTimeoutTime=0,Hu(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),i}write(i,s,o){return this._sendPacket("message",i,s,o),this}send(i,s,o){return this._sendPacket("message",i,s,o),this}_sendPacket(i,s,o,v){if(typeof s=="function"&&(v=s,s=void 0),typeof o=="function"&&(v=o,o=null),this.readyState==="closing"||this.readyState==="closed")return;o=o||{},o.compress=o.compress!==!1;const b={type:i,data:s,options:o};this.emitReserved("packetCreate",b),this.writeBuffer.push(b),v&&this.once("flush",v),this.flush()}close(){const i=()=>{this._onClose("forced close"),this.transport.close()},s=()=>{this.off("upgrade",s),this.off("upgradeError",s),i()},o=()=>{this.once("upgrade",s),this.once("upgradeError",s)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?o():i()}):this.upgrading?o():i()),this}_onError(i){if(Vs.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",i),this._onClose("transport error",i)}_onClose(i,s){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Lp&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const o=If.indexOf(this._offlineEventListener);o!==-1&&If.splice(o,1)}this.readyState="closed",this.id=null,this.emitReserved("close",i,s),this.writeBuffer=[],this._prevBufferLen=0}}}Vs.protocol=s5;class wX extends Vs{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let i=0;i<this._upgrades.length;i++)this._probe(this._upgrades[i])}_probe(i){let s=this.createTransport(i),o=!1;Vs.priorWebsocketSuccess=!1;const v=()=>{o||(s.send([{type:"ping",data:"probe"}]),s.once("packet",f=>{if(!o)if(f.type==="pong"&&f.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",s),!s)return;Vs.priorWebsocketSuccess=s.name==="websocket",this.transport.pause(()=>{o||this.readyState!=="closed"&&(u(),this.setTransport(s),s.send([{type:"upgrade"}]),this.emitReserved("upgrade",s),s=null,this.upgrading=!1,this.flush())})}else{const p=new Error("probe error");p.transport=s.name,this.emitReserved("upgradeError",p)}}))};function b(){o||(o=!0,u(),s.close(),s=null)}const y=f=>{const p=new Error("probe error: "+f);p.transport=s.name,b(),this.emitReserved("upgradeError",p)};function g(){y("transport closed")}function l(){y("socket closed")}function h(f){s&&f.name!==s.name&&b()}const u=()=>{s.removeListener("open",v),s.removeListener("error",y),s.removeListener("close",g),this.off("close",l),this.off("upgrading",h)};s.once("open",v),s.once("error",y),s.once("close",g),this.once("close",l),this.once("upgrading",h),this._upgrades.indexOf("webtransport")!==-1&&i!=="webtransport"?this.setTimeoutFn(()=>{o||s.open()},200):s.open()}onHandshake(i){this._upgrades=this._filterUpgrades(i.upgrades),super.onHandshake(i)}_filterUpgrades(i){const s=[];for(let o=0;o<i.length;o++)~this.transports.indexOf(i[o])&&s.push(i[o]);return s}}let yX=class extends wX{constructor(i,s={}){const o=typeof i=="object"?i:s;(!o.transports||o.transports&&typeof o.transports[0]=="string")&&(o.transports=(o.transports||["polling","websocket","webtransport"]).map(v=>gX[v]).filter(v=>!!v)),super(i,o)}};function xX(a,i="",s){let o=a;s=s||typeof location<"u"&&location,a==null&&(a=s.protocol+"//"+s.host),typeof a=="string"&&(a.charAt(0)==="/"&&(a.charAt(1)==="/"?a=s.protocol+a:a=s.host+a),/^(https?|wss?):\/\//.test(a)||(typeof s<"u"?a=s.protocol+"//"+a:a="https://"+a),o=Up(a)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";const b=o.host.indexOf(":")!==-1?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+b+":"+o.port+i,o.href=o.protocol+"://"+b+(s&&s.port===o.port?"":":"+o.port),o}const CX=typeof ArrayBuffer=="function",IX=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a.buffer instanceof ArrayBuffer,u5=Object.prototype.toString,EX=typeof Blob=="function"||typeof Blob<"u"&&u5.call(Blob)==="[object BlobConstructor]",BX=typeof File=="function"||typeof File<"u"&&u5.call(File)==="[object FileConstructor]";function v3(a){return CX&&(a instanceof ArrayBuffer||IX(a))||EX&&a instanceof Blob||BX&&a instanceof File}function Ef(a,i){if(!a||typeof a!="object")return!1;if(Array.isArray(a)){for(let s=0,o=a.length;s<o;s++)if(Ef(a[s]))return!0;return!1}if(v3(a))return!0;if(a.toJSON&&typeof a.toJSON=="function"&&arguments.length===1)return Ef(a.toJSON(),!0);for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)&&Ef(a[s]))return!0;return!1}function SX(a){const i=[],s=a.data,o=a;return o.data=Gp(s,i),o.attachments=i.length,{packet:o,buffers:i}}function Gp(a,i){if(!a)return a;if(v3(a)){const s={_placeholder:!0,num:i.length};return i.push(a),s}else if(Array.isArray(a)){const s=new Array(a.length);for(let o=0;o<a.length;o++)s[o]=Gp(a[o],i);return s}else if(typeof a=="object"&&!(a instanceof Date)){const s={};for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&(s[o]=Gp(a[o],i));return s}return a}function kX(a,i){return a.data=Yp(a.data,i),delete a.attachments,a}function Yp(a,i){if(!a)return a;if(a&&a._placeholder===!0){if(typeof a.num=="number"&&a.num>=0&&a.num<i.length)return i[a.num];throw new Error("illegal attachments")}else if(Array.isArray(a))for(let s=0;s<a.length;s++)a[s]=Yp(a[s],i);else if(typeof a=="object")for(const s in a)Object.prototype.hasOwnProperty.call(a,s)&&(a[s]=Yp(a[s],i));return a}const _X=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],MX=5;var Jr;(function(a){a[a.CONNECT=0]="CONNECT",a[a.DISCONNECT=1]="DISCONNECT",a[a.EVENT=2]="EVENT",a[a.ACK=3]="ACK",a[a.CONNECT_ERROR=4]="CONNECT_ERROR",a[a.BINARY_EVENT=5]="BINARY_EVENT",a[a.BINARY_ACK=6]="BINARY_ACK"})(Jr||(Jr={}));class TX{constructor(i){this.replacer=i}encode(i){return(i.type===Jr.EVENT||i.type===Jr.ACK)&&Ef(i)?this.encodeAsBinary({type:i.type===Jr.EVENT?Jr.BINARY_EVENT:Jr.BINARY_ACK,nsp:i.nsp,data:i.data,id:i.id}):[this.encodeAsString(i)]}encodeAsString(i){let s=""+i.type;return(i.type===Jr.BINARY_EVENT||i.type===Jr.BINARY_ACK)&&(s+=i.attachments+"-"),i.nsp&&i.nsp!=="/"&&(s+=i.nsp+","),i.id!=null&&(s+=i.id),i.data!=null&&(s+=JSON.stringify(i.data,this.replacer)),s}encodeAsBinary(i){const s=SX(i),o=this.encodeAsString(s.packet),v=s.buffers;return v.unshift(o),v}}function ww(a){return Object.prototype.toString.call(a)==="[object Object]"}class A3 extends Xn{constructor(i){super(),this.reviver=i}add(i){let s;if(typeof i=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");s=this.decodeString(i);const o=s.type===Jr.BINARY_EVENT;o||s.type===Jr.BINARY_ACK?(s.type=o?Jr.EVENT:Jr.ACK,this.reconstructor=new OX(s),s.attachments===0&&super.emitReserved("decoded",s)):super.emitReserved("decoded",s)}else if(v3(i)||i.base64)if(this.reconstructor)s=this.reconstructor.takeBinaryData(i),s&&(this.reconstructor=null,super.emitReserved("decoded",s));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+i)}decodeString(i){let s=0;const o={type:Number(i.charAt(0))};if(Jr[o.type]===void 0)throw new Error("unknown packet type "+o.type);if(o.type===Jr.BINARY_EVENT||o.type===Jr.BINARY_ACK){const b=s+1;for(;i.charAt(++s)!=="-"&&s!=i.length;);const y=i.substring(b,s);if(y!=Number(y)||i.charAt(s)!=="-")throw new Error("Illegal attachments");o.attachments=Number(y)}if(i.charAt(s+1)==="/"){const b=s+1;for(;++s&&!(i.charAt(s)===","||s===i.length););o.nsp=i.substring(b,s)}else o.nsp="/";const v=i.charAt(s+1);if(v!==""&&Number(v)==v){const b=s+1;for(;++s;){const y=i.charAt(s);if(y==null||Number(y)!=y){--s;break}if(s===i.length)break}o.id=Number(i.substring(b,s+1))}if(i.charAt(++s)){const b=this.tryParse(i.substr(s));if(A3.isPayloadValid(o.type,b))o.data=b;else throw new Error("invalid payload")}return o}tryParse(i){try{return JSON.parse(i,this.reviver)}catch{return!1}}static isPayloadValid(i,s){switch(i){case Jr.CONNECT:return ww(s);case Jr.DISCONNECT:return s===void 0;case Jr.CONNECT_ERROR:return typeof s=="string"||ww(s);case Jr.EVENT:case Jr.BINARY_EVENT:return Array.isArray(s)&&(typeof s[0]=="number"||typeof s[0]=="string"&&_X.indexOf(s[0])===-1);case Jr.ACK:case Jr.BINARY_ACK:return Array.isArray(s)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class OX{constructor(i){this.packet=i,this.buffers=[],this.reconPack=i}takeBinaryData(i){if(this.buffers.push(i),this.buffers.length===this.reconPack.attachments){const s=kX(this.reconPack,this.buffers);return this.finishedReconstruction(),s}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const RX=Object.freeze(Object.defineProperty({__proto__:null,Decoder:A3,Encoder:TX,get PacketType(){return Jr},protocol:MX},Symbol.toStringTag,{value:"Module"}));function j1(a,i,s){return a.on(i,s),function(){a.off(i,s)}}const DX=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class d5 extends Xn{constructor(i,s,o){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=i,this.nsp=s,o&&o.auth&&(this.auth=o.auth),this._opts=Object.assign({},o),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const i=this.io;this.subs=[j1(i,"open",this.onopen.bind(this)),j1(i,"packet",this.onpacket.bind(this)),j1(i,"error",this.onerror.bind(this)),j1(i,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...i){return i.unshift("message"),this.emit.apply(this,i),this}emit(i,...s){var o,v,b;if(DX.hasOwnProperty(i))throw new Error('"'+i.toString()+'" is a reserved event name');if(s.unshift(i),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(s),this;const y={type:Jr.EVENT,data:s};if(y.options={},y.options.compress=this.flags.compress!==!1,typeof s[s.length-1]=="function"){const u=this.ids++,f=s.pop();this._registerAckCallback(u,f),y.id=u}const g=(v=(o=this.io.engine)===null||o===void 0?void 0:o.transport)===null||v===void 0?void 0:v.writable,l=this.connected&&!(!((b=this.io.engine)===null||b===void 0)&&b._hasPingExpired());return this.flags.volatile&&!g||(l?(this.notifyOutgoingListeners(y),this.packet(y)):this.sendBuffer.push(y)),this.flags={},this}_registerAckCallback(i,s){var o;const v=(o=this.flags.timeout)!==null&&o!==void 0?o:this._opts.ackTimeout;if(v===void 0){this.acks[i]=s;return}const b=this.io.setTimeoutFn(()=>{delete this.acks[i];for(let g=0;g<this.sendBuffer.length;g++)this.sendBuffer[g].id===i&&this.sendBuffer.splice(g,1);s.call(this,new Error("operation has timed out"))},v),y=(...g)=>{this.io.clearTimeoutFn(b),s.apply(this,g)};y.withError=!0,this.acks[i]=y}emitWithAck(i,...s){return new Promise((o,v)=>{const b=(y,g)=>y?v(y):o(g);b.withError=!0,s.push(b),this.emit(i,...s)})}_addToQueue(i){let s;typeof i[i.length-1]=="function"&&(s=i.pop());const o={id:this._queueSeq++,tryCount:0,pending:!1,args:i,flags:Object.assign({fromQueue:!0},this.flags)};i.push((v,...b)=>o!==this._queue[0]?void 0:(v!==null?o.tryCount>this._opts.retries&&(this._queue.shift(),s&&s(v)):(this._queue.shift(),s&&s(null,...b)),o.pending=!1,this._drainQueue())),this._queue.push(o),this._drainQueue()}_drainQueue(i=!1){if(!this.connected||this._queue.length===0)return;const s=this._queue[0];s.pending&&!i||(s.pending=!0,s.tryCount++,this.flags=s.flags,this.emit.apply(this,s.args))}packet(i){i.nsp=this.nsp,this.io._packet(i)}onopen(){typeof this.auth=="function"?this.auth(i=>{this._sendConnectPacket(i)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(i){this.packet({type:Jr.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},i):i})}onerror(i){this.connected||this.emitReserved("connect_error",i)}onclose(i,s){this.connected=!1,delete this.id,this.emitReserved("disconnect",i,s),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(i=>{if(!this.sendBuffer.some(o=>String(o.id)===i)){const o=this.acks[i];delete this.acks[i],o.withError&&o.call(this,new Error("socket has been disconnected"))}})}onpacket(i){if(i.nsp===this.nsp)switch(i.type){case Jr.CONNECT:i.data&&i.data.sid?this.onconnect(i.data.sid,i.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Jr.EVENT:case Jr.BINARY_EVENT:this.onevent(i);break;case Jr.ACK:case Jr.BINARY_ACK:this.onack(i);break;case Jr.DISCONNECT:this.ondisconnect();break;case Jr.CONNECT_ERROR:this.destroy();const o=new Error(i.data.message);o.data=i.data.data,this.emitReserved("connect_error",o);break}}onevent(i){const s=i.data||[];i.id!=null&&s.push(this.ack(i.id)),this.connected?this.emitEvent(s):this.receiveBuffer.push(Object.freeze(s))}emitEvent(i){if(this._anyListeners&&this._anyListeners.length){const s=this._anyListeners.slice();for(const o of s)o.apply(this,i)}super.emit.apply(this,i),this._pid&&i.length&&typeof i[i.length-1]=="string"&&(this._lastOffset=i[i.length-1])}ack(i){const s=this;let o=!1;return function(...v){o||(o=!0,s.packet({type:Jr.ACK,id:i,data:v}))}}onack(i){const s=this.acks[i.id];typeof s=="function"&&(delete this.acks[i.id],s.withError&&i.data.unshift(null),s.apply(this,i.data))}onconnect(i,s){this.id=i,this.recovered=s&&this._pid===s,this._pid=s,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(i=>this.emitEvent(i)),this.receiveBuffer=[],this.sendBuffer.forEach(i=>{this.notifyOutgoingListeners(i),this.packet(i)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(i=>i()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Jr.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(i){return this.flags.compress=i,this}get volatile(){return this.flags.volatile=!0,this}timeout(i){return this.flags.timeout=i,this}onAny(i){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(i),this}prependAny(i){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(i),this}offAny(i){if(!this._anyListeners)return this;if(i){const s=this._anyListeners;for(let o=0;o<s.length;o++)if(i===s[o])return s.splice(o,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(i){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(i),this}prependAnyOutgoing(i){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(i),this}offAnyOutgoing(i){if(!this._anyOutgoingListeners)return this;if(i){const s=this._anyOutgoingListeners;for(let o=0;o<s.length;o++)if(i===s[o])return s.splice(o,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(i){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const s=this._anyOutgoingListeners.slice();for(const o of s)o.apply(this,i.data)}}}function Ec(a){a=a||{},this.ms=a.min||100,this.max=a.max||1e4,this.factor=a.factor||2,this.jitter=a.jitter>0&&a.jitter<=1?a.jitter:0,this.attempts=0}Ec.prototype.duration=function(){var a=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var i=Math.random(),s=Math.floor(i*this.jitter*a);a=(Math.floor(i*10)&1)==0?a-s:a+s}return Math.min(a,this.max)|0};Ec.prototype.reset=function(){this.attempts=0};Ec.prototype.setMin=function(a){this.ms=a};Ec.prototype.setMax=function(a){this.max=a};Ec.prototype.setJitter=function(a){this.jitter=a};class Hp extends Xn{constructor(i,s){var o;super(),this.nsps={},this.subs=[],i&&typeof i=="object"&&(s=i,i=void 0),s=s||{},s.path=s.path||"/socket.io",this.opts=s,zu(this,s),this.reconnection(s.reconnection!==!1),this.reconnectionAttempts(s.reconnectionAttempts||1/0),this.reconnectionDelay(s.reconnectionDelay||1e3),this.reconnectionDelayMax(s.reconnectionDelayMax||5e3),this.randomizationFactor((o=s.randomizationFactor)!==null&&o!==void 0?o:.5),this.backoff=new Ec({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(s.timeout==null?2e4:s.timeout),this._readyState="closed",this.uri=i;const v=s.parser||RX;this.encoder=new v.Encoder,this.decoder=new v.Decoder,this._autoConnect=s.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(i){return arguments.length?(this._reconnection=!!i,i||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(i){return i===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=i,this)}reconnectionDelay(i){var s;return i===void 0?this._reconnectionDelay:(this._reconnectionDelay=i,(s=this.backoff)===null||s===void 0||s.setMin(i),this)}randomizationFactor(i){var s;return i===void 0?this._randomizationFactor:(this._randomizationFactor=i,(s=this.backoff)===null||s===void 0||s.setJitter(i),this)}reconnectionDelayMax(i){var s;return i===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=i,(s=this.backoff)===null||s===void 0||s.setMax(i),this)}timeout(i){return arguments.length?(this._timeout=i,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(i){if(~this._readyState.indexOf("open"))return this;this.engine=new yX(this.uri,this.opts);const s=this.engine,o=this;this._readyState="opening",this.skipReconnect=!1;const v=j1(s,"open",function(){o.onopen(),i&&i()}),b=g=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",g),i?i(g):this.maybeReconnectOnOpen()},y=j1(s,"error",b);if(this._timeout!==!1){const g=this._timeout,l=this.setTimeoutFn(()=>{v(),b(new Error("timeout")),s.close()},g);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(v),this.subs.push(y),this}connect(i){return this.open(i)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const i=this.engine;this.subs.push(j1(i,"ping",this.onping.bind(this)),j1(i,"data",this.ondata.bind(this)),j1(i,"error",this.onerror.bind(this)),j1(i,"close",this.onclose.bind(this)),j1(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(i){try{this.decoder.add(i)}catch(s){this.onclose("parse error",s)}}ondecoded(i){Hu(()=>{this.emitReserved("packet",i)},this.setTimeoutFn)}onerror(i){this.emitReserved("error",i)}socket(i,s){let o=this.nsps[i];return o?this._autoConnect&&!o.active&&o.connect():(o=new d5(this,i,s),this.nsps[i]=o),o}_destroy(i){const s=Object.keys(this.nsps);for(const o of s)if(this.nsps[o].active)return;this._close()}_packet(i){const s=this.encoder.encode(i);for(let o=0;o<s.length;o++)this.engine.write(s[o],i.options)}cleanup(){this.subs.forEach(i=>i()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(i,s){var o;this.cleanup(),(o=this.engine)===null||o===void 0||o.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",i,s),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const i=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const s=this.backoff.duration();this._reconnecting=!0;const o=this.setTimeoutFn(()=>{i.skipReconnect||(this.emitReserved("reconnect_attempt",i.backoff.attempts),!i.skipReconnect&&i.open(v=>{v?(i._reconnecting=!1,i.reconnect(),this.emitReserved("reconnect_error",v)):i.onreconnect()}))},s);this.opts.autoUnref&&o.unref(),this.subs.push(()=>{this.clearTimeoutFn(o)})}}onreconnect(){const i=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",i)}}const hl={};function Bf(a,i){typeof a=="object"&&(i=a,a=void 0),i=i||{};const s=xX(a,i.path||"/socket.io"),o=s.source,v=s.id,b=s.path,y=hl[v]&&b in hl[v].nsps,g=i.forceNew||i["force new connection"]||i.multiplex===!1||y;let l;return g?l=new Hp(o,i):(hl[v]||(hl[v]=new Hp(o,i)),l=hl[v]),s.query&&!i.query&&(i.query=s.queryKey),l.socket(s.path,i)}Object.assign(Bf,{Manager:Hp,Socket:d5,io:Bf,connect:Bf});const $h=class $h{constructor(i,s){this.canvas=i,this.editor=s,this.isConnect=!1,this.printerList=[],this.editor=s,this.canvas=i,this.socket=Bf("http://localhost:17521",{transports:["websocket"],auth:{token:"vue-plugin-hiprint"}}),this.socket.on("connect",()=>{this.isConnect=!0}),this.socket.on("printerList",o=>{console.log("printerList",o),this.printerList=o})}printPDF(i){this.socket.emit("printPDF",{...i,unit:"mm"})}getPrinterList(){return this.printerList}destroy(){console.log("pluginDestroy")}};$h.pluginName="PrintPlugin",$h.apis=["printPDF","getPrinterList"];let xh=$h;const Ba=class Ba{constructor(i,s){this.canvas=i,this.editor=s}async hookTransformObjectEnd({originObject:i,fabricObject:s}){s&&this.addSetAndSyncByUnit(s)}_processPoints(i,s){const o=Ba.lengthFieldConfigs.some(g=>g.field==="points"&&g.dealMethod==="points"),v=Ln(this.editor);if(!o)return{processed:i,originByUnit:{[v]:{}}};const b=i.map(g=>({x:m1(g.x,v,s),y:m1(g.y,v,s)})),y={points:i};return{processed:b,originByUnit:{[v]:y}}}addSetAndSyncByUnit(i){const s=i.set.bind(i),o=this.editor,v=Ba.lengthFieldConfigs.filter(l=>l.dealMethod==="single").map(l=>l.field),b=Ba.lengthFieldConfigs.some(l=>l.field==="points"&&l.dealMethod==="points"),y=(l,h,u)=>{const f=l._originSize||{},p=o.getPrecision?.(),d=sa(u,p),A={...f[h]||{},...d};l._originSize={...f,[h]:A}},g=l=>{const h=Ln(o),f=(l._originSize?.[h]||{}).strokeDashArray;if(Array.isArray(f)&&f.length>0){const p=l.get("strokeWidth")||1,d=f.map(A=>A*p);s("strokeDashArray",d)}};i.setByUnit=function(l,h){const u=Ln(o),f=96,p=!!(this.canvas&&this.canvas._currentTransform),d=this.type==="line"||this.type==="arrow"||this.type==="thinTailArrow";if(typeof l=="string"){const A=l;if(v.includes(A)){if(p)return s(A,h);if(h!==void 0){const w=m1(h,u,f);if(y(this,u,{[A]:h}),d&&(A==="width"||A==="height")){const x=Math.abs(this.x2-this.x1),C=Math.abs(this.y2-this.y1);if(A==="width"&&x>0){const E=this.x1,B=this.x2,k=this.left;this.top;const M=Math.sign(B-E),T=E+w*M,R=Math.min(E,B),N=Math.min(E,T),Q=R-N;if(s("x2",T),Q!==0){const Y=k+Q;s("left",Y);const z=o.getSizeByUnit(Y);y(this,u,{left:z})}return this}if(A==="height"&&C>0){const E=this.y1,B=this.y2;this.left;const k=this.top,M=Math.sign(B-E),T=E+w*M,R=Math.min(E,B),N=Math.min(E,T),Q=R-N;if(s("y2",T),Q!==0){const Y=k+Q;s("top",Y);const z=o.getSizeByUnit(Y);y(this,u,{top:z})}return this}}if(this.type==="image"&&(A==="width"||A==="height"))return A==="width"?s("scaleX",w/(this.width||1)):s("scaleY",w/(this.height||1));const m=s(A,w);return A==="strokeWidth"&&g(this),m}}if(A==="strokeDashArray"&&Array.isArray(h)){if(p)return s(A,h);y(this,u,{strokeDashArray:h});const w=this.get("strokeWidth")||1,m=h.map(x=>x*w);return s(A,m)}if(A==="points"&&b&&Array.isArray(h)){if(p)return s(A,h);const w=h.map(m=>({x:m1(m.x,u,f),y:m1(m.y,u,f)}));return y(this,u,{points:h}),s(A,w)}return s(l,h)}if(l&&typeof l=="object"){const A={...l};if(b&&Array.isArray(A.points)){if(p)return s(A);const B=A.points.map(k=>({x:m1(k.x,u,f),y:m1(k.y,u,f)}));y(this,u,{points:A.points}),A.points=B}if(p)return s(A);const{processed:w,originByUnit:m}=u1(A,u,f,v),x=m[u]||{};Array.isArray(A.strokeDashArray)&&(x.strokeDashArray=A.strokeDashArray),Object.keys(x).length&&y(this,u,x);const C={...A,...w};if(d){const B=this.left,k=this.top;let M=0,T=0;if(C.width!==void 0&&Math.abs(this.x2-this.x1)>0){const N=this.x1,Q=this.x2,Y=Math.sign(Q-N),z=N+C.width*Y,V=Math.min(N,Q),$=Math.min(N,z);M=V-$,C.x2=z,delete C.width}if(C.height!==void 0&&Math.abs(this.y2-this.y1)>0){const N=this.y1,Q=this.y2,Y=Math.sign(Q-N),z=N+C.height*Y,V=Math.min(N,Q),$=Math.min(N,z);T=V-$,C.y2=z,delete C.height}M!==0&&(C.left=B+M,x.left=o.getSizeByUnit(C.left)),T!==0&&(C.top=k+T,x.top=o.getSizeByUnit(C.top))}if(this.type==="image"&&(C.width!==void 0&&(C.scaleX=C.width/(this.width||1),delete C.width),C.height!==void 0&&(C.scaleY=C.height/(this.height||1),delete C.height)),Array.isArray(C.strokeDashArray)){const B=C.strokeWidth??this.get("strokeWidth")??1;C.strokeDashArray=C.strokeDashArray.map(k=>k*B)}const E=s(C);return C.strokeWidth!==void 0&&g(this),E}return s(l,h)},i.syncOriginSizeByUnit=function(l,h){const u=Ln(o);if(u==="px")return;const f=Array.isArray(l),d=m1(1,u,f?h??96:l??96)||1,A={},w=this.type==="image",m=this.type==="line"||this.type==="arrow"||this.type==="thinTailArrow";if((f&&l?.length?l:v).forEach(E=>{if(E==="points")return;let B;w&&(E==="width"||E==="height")?E==="width"?B=this.getScaledWidth?.():B=this.getScaledHeight?.():m&&(E==="width"||E==="height")?E==="width"?B=Math.abs(this.x2-this.x1):B=Math.abs(this.y2-this.y1):B=this.get?this.get(E):this[E],typeof B=="number"&&!isNaN(B)&&(A[E]=o.getSizeByUnit(B))}),b&&Array.isArray(this.points)&&(f&&l.includes("points")||!f)){const E=this.points.map(B=>({x:B.x/d,y:B.y/d}));A.points=E}Object.keys(A).length&&y(this,u,A)}}createRect(i,s){const o=Ln(this.editor),v=Ba.lengthFieldConfigs.filter(u=>u.dealMethod==="single").map(u=>u.field),{processed:b,originByUnit:y}=u1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:sa(y[o]||{},g)},h=new Ce.fabric.Rect({...i,...b});return h._originSize=l,this.addSetAndSyncByUnit(h),h}createText(i,s,o){const v=Ln(this.editor),b=Ba.lengthFieldConfigs.filter(f=>f.dealMethod==="single").map(f=>f.field),{processed:y,originByUnit:g}=u1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:sa(g[v]||{},l)},u=new Ce.fabric.Textbox(i,{...s,...y});return u._originSize=h,this.addSetAndSyncByUnit(u),u}createIText(i,s,o){const v=Ln(this.editor),b=Ba.lengthFieldConfigs.filter(f=>f.dealMethod==="single").map(f=>f.field),{processed:y,originByUnit:g}=u1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:sa(g[v]||{},l)},u=new Ce.fabric.IText(i,{...s,...y});return u._originSize=h,this.addSetAndSyncByUnit(u),u}createLine(i,s,o){const v=Ln(this.editor),{processed:b,originByUnit:y}=this._processPoints(i,o),g=Ba.lengthFieldConfigs.filter(w=>w.dealMethod==="single").map(w=>w.field),{processed:l,originByUnit:h}=u1(s||{},v,o,g),u=l.strokeWidth??(s?.strokeWidth!==void 0?m1(s.strokeWidth,v,o):1),f={...s,strokeWidth:l.strokeWidth!==void 0?l.strokeWidth:void 0};if(Array.isArray(s?.strokeDashArray)){const w=s.strokeDashArray.map(m=>m*u);f.strokeDashArray=w}const p=new Ce.fabric.Line([b[0].x,b[0].y,b[1].x,b[1].y],f),d=this.editor.getPrecision?.(),A={[v]:{...sa(h[v]||{},d),...sa(y[v]||{},d)}};return Array.isArray(s?.strokeDashArray)&&(A[v].strokeDashArray=sa({arr:s.strokeDashArray},d).arr),p._originSize=A,this.addSetAndSyncByUnit(p),p}createEllipse(i,s){const o=Ln(this.editor),v=Ba.lengthFieldConfigs.filter(u=>u.dealMethod==="single").map(u=>u.field),{processed:b,originByUnit:y}=u1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:sa(y[o]||{},g)},h=new Ce.fabric.Ellipse({...i,...b});return h._originSize=l,this.addSetAndSyncByUnit(h),h}createPolygon(i,s,o){const v=Ln(this.editor),{processed:b,originByUnit:y}=this._processPoints(i,o),g=Ba.lengthFieldConfigs.filter(d=>d.dealMethod==="single").map(d=>d.field),{processed:l,originByUnit:h}=u1(s||{},v,o,g),u=new Ce.fabric.Polygon(b,{fill:s?.fill});if(s?.strokeWidth!==void 0){const d=m1(s.strokeWidth,v,o);u.set("strokeWidth",d)}u.set({...s||{},...l});const f=this.editor.getPrecision?.(),p={[v]:{...sa(h[v]||{},f),...sa(y[v]||{},f)}};return u._originSize=p,this.addSetAndSyncByUnit(u),u}async createImageFromURL(i,s,o){return new Promise(v=>{Ce.fabric.Image.fromURL(i,b=>{const y=Ln(this.editor),g=this.editor.getPrecision?.();if(this.addSetAndSyncByUnit(b),s){const u=Ba.lengthFieldConfigs.filter(d=>d.dealMethod==="single").map(d=>d.field),{originByUnit:f}=u1(s,y,o,u);b.set({...s});const p={[y]:sa(f[y]||{},g)};b._originSize=p}const l=!s?.width,h=!s?.height;if(l&&h){const f=this.editor.getWorkspase?.()?.width??this.canvas.getWidth()??b.width??0,p=b.width??0,d=b.height??0,A=f/2,w=p>0?A/p:1;b.set({scaleX:w,scaleY:w});const m={width:this.editor.getSizeByUnit?.(A),height:this.editor.getSizeByUnit?.(d*w)},x={[y]:sa(m,g)};b._originSize=x}v(b)},{crossOrigin:"anonymous"})})}async createImage(i,s,o){return new Promise(v=>{let b,y=!1;if(typeof i=="string"){const l=i.trim();l.startsWith("data:")?b=l:b="data:image/png;base64,"+l}else b=URL.createObjectURL(i),y=!0;const g=typeof i=="string"?{crossOrigin:"anonymous"}:void 0;Ce.fabric.Image.fromURL(b,l=>{const h=Ln(this.editor),u=this.editor.getPrecision?.();if(this.addSetAndSyncByUnit(l),s){const d=Ba.lengthFieldConfigs.filter(m=>m.dealMethod==="single").map(m=>m.field),{originByUnit:A}=u1(s,h,o,d);l.set({...s});const w={[h]:sa(A[h]||{},u)};l._originSize=w}const f=!s?.width,p=!s?.height;if(f&&p){const A=this.editor.getWorkspase?.()?.width??this.canvas.getWidth()??l.width??0,w=l.width??0,m=l.height??0,x=A/2,C=w>0?x/w:1;l.set({scaleX:C,scaleY:C});const E={width:this.editor.getSizeByUnit?.(x),height:this.editor.getSizeByUnit?.(m*C)},B={[h]:sa(E,u)};l._originSize=B}if(y)try{URL.revokeObjectURL(b)}catch{}v(l)},g)})}async createBarcode(i,s,o){const v=await this.editor.addBarcode?.(i,s,o);return v&&this.addSetAndSyncByUnit(v),v}async createQrcode(i,s,o){const v=await this.editor.addQrCode?.(i,s,o);return v&&this.addSetAndSyncByUnit(v),v}destroy(){console.log("pluginDestroy")}};Ba.pluginName="CreateElementPlugin",Ba.apis=["createRect","createText","createLine","createIText","createEllipse","createPolygon","createImageFromURL","createImage","createBarcode","createQrcode","addSetAndSyncByUnit"],Ba.lengthFieldConfigs=[{field:"left",dealMethod:"single"},{field:"top",dealMethod:"single"},{field:"width",dealMethod:"single"},{field:"height",dealMethod:"single"},{field:"fontSize",dealMethod:"single"},{field:"strokeWidth",dealMethod:"single"},{field:"rx",dealMethod:"single"},{field:"ry",dealMethod:"single"},{field:"boxWidth",dealMethod:"single"},{field:"points",dealMethod:"points"}];let Ch=Ba;const yw={layout:"item-vertical",width:30,iconSize:5,horizontalGap:1.5,verticalGap:1.5,itemGap:1.5,fontFamily:"Microsoft YaHei",fontSize:3,fontWeight:"normal",fontStyle:"normal",underline:!1,linethrough:!1,textAlign:"left",textWrap:!0,lineHeight:1.5,charSpacing:0,color:"#000000"},Jh=class Jh{constructor(i,s){this.canvas=i,this.editor=s}async hookTransform(i){if(i.extensionType!=="imageTextList")return;const s=i.left,o=i.top,b=(await this.buildGroup(i.extension||{})).toObject(this.editor.getExtensionKey?.()||[]);Object.assign(i,b,{left:s,top:o,extensionType:"imageTextList",extension:this.normalizeOptions(i.extension||{})})}async hookTransformObjectEnd(...i){const{originObject:s,fabricObject:o}=i[0];s.extensionType==="imageTextList"&&this.initImageTextListEvents(o)}async createImageTextList(i,s={}){const o=this.normalizeOptions({...s,items:i}),v=await this.buildGroup(o);return v.set({extensionType:"imageTextList",extension:o}),this.updateOriginSize(v,o),this.initImageTextListEvents(v),v}initImageTextListEvents(i){i.setExtension=async o=>{const v=this.normalizeOptions({...i.get("extension")||{},...o||{}});i.set("extension",v),await this.refreshImageTextList(i)},i.setExtensionByUnit=i.setExtension,this.editor.addSetAndSyncByUnit?.(i);const s=i.setByUnit?.bind(i);s&&(i.setByUnit=async(o,v)=>{if(o==="width"||o==="height"){const b=this.normalizeOptions({...i.get("extension")||{},[o]:Number(v)});return i.set("extension",b),await this.refreshImageTextList(i),i}return s(o,v)}),i.__imageTextListModified&&i.off("modified",i.__imageTextListModified),i.__imageTextListModified=()=>{const o=i.scaleX||1,v=i.scaleY||1;if(o===1&&v===1)return;const b=this.normalizeOptions(i.get("extension")||{}),y=Math.max(1,(i.width||1)*o),g=Math.max(1,(i.height||1)*v);i.set({scaleX:1,scaleY:1}),i.set("extension",{...b,width:Ln(this.editor)==="px"?y:this.editor.getSizeByUnit(y),height:Ln(this.editor)==="px"?g:this.editor.getSizeByUnit(g)}),this.refreshImageTextList(i)},i.on("modified",i.__imageTextListModified)}async refreshImageTextList(i){const s=this.normalizeOptions(i.get("extension")||{}),o={...s,_clipContent:s._clipContent===!0||!!i.clipPath},v=i.left,b=i.top,y=await this.buildGroup(o),g=y.getObjects();i._objects=g,g.forEach(l=>{l.group=i}),y._objects=[],i.set({left:v,top:b,width:y.width,height:y.height,scaleX:1,scaleY:1,visible:y.visible,clipPath:y.clipPath,objectCaching:!!y.clipPath,dirty:!0}),i.set("extension",o),this.updateOriginSize(i,o),i.setCoords(),this.canvas.requestRenderAll()}normalizeOptions(i){return{...yw,...i,items:Array.isArray(i.items)?i.items:[]}}toPx(i){return m1(Number(i)||0,Ln(this.editor))}getItems(i){return(i._renderItems?.length?i._renderItems:i.items||[]).filter(s=>s&&(s.src||s.name))}createText(i,s,o){const v=Math.max(1,this.toPx(s.fontSize)),b=Math.max(0,this.toPx(s.charSpacing)),y={fontFamily:s.fontFamily,fontSize:v,fontWeight:s.fontWeight,fontStyle:s.fontStyle,underline:!!s.underline,linethrough:!!s.linethrough,fill:s.color,textAlign:s.textAlign,lineHeight:Number(s.lineHeight)||1,charSpacing:b/v*1e3,splitByGrapheme:!0,selectable:!1,evented:!1,objectCaching:!1},g=o&&s.textWrap!==!1?new Ce.fabric.Textbox(i||"",{...y,width:o}):new Ce.fabric.Text(i||"",y);return g.initDimensions(),g.setCoords(),g}loadImage(i,s){return new Promise(o=>{if(!i)return o(null);Ce.fabric.Image.fromURL(i,v=>{if(!v)return o(null);v.set({scaleX:s/Math.max(1,v.width||1),scaleY:s/Math.max(1,v.height||1),selectable:!1,evented:!1,objectCaching:!1}),o(v)},{crossOrigin:"anonymous"})})}async buildGroup(i){const s=this.normalizeOptions(i),o=this.getItems(s),v=Math.max(1,this.toPx(s.width));if(!o.length)return this.createGroup([],v,1,!1);const b=s.layout||yw.layout,y=b!=="text-only",g=b!=="icon-only",l=Math.max(1,this.toPx(s.iconSize)),h=Math.max(0,this.toPx(s.horizontalGap)),u=Math.max(0,this.toPx(s.verticalGap)),f=Math.max(0,this.toPx(s.itemGap)),p=y?await Promise.all(o.map(E=>this.loadImage(E.src,l))):o.map(()=>null),d=[];let A=0;if(b==="icon-text-split")this.flowRows(o.map(()=>l),v,h).forEach(B=>{B.items.forEach(k=>{const M=p[k.index];M&&(M.set({left:k.x,top:A}),d.push(M))}),A+=l+u}),o.forEach(B=>{const k=this.createText(B.name||"",s,v);k.set({left:0,top:A}),d.push(k),A+=k.getScaledHeight()+f});else if(b==="item-vertical"){const E=l+h,B=Math.max(1,v-E);o.forEach((k,M)=>{const T=p[M],R=this.createText(k.name||"",s,B),N=R.getScaledHeight(),Q=Math.max(l,N);T&&(T.set({left:0,top:A+(Q-l)/2}),d.push(T)),R.set({left:E,top:A+(Q-N)/2}),d.push(R),A+=Q+u})}else{const E=o.map(M=>g?this.createText(M.name||"",s):null),B=o.map((M,T)=>{const R=E[T]?.getScaledWidth()||0;return y&&g?l+h+R:y?l:R});this.flowRows(B,v,h).forEach(M=>{const T=Math.max(y?l:0,...M.items.map(R=>E[R.index]?.getScaledHeight()||0));M.items.forEach(R=>{let N=R.x;const Q=p[R.index],Y=E[R.index];y&&Q&&(Q.set({left:N,top:A+(T-l)/2}),d.push(Q),N+=l+(g?h:0)),g&&Y&&(Y.set({left:N,top:A+(T-Y.getScaledHeight())/2}),d.push(Y))}),A+=T+u})}const m=Math.max(1,A-(b==="icon-text-split"?f:u)),x=Number(s.height),C=x>0?Math.max(1,this.toPx(x)):m;return this.createGroup(d,v,C,!0,s._clipContent)}createGroup(i,s,o,v,b=!1){const y=new Ce.fabric.Rect({left:0,top:0,width:s,height:o,fill:"rgba(0,0,0,0)",strokeWidth:0,selectable:!1,evented:!1}),g=new Ce.fabric.Group([y],{width:s,height:o,visible:v,objectCaching:b,subTargetCheck:!1,clipPath:b?new Ce.fabric.Rect({width:s,height:o,originX:"center",originY:"center"}):void 0});return i.forEach(l=>{l.set({left:(l.left||0)-s/2,top:(l.top||0)-o/2}),l.group=g}),g._objects.push(...i),g.setCoords(),g}flowRows(i,s,o){const v=[];let b={items:[]},y=0;return i.forEach((g,l)=>{const h=Math.min(Math.max(1,g),s);b.items.length&&y+h>s&&(v.push(b),b={items:[]},y=0),b.items.push({index:l,x:y,width:h}),y+=h+o}),b.items.length&&v.push(b),v}updateOriginSize(i,s){const o=Ln(this.editor),v=i._originSize||{};i._originSize={...v,[o]:sa({...v[o]||{},width:s.width,height:s.height??(o==="px"?i.height:this.editor.getSizeByUnit(i.height||1))},this.editor.getPrecision?.())}}destroy(){}};Jh.pluginName="ImageTextListPlugin",Jh.apis=["createImageTextList","initImageTextListEvents","refreshImageTextList"];let Ih=Jh;const Kh=class Kh{constructor(i,s){this.canvas=i,this.editor=s,this.layoutOrigins=new WeakMap}async hookTransformObjectEnd(...i){const{originObject:s,fabricObject:o}=i[0];if(!this.isPrintableObject(s))return;const v=Number(this.editor.getSizeByUnit?.(1,"mm"))||1;this.layoutOrigins.set(o,{top:this.getOriginalTop(s,o,v),height:this.getOriginalHeight(s,o,v)})}applyActualContentLayout(i,s){const o=i?.templateSettings||{};if(!o.actualContentLayout)return s;const v=this.canvas.getObjects().filter(this.isPrintableObject),b=Number(this.editor.getSizeByUnit?.(1,"mm"))||1,y=this.getTemplateSourceObjects(i);v.forEach(w=>this.preparePrintLayoutObject(w));const g=v.map((w,m)=>{const x=this.layoutOrigins.get(w),C=this.getSourceObject(w,y),E=x?.top??this.getOriginalTop(C,w,b),B=x?.height??this.getOriginalHeight(C,w,b);return{object:w,index:m,originalTop:E,originalBottom:E+B}});g.sort((w,m)=>w.originalTop-m.originalTop||w.index-m.index);const l=[],h=.01;g.forEach(w=>{const m=l[l.length-1];m&&Math.abs(m[0].originalTop-w.originalTop)<=h?m.push(w):l.push([w])});let u,f,p=0,d=0;if(l.forEach(w=>{const m=w[0].originalTop,x=Math.max(...w.map(B=>B.originalBottom));u!==void 0&&(p+=Math.max(0,m-u)),u=x;const C=w.filter(B=>!this.isEmptyLayoutObject(B.object));if(!C.length)return;const E=f===void 0?m:f+p;C.forEach(B=>{B.object.set("top",E/b),B.object.setCoords()}),f=Math.max(...C.map(B=>(Number(B.object.top||0)+this.getActualLayoutHeight(B.object))*b)),d=x,p=0}),this.canvas.requestRenderAll(),o.overflowMode!=="expand"||f===void 0)return s;const A=Math.max(0,s-d);return Math.max(s,f+A)}getOriginalTop(i,s,o){const v=Number(i?.top);return Number.isFinite(v)?v*o:this.getOriginMmValue(i,"top",Number(s.top||0)*o)}getOriginalHeight(i,s,o){const v=Number(i?.height),b=Number(i?.scaleY??1);return Number.isFinite(v)&&Number.isFinite(b)?Math.abs(v*b)*o:this.getOriginMmValue(i,"height",Number(s.getScaledHeight?.()||s.height||0)*o)}getTemplateSourceObjects(i){const s=new Map;return Array.isArray(i?.objects)&&i.objects.forEach((o,v)=>{o?.id&&s.set(`id:${o.id}`,o),s.set(`index:${v}`,o)}),s}getSourceObject(i,s){if(i?.id){const b=s.get(`id:${i.id}`);if(b)return b}const v=this.canvas.getObjects().filter(this.isPrintableObject).indexOf(i);return s.get(`index:${v}`)}getOriginMmValue(i,s,o){const v=i?._originSize?.mm?.[s];if(v==null||v==="")return o;const b=Number(v);return Number.isFinite(b)?b:o}preparePrintLayoutObject(i){i?.extensionType==="imageTextList"&&i.extension?._clipContent!==!0&&(i.clipPath&&i.set("clipPath",void 0),i.set({objectCaching:!1,dirty:!0}))}isPrintableObject(i){return i?.id!=="workspace"&&i?.id!=="coverMask"&&i?.type!=="GuideLine"}isEmptyLayoutObject(i){return i?.visible===!1?!0:i?.extension?._field_?i.type==="textbox"?String(i.text??"")==="":["barcode","qrcode"].includes(i.extensionType)?String(i.extension?.value??"")===""&&!this.hasVisibleImageSource(i):i.extensionType==="imageTextList"?!Array.isArray(i.extension?.items)||i.extension.items.length===0:!1:!1}hasVisibleImageSource(i){const s=String(i?.getSrc?.()??i?.src??"");return s!==""&&/^data:image\//i.test(s)}getActualLayoutHeight(i){if(i?.extensionType!=="imageTextList")return Number(i.getScaledHeight?.()||i.height||0);const o=(i.getObjects?.()||i._objects||[]).slice(1);if(!o.length)return 0;const v=Number(i.height||0),b=Math.abs(Number(i.scaleY??1)),y=Math.max(...o.map(g=>Number(g.top||0)+v/2+Number(g.getScaledHeight?.()||g.height||0)));return Math.max(0,y)*b}};Kh.pluginName="ActualContentLayoutPlugin",Kh.apis=["applyActualContentLayout"];let Eh=Kh;const FX={UnitPlugin:jf,DringPlugin:Nf,AlignGuidLinePlugin:Pf,ControlsPlugin:Lf,ControlsRotatePlugin:Gf,CenterAlignPlugin:Yf,LayerPlugin:Hf,CopyPlugin:zf,MoveHotKeyPlugin:qf,DeleteHotKeyPlugin:Wf,GroupPlugin:Vf,DrawLinePlugin:Xf,GroupTextEditorPlugin:$f,GroupAlignPlugin:Jf,WorkspacePlugin:Kf,MaskPlugin:Zf,HistoryPlugin:eh,FlipPlugin:th,RulerPlugin:rh,MaterialPlugin:nh,WaterMarkPlugin:ah,FontPlugin:sh,PolygonModifyPlugin:oh,DrawPolygonPlugin:ch,FreeDrawPlugin:lh,PathTextPlugin:fh,PsdPlugin:uh,SimpleClipImagePlugin:dh,BarCodePlugin:ph,QrCodePlugin:Ah,ImageStroke:mh,ResizePlugin:bh,LockPlugin:wh,AddBaseTypePlugin:yh,PrintPlugin:xh,CreateElementPlugin:Ch,ImageTextListPlugin:Ih,ActualContentLayoutPlugin:Eh},QX=[jf,Nf,Pf,Lf,Gf,Yf,Hf,zf,qf,Wf,Vf,Xf,$f,Jf,Kf,Zf,eh,th,rh,nh,ah,sh,oh,ch,lh,fh,uh,dh,ph,Ah,mh,bh,wh,yh,xh,Ch,Ih,Eh];exports.SelectEvent=Sf;exports.SelectMode=Zh;exports.pluginsList=QX;exports.pluginsObject=FX;
|