@hprint/plugins 0.0.11-alpha.3 → 0.0.11-alpha.5
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 +2 -2
- package/dist/index.mjs +13 -7
- package/dist/src/plugins/ActualContentLayoutPlugin.d.ts.map +1 -1
- package/dist/src/plugins/ImageTextListPlugin.d.ts +1 -0
- package/dist/src/plugins/ImageTextListPlugin.d.ts.map +1 -1
- package/dist/src/plugins/TablePlugin.d.ts +1 -0
- package/dist/src/plugins/TablePlugin.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/plugins/ActualContentLayoutPlugin.ts +26 -16
- package/src/plugins/ImageTextListPlugin.ts +3 -2
- package/src/plugins/TablePlugin.ts +1 -0
- package/vite.config.ts +1 -1
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 S=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),M=w>S.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(S.selectionEnd-A,S.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,S=this._textLines[u],M;p+=d*(1-this._fontSizeFraction)/this.lineHeight;for(var T=0,R=S.length-1;T<=R;T++)M=T===R||this.charSpacing,x+=S[T],C=this.__charBounds[u][T],B===0?(f+=C.kernedWidth-C.width,B+=C.width):B+=C.kernedWidth,A&&!M&&this._reSpaceAndTab.test(S[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,S=d.length;B<S;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?"":" ",S=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]),S=this._measureWord(C,u,E),E+=C.length,d+=M+S-N,d>f&&!R?(w.push(m),m=[],d=S,R=!0):d+=N,!R&&!A&&m.push(B),m=m.concat(C),M=A?0:this._measureWord([B],u,E),E++,R=!1,S>T&&(T=S);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"})}})()})(NA)),NA}var Yl=mB();function bB(a){return fB(a).promise.value}function wB(a){return new Promise(i=>{const{onChange:s,open:o}=pB(a);s(v=>{i(v)}),o()})}function yB(a){return new Promise(i=>{const s=document.createElement("img");s.src=a,document.body.appendChild(s),s.onload=()=>{i(s)}})}const xB=(a,i)=>uB({source:a,...i}).copy();function CB(a,i){const s=document.createElement("a");s.href=a,s.download=`${II()}.${i}`,document.body.appendChild(s),s.click(),s.remove()}function IB(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 EB=a=>a instanceof Yl.fabric.Image,BB=a=>a instanceof Yl.fabric.Group,SB=a=>a instanceof Yl.fabric.IText,kB=a=>a instanceof Yl.fabric.ActiveSelection;function _B(a){return new Promise(i=>{const s=new FileReader;s.addEventListener("load",()=>{i(s.result)}),s.readAsDataURL(a)})}function MB(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 U1={getImgStr:bB,downFile:CB,selectFiles:wB,insertImgFile:yB,clipboardText:xB,drawImg:IB,isImage:EB,isGroup:BB,isIText:SB,isActiveSelection:kB,blobToBase64:_B,base64ToBlob:MB},TB="0.0.11-alpha.3";window&&(window._hprintPrintVersion=TB);Yl.fabric;var ly=typeof global=="object"&&global&&global.Object===Object&&global,OB=typeof self=="object"&&self&&self.Object===Object&&self,fa=ly||OB||Function("return this")(),Ma=fa.Symbol,fy=Object.prototype,RB=fy.hasOwnProperty,DB=fy.toString,rl=Ma?Ma.toStringTag:void 0;function FB(a){var i=RB.call(a,rl),s=a[rl];try{a[rl]=void 0;var o=!0}catch{}var v=DB.call(a);return o&&(i?a[rl]=s:delete a[rl]),v}var QB=Object.prototype,jB=QB.toString;function NB(a){return jB.call(a)}var PB="[object Null]",UB="[object Undefined]",UA=Ma?Ma.toStringTag:void 0;function Ga(a){return a==null?a===void 0?UB:PB:UA&&UA in Object(a)?FB(a):NB(a)}function Rn(a){return a!=null&&typeof a=="object"}var LB="[object Symbol]";function p1(a){return typeof a=="symbol"||Rn(a)&&Ga(a)==LB}var GB=NaN;function LA(a){return typeof a=="number"?a:p1(a)?GB:+a}function vn(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,GA=Ma?Ma.prototype:void 0,YA=GA?GA.toString:void 0;function g1(a){if(typeof a=="string")return a;if(yr(a))return vn(a,g1)+"";if(p1(a))return YA?YA.call(a):"";var i=a+"";return i=="0"&&1/a==-1/0?"-0":i}function su(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=g1(s),o=g1(o)):(s=LA(s),o=LA(o)),v=a(s,o)}return v}}var YB=su(function(a,i){return a+i},0),HB=/\s/;function hy(a){for(var i=a.length;i--&&HB.test(a.charAt(i)););return i}var zB=/^\s+/;function uy(a){return a&&a.slice(0,hy(a)+1).replace(zB,"")}function Sn(a){var i=typeof a;return a!=null&&(i=="object"||i=="function")}var HA=NaN,qB=/^[-+]0x[0-9a-f]+$/i,WB=/^0b[01]+$/i,VB=/^0o[0-7]+$/i,$B=parseInt;function y1(a){if(typeof a=="number")return a;if(p1(a))return HA;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=uy(a);var s=WB.test(a);return s||VB.test(a)?$B(a.slice(2),s?2:8):qB.test(a)?HA:+a}var zA=1/0,XB=17976931348623157e292;function Bs(a){if(!a)return a===0?a:0;if(a=y1(a),a===zA||a===-zA){var i=a<0?-1:1;return i*XB}return a===a?a:0}function Er(a){var i=Bs(a),s=i%1;return i===i?s?i-s:i:0}var JB="Expected a function";function KB(a,i){if(typeof i!="function")throw new TypeError(JB);return a=Er(a),function(){if(--a<1)return i.apply(this,arguments)}}function t1(a){return a}var ZB="[object AsyncFunction]",eS="[object Function]",tS="[object GeneratorFunction]",rS="[object Proxy]";function Ms(a){if(!Sn(a))return!1;var i=Ga(a);return i==eS||i==tS||i==ZB||i==rS}var Af=fa["__core-js_shared__"],qA=(function(){var a=/[^.]+$/.exec(Af&&Af.keys&&Af.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""})();function iS(a){return!!qA&&qA in a}var nS=Function.prototype,aS=nS.toString;function Mo(a){if(a!=null){try{return aS.call(a)}catch{}try{return a+""}catch{}}return""}var sS=/[\\^$.*+?()[\]{}|]/g,oS=/^\[object .+?Constructor\]$/,cS=Function.prototype,lS=Object.prototype,fS=cS.toString,hS=lS.hasOwnProperty,uS=RegExp("^"+fS.call(hS).replace(sS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dy(a){if(!Sn(a)||iS(a))return!1;var i=Ms(a)?uS:oS;return i.test(Mo(a))}function dS(a,i){return a?.[i]}function To(a,i){var s=dS(a,i);return dy(s)?s:void 0}var Rl=To(fa,"WeakMap"),Df=Rl&&new Rl,py=Df?function(a,i){return Df.set(a,i),a}:t1,WA=Object.create,dc=(function(){function a(){}return function(i){if(!Sn(i))return{};if(WA)return WA(i);a.prototype=i;var s=new a;return a.prototype=void 0,s}})();function Dl(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=dc(a.prototype),o=a.apply(s,i);return Sn(o)?o:s}}var pS=1;function gS(a,i,s){var o=i&pS,v=Dl(a);function b(){var y=this&&this!==fa&&this instanceof b?v:a;return y.apply(o?s:this,arguments)}return b}function v1(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 vS=Math.max;function gy(a,i,s,o){for(var v=-1,b=a.length,y=s.length,g=-1,l=i.length,h=vS(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 AS=Math.max;function vy(a,i,s,o){for(var v=-1,b=a.length,y=-1,g=s.length,l=-1,h=i.length,u=AS(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 mS(a,i){for(var s=a.length,o=0;s--;)a[s]===i&&++o;return o}function ou(){}var bS=4294967295;function zr(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=bS,this.__views__=[]}zr.prototype=dc(ou.prototype);zr.prototype.constructor=zr;function Fl(){}var cg=Df?function(a){return Df.get(a)}:Fl,rc={},wS=Object.prototype,yS=wS.hasOwnProperty;function mf(a){for(var i=a.name+"",s=rc[i],o=yS.call(rc,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=dc(ou.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 Ay(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 xS=Object.prototype,CS=xS.hasOwnProperty;function J(a){if(Rn(a)&&!yr(a)&&!(a instanceof zr)){if(a instanceof C1)return a;if(CS.call(a,"__wrapped__"))return Ay(a)}return new C1(a)}J.prototype=ou.prototype;J.prototype.constructor=J;function fp(a){var i=mf(a),s=J[i];if(typeof s!="function"||!(i in zr.prototype))return!1;if(a===s)return!0;var o=cg(s);return!!o&&a===o[0]}var IS=800,ES=16,BS=Date.now;function my(a){var i=0,s=0;return function(){var o=BS(),v=ES-(o-s);if(s=o,v>0){if(++i>=IS)return arguments[0]}else i=0;return a.apply(void 0,arguments)}}var by=my(py),SS=/\{\n\/\* \[wrapped with (.+)\] \*/,kS=/,? & /;function _S(a){var i=a.match(SS);return i?i[1].split(kS):[]}var MS=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function TS(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(MS,`{
|
|
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?"":" ",S=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]),S=this._measureWord(C,u,E),E+=C.length,d+=M+S-N,d>f&&!R?(w.push(m),m=[],d=S,R=!0):d+=N,!R&&!A&&m.push(B),m=m.concat(C),M=A?0:this._measureWord([B],u,E),E++,R=!1,S>T&&(T=S);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"})}})()})(NA)),NA}var Yl=mB();function bB(a){return fB(a).promise.value}function wB(a){return new Promise(i=>{const{onChange:s,open:o}=pB(a);s(v=>{i(v)}),o()})}function yB(a){return new Promise(i=>{const s=document.createElement("img");s.src=a,document.body.appendChild(s),s.onload=()=>{i(s)}})}const xB=(a,i)=>uB({source:a,...i}).copy();function CB(a,i){const s=document.createElement("a");s.href=a,s.download=`${II()}.${i}`,document.body.appendChild(s),s.click(),s.remove()}function IB(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 EB=a=>a instanceof Yl.fabric.Image,BB=a=>a instanceof Yl.fabric.Group,SB=a=>a instanceof Yl.fabric.IText,kB=a=>a instanceof Yl.fabric.ActiveSelection;function _B(a){return new Promise(i=>{const s=new FileReader;s.addEventListener("load",()=>{i(s.result)}),s.readAsDataURL(a)})}function MB(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 U1={getImgStr:bB,downFile:CB,selectFiles:wB,insertImgFile:yB,clipboardText:xB,drawImg:IB,isImage:EB,isGroup:BB,isIText:SB,isActiveSelection:kB,blobToBase64:_B,base64ToBlob:MB},TB="0.0.11-alpha.5";window&&(window._hprintPrintVersion=TB);Yl.fabric;var ly=typeof global=="object"&&global&&global.Object===Object&&global,OB=typeof self=="object"&&self&&self.Object===Object&&self,fa=ly||OB||Function("return this")(),Ma=fa.Symbol,fy=Object.prototype,RB=fy.hasOwnProperty,DB=fy.toString,rl=Ma?Ma.toStringTag:void 0;function FB(a){var i=RB.call(a,rl),s=a[rl];try{a[rl]=void 0;var o=!0}catch{}var v=DB.call(a);return o&&(i?a[rl]=s:delete a[rl]),v}var QB=Object.prototype,jB=QB.toString;function NB(a){return jB.call(a)}var PB="[object Null]",UB="[object Undefined]",UA=Ma?Ma.toStringTag:void 0;function Ga(a){return a==null?a===void 0?UB:PB:UA&&UA in Object(a)?FB(a):NB(a)}function Rn(a){return a!=null&&typeof a=="object"}var LB="[object Symbol]";function p1(a){return typeof a=="symbol"||Rn(a)&&Ga(a)==LB}var GB=NaN;function LA(a){return typeof a=="number"?a:p1(a)?GB:+a}function vn(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,GA=Ma?Ma.prototype:void 0,YA=GA?GA.toString:void 0;function g1(a){if(typeof a=="string")return a;if(yr(a))return vn(a,g1)+"";if(p1(a))return YA?YA.call(a):"";var i=a+"";return i=="0"&&1/a==-1/0?"-0":i}function su(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=g1(s),o=g1(o)):(s=LA(s),o=LA(o)),v=a(s,o)}return v}}var YB=su(function(a,i){return a+i},0),HB=/\s/;function hy(a){for(var i=a.length;i--&&HB.test(a.charAt(i)););return i}var zB=/^\s+/;function uy(a){return a&&a.slice(0,hy(a)+1).replace(zB,"")}function Sn(a){var i=typeof a;return a!=null&&(i=="object"||i=="function")}var HA=NaN,qB=/^[-+]0x[0-9a-f]+$/i,WB=/^0b[01]+$/i,VB=/^0o[0-7]+$/i,$B=parseInt;function y1(a){if(typeof a=="number")return a;if(p1(a))return HA;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=uy(a);var s=WB.test(a);return s||VB.test(a)?$B(a.slice(2),s?2:8):qB.test(a)?HA:+a}var zA=1/0,XB=17976931348623157e292;function Bs(a){if(!a)return a===0?a:0;if(a=y1(a),a===zA||a===-zA){var i=a<0?-1:1;return i*XB}return a===a?a:0}function Er(a){var i=Bs(a),s=i%1;return i===i?s?i-s:i:0}var JB="Expected a function";function KB(a,i){if(typeof i!="function")throw new TypeError(JB);return a=Er(a),function(){if(--a<1)return i.apply(this,arguments)}}function t1(a){return a}var ZB="[object AsyncFunction]",eS="[object Function]",tS="[object GeneratorFunction]",rS="[object Proxy]";function Ms(a){if(!Sn(a))return!1;var i=Ga(a);return i==eS||i==tS||i==ZB||i==rS}var Af=fa["__core-js_shared__"],qA=(function(){var a=/[^.]+$/.exec(Af&&Af.keys&&Af.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""})();function iS(a){return!!qA&&qA in a}var nS=Function.prototype,aS=nS.toString;function Mo(a){if(a!=null){try{return aS.call(a)}catch{}try{return a+""}catch{}}return""}var sS=/[\\^$.*+?()[\]{}|]/g,oS=/^\[object .+?Constructor\]$/,cS=Function.prototype,lS=Object.prototype,fS=cS.toString,hS=lS.hasOwnProperty,uS=RegExp("^"+fS.call(hS).replace(sS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dy(a){if(!Sn(a)||iS(a))return!1;var i=Ms(a)?uS:oS;return i.test(Mo(a))}function dS(a,i){return a?.[i]}function To(a,i){var s=dS(a,i);return dy(s)?s:void 0}var Rl=To(fa,"WeakMap"),Df=Rl&&new Rl,py=Df?function(a,i){return Df.set(a,i),a}:t1,WA=Object.create,dc=(function(){function a(){}return function(i){if(!Sn(i))return{};if(WA)return WA(i);a.prototype=i;var s=new a;return a.prototype=void 0,s}})();function Dl(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=dc(a.prototype),o=a.apply(s,i);return Sn(o)?o:s}}var pS=1;function gS(a,i,s){var o=i&pS,v=Dl(a);function b(){var y=this&&this!==fa&&this instanceof b?v:a;return y.apply(o?s:this,arguments)}return b}function v1(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 vS=Math.max;function gy(a,i,s,o){for(var v=-1,b=a.length,y=s.length,g=-1,l=i.length,h=vS(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 AS=Math.max;function vy(a,i,s,o){for(var v=-1,b=a.length,y=-1,g=s.length,l=-1,h=i.length,u=AS(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 mS(a,i){for(var s=a.length,o=0;s--;)a[s]===i&&++o;return o}function ou(){}var bS=4294967295;function zr(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=bS,this.__views__=[]}zr.prototype=dc(ou.prototype);zr.prototype.constructor=zr;function Fl(){}var cg=Df?function(a){return Df.get(a)}:Fl,rc={},wS=Object.prototype,yS=wS.hasOwnProperty;function mf(a){for(var i=a.name+"",s=rc[i],o=yS.call(rc,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=dc(ou.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 Ay(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 xS=Object.prototype,CS=xS.hasOwnProperty;function J(a){if(Rn(a)&&!yr(a)&&!(a instanceof zr)){if(a instanceof C1)return a;if(CS.call(a,"__wrapped__"))return Ay(a)}return new C1(a)}J.prototype=ou.prototype;J.prototype.constructor=J;function fp(a){var i=mf(a),s=J[i];if(typeof s!="function"||!(i in zr.prototype))return!1;if(a===s)return!0;var o=cg(s);return!!o&&a===o[0]}var IS=800,ES=16,BS=Date.now;function my(a){var i=0,s=0;return function(){var o=BS(),v=ES-(o-s);if(s=o,v>0){if(++i>=IS)return arguments[0]}else i=0;return a.apply(void 0,arguments)}}var by=my(py),SS=/\{\n\/\* \[wrapped with (.+)\] \*/,kS=/,? & /;function _S(a){var i=a.match(SS);return i?i[1].split(kS):[]}var MS=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function TS(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(MS,`{
|
|
442
442
|
/* [wrapped with `+i+`] */
|
|
443
443
|
`)}function lg(a){return function(){return a}}var Ff=(function(){try{var a=To(Object,"defineProperty");return a({},"",{}),a}catch{}})(),OS=Ff?function(a,i){return Ff(a,"toString",{configurable:!0,enumerable:!1,value:lg(i),writable:!0})}:t1,fg=my(OS);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 cu(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 wy(a){return a!==a}function RS(a,i,s){for(var o=s-1,v=a.length;++o<v;)if(a[o]===i)return o;return-1}function pc(a,i,s){return i===i?RS(a,i,s):cu(a,wy,s)}function lu(a,i){var s=a==null?0:a.length;return!!s&&pc(a,i,0)>-1}var DS=1,FS=2,QS=8,jS=16,NS=32,PS=64,US=128,LS=256,GS=512,YS=[["ary",US],["bind",DS],["bindKey",FS],["curry",QS],["curryRight",jS],["flip",GS],["partial",NS],["partialRight",PS],["rearg",LS]];function HS(a,i){return S1(YS,function(s){var o="_."+s[0];i&s[1]&&!lu(a,o)&&a.push(o)}),a.sort()}function yy(a,i,s){var o=i+"";return fg(a,TS(o,HS(_S(o),s)))}var zS=4,qS=8,VA=32,$A=64;function xy(a,i,s,o,v,b,y,g,l,h){var u=i&qS,f=u?y:void 0,p=u?void 0:y,d=u?b:void 0,A=u?void 0:b;i|=u?VA:$A,i&=~(u?$A:VA),i&zS||(i&=-4);var w=[a,i,v,d,f,A,p,g,l,h],m=s.apply(void 0,w);return fp(a)&&by(m,w),m.placeholder=o,yy(m,a,i)}function gc(a){var i=a;return i.placeholder}var WS=9007199254740991,VS=/^(?:0|[1-9]\d*)$/;function Ts(a,i){var s=typeof a;return i=i??WS,!!i&&(s=="number"||s!="symbol"&&VS.test(a))&&a>-1&&a%1==0&&a<i}var $S=Math.min;function XS(a,i){for(var s=a.length,o=$S(i.length,s),v=Ja(a);o--;){var b=i[o];a[o]=Ts(b,s)?v[b]:void 0}return a}var XA="__lodash_placeholder__";function Ks(a,i){for(var s=-1,o=a.length,v=0,b=[];++s<o;){var y=a[s];(y===i||y===XA)&&(a[s]=XA,b[v++]=s)}return b}var JS=1,KS=2,ZS=8,ek=16,tk=128,rk=512;function fu(a,i,s,o,v,b,y,g,l,h){var u=i&tk,f=i&JS,p=i&KS,d=i&(ZS|ek),A=i&rk,w=p?void 0:Dl(a);function m(){for(var x=arguments.length,C=Array(x),E=x;E--;)C[E]=arguments[E];if(d)var B=gc(m),S=mS(C,B);if(o&&(C=gy(C,o,v,d)),b&&(C=vy(C,b,y,d)),x-=S,d&&x<h){var M=Ks(C,B);return xy(a,i,fu,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=XS(C,g):A&&x>1&&C.reverse(),u&&l<x&&(C.length=l),this&&this!==fa&&this instanceof m&&(R=w||Dl(R)),R.apply(T,C)}return m}function ik(a,i,s){var o=Dl(a);function v(){for(var b=arguments.length,y=Array(b),g=b,l=gc(v);g--;)y[g]=arguments[g];var h=b<3&&y[0]!==l&&y[b-1]!==l?[]:Ks(y,l);if(b-=h.length,b<s)return xy(a,i,fu,v.placeholder,void 0,y,h,void 0,void 0,s-b);var u=this&&this!==fa&&this instanceof v?o:a;return v1(u,this,y)}return v}var nk=1;function ak(a,i,s,o){var v=i&nk,b=Dl(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 v1(p,v?s:this,f)}return y}var JA="__lodash_placeholder__",L0=1,sk=2,ok=4,KA=8,il=128,ZA=256,ck=Math.min;function lk(a,i){var s=a[1],o=i[1],v=s|o,b=v<(L0|sk|il),y=o==il&&s==KA||o==il&&s==ZA&&a[7].length<=i[8]||o==(il|ZA)&&i[7].length<=i[8]&&s==KA;if(!(b||y))return a;o&L0&&(a[2]=i[2],v|=s&L0?0:ok);var g=i[3];if(g){var l=a[3];a[3]=l?gy(l,g,i[4]):g,a[4]=l?Ks(a[3],JA):i[4]}return g=i[5],g&&(l=a[5],a[5]=l?vy(l,g,i[6]):g,a[6]=l?Ks(a[5],JA):i[6]),g=i[7],g&&(a[7]=g),o&il&&(a[8]=a[8]==null?i[8]:ck(a[8],i[8])),a[9]==null&&(a[9]=i[9]),a[0]=i[0],a[1]=v,a}var fk="Expected a function",em=1,hk=2,tm=8,rm=16,im=32,uk=64,nm=Math.max;function Os(a,i,s,o,v,b,y,g){var l=i&hk;if(!l&&typeof a!="function")throw new TypeError(fk);var h=o?o.length:0;if(h||(i&=-97,o=v=void 0),y=y===void 0?y:nm(Er(y),0),g=g===void 0?g:Er(g),h-=v?v.length:0,i&uk){var u=o,f=v;o=v=void 0}var p=l?void 0:cg(a),d=[a,i,s,o,v,u,f,b,y,g];if(p&&lk(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:nm(d[9]-h,0),!g&&i&(tm|rm)&&(i&=-25),!i||i==em)var A=gS(a,i,s);else i==tm||i==rm?A=ik(a,i,g):(i==im||i==(em|im))&&!v.length?A=ak(a,i,s,o):A=fu.apply(void 0,d);var w=p?py:by;return yy(w(A,d),a,i)}var dk=128;function Cy(a,i,s){return i=s?void 0:i,i=a&&i==null?a.length:i,Os(a,dk,void 0,void 0,void 0,void 0,i)}function Rs(a,i,s){i=="__proto__"&&Ff?Ff(a,i,{configurable:!0,enumerable:!0,value:s,writable:!0}):a[i]=s}function H1(a,i){return a===i||a!==a&&i!==i}var pk=Object.prototype,gk=pk.hasOwnProperty;function Hl(a,i,s){var o=a[i];(!(gk.call(a,i)&&H1(o,s))||s===void 0&&!(i in a))&&Rs(a,i,s)}function ls(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?Rs(s,g,l):Hl(s,g,l)}return s}var am=Math.max;function Iy(a,i,s){return i=am(i===void 0?a.length-1:i,0),function(){for(var o=arguments,v=-1,b=am(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),v1(a,this,g)}}function Mr(a,i){return fg(Iy(a,i,t1),a+"")}var vk=9007199254740991;function hu(a){return typeof a=="number"&&a>-1&&a%1==0&&a<=vk}function r1(a){return a!=null&&hu(a.length)&&!Ms(a)}function La(a,i,s){if(!Sn(s))return!1;var o=typeof i;return(o=="number"?r1(s)&&Ts(i,s.length):o=="string"&&i in s)?H1(s[i],a):!1}function vc(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 Ak=Object.prototype;function zl(a){var i=a&&a.constructor,s=typeof i=="function"&&i.prototype||Ak;return a===s}function hg(a,i){for(var s=-1,o=Array(a);++s<a;)o[s]=i(s);return o}var mk="[object Arguments]";function sm(a){return Rn(a)&&Ga(a)==mk}var Ey=Object.prototype,bk=Ey.hasOwnProperty,wk=Ey.propertyIsEnumerable,Bo=sm((function(){return arguments})())?sm:function(a){return Rn(a)&&bk.call(a,"callee")&&!wk.call(a,"callee")};function ug(){return!1}var By=typeof exports=="object"&&exports&&!exports.nodeType&&exports,om=By&&typeof module=="object"&&module&&!module.nodeType&&module,yk=om&&om.exports===By,cm=yk?fa.Buffer:void 0,xk=cm?cm.isBuffer:void 0,Zs=xk||ug,Ck="[object Arguments]",Ik="[object Array]",Ek="[object Boolean]",Bk="[object Date]",Sk="[object Error]",kk="[object Function]",_k="[object Map]",Mk="[object Number]",Tk="[object Object]",Ok="[object RegExp]",Rk="[object Set]",Dk="[object String]",Fk="[object WeakMap]",Qk="[object ArrayBuffer]",jk="[object DataView]",Nk="[object Float32Array]",Pk="[object Float64Array]",Uk="[object Int8Array]",Lk="[object Int16Array]",Gk="[object Int32Array]",Yk="[object Uint8Array]",Hk="[object Uint8ClampedArray]",zk="[object Uint16Array]",qk="[object Uint32Array]",cn={};cn[Nk]=cn[Pk]=cn[Uk]=cn[Lk]=cn[Gk]=cn[Yk]=cn[Hk]=cn[zk]=cn[qk]=!0;cn[Ck]=cn[Ik]=cn[Qk]=cn[Ek]=cn[jk]=cn[Bk]=cn[Sk]=cn[kk]=cn[_k]=cn[Mk]=cn[Tk]=cn[Ok]=cn[Rk]=cn[Dk]=cn[Fk]=!1;function Wk(a){return Rn(a)&&hu(a.length)&&!!cn[Ga(a)]}function A1(a){return function(i){return a(i)}}var Sy=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ml=Sy&&typeof module=="object"&&module&&!module.nodeType&&module,Vk=ml&&ml.exports===Sy,G0=Vk&&ly.process,I1=(function(){try{var a=ml&&ml.require&&ml.require("util").types;return a||G0&&G0.binding&&G0.binding("util")}catch{}})(),lm=I1&&I1.isTypedArray,Ac=lm?A1(lm):Wk,$k=Object.prototype,Xk=$k.hasOwnProperty;function ky(a,i){var s=yr(a),o=!s&&Bo(a),v=!s&&!o&&Zs(a),b=!s&&!o&&!v&&Ac(a),y=s||o||v||b,g=y?hg(a.length,String):[],l=g.length;for(var h in a)(i||Xk.call(a,h))&&!(y&&(h=="length"||v&&(h=="offset"||h=="parent")||b&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Ts(h,l)))&&g.push(h);return g}function _y(a,i){return function(s){return a(i(s))}}var Jk=_y(Object.keys,Object),Kk=Object.prototype,Zk=Kk.hasOwnProperty;function dg(a){if(!zl(a))return Jk(a);var i=[];for(var s in Object(a))Zk.call(a,s)&&s!="constructor"&&i.push(s);return i}function ha(a){return r1(a)?ky(a):dg(a)}var e_=Object.prototype,t_=e_.hasOwnProperty,r_=vc(function(a,i){if(zl(i)||r1(i)){ls(i,ha(i),a);return}for(var s in i)t_.call(i,s)&&Hl(a,s,i[s])});function i_(a){var i=[];if(a!=null)for(var s in Object(a))i.push(s);return i}var n_=Object.prototype,a_=n_.hasOwnProperty;function s_(a){if(!Sn(a))return i_(a);var i=zl(a),s=[];for(var o in a)o=="constructor"&&(i||!a_.call(a,o))||s.push(o);return s}function i1(a){return r1(a)?ky(a,!0):s_(a)}var o_=vc(function(a,i){ls(i,i1(i),a)}),hp=vc(function(a,i,s,o){ls(i,i1(i),a,o)}),c_=vc(function(a,i,s,o){ls(i,ha(i),a,o)}),l_=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,f_=/^\w*$/;function pg(a,i){if(yr(a))return!1;var s=typeof a;return s=="number"||s=="symbol"||s=="boolean"||a==null||p1(a)?!0:f_.test(a)||!l_.test(a)||i!=null&&a in Object(i)}var Ql=To(Object,"create");function h_(){this.__data__=Ql?Ql(null):{},this.size=0}function u_(a){var i=this.has(a)&&delete this.__data__[a];return this.size-=i?1:0,i}var d_="__lodash_hash_undefined__",p_=Object.prototype,g_=p_.hasOwnProperty;function v_(a){var i=this.__data__;if(Ql){var s=i[a];return s===d_?void 0:s}return g_.call(i,a)?i[a]:void 0}var A_=Object.prototype,m_=A_.hasOwnProperty;function b_(a){var i=this.__data__;return Ql?i[a]!==void 0:m_.call(i,a)}var w_="__lodash_hash_undefined__";function y_(a,i){var s=this.__data__;return this.size+=this.has(a)?0:1,s[a]=Ql&&i===void 0?w_:i,this}function So(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])}}So.prototype.clear=h_;So.prototype.delete=u_;So.prototype.get=v_;So.prototype.has=b_;So.prototype.set=y_;function x_(){this.__data__=[],this.size=0}function uu(a,i){for(var s=a.length;s--;)if(H1(a[s][0],i))return s;return-1}var C_=Array.prototype,I_=C_.splice;function E_(a){var i=this.__data__,s=uu(i,a);if(s<0)return!1;var o=i.length-1;return s==o?i.pop():I_.call(i,s,1),--this.size,!0}function B_(a){var i=this.__data__,s=uu(i,a);return s<0?void 0:i[s][1]}function S_(a){return uu(this.__data__,a)>-1}function k_(a,i){var s=this.__data__,o=uu(s,a);return o<0?(++this.size,s.push([a,i])):s[o][1]=i,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=x_;Ds.prototype.delete=E_;Ds.prototype.get=B_;Ds.prototype.has=S_;Ds.prototype.set=k_;var jl=To(fa,"Map");function __(){this.size=0,this.__data__={hash:new So,map:new(jl||Ds),string:new So}}function M_(a){var i=typeof a;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?a!=="__proto__":a===null}function du(a,i){var s=a.__data__;return M_(i)?s[typeof i=="string"?"string":"hash"]:s.map}function T_(a){var i=du(this,a).delete(a);return this.size-=i?1:0,i}function O_(a){return du(this,a).get(a)}function R_(a){return du(this,a).has(a)}function D_(a,i){var s=du(this,a),o=s.size;return s.set(a,i),this.size+=s.size==o?0:1,this}function Fs(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])}}Fs.prototype.clear=__;Fs.prototype.delete=T_;Fs.prototype.get=O_;Fs.prototype.has=R_;Fs.prototype.set=D_;var F_="Expected a function";function pu(a,i){if(typeof a!="function"||i!=null&&typeof i!="function")throw new TypeError(F_);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(pu.Cache||Fs),s}pu.Cache=Fs;var Q_=500;function j_(a){var i=pu(a,function(o){return s.size===Q_&&s.clear(),o}),s=i.cache;return i}var N_=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,P_=/\\(\\)?/g,My=j_(function(a){var i=[];return a.charCodeAt(0)===46&&i.push(""),a.replace(N_,function(s,o,v,b){i.push(v?b.replace(P_,"$1"):o||s)}),i});function yi(a){return a==null?"":g1(a)}function ro(a,i){return yr(a)?a:pg(a,i)?[a]:My(yi(a))}function fs(a){if(typeof a=="string"||p1(a))return a;var i=a+"";return i=="0"&&1/a==-1/0?"-0":i}function Oo(a,i){i=ro(i,a);for(var s=0,o=i.length;a!=null&&s<o;)a=a[fs(i[s++])];return s&&s==o?a:void 0}function Nl(a,i,s){var o=a==null?void 0:Oo(a,i);return o===void 0?s:o}function gg(a,i){for(var s=-1,o=i.length,v=Array(o),b=a==null;++s<o;)v[s]=b?void 0:Nl(a,i[s]);return v}function io(a,i){for(var s=-1,o=i.length,v=a.length;++s<o;)a[v+s]=i[s];return a}var fm=Ma?Ma.isConcatSpreadable:void 0;function U_(a){return yr(a)||Bo(a)||!!(fm&&a&&a[fm])}function wa(a,i,s,o,v){var b=-1,y=a.length;for(s||(s=U_),v||(v=[]);++b<y;){var g=a[b];i>0&&s(g)?i>1?wa(g,i-1,s,o,v):io(v,g):o||(v[v.length]=g)}return v}function Ty(a){var i=a==null?0:a.length;return i?wa(a,1):[]}function Qs(a){return fg(Iy(a,void 0,Ty),a+"")}var L_=Qs(gg),gu=_y(Object.getPrototypeOf,Object),G_="[object Object]",Y_=Function.prototype,H_=Object.prototype,Oy=Y_.toString,z_=H_.hasOwnProperty,q_=Oy.call(Object);function ql(a){if(!Rn(a)||Ga(a)!=G_)return!1;var i=gu(a);if(i===null)return!0;var s=z_.call(i,"constructor")&&i.constructor;return typeof s=="function"&&s instanceof s&&Oy.call(s)==q_}var W_="[object DOMException]",V_="[object Error]";function vg(a){if(!Rn(a))return!1;var i=Ga(a);return i==V_||i==W_||typeof a.message=="string"&&typeof a.name=="string"&&!ql(a)}var Ry=Mr(function(a,i){try{return v1(a,void 0,i)}catch(s){return vg(s)?s:new Error(s)}}),$_="Expected a function";function Dy(a,i){var s;if(typeof i!="function")throw new TypeError($_);return a=Er(a),function(){return--a>0&&(s=i.apply(this,arguments)),a<=1&&(i=void 0),s}}var X_=1,J_=32,vu=Mr(function(a,i,s){var o=X_;if(s.length){var v=Ks(s,gc(vu));o|=J_}return Os(a,o,i,s,v)});vu.placeholder={};var K_=Qs(function(a,i){return S1(i,function(s){s=fs(s),Rs(a,s,vu(a[s],a))}),a}),Z_=1,eM=2,tM=32,Ag=Mr(function(a,i,s){var o=Z_|eM;if(s.length){var v=Ks(s,gc(Ag));o|=tM}return Os(i,o,a,s,v)});Ag.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 no(a,i,s){var o=a.length;return s=s===void 0?o:s,!i&&s>=o?a:E1(a,i,s)}var rM="\\ud800-\\udfff",iM="\\u0300-\\u036f",nM="\\ufe20-\\ufe2f",aM="\\u20d0-\\u20ff",sM=iM+nM+aM,oM="\\ufe0e\\ufe0f",cM="\\u200d",lM=RegExp("["+cM+rM+sM+oM+"]");function mc(a){return lM.test(a)}function fM(a){return a.split("")}var Fy="\\ud800-\\udfff",hM="\\u0300-\\u036f",uM="\\ufe20-\\ufe2f",dM="\\u20d0-\\u20ff",pM=hM+uM+dM,gM="\\ufe0e\\ufe0f",vM="["+Fy+"]",up="["+pM+"]",dp="\\ud83c[\\udffb-\\udfff]",AM="(?:"+up+"|"+dp+")",Qy="[^"+Fy+"]",jy="(?:\\ud83c[\\udde6-\\uddff]){2}",Ny="[\\ud800-\\udbff][\\udc00-\\udfff]",mM="\\u200d",Py=AM+"?",Uy="["+gM+"]?",bM="(?:"+mM+"(?:"+[Qy,jy,Ny].join("|")+")"+Uy+Py+")*",wM=Uy+Py+bM,yM="(?:"+[Qy+up+"?",up,jy,Ny,vM].join("|")+")",xM=RegExp(dp+"(?="+dp+")|"+yM+wM,"g");function CM(a){return a.match(xM)||[]}function G1(a){return mc(a)?CM(a):fM(a)}function Ly(a){return function(i){i=yi(i);var s=mc(i)?G1(i):void 0,o=s?s[0]:i.charAt(0),v=s?no(s,1).join(""):i.slice(1);return o[a]()+v}}var mg=Ly("toUpperCase");function Gy(a){return mg(yi(a).toLowerCase())}function bg(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 wg(a){return function(i){return a?.[i]}}var IM={À:"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"},EM=wg(IM),BM=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,SM="\\u0300-\\u036f",kM="\\ufe20-\\ufe2f",_M="\\u20d0-\\u20ff",MM=SM+kM+_M,TM="["+MM+"]",OM=RegExp(TM,"g");function Yy(a){return a=yi(a),a&&a.replace(BM,EM).replace(OM,"")}var RM=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function DM(a){return a.match(RM)||[]}var FM=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function QM(a){return FM.test(a)}var Hy="\\ud800-\\udfff",jM="\\u0300-\\u036f",NM="\\ufe20-\\ufe2f",PM="\\u20d0-\\u20ff",UM=jM+NM+PM,zy="\\u2700-\\u27bf",qy="a-z\\xdf-\\xf6\\xf8-\\xff",LM="\\xac\\xb1\\xd7\\xf7",GM="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",YM="\\u2000-\\u206f",HM=" \\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",Wy="A-Z\\xc0-\\xd6\\xd8-\\xde",zM="\\ufe0e\\ufe0f",Vy=LM+GM+YM+HM,$y="['’]",hm="["+Vy+"]",qM="["+UM+"]",Xy="\\d+",WM="["+zy+"]",Jy="["+qy+"]",Ky="[^"+Hy+Vy+Xy+zy+qy+Wy+"]",VM="\\ud83c[\\udffb-\\udfff]",$M="(?:"+qM+"|"+VM+")",XM="[^"+Hy+"]",Zy="(?:\\ud83c[\\udde6-\\uddff]){2}",ex="[\\ud800-\\udbff][\\udc00-\\udfff]",Wo="["+Wy+"]",JM="\\u200d",um="(?:"+Jy+"|"+Ky+")",KM="(?:"+Wo+"|"+Ky+")",dm="(?:"+$y+"(?:d|ll|m|re|s|t|ve))?",pm="(?:"+$y+"(?:D|LL|M|RE|S|T|VE))?",tx=$M+"?",rx="["+zM+"]?",ZM="(?:"+JM+"(?:"+[XM,Zy,ex].join("|")+")"+rx+tx+")*",eT="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",tT="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",rT=rx+tx+ZM,iT="(?:"+[WM,Zy,ex].join("|")+")"+rT,nT=RegExp([Wo+"?"+Jy+"+"+dm+"(?="+[hm,Wo,"$"].join("|")+")",KM+"+"+pm+"(?="+[hm,Wo+um,"$"].join("|")+")",Wo+"?"+um+"+"+dm,Wo+"+"+pm,tT,eT,Xy,iT].join("|"),"g");function aT(a){return a.match(nT)||[]}function ix(a,i,s){return a=yi(a),i=s?void 0:i,i===void 0?QM(a)?aT(a):DM(a):a.match(i)||[]}var sT="['’]",oT=RegExp(sT,"g");function bc(a){return function(i){return bg(ix(Yy(i).replace(oT,"")),a,"")}}var cT=bc(function(a,i,s){return i=i.toLowerCase(),a+(s?Gy(i):i)});function lT(){if(!arguments.length)return[];var a=arguments[0];return yr(a)?a:[a]}var fT=fa.isFinite,hT=Math.min;function yg(a){var i=Math[a];return function(s,o){if(s=y1(s),o=o==null?0:hT(Er(o),292),o&&fT(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 uT=yg("ceil");function nx(a){var i=J(a);return i.__chain__=!0,i}var dT=Math.ceil,pT=Math.max;function gT(a,i,s){(s?La(a,i,s):i===void 0)?i=1:i=pT(Er(i),0);var o=a==null?0:a.length;if(!o||i<1)return[];for(var v=0,b=0,y=Array(dT(o/i));v<o;)y[b++]=E1(a,v,v+=i);return y}function Ro(a,i,s){return a===a&&(s!==void 0&&(a=a<=s?a:s),i!==void 0&&(a=a>=i?a:i)),a}function vT(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),Ro(y1(a),i,s)}function AT(){this.__data__=new Ds,this.size=0}function mT(a){var i=this.__data__,s=i.delete(a);return this.size=i.size,s}function bT(a){return this.__data__.get(a)}function wT(a){return this.__data__.has(a)}var yT=200;function xT(a,i){var s=this.__data__;if(s instanceof Ds){var o=s.__data__;if(!jl||o.length<yT-1)return o.push([a,i]),this.size=++s.size,this;s=this.__data__=new Fs(o)}return s.set(a,i),this.size=s.size,this}function L1(a){var i=this.__data__=new Ds(a);this.size=i.size}L1.prototype.clear=AT;L1.prototype.delete=mT;L1.prototype.get=bT;L1.prototype.has=wT;L1.prototype.set=xT;function ax(a,i){return a&&ls(i,ha(i),a)}function CT(a,i){return a&&ls(i,i1(i),a)}var sx=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gm=sx&&typeof module=="object"&&module&&!module.nodeType&&module,IT=gm&&gm.exports===sx,vm=IT?fa.Buffer:void 0,Am=vm?vm.allocUnsafe:void 0;function ox(a,i){if(i)return a.slice();var s=a.length,o=Am?Am(s):new a.constructor(s);return a.copy(o),o}function ao(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 xg(){return[]}var ET=Object.prototype,BT=ET.propertyIsEnumerable,mm=Object.getOwnPropertySymbols,Cg=mm?function(a){return a==null?[]:(a=Object(a),ao(mm(a),function(i){return BT.call(a,i)}))}:xg;function ST(a,i){return ls(a,Cg(a),i)}var kT=Object.getOwnPropertySymbols,cx=kT?function(a){for(var i=[];a;)io(i,Cg(a)),a=gu(a);return i}:xg;function _T(a,i){return ls(a,cx(a),i)}function lx(a,i,s){var o=i(a);return yr(a)?o:io(o,s(a))}function pp(a){return lx(a,ha,Cg)}function Ig(a){return lx(a,i1,cx)}var gp=To(fa,"DataView"),vp=To(fa,"Promise"),ic=To(fa,"Set"),bm="[object Map]",MT="[object Object]",wm="[object Promise]",ym="[object Set]",xm="[object WeakMap]",Cm="[object DataView]",TT=Mo(gp),OT=Mo(jl),RT=Mo(vp),DT=Mo(ic),FT=Mo(Rl),Sa=Ga;(gp&&Sa(new gp(new ArrayBuffer(1)))!=Cm||jl&&Sa(new jl)!=bm||vp&&Sa(vp.resolve())!=wm||ic&&Sa(new ic)!=ym||Rl&&Sa(new Rl)!=xm)&&(Sa=function(a){var i=Ga(a),s=i==MT?a.constructor:void 0,o=s?Mo(s):"";if(o)switch(o){case TT:return Cm;case OT:return bm;case RT:return wm;case DT:return ym;case FT:return xm}return i});var QT=Object.prototype,jT=QT.hasOwnProperty;function NT(a){var i=a.length,s=new a.constructor(i);return i&&typeof a[0]=="string"&&jT.call(a,"index")&&(s.index=a.index,s.input=a.input),s}var Qf=fa.Uint8Array;function Eg(a){var i=new a.constructor(a.byteLength);return new Qf(i).set(new Qf(a)),i}function PT(a,i){var s=i?Eg(a.buffer):a.buffer;return new a.constructor(s,a.byteOffset,a.byteLength)}var UT=/\w*$/;function LT(a){var i=new a.constructor(a.source,UT.exec(a));return i.lastIndex=a.lastIndex,i}var Im=Ma?Ma.prototype:void 0,Em=Im?Im.valueOf:void 0;function GT(a){return Em?Object(Em.call(a)):{}}function fx(a,i){var s=i?Eg(a.buffer):a.buffer;return new a.constructor(s,a.byteOffset,a.length)}var YT="[object Boolean]",HT="[object Date]",zT="[object Map]",qT="[object Number]",WT="[object RegExp]",VT="[object Set]",$T="[object String]",XT="[object Symbol]",JT="[object ArrayBuffer]",KT="[object DataView]",ZT="[object Float32Array]",eO="[object Float64Array]",tO="[object Int8Array]",rO="[object Int16Array]",iO="[object Int32Array]",nO="[object Uint8Array]",aO="[object Uint8ClampedArray]",sO="[object Uint16Array]",oO="[object Uint32Array]";function cO(a,i,s){var o=a.constructor;switch(i){case JT:return Eg(a);case YT:case HT:return new o(+a);case KT:return PT(a,s);case ZT:case eO:case tO:case rO:case iO:case nO:case aO:case sO:case oO:return fx(a,s);case zT:return new o;case qT:case $T:return new o(a);case WT:return LT(a);case VT:return new o;case XT:return GT(a)}}function hx(a){return typeof a.constructor=="function"&&!zl(a)?dc(gu(a)):{}}var lO="[object Map]";function fO(a){return Rn(a)&&Sa(a)==lO}var Bm=I1&&I1.isMap,ux=Bm?A1(Bm):fO,hO="[object Set]";function uO(a){return Rn(a)&&Sa(a)==hO}var Sm=I1&&I1.isSet,dx=Sm?A1(Sm):uO,dO=1,pO=2,gO=4,px="[object Arguments]",vO="[object Array]",AO="[object Boolean]",mO="[object Date]",bO="[object Error]",gx="[object Function]",wO="[object GeneratorFunction]",yO="[object Map]",xO="[object Number]",vx="[object Object]",CO="[object RegExp]",IO="[object Set]",EO="[object String]",BO="[object Symbol]",SO="[object WeakMap]",kO="[object ArrayBuffer]",_O="[object DataView]",MO="[object Float32Array]",TO="[object Float64Array]",OO="[object Int8Array]",RO="[object Int16Array]",DO="[object Int32Array]",FO="[object Uint8Array]",QO="[object Uint8ClampedArray]",jO="[object Uint16Array]",NO="[object Uint32Array]",Xi={};Xi[px]=Xi[vO]=Xi[kO]=Xi[_O]=Xi[AO]=Xi[mO]=Xi[MO]=Xi[TO]=Xi[OO]=Xi[RO]=Xi[DO]=Xi[yO]=Xi[xO]=Xi[vx]=Xi[CO]=Xi[IO]=Xi[EO]=Xi[BO]=Xi[FO]=Xi[QO]=Xi[jO]=Xi[NO]=!0;Xi[bO]=Xi[gx]=Xi[SO]=!1;function x1(a,i,s,o,v,b){var y,g=i&dO,l=i&pO,h=i&gO;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=NT(a),!g)return Ja(a,y)}else{var f=Sa(a),p=f==gx||f==wO;if(Zs(a))return ox(a,g);if(f==vx||f==px||p&&!v){if(y=l||p?{}:hx(a),!g)return l?_T(a,CT(y,a)):ST(a,ax(y,a))}else{if(!Xi[f])return v?a:{};y=cO(a,f,g)}}b||(b=new L1);var d=b.get(a);if(d)return d;b.set(a,y),dx(a)?a.forEach(function(m){y.add(x1(m,i,s,m,a,b))}):ux(a)&&a.forEach(function(m,x){y.set(x,x1(m,i,s,x,a,b))});var A=h?l?Ig:pp:l?i1:ha,w=u?void 0:A(a);return S1(w||a,function(m,x){w&&(x=m,m=a[x]),Hl(y,x,x1(m,i,s,x,a,b))}),y}var PO=4;function UO(a){return x1(a,PO)}var LO=1,GO=4;function Ax(a){return x1(a,LO|GO)}var YO=1,HO=4;function zO(a,i){return i=typeof i=="function"?i:void 0,x1(a,YO|HO,i)}var qO=4;function WO(a,i){return i=typeof i=="function"?i:void 0,x1(a,qO,i)}function VO(){return new C1(this.value(),this.__chain__)}function $O(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 XO(){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 io(yr(s)?Ja(s):[s],wa(i,1))}var JO="__lodash_hash_undefined__";function KO(a){return this.__data__.set(a,JO),this}function ZO(a){return this.__data__.has(a)}function ko(a){var i=-1,s=a==null?0:a.length;for(this.__data__=new Fs;++i<s;)this.add(a[i])}ko.prototype.add=ko.prototype.push=KO;ko.prototype.has=ZO;function Bg(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 Pl(a,i){return a.has(i)}var eR=1,tR=2;function mx(a,i,s,o,v,b){var y=s&eR,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&tR?new ko: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(!Bg(i,function(x,C){if(!Pl(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 Sg(a){var i=-1,s=Array(a.size);return a.forEach(function(o,v){s[++i]=[v,o]}),s}function Au(a){var i=-1,s=Array(a.size);return a.forEach(function(o){s[++i]=o}),s}var rR=1,iR=2,nR="[object Boolean]",aR="[object Date]",sR="[object Error]",oR="[object Map]",cR="[object Number]",lR="[object RegExp]",fR="[object Set]",hR="[object String]",uR="[object Symbol]",dR="[object ArrayBuffer]",pR="[object DataView]",km=Ma?Ma.prototype:void 0,Y0=km?km.valueOf:void 0;function gR(a,i,s,o,v,b,y){switch(s){case pR:if(a.byteLength!=i.byteLength||a.byteOffset!=i.byteOffset)return!1;a=a.buffer,i=i.buffer;case dR:return!(a.byteLength!=i.byteLength||!b(new Qf(a),new Qf(i)));case nR:case aR:case cR:return H1(+a,+i);case sR:return a.name==i.name&&a.message==i.message;case lR:case hR:return a==i+"";case oR:var g=Sg;case fR:var l=o&rR;if(g||(g=Au),a.size!=i.size&&!l)return!1;var h=y.get(a);if(h)return h==i;o|=iR,y.set(a,i);var u=mx(g(a),g(i),o,v,b,y);return y.delete(a),u;case uR:if(Y0)return Y0.call(a)==Y0.call(i)}return!1}var vR=1,AR=Object.prototype,mR=AR.hasOwnProperty;function bR(a,i,s,o,v,b){var y=s&vR,g=pp(a),l=g.length,h=pp(i),u=h.length;if(l!=u&&!y)return!1;for(var f=l;f--;){var p=g[f];if(!(y?p in i:mR.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,S=i.constructor;B!=S&&"constructor"in a&&"constructor"in i&&!(typeof B=="function"&&B instanceof B&&typeof S=="function"&&S instanceof S)&&(w=!1)}return b.delete(a),b.delete(i),w}var wR=1,_m="[object Arguments]",Mm="[object Array]",I2="[object Object]",yR=Object.prototype,Tm=yR.hasOwnProperty;function xR(a,i,s,o,v,b){var y=yr(a),g=yr(i),l=y?Mm:Sa(a),h=g?Mm:Sa(i);l=l==_m?I2:l,h=h==_m?I2:h;var u=l==I2,f=h==I2,p=l==h;if(p&&Zs(a)){if(!Zs(i))return!1;y=!0,u=!1}if(p&&!u)return b||(b=new L1),y||Ac(a)?mx(a,i,s,o,v,b):gR(a,i,l,s,o,v,b);if(!(s&wR)){var d=u&&Tm.call(a,"__wrapped__"),A=f&&Tm.call(i,"__wrapped__");if(d||A){var w=d?a.value():a,m=A?i.value():i;return b||(b=new L1),v(w,m,s,o,b)}}return p?(b||(b=new L1),bR(a,i,s,o,v,b)):!1}function Wl(a,i,s,o,v){return a===i?!0:a==null||i==null||!Rn(a)&&!Rn(i)?a!==a&&i!==i:xR(a,i,s,o,Wl,v)}var CR=1,IR=2;function kg(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 L1;if(o)var p=o(h,u,l,a,i,f);if(!(p===void 0?Wl(u,h,CR|IR,o,f):p))return!1}}return!0}function bx(a){return a===a&&!Sn(a)}function _g(a){for(var i=ha(a),s=i.length;s--;){var o=i[s],v=a[o];i[s]=[o,v,bx(v)]}return i}function wx(a,i){return function(s){return s==null?!1:s[a]===i&&(i!==void 0||a in Object(s))}}function yx(a){var i=_g(a);return i.length==1&&i[0][2]?wx(i[0][0],i[0][1]):function(s){return s===a||kg(s,a,i)}}function ER(a,i){return a!=null&&i in Object(a)}function xx(a,i,s){i=ro(i,a);for(var o=-1,v=i.length,b=!1;++o<v;){var y=fs(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&&hu(v)&&Ts(y,v)&&(yr(a)||Bo(a)))}function Mg(a,i){return a!=null&&xx(a,i,ER)}var BR=1,SR=2;function Cx(a,i){return pg(a)&&bx(i)?wx(fs(a),i):function(s){var o=Nl(s,a);return o===void 0&&o===i?Mg(s,a):Wl(i,o,BR|SR)}}function Tg(a){return function(i){return i?.[a]}}function kR(a){return function(i){return Oo(i,a)}}function Ix(a){return pg(a)?Tg(fs(a)):kR(a)}function pr(a){return typeof a=="function"?a:a==null?t1:typeof a=="object"?yr(a)?Cx(a[0],a[1]):yx(a):Ix(a)}var _R="Expected a function";function MR(a){var i=a==null?0:a.length,s=pr;return a=i?vn(a,function(o){if(typeof o[1]!="function")throw new TypeError(_R);return[s(o[0]),o[1]]}):[],Mr(function(o){for(var v=-1;++v<i;){var b=a[v];if(v1(b[0],this,o))return v1(b[1],this,o)}})}function Ex(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 TR(a){var i=ha(a);return function(s){return Ex(s,a,i)}}var OR=1;function RR(a){return TR(x1(a,OR))}function DR(a,i){return i==null||Ex(a,i,ha(i))}function FR(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 Bx(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 Og=Bx();function hs(a,i){return a&&Og(a,i,ha)}function Sx(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 so=Sx(hs);function QR(a,i,s,o){return so(a,function(v,b,y){i(o,v,s(v),y)}),o}function mu(a,i){return function(s,o){var v=yr(s)?FR:QR,b=i?i():{};return v(s,a,pr(o),b)}}var jR=Object.prototype,NR=jR.hasOwnProperty,PR=mu(function(a,i,s){NR.call(a,s)?++a[s]:Rs(a,s,1)});function UR(a,i){var s=dc(a);return i==null?s:ax(s,i)}var LR=8;function Rg(a,i,s){i=s?void 0:i;var o=Os(a,LR,void 0,void 0,void 0,void 0,void 0,i);return o.placeholder=Rg.placeholder,o}Rg.placeholder={};var GR=16;function Dg(a,i,s){i=s?void 0:i;var o=Os(a,GR,void 0,void 0,void 0,void 0,void 0,i);return o.placeholder=Dg.placeholder,o}Dg.placeholder={};var bf=function(){return fa.Date.now()},YR="Expected a function",HR=Math.max,zR=Math.min;function kx(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(YR);i=y1(i)||0,Sn(s)&&(u=!!s.leading,f="maxWait"in s,b=f?HR(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?zR(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=bf();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(bf())}function S(){var M=bf(),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 S.cancel=E,S.flush=B,S}function qR(a,i){return a==null||a!==a?i:a}var _x=Object.prototype,WR=_x.hasOwnProperty,VR=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||H1(u,_x[h])&&!WR.call(a,h))&&(a[h]=b[h])}return a});function Ap(a,i,s){(s!==void 0&&!H1(a[i],s)||s===void 0&&!(i in a))&&Rs(a,i,s)}function Gn(a){return Rn(a)&&r1(a)}function mp(a,i){if(!(i==="constructor"&&typeof a[i]=="function")&&i!="__proto__")return a[i]}function Mx(a){return ls(a,i1(a))}function $R(a,i,s,o,v,b,y){var g=mp(a,s),l=mp(i,s),h=y.get(l);if(h){Ap(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&&Zs(l),A=!p&&!d&&Ac(l);u=l,p||d||A?yr(g)?u=g:Gn(g)?u=Ja(g):d?(f=!1,u=ox(l,!0)):A?(f=!1,u=fx(l,!0)):u=[]:ql(l)||Bo(l)?(u=g,Bo(g)?u=Mx(g):(!Sn(g)||Ms(g))&&(u=hx(l))):f=!1}f&&(y.set(l,u),v(u,l,o,b,y),y.delete(l)),Ap(a,s,u)}function bu(a,i,s,o,v){a!==i&&Og(i,function(b,y){if(v||(v=new L1),Sn(b))$R(a,i,y,s,bu,o,v);else{var g=o?o(mp(a,y),b,y+"",a,i,v):void 0;g===void 0&&(g=b),Ap(a,y,g)}},i1)}function Tx(a,i,s,o,v,b){return Sn(a)&&Sn(i)&&(b.set(i,a),bu(a,i,void 0,Tx,b),b.delete(i)),a}var Ox=vc(function(a,i,s,o){bu(a,i,s,o)}),XR=Mr(function(a){return a.push(void 0,Tx),v1(Ox,void 0,a)}),JR="Expected a function";function Rx(a,i,s){if(typeof a!="function")throw new TypeError(JR);return setTimeout(function(){a.apply(void 0,s)},i)}var KR=Mr(function(a,i){return Rx(a,1,i)}),ZR=Mr(function(a,i,s){return Rx(a,y1(i)||0,s)});function Fg(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 eD=200;function Vl(a,i,s,o){var v=-1,b=lu,y=!0,g=a.length,l=[],h=i.length;if(!g)return l;s&&(i=vn(i,A1(s))),o?(b=Fg,y=!1):i.length>=eD&&(b=Pl,y=!1,i=new ko(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 tD=Mr(function(a,i){return Gn(a)?Vl(a,wa(i,1,Gn,!0)):[]});function B1(a){var i=a==null?0:a.length;return i?a[i-1]:void 0}var rD=Mr(function(a,i){var s=B1(i);return Gn(s)&&(s=void 0),Gn(a)?Vl(a,wa(i,1,Gn,!0),pr(s)):[]}),iD=Mr(function(a,i){var s=B1(i);return Gn(s)&&(s=void 0),Gn(a)?Vl(a,wa(i,1,Gn,!0),void 0,s):[]}),nD=su(function(a,i){return a/i},1);function aD(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 sD(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 wu(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 oD(a,i){return a&&a.length?wu(a,pr(i),!0,!0):[]}function cD(a,i){return a&&a.length?wu(a,pr(i),!0):[]}function us(a){return typeof a=="function"?a:t1}function lD(a,i){var s=yr(a)?S1:so;return s(a,us(i))}function fD(a,i){for(var s=a==null?0:a.length;s--&&i(a[s],s,a)!==!1;);return a}var Dx=Bx(!0);function Qg(a,i){return a&&Dx(a,i,ha)}var Fx=Sx(Qg,!0);function hD(a,i){var s=yr(a)?fD:Fx;return s(a,us(i))}function uD(a,i,s){a=yi(a),i=g1(i);var o=a.length;s=s===void 0?o:Ro(Er(s),0,o);var v=s;return s-=i.length,s>=0&&a.slice(s,v)==i}function dD(a,i){return vn(i,function(s){return[s,a[s]]})}function pD(a){var i=-1,s=Array(a.size);return a.forEach(function(o){s[++i]=[o,o]}),s}var gD="[object Map]",vD="[object Set]";function Qx(a){return function(i){var s=Sa(i);return s==gD?Sg(i):s==vD?pD(i):dD(i,a(i))}}var AD=Qx(ha),mD=Qx(i1),bD={"&":"&","<":"<",">":">",'"':""","'":"'"},wD=wg(bD),jx=/[&<>"']/g,yD=RegExp(jx.source);function Nx(a){return a=yi(a),a&&yD.test(a)?a.replace(jx,wD):a}var Px=/[\\^$.*+?()[\]{}|]/g,xD=RegExp(Px.source);function CD(a){return a=yi(a),a&&xD.test(a)?a.replace(Px,"\\$&"):a}function Ux(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 ID(a,i){var s=!0;return so(a,function(o,v,b){return s=!!i(o,v,b),s}),s}function ED(a,i,s){var o=yr(a)?Ux:ID;return s&&La(a,i,s)&&(i=void 0),o(a,pr(i))}var BD=4294967295;function Lx(a){return a?Ro(Er(a),0,BD):0}function SD(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:Lx(o);s<o;)a[s++]=i;return a}function kD(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),SD(a,i,s,o)):[]}function Gx(a,i){var s=[];return so(a,function(o,v,b){i(o,v,b)&&s.push(o)}),s}function _D(a,i){var s=yr(a)?ao:Gx;return s(a,pr(i))}function Yx(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 MD=Math.max;function Hx(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=MD(o+v,0)),cu(a,pr(i),v)}var TD=Yx(Hx);function zx(a,i,s){var o;return s(a,function(v,b,y){if(i(v,b,y))return o=b,!1}),o}function OD(a,i){return zx(a,pr(i),hs)}var RD=Math.max,DD=Math.min;function qx(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?RD(o+v,0):DD(v,o-1)),cu(a,pr(i),v,!0)}var FD=Yx(qx);function QD(a,i){return zx(a,pr(i),Qg)}function jD(a){return a&&a.length?a[0]:void 0}function Wx(a,i){var s=-1,o=r1(a)?Array(a.length):[];return so(a,function(v,b,y){o[++s]=i(v,b,y)}),o}function yu(a,i){var s=yr(a)?vn:Wx;return s(a,pr(i))}function ND(a,i){return wa(yu(a,i),1)}var PD=1/0;function UD(a,i){return wa(yu(a,i),PD)}function LD(a,i,s){return s=s===void 0?1:Er(s),wa(yu(a,i),s)}var GD=1/0;function YD(a){var i=a==null?0:a.length;return i?wa(a,GD):[]}function HD(a,i){var s=a==null?0:a.length;return s?(i=i===void 0?1:Er(i),wa(a,i)):[]}var zD=512;function qD(a){return Os(a,zD)}var WD=yg("floor"),VD="Expected a function",$D=8,XD=32,JD=128,KD=256;function Vx(a){return Qs(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(VD);if(v&&!y&&mf(b)=="wrapper")var y=new C1([],!0)}for(o=y?o:s;++o<s;){b=i[o];var g=mf(b),l=g=="wrapper"?cg(b):void 0;l&&fp(l[0])&&l[1]==(JD|$D|XD|KD)&&!l[4].length&&l[9]==1?y=y[mf(l[0])].apply(y,l[3]):y=b.length==1&&fp(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 ZD=Vx(),eF=Vx(!0);function tF(a,i){return a==null?a:Og(a,us(i),i1)}function rF(a,i){return a==null?a:Dx(a,us(i),i1)}function iF(a,i){return a&&hs(a,us(i))}function nF(a,i){return a&&Qg(a,us(i))}function aF(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 xu(a,i){return ao(i,function(s){return Ms(a[s])})}function sF(a){return a==null?[]:xu(a,ha(a))}function oF(a){return a==null?[]:xu(a,i1(a))}var cF=Object.prototype,lF=cF.hasOwnProperty,fF=mu(function(a,i,s){lF.call(a,s)?a[s].push(i):Rs(a,s,[i])});function jg(a,i){return a>i}function Cu(a){return function(i,s){return typeof i=="string"&&typeof s=="string"||(i=y1(i),s=y1(s)),a(i,s)}}var hF=Cu(jg),uF=Cu(function(a,i){return a>=i}),dF=Object.prototype,pF=dF.hasOwnProperty;function gF(a,i){return a!=null&&pF.call(a,i)}function vF(a,i){return a!=null&&xx(a,i,gF)}var AF=Math.max,mF=Math.min;function bF(a,i,s){return a>=mF(i,s)&&a<AF(i,s)}function wF(a,i,s){return i=Bs(i),s===void 0?(s=i,i=0):s=Bs(s),a=y1(a),bF(a,i,s)}var yF="[object String]";function Iu(a){return typeof a=="string"||!yr(a)&&Rn(a)&&Ga(a)==yF}function Ng(a,i){return vn(i,function(s){return a[s]})}function wc(a){return a==null?[]:Ng(a,ha(a))}var xF=Math.max;function CF(a,i,s,o){a=r1(a)?a:wc(a),s=s&&!o?Er(s):0;var v=a.length;return s<0&&(s=xF(v+s,0)),Iu(a)?s<=v&&a.indexOf(i,s)>-1:!!v&&pc(a,i,s)>-1}var IF=Math.max;function EF(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=IF(o+v,0)),pc(a,i,v)}function BF(a){var i=a==null?0:a.length;return i?E1(a,0,-1):[]}var SF=Math.min;function Pg(a,i,s){for(var o=s?Fg:lu,v=a[0].length,b=a.length,y=b,g=Array(b),l=1/0,h=[];y--;){var u=a[y];y&&i&&(u=vn(u,A1(i))),l=SF(u.length,l),g[y]=!s&&(i||v>=120&&u.length>=120)?new ko(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?Pl(p,A):o(h,A,s))){for(y=b;--y;){var w=g[y];if(!(w?Pl(w,A):o(a[y],A,s)))continue e}p&&p.push(A),h.push(d)}}return h}function Ug(a){return Gn(a)?a:[]}var kF=Mr(function(a){var i=vn(a,Ug);return i.length&&i[0]===a[0]?Pg(i):[]}),_F=Mr(function(a){var i=B1(a),s=vn(a,Ug);return i===B1(s)?i=void 0:s.pop(),s.length&&s[0]===a[0]?Pg(s,pr(i)):[]}),MF=Mr(function(a){var i=B1(a),s=vn(a,Ug);return i=typeof i=="function"?i:void 0,i&&s.pop(),s.length&&s[0]===a[0]?Pg(s,void 0,i):[]});function TF(a,i,s,o){return hs(a,function(v,b,y){i(o,s(v),b,y)}),o}function $x(a,i){return function(s,o){return TF(s,a,i(o),{})}}var OF=Object.prototype,RF=OF.toString,DF=$x(function(a,i,s){i!=null&&typeof i.toString!="function"&&(i=RF.call(i)),a[i]=s},lg(t1)),Xx=Object.prototype,FF=Xx.hasOwnProperty,QF=Xx.toString,jF=$x(function(a,i,s){i!=null&&typeof i.toString!="function"&&(i=QF.call(i)),FF.call(a,i)?a[i].push(s):a[i]=[s]},pr);function Jx(a,i){return i.length<2?a:Oo(a,E1(i,0,-1))}function $l(a,i,s){i=ro(i,a),a=Jx(a,i);var o=a==null?a:a[fs(B1(i))];return o==null?void 0:v1(o,a,s)}var NF=Mr($l),PF=Mr(function(a,i,s){var o=-1,v=typeof i=="function",b=r1(a)?Array(a.length):[];return so(a,function(y){b[++o]=v?v1(i,y,s):$l(y,i,s)}),b}),UF="[object ArrayBuffer]";function LF(a){return Rn(a)&&Ga(a)==UF}var Om=I1&&I1.isArrayBuffer,GF=Om?A1(Om):LF,YF="[object Boolean]";function HF(a){return a===!0||a===!1||Rn(a)&&Ga(a)==YF}var zF="[object Date]";function qF(a){return Rn(a)&&Ga(a)==zF}var Rm=I1&&I1.isDate,WF=Rm?A1(Rm):qF;function VF(a){return Rn(a)&&a.nodeType===1&&!ql(a)}var $F="[object Map]",XF="[object Set]",JF=Object.prototype,KF=JF.hasOwnProperty;function ZF(a){if(a==null)return!0;if(r1(a)&&(yr(a)||typeof a=="string"||typeof a.splice=="function"||Zs(a)||Ac(a)||Bo(a)))return!a.length;var i=Sa(a);if(i==$F||i==XF)return!a.size;if(zl(a))return!dg(a).length;for(var s in a)if(KF.call(a,s))return!1;return!0}function eQ(a,i){return Wl(a,i)}function tQ(a,i,s){s=typeof s=="function"?s:void 0;var o=s?s(a,i):void 0;return o===void 0?Wl(a,i,void 0,s):!!o}var rQ=fa.isFinite;function iQ(a){return typeof a=="number"&&rQ(a)}function Kx(a){return typeof a=="number"&&a==Er(a)}function nQ(a,i){return a===i||kg(a,i,_g(i))}function aQ(a,i,s){return s=typeof s=="function"?s:void 0,kg(a,i,_g(i),s)}var sQ="[object Number]";function Zx(a){return typeof a=="number"||Rn(a)&&Ga(a)==sQ}function oQ(a){return Zx(a)&&a!=+a}var cQ=Af?Ms:ug,lQ="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";function fQ(a){if(cQ(a))throw new Error(lQ);return dy(a)}function hQ(a){return a==null}function uQ(a){return a===null}var dQ="[object RegExp]";function pQ(a){return Rn(a)&&Ga(a)==dQ}var Dm=I1&&I1.isRegExp,Lg=Dm?A1(Dm):pQ,Fm=9007199254740991;function gQ(a){return Kx(a)&&a>=-Fm&&a<=Fm}function vQ(a){return a===void 0}var AQ="[object WeakMap]";function mQ(a){return Rn(a)&&Sa(a)==AQ}var bQ="[object WeakSet]";function wQ(a){return Rn(a)&&Ga(a)==bQ}var yQ=1;function xQ(a){return pr(typeof a=="function"?a:x1(a,yQ))}var CQ=Array.prototype,IQ=CQ.join;function EQ(a,i){return a==null?"":IQ.call(a,i)}var BQ=bc(function(a,i,s){return a+(s?"-":"")+i.toLowerCase()}),SQ=mu(function(a,i,s){Rs(a,s,i)});function kQ(a,i,s){for(var o=s+1;o--;)if(a[o]===i)return o;return o}var _Q=Math.max,MQ=Math.min;function TQ(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?_Q(o+v,0):MQ(v,o-1)),i===i?kQ(a,i,v):cu(a,wy,v,!0)}var OQ=bc(function(a,i,s){return a+(s?" ":"")+i.toLowerCase()}),RQ=Ly("toLowerCase");function Gg(a,i){return a<i}var DQ=Cu(Gg),FQ=Cu(function(a,i){return a<=i});function QQ(a,i){var s={};return i=pr(i),hs(a,function(o,v,b){Rs(s,i(o,v,b),o)}),s}function jQ(a,i){var s={};return i=pr(i),hs(a,function(o,v,b){Rs(s,v,i(o,v,b))}),s}var NQ=1;function PQ(a){return yx(x1(a,NQ))}var UQ=1;function LQ(a,i){return Cx(a,x1(i,UQ))}function Eu(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&&!p1(y):s(y,g)))var g=y,l=b}return l}function GQ(a){return a&&a.length?Eu(a,t1,jg):void 0}function YQ(a,i){return a&&a.length?Eu(a,pr(i),jg):void 0}function Yg(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 HQ=NaN;function e6(a,i){var s=a==null?0:a.length;return s?Yg(a,i)/s:HQ}function zQ(a){return e6(a,t1)}function qQ(a,i){return e6(a,pr(i))}var WQ=vc(function(a,i,s){bu(a,i,s)}),VQ=Mr(function(a,i){return function(s){return $l(s,a,i)}}),$Q=Mr(function(a,i){return function(s){return $l(a,s,i)}});function XQ(a){return a&&a.length?Eu(a,t1,Gg):void 0}function JQ(a,i){return a&&a.length?Eu(a,pr(i),Gg):void 0}function KQ(a,i,s){var o=ha(i),v=xu(i,o),b=!(Sn(s)&&"chain"in s)||!!s.chain,y=Ms(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,io([this.value()],arguments))})}),a}var ZQ=su(function(a,i){return a*i},1),ej="Expected a function";function Bu(a){if(typeof a!="function")throw new TypeError(ej);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 tj(a){for(var i,s=[];!(i=a.next()).done;)s.push(i.value);return s}var rj="[object Map]",ij="[object Set]",H0=Ma?Ma.iterator:void 0;function t6(a){if(!a)return[];if(r1(a))return Iu(a)?G1(a):Ja(a);if(H0&&a[H0])return tj(a[H0]());var i=Sa(a),s=i==rj?Sg:i==ij?Au:wc;return s(a)}function nj(){this.__values__===void 0&&(this.__values__=t6(this.value()));var a=this.__index__>=this.__values__.length,i=a?void 0:this.__values__[this.__index__++];return{done:a,value:i}}function r6(a,i){var s=a.length;if(s)return i+=i<0?s:0,Ts(i,s)?a[i]:void 0}function aj(a,i){return a&&a.length?r6(a,Er(i)):void 0}function sj(a){return a=Er(a),Mr(function(i){return r6(i,a)})}function Hg(a,i){return i=ro(i,a),a=Jx(a,i),a==null||delete a[fs(B1(i))]}function oj(a){return ql(a)?void 0:a}var cj=1,lj=2,fj=4,hj=Qs(function(a,i){var s={};if(a==null)return s;var o=!1;i=vn(i,function(b){return b=ro(b,a),o||(o=b.length>1),b}),ls(a,Ig(a),s),o&&(s=x1(s,cj|lj|fj,oj));for(var v=i.length;v--;)Hg(s,i[v]);return s});function Xl(a,i,s,o){if(!Sn(a))return a;i=ro(i,a);for(var v=-1,b=i.length,y=b-1,g=a;g!=null&&++v<b;){var l=fs(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:Ts(i[v+1])?[]:{})}Hl(g,l,h),g=g[l]}return a}function i6(a,i,s){for(var o=-1,v=i.length,b={};++o<v;){var y=i[o],g=Oo(a,y);s(g,y)&&Xl(b,ro(y,a),g)}return b}function n6(a,i){if(a==null)return{};var s=vn(Ig(a),function(o){return[o]});return i=pr(i),i6(a,s,function(o,v){return i(o,v[0])})}function uj(a,i){return n6(a,Bu(pr(i)))}function dj(a){return Dy(2,a)}function pj(a,i){var s=a.length;for(a.sort(i);s--;)a[s]=a[s].value;return a}function a6(a,i){if(a!==i){var s=a!==void 0,o=a===null,v=a===a,b=p1(a),y=i!==void 0,g=i===null,l=i===i,h=p1(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 gj(a,i,s){for(var o=-1,v=a.criteria,b=i.criteria,y=v.length,g=s.length;++o<y;){var l=a6(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 s6(a,i,s){i.length?i=vn(i,function(b){return yr(b)?function(y){return Oo(y,b.length===1?b[0]:b)}:b}):i=[t1];var o=-1;i=vn(i,A1(pr));var v=Wx(a,function(b,y,g){var l=vn(i,function(h){return h(b)});return{criteria:l,index:++o,value:b}});return pj(v,function(b,y){return gj(b,y,s)})}function vj(a,i,s,o){return a==null?[]:(yr(i)||(i=i==null?[]:[i]),s=o?void 0:s,yr(s)||(s=s==null?[]:[s]),s6(a,i,s))}function zg(a){return Qs(function(i){return i=vn(i,A1(pr)),Mr(function(s){var o=this;return a(i,function(v){return v1(v,o,s)})})})}var Aj=zg(vn),mj=Mr,bj=Math.min,wj=mj(function(a,i){i=i.length==1&&yr(i[0])?vn(i[0],A1(pr)):vn(wa(i,1),A1(pr));var s=i.length;return Mr(function(o){for(var v=-1,b=bj(o.length,s);++v<b;)o[v]=i[v].call(this,o[v]);return v1(a,this,o)})}),yj=zg(Ux),xj=zg(Bg),Cj=9007199254740991,Ij=Math.floor;function bp(a,i){var s="";if(!a||i<1||i>Cj)return s;do i%2&&(s+=a),i=Ij(i/2),i&&(a+=a);while(i);return s}var Ej=Tg("length"),o6="\\ud800-\\udfff",Bj="\\u0300-\\u036f",Sj="\\ufe20-\\ufe2f",kj="\\u20d0-\\u20ff",_j=Bj+Sj+kj,Mj="\\ufe0e\\ufe0f",Tj="["+o6+"]",wp="["+_j+"]",yp="\\ud83c[\\udffb-\\udfff]",Oj="(?:"+wp+"|"+yp+")",c6="[^"+o6+"]",l6="(?:\\ud83c[\\udde6-\\uddff]){2}",f6="[\\ud800-\\udbff][\\udc00-\\udfff]",Rj="\\u200d",h6=Oj+"?",u6="["+Mj+"]?",Dj="(?:"+Rj+"(?:"+[c6,l6,f6].join("|")+")"+u6+h6+")*",Fj=u6+h6+Dj,Qj="(?:"+[c6+wp+"?",wp,l6,f6,Tj].join("|")+")",Qm=RegExp(yp+"(?="+yp+")|"+Qj+Fj,"g");function jj(a){for(var i=Qm.lastIndex=0;Qm.test(a);)++i;return i}function yc(a){return mc(a)?jj(a):Ej(a)}var Nj=Math.ceil;function jf(a,i){i=i===void 0?" ":g1(i);var s=i.length;if(s<2)return s?bp(i,a):i;var o=bp(i,Nj(a/yc(i)));return mc(i)?no(G1(o),0,a).join(""):o.slice(0,a)}var Pj=Math.ceil,Uj=Math.floor;function Lj(a,i,s){a=yi(a),i=Er(i);var o=i?yc(a):0;if(!i||o>=i)return a;var v=(i-o)/2;return jf(Uj(v),s)+a+jf(Pj(v),s)}function Gj(a,i,s){a=yi(a),i=Er(i);var o=i?yc(a):0;return i&&o<i?a+jf(i-o,s):a}function Yj(a,i,s){a=yi(a),i=Er(i);var o=i?yc(a):0;return i&&o<i?jf(i-o,s)+a:a}var Hj=/^\s+/,zj=fa.parseInt;function qj(a,i,s){return s||i==null?i=0:i&&(i=+i),zj(yi(a).replace(Hj,""),i||0)}var Wj=32,Su=Mr(function(a,i){var s=Ks(i,gc(Su));return Os(a,Wj,void 0,i,s)});Su.placeholder={};var Vj=64,qg=Mr(function(a,i){var s=Ks(i,gc(qg));return Os(a,Vj,void 0,i,s)});qg.placeholder={};var $j=mu(function(a,i,s){a[s?0:1].push(i)},function(){return[[],[]]});function Xj(a,i){return i6(a,i,function(s,o){return Mg(a,o)})}var d6=Qs(function(a,i){return a==null?{}:Xj(a,i)});function Jj(a){for(var i,s=this;s instanceof ou;){var o=Ay(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 Kj(a){return function(i){return a==null?void 0:Oo(a,i)}}function Zj(a,i,s,o){for(var v=s-1,b=a.length;++v<b;)if(o(a[v],i))return v;return-1}var eN=Array.prototype,jm=eN.splice;function Wg(a,i,s,o){var v=o?Zj:pc,b=-1,y=i.length,g=a;for(a===i&&(i=Ja(i)),s&&(g=vn(a,A1(s)));++b<y;)for(var l=0,h=i[b],u=s?s(h):h;(l=v(g,u,l,o))>-1;)g!==a&&jm.call(g,l,1),jm.call(a,l,1);return a}function p6(a,i){return a&&a.length&&i&&i.length?Wg(a,i):a}var tN=Mr(p6);function rN(a,i,s){return a&&a.length&&i&&i.length?Wg(a,i,pr(s)):a}function iN(a,i,s){return a&&a.length&&i&&i.length?Wg(a,i,void 0,s):a}var nN=Array.prototype,aN=nN.splice;function g6(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;Ts(v)?aN.call(a,v,1):Hg(a,v)}}return a}var sN=Qs(function(a,i){var s=a==null?0:a.length,o=gg(a,i);return g6(a,vn(i,function(v){return Ts(v,s)?+v:v}).sort(a6)),o}),oN=Math.floor,cN=Math.random;function Vg(a,i){return a+oN(cN()*(i-a+1))}var lN=parseFloat,fN=Math.min,hN=Math.random;function uN(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=Bs(a),i===void 0?(i=a,a=0):i=Bs(i)),a>i){var o=a;a=i,i=o}if(s||a%1||i%1){var v=hN();return fN(a+v*(i-a+lN("1e-"+((v+"").length-1))),i)}return Vg(a,i)}var dN=Math.ceil,pN=Math.max;function gN(a,i,s,o){for(var v=-1,b=pN(dN((i-a)/(s||1)),0),y=Array(b);b--;)y[o?b:++v]=a,a+=s;return y}function v6(a){return function(i,s,o){return o&&typeof o!="number"&&La(i,s,o)&&(s=o=void 0),i=Bs(i),s===void 0?(s=i,i=0):s=Bs(s),o=o===void 0?i<s?1:-1:Bs(o),gN(i,s,o,a)}}var vN=v6(),AN=v6(!0),mN=256,bN=Qs(function(a,i){return Os(a,mN,void 0,void 0,void 0,i)});function A6(a,i,s,o,v){return v(a,function(b,y,g){s=o?(o=!1,b):i(s,b,y,g)}),s}function wN(a,i,s){var o=yr(a)?bg:A6,v=arguments.length<3;return o(a,pr(i),s,v,so)}function yN(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 xN(a,i,s){var o=yr(a)?yN:A6,v=arguments.length<3;return o(a,pr(i),s,v,Fx)}function CN(a,i){var s=yr(a)?ao:Gx;return s(a,Bu(pr(i)))}function IN(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 g6(a,v),s}function EN(a,i,s){return(s?La(a,i,s):i===void 0)?i=1:i=Er(i),bp(yi(a),i)}function BN(){var a=arguments,i=yi(a[0]);return a.length<3?i:i.replace(a[1],a[2])}var SN="Expected a function";function kN(a,i){if(typeof a!="function")throw new TypeError(SN);return i=i===void 0?i:Er(i),Mr(a,i)}function _N(a,i,s){i=ro(i,a);var o=-1,v=i.length;for(v||(v=1,a=void 0);++o<v;){var b=a?.[fs(i[o])];b===void 0&&(o=v,b=s),a=Ms(b)?b.call(a):b}return a}var MN=Array.prototype,TN=MN.reverse;function xp(a){return a==null?a:TN.call(a)}var ON=yg("round");function m6(a){var i=a.length;return i?a[Vg(0,i-1)]:void 0}function RN(a){return m6(wc(a))}function DN(a){var i=yr(a)?m6:RN;return i(a)}function ku(a,i){var s=-1,o=a.length,v=o-1;for(i=i===void 0?o:i;++s<i;){var b=Vg(s,v),y=a[b];a[b]=a[s],a[s]=y}return a.length=i,a}function FN(a,i){return ku(Ja(a),Ro(i,0,a.length))}function QN(a,i){var s=wc(a);return ku(s,Ro(i,0,s.length))}function jN(a,i,s){(s?La(a,i,s):i===void 0)?i=1:i=Er(i);var o=yr(a)?FN:QN;return o(a,i)}function b6(a,i,s){return a==null?a:Xl(a,i,s)}function NN(a,i,s,o){return o=typeof o=="function"?o:void 0,a==null?a:Xl(a,i,s,o)}function PN(a){return ku(Ja(a))}function UN(a){return ku(wc(a))}function LN(a){var i=yr(a)?PN:UN;return i(a)}var GN="[object Map]",YN="[object Set]";function HN(a){if(a==null)return 0;if(r1(a))return Iu(a)?yc(a):a.length;var i=Sa(a);return i==GN||i==YN?a.size:dg(a).length}function zN(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 qN=bc(function(a,i,s){return a+(s?"_":"")+i.toLowerCase()});function WN(a,i){var s;return so(a,function(o,v,b){return s=i(o,v,b),!s}),!!s}function VN(a,i,s){var o=yr(a)?Bg:WN;return s&&La(a,i,s)&&(i=void 0),o(a,pr(i))}var $N=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]]),s6(a,wa(i,1),[])}),XN=4294967295,JN=XN-1,KN=Math.floor,ZN=Math.min;function $g(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=p1(i),h=i===void 0;v<b;){var u=KN((v+b)/2),f=s(a[u]),p=f!==void 0,d=f===null,A=f===f,w=p1(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 ZN(b,JN)}var eP=4294967295,tP=eP>>>1;function _u(a,i,s){var o=0,v=a==null?o:a.length;if(typeof i=="number"&&i===i&&v<=tP){for(;o<v;){var b=o+v>>>1,y=a[b];y!==null&&!p1(y)&&(s?y<=i:y<i)?o=b+1:v=b}return v}return $g(a,i,t1,s)}function rP(a,i){return _u(a,i)}function iP(a,i,s){return $g(a,i,pr(s))}function nP(a,i){var s=a==null?0:a.length;if(s){var o=_u(a,i);if(o<s&&H1(a[o],i))return o}return-1}function aP(a,i){return _u(a,i,!0)}function sP(a,i,s){return $g(a,i,pr(s),!0)}function oP(a,i){var s=a==null?0:a.length;if(s){var o=_u(a,i,!0)-1;if(H1(a[o],i))return o}return-1}function w6(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||!H1(g,l)){var l=g;b[v++]=y===0?0:y}}return b}function cP(a){return a&&a.length?w6(a):[]}function lP(a,i){return a&&a.length?w6(a,pr(i)):[]}var fP=4294967295;function hP(a,i,s){return s&&typeof s!="number"&&La(a,i,s)&&(i=s=void 0),s=s===void 0?fP:s>>>0,s?(a=yi(a),a&&(typeof i=="string"||i!=null&&!Lg(i))&&(i=g1(i),!i&&mc(a))?no(G1(a),0,s):a.split(i,s)):[]}var uP="Expected a function",dP=Math.max;function pP(a,i){if(typeof a!="function")throw new TypeError(uP);return i=i==null?0:dP(Er(i),0),Mr(function(s){var o=s[i],v=no(s,0,i);return o&&io(v,o),v1(a,this,v)})}var gP=bc(function(a,i,s){return a+(s?" ":"")+mg(i)});function vP(a,i,s){return a=yi(a),s=s==null?0:Ro(Er(s),0,a.length),i=g1(i),a.slice(s,s+i.length)==i}function AP(){return{}}function mP(){return""}function bP(){return!0}var wP=su(function(a,i){return a-i},0);function yP(a){return a&&a.length?Yg(a,t1):0}function xP(a,i){return a&&a.length?Yg(a,pr(i)):0}function CP(a){var i=a==null?0:a.length;return i?E1(a,1,i):[]}function IP(a,i,s){return a&&a.length?(i=s||i===void 0?1:Er(i),E1(a,0,i<0?0:i)):[]}function EP(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 BP(a,i){return a&&a.length?wu(a,pr(i),!1,!0):[]}function SP(a,i){return a&&a.length?wu(a,pr(i)):[]}function kP(a,i){return i(a),a}var y6=Object.prototype,_P=y6.hasOwnProperty;function Nm(a,i,s,o){return a===void 0||H1(a,y6[s])&&!_P.call(o,s)?i:a}var MP={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function TP(a){return"\\"+MP[a]}var x6=/<%=([\s\S]+?)%>/g,OP=/<%-([\s\S]+?)%>/g,RP=/<%([\s\S]+?)%>/g,Cp={escape:OP,evaluate:RP,interpolate:x6,variable:"",imports:{_:{escape:Nx}}},DP="Invalid `variable` option passed into `_.template`",FP=/\b__p \+= '';/g,QP=/\b(__p \+=) '' \+/g,jP=/(__e\(.*?\)|\b__t\)) \+\n'';/g,NP=/[()=,{}\[\]\/\s]/,PP=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,E2=/($^)/,UP=/['\n\r\u2028\u2029\\]/g,LP=Object.prototype,Pm=LP.hasOwnProperty;function GP(a,i,s){var o=Cp.imports._.templateSettings||Cp;s&&La(a,i,s)&&(i=void 0),a=yi(a),i=hp({},i,o,Nm);var v=hp({},i.imports,o.imports,Nm),b=ha(v),y=Ng(v,b),g,l,h=0,u=i.interpolate||E2,f="__p += '",p=RegExp((i.escape||E2).source+"|"+u.source+"|"+(u===x6?PP:E2).source+"|"+(i.evaluate||E2).source+"|$","g"),d=Pm.call(i,"sourceURL")?"//# sourceURL="+(i.sourceURL+"").replace(/\s/g," ")+`
|
|
444
444
|
`:"";a.replace(p,function(m,x,C,E,B,S){return C||(C=E),f+=a.slice(h,S).replace(UP,TP),x&&(g=!0,f+=`' +
|
|
@@ -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 S(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=df.InitFont(YV(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=df.GetGlyph(w,f,p*w.bwipjs_multx/100,d*w.bwipjs_multy/100)||df.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 df.GetPaths(A,f,p*A.bwipjs_multx/100,d*A.bwipjs_multy/100)}})();function GV(){return Wa.loadFont.apply(Wa,Array.prototype.slice.call(arguments))}var df=(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 S(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 S(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]=S(le)}function N(O,P,X){var se=T(O,P);return se.cursor<se.length&&(X=S(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 G(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 K(O,P){return(O[P]<<24)+(O[P+1]<<16)+(O[P+2]<<8)+O[P+3]}function ne(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 K(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=ne(P,X,[99,109,97,112]),O.loca=ne(P,X,[108,111,99,97]),O.head=ne(P,X,[104,101,97,100]),O.glyf=ne(P,X,[103,108,121,102]),O.hhea=ne(P,X,[104,104,101,97]),O.hmtx=ne(P,X,[104,109,116,120]),O.kern=ne(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=ne(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=ne(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+K(P,Ee+4);break}break;case v:O.index_map=se+K(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=K(X,se+12),Ve=0,ze=je;Ve<ze;){var et=Ve+(ze-Ve>>1),st=K(X,se+16+et*12),rt=K(X,se+16+et*12+4);if(P<st)ze=et;else if(P>rt)Ve=et+1;else{var De=K(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+K(O.data,O.loca+P*4),se=O.glyf+K(O.data,O.loca+P*4+4)),X==se?-1:X)}function z(O,P,X){if(O.cff.length)ye(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 Z(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),$e=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=$e[tt++],ce&8&&(Re=$e[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=$e[tt++];Pe+=ce&16?dt:-dt}else ce&16||(Pe=Pe+G($e[tt]*256+$e[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=$e[tt++];Ne+=ce&32?pt:-pt}else ce&32||(Ne=Ne+G($e[tt]*256+$e[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=Z(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=Z(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,$e,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],$e=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,$e,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],$e=fe[7],et=fe[8],tt=fe[9],st=dt=fe[10],pt=Ne+je+Ve+ze+et,ut=rt+De+Je+$e+tt,f(pt)>f(ut)?dt=-ut:st=-pt,pe(X,Ne,rt,je,De,Ve,Je),pe(X,ze,$e,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=(S(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 xe(O,P){var X=ue();return ve(O,P,X)?X.vertices:null}function ye(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?xe(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 z(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 Ce(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?(Ce(O,ce,se,ce,le,ce,be),Ce(P,ce+1,se,ce,le,ce,be)):Ce(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,$e=(Ee-ce)/Re+le,tt=(Ee+1-ce)/Re+le;ce<Ne&&De>je?(Ce(O,Ee,se,ce,rt,Ne,$e),Ce(O,Ee,se,Ne,$e,je,tt),Ce(O,Ee,se,je,tt,De,Je)):De<Ne&&ce>je?(Ce(O,Ee,se,ce,rt,je,tt),Ce(O,Ee,se,je,tt,Ne,$e),Ce(O,Ee,se,Ne,$e,De,Je)):ce<Ne&&De>Ne||De<Ne&&ce>Ne?(Ce(O,Ee,se,ce,rt,Ne,$e),Ce(O,Ee,se,Ne,$e,De,Je)):ce<je&&De>je||De<je&&ce>je?(Ce(O,Ee,se,ce,rt,je,tt),Ce(O,Ee,se,je,tt,De,Je)):Ce(O,Ee,se,ce,rt,De,Je)}}se=se.next}}function Xe(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),Xe(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,$e=(be+Re)/2,tt=(ce+ie)/2,dt=(st+De)/2,pt=(rt+Je)/2,ut=(De+$e)/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,$e,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 YV(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 HV={toCanvas:FV,toSVG:jV,render:PV,raw:UV,drawingCanvas:dl,drawingSVG:r5,fixupOptions:Z8,loadFont:GV,FontLib:Wa,BWIPJS_VERSION:DV,BWIPP_VERSION:RV},Vh=class Vh{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 HV.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}=d1(s||{},v,o),g=this.editor.getPrecision?.(),l=Jn(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}=d1(v,b,o,["left","top","width","height","margin"]),l={...v,...y},h=this._paramsToOption(l),u=await this._getBase64Str(h);return new Promise(f=>{we.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];we.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")}};Vh.pluginName="QrCodePlugin",Vh.apis=["addQrCode","setQrCode","initQrcodeEvents"];let mh=Vh;const $h=class $h{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(){}};$h.pluginName="ImageStroke",$h.apis=["imageStrokeDraw"];let bh=$h;const Il=class Il{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:Ss(this.renderBars.bind(this),50),onDragging:Ss(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(Ss(()=>{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")}};Il.pluginName="ResizePlugin",Il.events=[],Il.apis=[];let wh=Il;const zV="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 Lp=(a=>(a.lockMovementX="lockMovementX",a.lockMovementY="lockMovementY",a.lockRotation="lockRotation",a.lockScalingX="lockScalingX",a.lockScalingY="lockScalingY",a))(Lp||{}),i5=(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))(i5||{});const Xh=class Xh{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){const i=document.createElement("img");i.src=zV;const s=this;function o(b,y,g,l,h){b.save(),b.translate(y,g);const f=h.angle;b.rotate(we.fabric.util.degreesToRadians(f)),b.drawImage(i,-25/2,-25/2,25,25),b.restore()}function v(b,y){return s.unLock(),!0}we.fabric.Object.prototype.controls.lock=new we.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:v,render:o}),we.fabric.Textbox.prototype.controls.lock=new we.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()),we.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 we.fabric.ActiveSelection(y.reverse(),{canvas:this}),this.setActiveObject(g,b))},we.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(i5).forEach(o=>{o==="lock"?i.setControlVisible(o,s):i.setControlVisible(o,!s)})}renderCornerByActiveObj(){const i=this.canvas.getActiveObjects().filter(s=>!(s instanceof we.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(Lp).forEach(s=>{i[s]=!0}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(kf.ONE,[i]))}unLock(){const i=this.canvas.getActiveObject();i&&(i.hasControls=!0,i.selectable=!0,i.evented=!0,Object.values(Lp).forEach(s=>{i[s]=!1}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(kf.ONE,[i]))}contextMenu(){const i=this.editor.getSelectMode(),s=this.canvas.getActiveObject();if(i===ru.ONE&&s)return s.selectable?[{text:"锁定",hotkey:"",onclick:()=>this.lock()}]:[{text:"解锁",hotkey:"",onclick:()=>this.unLock()}]}destroy(){console.log("pluginDestroy")}};Xh.pluginName="LockPlugin",Xh.apis=["lock","unLock"];let yh=Xh;const Jh=class Jh{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"?we.fabric.loadSVGFromURL(i.src,v=>{const b=we.fabric.util.groupSVGElements(v,{shadow:"",fontFamily:"arial",name:"svg元素"});s(b)}):we.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")}};Jh.pluginName="AddBaseTypePlugin",Jh.apis=["addObject","createImgByElement"];let xh=Jh;const cs=Object.create(null);cs.open="0";cs.close="1";cs.ping="2";cs.pong="3";cs.message="4";cs.upgrade="5";cs.noop="6";const If=Object.create(null);Object.keys(cs).forEach(a=>{If[cs[a]]=a});const Gp={type:"error",data:"parser error"},n5=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",a5=typeof ArrayBuffer=="function",s5=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a&&a.buffer instanceof ArrayBuffer,A3=({type:a,data:i},s,o)=>n5&&i instanceof Blob?s?o(i):ww(i,o):a5&&(i instanceof ArrayBuffer||s5(i))?s?o(i):ww(new Blob([i]),o):o(cs[a]+(i||"")),ww=(a,i)=>{const s=new FileReader;return s.onload=function(){const o=s.result.split(",")[1];i("b"+(o||""))},s.readAsDataURL(a)};function yw(a){return a instanceof Uint8Array?a:a instanceof ArrayBuffer?new Uint8Array(a):new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}let ep;function qV(a,i){if(n5&&a.data instanceof Blob)return a.data.arrayBuffer().then(yw).then(i);if(a5&&(a.data instanceof ArrayBuffer||s5(a.data)))return i(yw(a.data));A3(a,!1,s=>{ep||(ep=new TextEncoder),i(ep.encode(s))})}const xw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pl=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let a=0;a<xw.length;a++)pl[xw.charCodeAt(a)]=a;const WV=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=pl[a.charCodeAt(o)],y=pl[a.charCodeAt(o+1)],g=pl[a.charCodeAt(o+2)],l=pl[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},VV=typeof ArrayBuffer=="function",m3=(a,i)=>{if(typeof a!="string")return{type:"message",data:o5(a,i)};const s=a.charAt(0);return s==="b"?{type:"message",data:$V(a.substring(1),i)}:If[s]?a.length>1?{type:If[s],data:a.substring(1)}:{type:If[s]}:Gp},$V=(a,i)=>{if(VV){const s=WV(a);return o5(s,i)}else return{base64:!0,data:a}},o5=(a,i)=>{switch(i){case"blob":return a instanceof Blob?a:new Blob([a]);case"arraybuffer":default:return a instanceof ArrayBuffer?a:a.buffer}},c5="",XV=(a,i)=>{const s=a.length,o=new Array(s);let v=0;a.forEach((b,y)=>{A3(b,!1,g=>{o[y]=g,++v===s&&i(o.join(c5))})})},JV=(a,i)=>{const s=a.split(c5),o=[];for(let v=0;v<s.length;v++){const b=m3(s[v],i);if(o.push(b),b.type==="error")break}return o};function KV(){return new TransformStream({transform(a,i){qV(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 tp;function pf(a){return a.reduce((i,s)=>i+s.length,0)}function gf(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 ZV(a,i){tp||(tp=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(pf(s)<1)break;const l=gf(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(pf(s)<2)break;const l=gf(s,2);v=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),o=3}else if(o===2){if(pf(s)<8)break;const l=gf(s,8),h=new DataView(l.buffer,l.byteOffset,l.length),u=h.getUint32(0);if(u>Math.pow(2,21)-1){g.enqueue(Gp);break}v=u*Math.pow(2,32)+h.getUint32(4),o=3}else{if(pf(s)<v)break;const l=gf(s,v);g.enqueue(m3(b?l:tp.decode(l),i)),o=0}if(v===0||v>a){g.enqueue(Gp);break}}}})}const l5=4;function $n(a){if(a)return e$(a)}function e$(a){for(var i in $n.prototype)a[i]=$n.prototype[i];return a}$n.prototype.on=$n.prototype.addEventListener=function(a,i){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(i),this};$n.prototype.once=function(a,i){function s(){this.off(a,s),i.apply(this,arguments)}return s.fn=i,this.on(a,s),this};$n.prototype.off=$n.prototype.removeListener=$n.prototype.removeAllListeners=$n.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};$n.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};$n.prototype.emitReserved=$n.prototype.emit;$n.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]};$n.prototype.hasListeners=function(a){return!!this.listeners(a).length};const Wu=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")(),t$="arraybuffer";function f5(a,...i){return i.reduce((s,o)=>(a.hasOwnProperty(o)&&(s[o]=a[o]),s),{})}const r$=w1.setTimeout,i$=w1.clearTimeout;function Vu(a,i){i.useNativeTimers?(a.setTimeoutFn=r$.bind(w1),a.clearTimeoutFn=i$.bind(w1)):(a.setTimeoutFn=w1.setTimeout.bind(w1),a.clearTimeoutFn=w1.clearTimeout.bind(w1))}const n$=1.33;function a$(a){return typeof a=="string"?s$(a):Math.ceil((a.byteLength||a.size)*n$)}function s$(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 h5(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function o$(a){let i="";for(let s in a)a.hasOwnProperty(s)&&(i.length&&(i+="&"),i+=encodeURIComponent(s)+"="+encodeURIComponent(a[s]));return i}function c$(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 l$ extends Error{constructor(i,s,o){super(i),this.description=s,this.context=o,this.type="TransportError"}}class b3 extends $n{constructor(i){super(),this.writable=!1,Vu(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 l$(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=m3(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=o$(i);return s.length?"?"+s:""}}class f$ extends b3{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)};JV(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,XV(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]=h5()),!this.supportsBinary&&!s.sid&&(s.b64=1),this.createUri(i,s)}}let u5=!1;try{u5=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const h$=u5;function u$(){}class d$ extends f${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 as extends $n{constructor(i,s,o){super(),this.createRequest=i,Vu(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=f5(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=as.requestsCount++,as.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=u$,i)try{this._xhr.abort()}catch{}typeof document<"u"&&delete as.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()}}as.requestsCount=0;as.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Cw);else if(typeof addEventListener=="function"){const a="onpagehide"in w1?"pagehide":"unload";addEventListener(a,Cw,!1)}}function Cw(){for(let a in as.requests)as.requests.hasOwnProperty(a)&&as.requests[a].abort()}const p$=(function(){const a=d5({xdomain:!1});return a&&a.responseType!==null})();class g$ extends d${constructor(i){super(i);const s=i&&i.forceBase64;this.supportsBinary=p$&&!s}request(i={}){return Object.assign(i,{xd:this.xd},this.opts),new as(d5,this.uri(),i)}}function d5(a){const i=a.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!i||h$))return new XMLHttpRequest}catch{}if(!i)try{return new w1[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const p5=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class v$ extends b3{get name(){return"websocket"}doOpen(){const i=this.uri(),s=this.opts.protocols,o=p5?{}:f5(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;A3(o,this.supportsBinary,b=>{try{this.doWrite(o,b)}catch{}v&&Wu(()=>{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]=h5()),this.supportsBinary||(s.b64=1),this.createUri(i,s)}}const rp=w1.WebSocket||w1.MozWebSocket;class A$ extends v${createSocket(i,s,o){return p5?new rp(i,s,o):s?new rp(i,s):new rp(i)}doWrite(i,s){this.ws.send(s)}}class m$ extends b3{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=ZV(Number.MAX_SAFE_INTEGER,this.socket.binaryType),o=i.readable.pipeThrough(s).getReader(),v=KV();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&&Wu(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var i;(i=this._transport)===null||i===void 0||i.close()}}const b$={websocket:A$,webtransport:m$,polling:g$},w$=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,y$=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Yp(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=w$.exec(a||""),b={},y=14;for(;y--;)b[y$[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=x$(b,b.path),b.queryKey=C$(b,b.query),b}function x$(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 C$(a,i){const s={};return i.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(o,v,b){v&&(s[v]=b)}),s}const Hp=typeof addEventListener=="function"&&typeof removeEventListener=="function",Ef=[];Hp&&addEventListener("offline",()=>{Ef.forEach(a=>a())},!1);class $s extends $n{constructor(i,s){if(super(),this.binaryType=t$,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=Yp(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=Yp(s.host).host);Vu(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=c$(this.opts.query)),Hp&&(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"})},Ef.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(i){const s=Object.assign({},this.opts.query);s.EIO=l5,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&&$s.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",$s.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+=a$(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,Wu(()=>{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($s.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(),Hp&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const o=Ef.indexOf(this._offlineEventListener);o!==-1&&Ef.splice(o,1)}this.readyState="closed",this.id=null,this.emitReserved("close",i,s),this.writeBuffer=[],this._prevBufferLen=0}}}$s.protocol=l5;class I$ extends $s{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;$s.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;$s.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 E$=class extends I${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=>b$[v]).filter(v=>!!v)),super(i,o)}};function B$(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=Yp(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 S$=typeof ArrayBuffer=="function",k$=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a.buffer instanceof ArrayBuffer,g5=Object.prototype.toString,_$=typeof Blob=="function"||typeof Blob<"u"&&g5.call(Blob)==="[object BlobConstructor]",M$=typeof File=="function"||typeof File<"u"&&g5.call(File)==="[object FileConstructor]";function w3(a){return S$&&(a instanceof ArrayBuffer||k$(a))||_$&&a instanceof Blob||M$&&a instanceof File}function Bf(a,i){if(!a||typeof a!="object")return!1;if(Array.isArray(a)){for(let s=0,o=a.length;s<o;s++)if(Bf(a[s]))return!0;return!1}if(w3(a))return!0;if(a.toJSON&&typeof a.toJSON=="function"&&arguments.length===1)return Bf(a.toJSON(),!0);for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)&&Bf(a[s]))return!0;return!1}function T$(a){const i=[],s=a.data,o=a;return o.data=zp(s,i),o.attachments=i.length,{packet:o,buffers:i}}function zp(a,i){if(!a)return a;if(w3(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]=zp(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]=zp(a[o],i));return s}return a}function O$(a,i){return a.data=qp(a.data,i),delete a.attachments,a}function qp(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]=qp(a[s],i);else if(typeof a=="object")for(const s in a)Object.prototype.hasOwnProperty.call(a,s)&&(a[s]=qp(a[s],i));return a}const R$=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],D$=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 F${constructor(i){this.replacer=i}encode(i){return(i.type===Jr.EVENT||i.type===Jr.ACK)&&Bf(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=T$(i),o=this.encodeAsString(s.packet),v=s.buffers;return v.unshift(o),v}}function Iw(a){return Object.prototype.toString.call(a)==="[object Object]"}class y3 extends $n{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 Q$(s),s.attachments===0&&super.emitReserved("decoded",s)):super.emitReserved("decoded",s)}else if(w3(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(y3.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 Iw(s);case Jr.DISCONNECT:return s===void 0;case Jr.CONNECT_ERROR:return typeof s=="string"||Iw(s);case Jr.EVENT:case Jr.BINARY_EVENT:return Array.isArray(s)&&(typeof s[0]=="number"||typeof s[0]=="string"&&R$.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 Q${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=O$(this.reconPack,this.buffers);return this.finishedReconstruction(),s}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const j$=Object.freeze(Object.defineProperty({__proto__:null,Decoder:y3,Encoder:F$,get PacketType(){return Jr},protocol:D$},Symbol.toStringTag,{value:"Module"}));function N1(a,i,s){return a.on(i,s),function(){a.off(i,s)}}const N$=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class v5 extends $n{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=[N1(i,"open",this.onopen.bind(this)),N1(i,"packet",this.onpacket.bind(this)),N1(i,"error",this.onerror.bind(this)),N1(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(N$.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 Bc(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}Bc.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};Bc.prototype.reset=function(){this.attempts=0};Bc.prototype.setMin=function(a){this.ms=a};Bc.prototype.setMax=function(a){this.max=a};Bc.prototype.setJitter=function(a){this.jitter=a};class Wp extends $n{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,Vu(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 Bc({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||j$;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 E$(this.uri,this.opts);const s=this.engine,o=this;this._readyState="opening",this.skipReconnect=!1;const v=N1(s,"open",function(){o.onopen(),i&&i()}),b=g=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",g),i?i(g):this.maybeReconnectOnOpen()},y=N1(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(N1(i,"ping",this.onping.bind(this)),N1(i,"data",this.ondata.bind(this)),N1(i,"error",this.onerror.bind(this)),N1(i,"close",this.onclose.bind(this)),N1(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){Wu(()=>{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 v5(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 ul={};function Sf(a,i){typeof a=="object"&&(i=a,a=void 0),i=i||{};const s=B$(a,i.path||"/socket.io"),o=s.source,v=s.id,b=s.path,y=ul[v]&&b in ul[v].nsps,g=i.forceNew||i["force new connection"]||i.multiplex===!1||y;let l;return g?l=new Wp(o,i):(ul[v]||(ul[v]=new Wp(o,i)),l=ul[v]),s.query&&!i.query&&(i.query=s.queryKey),l.socket(s.path,i)}Object.assign(Sf,{Manager:Wp,Socket:v5,io:Sf,connect:Sf});const Kh=class Kh{constructor(i,s){this.canvas=i,this.editor=s,this.isConnect=!1,this.printerList=[],this.editor=s,this.canvas=i,this.socket=Sf("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")}};Kh.pluginName="PrintPlugin",Kh.apis=["printPDF","getPrinterList"];let Ch=Kh;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:u1(g.x,v,s),y:u1(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=Jn(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=u1(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,S=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=S+Q;s("left",Y);const G=o.getSizeByUnit(Y);y(this,u,{left:G})}return this}if(A==="height"&&C>0){const E=this.y1,B=this.y2;this.left;const S=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=S+Q;s("top",Y);const G=o.getSizeByUnit(Y);y(this,u,{top:G})}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:u1(m.x,u,f),y:u1(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(S=>({x:u1(S.x,u,f),y:u1(S.y,u,f)}));y(this,u,{points:A.points}),A.points=B}if(p)return s(A);const{processed:w,originByUnit:m}=d1(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,S=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),G=N+C.width*Y,V=Math.min(N,Q),$=Math.min(N,G);M=V-$,C.x2=G,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),G=N+C.height*Y,V=Math.min(N,Q),$=Math.min(N,G);T=V-$,C.y2=G,delete C.height}M!==0&&(C.left=B+M,x.left=o.getSizeByUnit(C.left)),T!==0&&(C.top=S+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(S=>S*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=u1(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}=d1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:Jn(y[o]||{},g)},h=new we.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}=d1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:Jn(g[v]||{},l)},u=new we.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}=d1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:Jn(g[v]||{},l)},u=new we.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}=d1(s||{},v,o,g),u=l.strokeWidth??(s?.strokeWidth!==void 0?u1(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 we.fabric.Line([b[0].x,b[0].y,b[1].x,b[1].y],f),d=this.editor.getPrecision?.(),A={[v]:{...Jn(h[v]||{},d),...Jn(y[v]||{},d)}};return Array.isArray(s?.strokeDashArray)&&(A[v].strokeDashArray=Jn({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}=d1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:Jn(y[o]||{},g)},h=new we.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}=d1(s||{},v,o,g),u=new we.fabric.Polygon(b,{fill:s?.fill});if(s?.strokeWidth!==void 0){const d=u1(s.strokeWidth,v,o);u.set("strokeWidth",d)}u.set({...s||{},...l});const f=this.editor.getPrecision?.(),p={[v]:{...Jn(h[v]||{},f),...Jn(y[v]||{},f)}};return u._originSize=p,this.addSetAndSyncByUnit(u),u}async createImageFromURL(i,s,o){return new Promise(v=>{we.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}=d1(s,y,o,u);b.set({...s});const p={[y]:Jn(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]:Jn(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;we.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}=d1(s,h,o,d);l.set({...s});const w={[h]:Jn(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]:Jn(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 Ih=Ba;const Ew={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"},Zh=class Zh{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{...Ew,...i,items:Array.isArray(i.items)?i.items:[]}}toPx(i){return u1(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 we.fabric.Textbox(i||"",{...y,width:o}):new we.fabric.Text(i||"",y);return g.initDimensions(),g.setCoords(),g}loadImage(i,s){return new Promise(o=>{if(!i)return o(null);we.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||Ew.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(S=>{const M=p[S.index];M&&(M.set({left:S.x,top:A}),d.push(M))}),A+=l+u}),o.forEach(B=>{const S=this.createText(B.name||"",s,v);S.set({left:0,top:A}),d.push(S),A+=S.getScaledHeight()+f});else if(b==="item-vertical"){const E=l+h,B=Math.max(1,v-E);o.forEach((S,M)=>{const T=p[M],R=this.createText(S.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 we.fabric.Rect({left:0,top:0,width:s,height:o,fill:"rgba(0,0,0,0)",strokeWidth:0,selectable:!1,evented:!1}),g=new we.fabric.Group([y],{width:s,height:o,visible:v,objectCaching:b,subTargetCheck:!1,clipPath:b?new we.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]:Jn({...v[o]||{},width:s.width,height:s.height??(o==="px"?i.height:this.editor.getSizeByUnit(i.height||1))},this.editor.getPrecision?.())}}destroy(){}};Zh.pluginName="ImageTextListPlugin",Zh.apis=["createImageTextList","initImageTextListEvents","refreshImageTextList"];let Eh=Zh;const eu=class eu{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),g=b,l=.01;v.forEach(C=>this.preparePrintLayoutObject(C));const h=v.map((C,E)=>{const B=this.layoutOrigins.get(C),S=this.getSourceObject(C,y),M=B?.top??this.getOriginalTop(S,C,b),T=B?.height??this.getOriginalHeight(S,C,b);return{object:C,index:E,originalTop:M,originalBottom:M+T}});h.sort((C,E)=>C.originalTop-E.originalTop||C.index-E.index);const u=[],f=.01;h.forEach(C=>{const E=u[u.length-1];E&&Math.abs(E[0].originalTop-C.originalTop)<=f?E.push(C):u.push([C])});let p,d,A=0,w=0;if(u.forEach(C=>{const E=C[0].originalTop,B=Math.max(...C.map(T=>T.originalBottom));p!==void 0&&(A+=Math.max(0,E-p)),p=B;const S=C.filter(T=>!this.isEmptyLayoutObject(T.object));if(!S.length)return;const M=d===void 0?E:d+A;S.forEach(T=>{T.object.set("top",M/b),T.object.setCoords()}),d=Math.max(...S.map(T=>(Number(T.object.top||0)+this.getActualLayoutHeight(T.object))*b)),w=B,A=0}),this.canvas.requestRenderAll(),!h.some(C=>C.object?.extensionType==="table"&&this.getActualLayoutHeight(C.object)*g>C.originalBottom-C.originalTop+l)&&o.overflowMode!=="expand"||d===void 0)return s;const x=Math.max(0,s-w);return Math.max(s,d+x)}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){["imageTextList","table"].includes(i?.extensionType)&&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}};eu.pluginName="ActualContentLayoutPlugin",eu.apis=["applyActualContentLayout"];let Bh=eu,P$=0;const x3=we.fabric.util.createClass(we.fabric.Textbox,{type:"TableCellTextbox",initialize(a,i={}){this.callSuper("initialize",a,i),this.cellClipWidth=Math.max(1,Number(i.cellClipWidth)||1),this.cellClipHeight=Math.max(1,Number(i.cellClipHeight)||1),this.cellClipTopOffset=Number(i.cellClipTopOffset)||0,this.cellClipOffsetY=Number(i.cellClipOffsetY)||0},_render(a){a.save();try{a.beginPath(),a.rect(-this.cellClipWidth/2,-this.cellClipHeight/2+this.cellClipOffsetY,this.cellClipWidth,this.cellClipHeight),a.clip(),this.callSuper("_render",a)}finally{a.restore()}},toObject(a){return this.callSuper("toObject",[...a||[],"cellClipWidth","cellClipHeight","cellClipTopOffset","cellClipOffsetY"])},toSVG(a){const i=this.callSuper("toSVG",a),s=`hprint-table-cell-${++P$}`,o=Number(this.left)||0,v=(Number(this.top)||0)+Number(this.cellClipTopOffset||0);return`<defs><clipPath id="${s}" clipPathUnits="userSpaceOnUse"><rect x="${o}" y="${v}" width="${this.cellClipWidth}" height="${this.cellClipHeight}" /></clipPath></defs><g clip-path="url(#${s})">${i}</g>`}});we.fabric.TableCellTextbox=x3;we.fabric.TableCellTextbox.fromObject=(a,i)=>{const s=new x3(String(a.text??""),a);return i?.(s),s};const Q1={width:40,height:12,headerHeight:6,rowHeight:6,heightAllocationMode:"stretch",borderWidth:.2,fontFamily:"Microsoft YaHei",fontSize:3,fontWeight:"normal",fontStyle:"normal",underline:!1,linethrough:!1,textOverflow:"wrap",textAlign:"left",lineHeight:1.5,charSpacing:0,color:"#000000",cellPadding:1,cellPaddingHorizontal:1,cellPaddingVertical:1};function Vp(a){if(!Array.isArray(a)||a.length===0)throw new Error("表格至少需要配置一列");const i=a.map((v,b)=>{if(!v||!String(v.field||"").trim())throw new Error(`表格第 ${b+1} 列缺少 field`);const y=typeof v.width=="string";let g;if(y){const l=String(v.width).trim();if(!/^\d+(?:\.\d+)?%$/.test(l))throw new Error(`表格第 ${b+1} 列的百分比宽度无效`);g=Number.parseFloat(l.slice(0,-1))}else g=Number(v.width);if(!Number.isFinite(g)||g<=0)throw new Error(`表格第 ${b+1} 列的宽度必须大于 0`);return{...v,title:String(v.title??""),field:String(v.field),width:v.width,weight:g,widthType:y?"percent":"number"}});if(new Set(i.map(v=>v.widthType)).size>1)throw new Error("表格列宽不能混用数值和百分比");const o=i.reduce((v,b)=>v+b.weight,0);return i.map(({weight:v,widthType:b,...y})=>({...y,ratio:v/o}))}const tu=class tu{constructor(i,s){this.canvas=i,this.editor=s}async hookTransform(i){if(i.extensionType!=="table")return;const s=i.left,o=i.top,v={...i.extension||{}};if(!Number.isFinite(Number(v.height))){const l=ln(this.editor),h=Number(i._originSize?.[l]?.height);v.height=Number.isFinite(h)?h:l==="px"?Math.abs(Number(i.height||1)*Number(i.scaleY||1)):this.editor.getSizeByUnit(Math.abs(Number(i.height||1)*Number(i.scaleY||1)))}const b=this.normalizeOptions(v),y=this.buildGroup(b);this.updateOriginSize(y,b);const g=y.toObject(this.editor.getExtensionKey?.()||[]);Object.assign(i,g,{left:s,top:o,extensionType:"table",extension:b})}async hookTransformObjectEnd(...i){const{originObject:s,fabricObject:o}=i[0];s.extensionType==="table"&&this.initTableEvents(o)}createTable(i,s={}){const o=this.normalizeOptions({...s,columns:i}),v=this.buildGroup(o);return v.set({extensionType:"table",extension:o}),this.updateOriginSize(v,o),this.initTableEvents(v),v}initTableEvents(i){i.setExtension=async o=>{const v=this.normalizeOptions({...i.get("extension")||{},...o||{}});i.set("extension",v),await this.refreshTable(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.refreshTable(i),i}return s(o,v)}),i.__tableModified&&i.off("modified",i.__tableModified),i.__tableModified=()=>{const o=Math.abs(i.scaleX||1),v=Math.abs(i.scaleY||1);if(o===1&&v===1)return;const b=this.normalizeOptions(i.get("extension")||{}),y=Math.max(1,Number(i.height||1)*v);i.set({scaleX:1,scaleY:1}),i.set("extension",{...b,width:b.width*o,height:ln(this.editor)==="px"?y:this.editor.getSizeByUnit(y)}),this.refreshTable(i)},i.on("modified",i.__tableModified)}async refreshTable(i){const s=this.normalizeOptions(i.get("extension")||{}),o=i.left,v=i.top,b=this.buildGroup(s),y=b.getObjects();i._removeCacheCanvas?.(),i._objects=y,y.forEach(g=>{g.group=i,g.set({dirty:!0,noScaleCache:!1})}),b._objects=[],i.set({left:o,top:v,width:b.width,height:b.height,scaleX:1,scaleY:1,clipPath:void 0,objectCaching:!1,noScaleCache:!1,dirty:!0}),i.set("extension",s),this.updateOriginSize(i,s),i.setCoords(),this.canvas.requestRenderAll()}normalizeOptions(i){const s=(i.columns||[]).map(v=>({...v}));Vp(s);const o=this.nonNegativeNumber(i.cellPadding,Q1.cellPadding);return{...Q1,...i,width:this.positiveNumber(i.width,Q1.width),height:Math.max(this.positiveNumber(i.headerHeight,Q1.headerHeight),this.positiveNumber(i.height,Q1.height)),headerHeight:this.positiveNumber(i.headerHeight,Q1.headerHeight),rowHeight:this.positiveNumber(i.rowHeight,Q1.rowHeight),borderWidth:this.nonNegativeNumber(i.borderWidth,Q1.borderWidth),cellPadding:o,cellPaddingHorizontal:this.nonNegativeNumber(i.cellPaddingHorizontal,o),cellPaddingVertical:this.nonNegativeNumber(i.cellPaddingVertical,o),fontSize:this.positiveNumber(i.fontSize,Q1.fontSize),lineHeight:this.positiveNumber(i.lineHeight,Q1.lineHeight),charSpacing:this.nonNegativeNumber(i.charSpacing,Q1.charSpacing),textOverflow:i.textOverflow==="ellipsis"?"ellipsis":"wrap",heightAllocationMode:i.heightAllocationMode==="grow"?"grow":"stretch",columns:s}}positiveNumber(i,s){const o=Number(i);return Number.isFinite(o)&&o>0?o:s}nonNegativeNumber(i,s){const o=Number(i);return Number.isFinite(o)&&o>=0?o:s}toPx(i){return u1(Number(i)||0,ln(this.editor))}buildGroup(i){const s=Vp(i.columns),o=Math.max(1,this.toPx(i.width)),v=Math.max(1,this.toPx(i.headerHeight)),b=Math.max(v,this.toPx(i.height)),y=Math.max(1,this.toPx(i.rowHeight)),g=Math.max(0,this.toPx(i.borderWidth)),l=Array.isArray(i._renderRows)?i._renderRows:[],h=i.heightAllocationMode==="grow",u=h?Math.max(0,this.toPx(i.cellPaddingVertical??i.cellPadding)):0,f=[];let p=0;s.forEach((G,V)=>{const $=V===s.length-1?o-p:o*G.ratio;f.push({left:p,width:$}),p+=$});const d=h?l.map(G=>Math.max(y,...f.map((V,$)=>{const K=i.columns[$].field;return this.measureCellTextHeight(G?.[K],V.width,i)+u*2}))):l.map(()=>Math.max(1,(b-v)/l.length)),A=v+d.reduce((G,V)=>G+V,0),w=l.length?h?i._actualContentLayout?A:Math.min(A,b):b:v,m=Math.max(1,w),x=[],C=new we.fabric.Rect({left:0,top:0,width:o,height:m,fill:"rgba(0,0,0,0)",strokeWidth:0,selectable:!1,evented:!1});x.push(C),f.forEach((G,V)=>{x.push(this.createCellText(i.columns[V].title,G.left,0,G.width,v,i,Math.min(v,w),u))});let E=v;const B=[];l.forEach((G,V)=>{const $=d[V];if(E>=w)return;const K=Math.min($,w-E);B.push(E),f.forEach((ne,ge)=>{const re=i.columns[ge].field,F=G?.[re];x.push(this.createCellText(F==null?"":String(F),ne.left,E,ne.width,$,i,K,u))}),E+=$});const S=Math.min(g,o,w),M={stroke:"#000000",strokeWidth:S,selectable:!1,evented:!1,objectCaching:!1},T=S/2;x.push(new we.fabric.Rect({left:0,top:0,width:Math.max(0,o-S),height:Math.max(0,w-S),fill:"rgba(0,0,0,0)",...M})),B.filter(G=>G<w).forEach(G=>{x.push(new we.fabric.Line([T,G,o-T,G],M))}),f.slice(1).map(G=>G.left).forEach(G=>{x.push(new we.fabric.Line([G,T,G,w-T],M))});const Q=x.slice(1),Y=new we.fabric.Group([C],{width:o,height:m,subTargetCheck:!1,objectCaching:!1,noScaleCache:!1});return Q.forEach(G=>{G.set({left:(G.left||0)-o/2,top:(G.top||0)-m/2}),G.group=Y}),Y._objects.push(...Q),Y.set({width:o,height:m}),Y.setCoords(),Y}createCellText(i,s,o,v,b,y,g=b,l){const h=Math.max(0,this.toPx(y.cellPaddingHorizontal??y.cellPadding)),u=l??Math.max(0,this.toPx(y.cellPaddingVertical??y.cellPadding)),f=Math.max(1,this.toPx(y.fontSize)),p=Math.max(0,this.toPx(y.charSpacing)),d=Math.max(1,v-h*2),A=Math.min(b,u),w=Math.max(A,Math.min(b-u,g)),m=Math.max(.01,w-A),x={fontFamily:y.fontFamily,fontSize:f,fontWeight:y.fontWeight,fontStyle:y.fontStyle,charSpacing:p/f*1e3},C=y.textOverflow==="ellipsis"?this.ellipsizeCellText(String(i??""),d,x):String(i??""),E=new x3(C,{left:s+h,top:o,width:d,cellClipWidth:d,cellClipHeight:m,cellClipOffsetY:(A+w)/2-b/2,...x,underline:!!y.underline,linethrough:!!y.linethrough,fill:y.color,textAlign:y.textAlign,lineHeight:Number(y.lineHeight)||1,splitByGrapheme:!0,selectable:!1,evented:!1,objectCaching:!1,noScaleCache:!1});E.initDimensions();const B=A-(b-E.getScaledHeight())/2;return E.set({top:o+(b-E.getScaledHeight())/2,cellClipTopOffset:B}),E.setCoords(),E}measureCellTextHeight(i,s,o){const v=Math.max(0,this.toPx(o.cellPaddingHorizontal??o.cellPadding)),b=Math.max(1,this.toPx(o.fontSize)),y=Math.max(0,this.toPx(o.charSpacing)),g=Math.max(1,s-v*2),l={fontFamily:o.fontFamily,fontSize:b,fontWeight:o.fontWeight,fontStyle:o.fontStyle,charSpacing:y/b*1e3},h=o.textOverflow==="ellipsis"?this.ellipsizeCellText(String(i??""),g,l):String(i??""),u=new we.fabric.Textbox(h,{width:g,...l,lineHeight:Number(o.lineHeight)||1,splitByGrapheme:!0,objectCaching:!1});return u.initDimensions(),Math.max(1,u.getScaledHeight())}ellipsizeCellText(i,s,o){const v=i.replace(/[\r\n]+/g," ");if(!v)return"";const b=u=>{const f=new we.fabric.Text(u,{...o,objectCaching:!1});return f.initDimensions(),f.getScaledWidth()};if(b(v)<=s)return v;const y="…",g=Array.from(v);let l=0,h=g.length;for(;l<h;){const u=Math.ceil((l+h)/2),f=`${g.slice(0,u).join("")}${y}`;b(f)<=s?l=u:h=u-1}return`${g.slice(0,l).join("")}${y}`}updateOriginSize(i,s){const o=ln(this.editor),v=i._originSize||{};i._originSize={...v,[o]:Jn({...v[o]||{},width:s.width,height:o==="px"?i.height:this.editor.getSizeByUnit(i.height||1)},this.editor.getPrecision?.())}}destroy(){}};tu.pluginName="TablePlugin",tu.apis=["createTable","initTableEvents","refreshTable"];let Sh=tu;const U$={UnitPlugin:Nf,DringPlugin:Pf,AlignGuidLinePlugin:Uf,ControlsPlugin:Gf,ControlsRotatePlugin:Yf,CenterAlignPlugin:Hf,LayerPlugin:zf,CopyPlugin:qf,MoveHotKeyPlugin:Wf,DeleteHotKeyPlugin:Vf,GroupPlugin:$f,DrawLinePlugin:Xf,GroupTextEditorPlugin:Jf,GroupAlignPlugin:Kf,WorkspacePlugin:Zf,MaskPlugin:eh,HistoryPlugin:th,FlipPlugin:rh,RulerPlugin:ih,MaterialPlugin:ah,WaterMarkPlugin:sh,FontPlugin:oh,PolygonModifyPlugin:ch,DrawPolygonPlugin:lh,FreeDrawPlugin:fh,PathTextPlugin:hh,PsdPlugin:dh,SimpleClipImagePlugin:ph,BarCodePlugin:gh,QrCodePlugin:mh,ImageStroke:bh,ResizePlugin:wh,LockPlugin:yh,AddBaseTypePlugin:xh,PrintPlugin:Ch,CreateElementPlugin:Ih,ImageTextListPlugin:Eh,ActualContentLayoutPlugin:Bh,TablePlugin:Sh},L$=[Nf,Pf,Uf,Gf,Yf,Hf,zf,qf,Wf,Vf,$f,Xf,Jf,Kf,Zf,eh,th,rh,ih,ah,sh,oh,ch,lh,fh,hh,dh,ph,gh,mh,bh,wh,yh,xh,Ch,Ih,Eh,Bh,Sh];exports.SelectEvent=kf;exports.SelectMode=ru;exports.normalizeTableColumns=Vp;exports.pluginsList=L$;exports.pluginsObject=U$;
|
|
483
|
+
`}};function S(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=df.InitFont(YV(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=df.GetGlyph(w,f,p*w.bwipjs_multx/100,d*w.bwipjs_multy/100)||df.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 df.GetPaths(A,f,p*A.bwipjs_multx/100,d*A.bwipjs_multy/100)}})();function GV(){return Wa.loadFont.apply(Wa,Array.prototype.slice.call(arguments))}var df=(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 S(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 S(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]=S(le)}function N(O,P,X){var se=T(O,P);return se.cursor<se.length&&(X=S(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 G(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 K(O,P){return(O[P]<<24)+(O[P+1]<<16)+(O[P+2]<<8)+O[P+3]}function ne(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 K(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=ne(P,X,[99,109,97,112]),O.loca=ne(P,X,[108,111,99,97]),O.head=ne(P,X,[104,101,97,100]),O.glyf=ne(P,X,[103,108,121,102]),O.hhea=ne(P,X,[104,104,101,97]),O.hmtx=ne(P,X,[104,109,116,120]),O.kern=ne(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=ne(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=ne(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+K(P,Ee+4);break}break;case v:O.index_map=se+K(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=K(X,se+12),Ve=0,ze=je;Ve<ze;){var et=Ve+(ze-Ve>>1),st=K(X,se+16+et*12),rt=K(X,se+16+et*12+4);if(P<st)ze=et;else if(P>rt)Ve=et+1;else{var De=K(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+K(O.data,O.loca+P*4),se=O.glyf+K(O.data,O.loca+P*4+4)),X==se?-1:X)}function z(O,P,X){if(O.cff.length)ye(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 Z(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),$e=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=$e[tt++],ce&8&&(Re=$e[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=$e[tt++];Pe+=ce&16?dt:-dt}else ce&16||(Pe=Pe+G($e[tt]*256+$e[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=$e[tt++];Ne+=ce&32?pt:-pt}else ce&32||(Ne=Ne+G($e[tt]*256+$e[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=Z(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=Z(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,$e,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],$e=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,$e,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],$e=fe[7],et=fe[8],tt=fe[9],st=dt=fe[10],pt=Ne+je+Ve+ze+et,ut=rt+De+Je+$e+tt,f(pt)>f(ut)?dt=-ut:st=-pt,pe(X,Ne,rt,je,De,Ve,Je),pe(X,ze,$e,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=(S(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 xe(O,P){var X=ue();return ve(O,P,X)?X.vertices:null}function ye(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?xe(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 z(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 Ce(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?(Ce(O,ce,se,ce,le,ce,be),Ce(P,ce+1,se,ce,le,ce,be)):Ce(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,$e=(Ee-ce)/Re+le,tt=(Ee+1-ce)/Re+le;ce<Ne&&De>je?(Ce(O,Ee,se,ce,rt,Ne,$e),Ce(O,Ee,se,Ne,$e,je,tt),Ce(O,Ee,se,je,tt,De,Je)):De<Ne&&ce>je?(Ce(O,Ee,se,ce,rt,je,tt),Ce(O,Ee,se,je,tt,Ne,$e),Ce(O,Ee,se,Ne,$e,De,Je)):ce<Ne&&De>Ne||De<Ne&&ce>Ne?(Ce(O,Ee,se,ce,rt,Ne,$e),Ce(O,Ee,se,Ne,$e,De,Je)):ce<je&&De>je||De<je&&ce>je?(Ce(O,Ee,se,ce,rt,je,tt),Ce(O,Ee,se,je,tt,De,Je)):Ce(O,Ee,se,ce,rt,De,Je)}}se=se.next}}function Xe(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),Xe(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,$e=(be+Re)/2,tt=(ce+ie)/2,dt=(st+De)/2,pt=(rt+Je)/2,ut=(De+$e)/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,$e,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 YV(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 HV={toCanvas:FV,toSVG:jV,render:PV,raw:UV,drawingCanvas:dl,drawingSVG:r5,fixupOptions:Z8,loadFont:GV,FontLib:Wa,BWIPJS_VERSION:DV,BWIPP_VERSION:RV},Vh=class Vh{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 HV.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}=d1(s||{},v,o),g=this.editor.getPrecision?.(),l=Jn(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}=d1(v,b,o,["left","top","width","height","margin"]),l={...v,...y},h=this._paramsToOption(l),u=await this._getBase64Str(h);return new Promise(f=>{we.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];we.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")}};Vh.pluginName="QrCodePlugin",Vh.apis=["addQrCode","setQrCode","initQrcodeEvents"];let mh=Vh;const $h=class $h{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(){}};$h.pluginName="ImageStroke",$h.apis=["imageStrokeDraw"];let bh=$h;const Il=class Il{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:Ss(this.renderBars.bind(this),50),onDragging:Ss(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(Ss(()=>{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")}};Il.pluginName="ResizePlugin",Il.events=[],Il.apis=[];let wh=Il;const zV="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 Lp=(a=>(a.lockMovementX="lockMovementX",a.lockMovementY="lockMovementY",a.lockRotation="lockRotation",a.lockScalingX="lockScalingX",a.lockScalingY="lockScalingY",a))(Lp||{}),i5=(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))(i5||{});const Xh=class Xh{constructor(i,s){this.canvas=i,this.editor=s,this.init()}init(){const i=document.createElement("img");i.src=zV;const s=this;function o(b,y,g,l,h){b.save(),b.translate(y,g);const f=h.angle;b.rotate(we.fabric.util.degreesToRadians(f)),b.drawImage(i,-25/2,-25/2,25,25),b.restore()}function v(b,y){return s.unLock(),!0}we.fabric.Object.prototype.controls.lock=new we.fabric.Control({x:.5,y:.5,offsetY:0,cursorStyle:"pointer",mouseUpHandler:v,render:o}),we.fabric.Textbox.prototype.controls.lock=new we.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()),we.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 we.fabric.ActiveSelection(y.reverse(),{canvas:this}),this.setActiveObject(g,b))},we.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(i5).forEach(o=>{o==="lock"?i.setControlVisible(o,s):i.setControlVisible(o,!s)})}renderCornerByActiveObj(){const i=this.canvas.getActiveObjects().filter(s=>!(s instanceof we.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(Lp).forEach(s=>{i[s]=!0}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(kf.ONE,[i]))}unLock(){const i=this.canvas.getActiveObject();i&&(i.hasControls=!0,i.selectable=!0,i.evented=!0,Object.values(Lp).forEach(s=>{i[s]=!1}),this.controlCornersVisible(i),this.canvas.renderAll(),this.editor.emit(kf.ONE,[i]))}contextMenu(){const i=this.editor.getSelectMode(),s=this.canvas.getActiveObject();if(i===ru.ONE&&s)return s.selectable?[{text:"锁定",hotkey:"",onclick:()=>this.lock()}]:[{text:"解锁",hotkey:"",onclick:()=>this.unLock()}]}destroy(){console.log("pluginDestroy")}};Xh.pluginName="LockPlugin",Xh.apis=["lock","unLock"];let yh=Xh;const Jh=class Jh{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"?we.fabric.loadSVGFromURL(i.src,v=>{const b=we.fabric.util.groupSVGElements(v,{shadow:"",fontFamily:"arial",name:"svg元素"});s(b)}):we.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")}};Jh.pluginName="AddBaseTypePlugin",Jh.apis=["addObject","createImgByElement"];let xh=Jh;const cs=Object.create(null);cs.open="0";cs.close="1";cs.ping="2";cs.pong="3";cs.message="4";cs.upgrade="5";cs.noop="6";const If=Object.create(null);Object.keys(cs).forEach(a=>{If[cs[a]]=a});const Gp={type:"error",data:"parser error"},n5=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",a5=typeof ArrayBuffer=="function",s5=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a&&a.buffer instanceof ArrayBuffer,A3=({type:a,data:i},s,o)=>n5&&i instanceof Blob?s?o(i):ww(i,o):a5&&(i instanceof ArrayBuffer||s5(i))?s?o(i):ww(new Blob([i]),o):o(cs[a]+(i||"")),ww=(a,i)=>{const s=new FileReader;return s.onload=function(){const o=s.result.split(",")[1];i("b"+(o||""))},s.readAsDataURL(a)};function yw(a){return a instanceof Uint8Array?a:a instanceof ArrayBuffer?new Uint8Array(a):new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}let ep;function qV(a,i){if(n5&&a.data instanceof Blob)return a.data.arrayBuffer().then(yw).then(i);if(a5&&(a.data instanceof ArrayBuffer||s5(a.data)))return i(yw(a.data));A3(a,!1,s=>{ep||(ep=new TextEncoder),i(ep.encode(s))})}const xw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pl=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let a=0;a<xw.length;a++)pl[xw.charCodeAt(a)]=a;const WV=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=pl[a.charCodeAt(o)],y=pl[a.charCodeAt(o+1)],g=pl[a.charCodeAt(o+2)],l=pl[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},VV=typeof ArrayBuffer=="function",m3=(a,i)=>{if(typeof a!="string")return{type:"message",data:o5(a,i)};const s=a.charAt(0);return s==="b"?{type:"message",data:$V(a.substring(1),i)}:If[s]?a.length>1?{type:If[s],data:a.substring(1)}:{type:If[s]}:Gp},$V=(a,i)=>{if(VV){const s=WV(a);return o5(s,i)}else return{base64:!0,data:a}},o5=(a,i)=>{switch(i){case"blob":return a instanceof Blob?a:new Blob([a]);case"arraybuffer":default:return a instanceof ArrayBuffer?a:a.buffer}},c5="",XV=(a,i)=>{const s=a.length,o=new Array(s);let v=0;a.forEach((b,y)=>{A3(b,!1,g=>{o[y]=g,++v===s&&i(o.join(c5))})})},JV=(a,i)=>{const s=a.split(c5),o=[];for(let v=0;v<s.length;v++){const b=m3(s[v],i);if(o.push(b),b.type==="error")break}return o};function KV(){return new TransformStream({transform(a,i){qV(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 tp;function pf(a){return a.reduce((i,s)=>i+s.length,0)}function gf(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 ZV(a,i){tp||(tp=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(pf(s)<1)break;const l=gf(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(pf(s)<2)break;const l=gf(s,2);v=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),o=3}else if(o===2){if(pf(s)<8)break;const l=gf(s,8),h=new DataView(l.buffer,l.byteOffset,l.length),u=h.getUint32(0);if(u>Math.pow(2,21)-1){g.enqueue(Gp);break}v=u*Math.pow(2,32)+h.getUint32(4),o=3}else{if(pf(s)<v)break;const l=gf(s,v);g.enqueue(m3(b?l:tp.decode(l),i)),o=0}if(v===0||v>a){g.enqueue(Gp);break}}}})}const l5=4;function $n(a){if(a)return e$(a)}function e$(a){for(var i in $n.prototype)a[i]=$n.prototype[i];return a}$n.prototype.on=$n.prototype.addEventListener=function(a,i){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(i),this};$n.prototype.once=function(a,i){function s(){this.off(a,s),i.apply(this,arguments)}return s.fn=i,this.on(a,s),this};$n.prototype.off=$n.prototype.removeListener=$n.prototype.removeAllListeners=$n.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};$n.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};$n.prototype.emitReserved=$n.prototype.emit;$n.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]};$n.prototype.hasListeners=function(a){return!!this.listeners(a).length};const Wu=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")(),t$="arraybuffer";function f5(a,...i){return i.reduce((s,o)=>(a.hasOwnProperty(o)&&(s[o]=a[o]),s),{})}const r$=w1.setTimeout,i$=w1.clearTimeout;function Vu(a,i){i.useNativeTimers?(a.setTimeoutFn=r$.bind(w1),a.clearTimeoutFn=i$.bind(w1)):(a.setTimeoutFn=w1.setTimeout.bind(w1),a.clearTimeoutFn=w1.clearTimeout.bind(w1))}const n$=1.33;function a$(a){return typeof a=="string"?s$(a):Math.ceil((a.byteLength||a.size)*n$)}function s$(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 h5(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function o$(a){let i="";for(let s in a)a.hasOwnProperty(s)&&(i.length&&(i+="&"),i+=encodeURIComponent(s)+"="+encodeURIComponent(a[s]));return i}function c$(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 l$ extends Error{constructor(i,s,o){super(i),this.description=s,this.context=o,this.type="TransportError"}}class b3 extends $n{constructor(i){super(),this.writable=!1,Vu(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 l$(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=m3(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=o$(i);return s.length?"?"+s:""}}class f$ extends b3{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)};JV(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,XV(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]=h5()),!this.supportsBinary&&!s.sid&&(s.b64=1),this.createUri(i,s)}}let u5=!1;try{u5=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const h$=u5;function u$(){}class d$ extends f${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 as extends $n{constructor(i,s,o){super(),this.createRequest=i,Vu(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=f5(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=as.requestsCount++,as.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=u$,i)try{this._xhr.abort()}catch{}typeof document<"u"&&delete as.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()}}as.requestsCount=0;as.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Cw);else if(typeof addEventListener=="function"){const a="onpagehide"in w1?"pagehide":"unload";addEventListener(a,Cw,!1)}}function Cw(){for(let a in as.requests)as.requests.hasOwnProperty(a)&&as.requests[a].abort()}const p$=(function(){const a=d5({xdomain:!1});return a&&a.responseType!==null})();class g$ extends d${constructor(i){super(i);const s=i&&i.forceBase64;this.supportsBinary=p$&&!s}request(i={}){return Object.assign(i,{xd:this.xd},this.opts),new as(d5,this.uri(),i)}}function d5(a){const i=a.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!i||h$))return new XMLHttpRequest}catch{}if(!i)try{return new w1[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const p5=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class v$ extends b3{get name(){return"websocket"}doOpen(){const i=this.uri(),s=this.opts.protocols,o=p5?{}:f5(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;A3(o,this.supportsBinary,b=>{try{this.doWrite(o,b)}catch{}v&&Wu(()=>{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]=h5()),this.supportsBinary||(s.b64=1),this.createUri(i,s)}}const rp=w1.WebSocket||w1.MozWebSocket;class A$ extends v${createSocket(i,s,o){return p5?new rp(i,s,o):s?new rp(i,s):new rp(i)}doWrite(i,s){this.ws.send(s)}}class m$ extends b3{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=ZV(Number.MAX_SAFE_INTEGER,this.socket.binaryType),o=i.readable.pipeThrough(s).getReader(),v=KV();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&&Wu(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var i;(i=this._transport)===null||i===void 0||i.close()}}const b$={websocket:A$,webtransport:m$,polling:g$},w$=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,y$=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Yp(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=w$.exec(a||""),b={},y=14;for(;y--;)b[y$[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=x$(b,b.path),b.queryKey=C$(b,b.query),b}function x$(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 C$(a,i){const s={};return i.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(o,v,b){v&&(s[v]=b)}),s}const Hp=typeof addEventListener=="function"&&typeof removeEventListener=="function",Ef=[];Hp&&addEventListener("offline",()=>{Ef.forEach(a=>a())},!1);class $s extends $n{constructor(i,s){if(super(),this.binaryType=t$,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=Yp(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=Yp(s.host).host);Vu(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=c$(this.opts.query)),Hp&&(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"})},Ef.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(i){const s=Object.assign({},this.opts.query);s.EIO=l5,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&&$s.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",$s.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+=a$(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,Wu(()=>{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($s.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(),Hp&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const o=Ef.indexOf(this._offlineEventListener);o!==-1&&Ef.splice(o,1)}this.readyState="closed",this.id=null,this.emitReserved("close",i,s),this.writeBuffer=[],this._prevBufferLen=0}}}$s.protocol=l5;class I$ extends $s{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;$s.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;$s.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 E$=class extends I${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=>b$[v]).filter(v=>!!v)),super(i,o)}};function B$(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=Yp(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 S$=typeof ArrayBuffer=="function",k$=a=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(a):a.buffer instanceof ArrayBuffer,g5=Object.prototype.toString,_$=typeof Blob=="function"||typeof Blob<"u"&&g5.call(Blob)==="[object BlobConstructor]",M$=typeof File=="function"||typeof File<"u"&&g5.call(File)==="[object FileConstructor]";function w3(a){return S$&&(a instanceof ArrayBuffer||k$(a))||_$&&a instanceof Blob||M$&&a instanceof File}function Bf(a,i){if(!a||typeof a!="object")return!1;if(Array.isArray(a)){for(let s=0,o=a.length;s<o;s++)if(Bf(a[s]))return!0;return!1}if(w3(a))return!0;if(a.toJSON&&typeof a.toJSON=="function"&&arguments.length===1)return Bf(a.toJSON(),!0);for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)&&Bf(a[s]))return!0;return!1}function T$(a){const i=[],s=a.data,o=a;return o.data=zp(s,i),o.attachments=i.length,{packet:o,buffers:i}}function zp(a,i){if(!a)return a;if(w3(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]=zp(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]=zp(a[o],i));return s}return a}function O$(a,i){return a.data=qp(a.data,i),delete a.attachments,a}function qp(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]=qp(a[s],i);else if(typeof a=="object")for(const s in a)Object.prototype.hasOwnProperty.call(a,s)&&(a[s]=qp(a[s],i));return a}const R$=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],D$=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 F${constructor(i){this.replacer=i}encode(i){return(i.type===Jr.EVENT||i.type===Jr.ACK)&&Bf(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=T$(i),o=this.encodeAsString(s.packet),v=s.buffers;return v.unshift(o),v}}function Iw(a){return Object.prototype.toString.call(a)==="[object Object]"}class y3 extends $n{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 Q$(s),s.attachments===0&&super.emitReserved("decoded",s)):super.emitReserved("decoded",s)}else if(w3(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(y3.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 Iw(s);case Jr.DISCONNECT:return s===void 0;case Jr.CONNECT_ERROR:return typeof s=="string"||Iw(s);case Jr.EVENT:case Jr.BINARY_EVENT:return Array.isArray(s)&&(typeof s[0]=="number"||typeof s[0]=="string"&&R$.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 Q${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=O$(this.reconPack,this.buffers);return this.finishedReconstruction(),s}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const j$=Object.freeze(Object.defineProperty({__proto__:null,Decoder:y3,Encoder:F$,get PacketType(){return Jr},protocol:D$},Symbol.toStringTag,{value:"Module"}));function N1(a,i,s){return a.on(i,s),function(){a.off(i,s)}}const N$=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class v5 extends $n{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=[N1(i,"open",this.onopen.bind(this)),N1(i,"packet",this.onpacket.bind(this)),N1(i,"error",this.onerror.bind(this)),N1(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(N$.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 Bc(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}Bc.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};Bc.prototype.reset=function(){this.attempts=0};Bc.prototype.setMin=function(a){this.ms=a};Bc.prototype.setMax=function(a){this.max=a};Bc.prototype.setJitter=function(a){this.jitter=a};class Wp extends $n{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,Vu(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 Bc({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||j$;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 E$(this.uri,this.opts);const s=this.engine,o=this;this._readyState="opening",this.skipReconnect=!1;const v=N1(s,"open",function(){o.onopen(),i&&i()}),b=g=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",g),i?i(g):this.maybeReconnectOnOpen()},y=N1(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(N1(i,"ping",this.onping.bind(this)),N1(i,"data",this.ondata.bind(this)),N1(i,"error",this.onerror.bind(this)),N1(i,"close",this.onclose.bind(this)),N1(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){Wu(()=>{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 v5(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 ul={};function Sf(a,i){typeof a=="object"&&(i=a,a=void 0),i=i||{};const s=B$(a,i.path||"/socket.io"),o=s.source,v=s.id,b=s.path,y=ul[v]&&b in ul[v].nsps,g=i.forceNew||i["force new connection"]||i.multiplex===!1||y;let l;return g?l=new Wp(o,i):(ul[v]||(ul[v]=new Wp(o,i)),l=ul[v]),s.query&&!i.query&&(i.query=s.queryKey),l.socket(s.path,i)}Object.assign(Sf,{Manager:Wp,Socket:v5,io:Sf,connect:Sf});const Kh=class Kh{constructor(i,s){this.canvas=i,this.editor=s,this.isConnect=!1,this.printerList=[],this.editor=s,this.canvas=i,this.socket=Sf("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")}};Kh.pluginName="PrintPlugin",Kh.apis=["printPDF","getPrinterList"];let Ch=Kh;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:u1(g.x,v,s),y:u1(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=Jn(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=u1(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,S=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=S+Q;s("left",Y);const G=o.getSizeByUnit(Y);y(this,u,{left:G})}return this}if(A==="height"&&C>0){const E=this.y1,B=this.y2;this.left;const S=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=S+Q;s("top",Y);const G=o.getSizeByUnit(Y);y(this,u,{top:G})}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:u1(m.x,u,f),y:u1(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(S=>({x:u1(S.x,u,f),y:u1(S.y,u,f)}));y(this,u,{points:A.points}),A.points=B}if(p)return s(A);const{processed:w,originByUnit:m}=d1(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,S=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),G=N+C.width*Y,V=Math.min(N,Q),$=Math.min(N,G);M=V-$,C.x2=G,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),G=N+C.height*Y,V=Math.min(N,Q),$=Math.min(N,G);T=V-$,C.y2=G,delete C.height}M!==0&&(C.left=B+M,x.left=o.getSizeByUnit(C.left)),T!==0&&(C.top=S+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(S=>S*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=u1(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}=d1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:Jn(y[o]||{},g)},h=new we.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}=d1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:Jn(g[v]||{},l)},u=new we.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}=d1(s,v,o,b),l=this.editor.getPrecision?.(),h={[v]:Jn(g[v]||{},l)},u=new we.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}=d1(s||{},v,o,g),u=l.strokeWidth??(s?.strokeWidth!==void 0?u1(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 we.fabric.Line([b[0].x,b[0].y,b[1].x,b[1].y],f),d=this.editor.getPrecision?.(),A={[v]:{...Jn(h[v]||{},d),...Jn(y[v]||{},d)}};return Array.isArray(s?.strokeDashArray)&&(A[v].strokeDashArray=Jn({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}=d1(i,o,s,v),g=this.editor.getPrecision?.(),l={[o]:Jn(y[o]||{},g)},h=new we.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}=d1(s||{},v,o,g),u=new we.fabric.Polygon(b,{fill:s?.fill});if(s?.strokeWidth!==void 0){const d=u1(s.strokeWidth,v,o);u.set("strokeWidth",d)}u.set({...s||{},...l});const f=this.editor.getPrecision?.(),p={[v]:{...Jn(h[v]||{},f),...Jn(y[v]||{},f)}};return u._originSize=p,this.addSetAndSyncByUnit(u),u}async createImageFromURL(i,s,o){return new Promise(v=>{we.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}=d1(s,y,o,u);b.set({...s});const p={[y]:Jn(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]:Jn(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;we.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}=d1(s,h,o,d);l.set({...s});const w={[h]:Jn(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]:Jn(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 Ih=Ba;const Ew={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"},Zh=class Zh{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{...Ew,...i,items:Array.isArray(i.items)?i.items:[]}}toPx(i){return u1(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 we.fabric.Textbox(i||"",{...y,width:o}):new we.fabric.Text(i||"",y);return g.initDimensions(),g.setCoords(),g}loadImage(i,s){return new Promise(o=>{if(!i)return o(null);we.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||Ew.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(S=>{const M=p[S.index];M&&(M.set({left:S.x,top:A}),d.push(M))}),A+=l+u}),o.forEach(B=>{const S=this.createText(B.name||"",s,v);S.set({left:0,top:A}),d.push(S),A+=S.getScaledHeight()+f});else if(b==="item-vertical"){const E=l+h,B=Math.max(1,v-E);o.forEach((S,M)=>{const T=p[M],R=this.createText(S.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 we.fabric.Rect({left:0,top:0,width:s,height:o,fill:"rgba(0,0,0,0)",strokeWidth:0,selectable:!1,evented:!1}),g=new we.fabric.Group([y],{width:s,height:o,visible:v,objectCaching:b,subTargetCheck:!1,clipPath:b?new we.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]:Jn({...v[o]||{},width:s.width,height:s.height??(o==="px"?i.height:this.editor.getSizeByUnit(i.height||1))},this.editor.getPrecision?.())}}destroy(){}};Zh.pluginName="ImageTextListPlugin",Zh.apis=["createImageTextList","initImageTextListEvents","refreshImageTextList"];let Eh=Zh;const eu=class eu{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),g=b,l=.01;v.forEach(C=>this.preparePrintLayoutObject(C));const h=[];v.forEach((C,E)=>{const B=this.layoutOrigins.get(C),S=this.getSourceObject(C,y),M=B?.top??this.getOriginalTop(S,C,b);if(S?.extension?.fixedPosition===!0){const R=Number(S.left);Number.isFinite(R)&&C.set("left",R),C.set("top",M/b),C.setCoords();return}const T=B?.height??this.getOriginalHeight(S,C,b);h.push({object:C,index:E,originalTop:M,originalBottom:M+T})}),h.sort((C,E)=>C.originalTop-E.originalTop||C.index-E.index);const u=[],f=.01;h.forEach(C=>{const E=u[u.length-1];E&&Math.abs(E[0].originalTop-C.originalTop)<=f?E.push(C):u.push([C])});let p,d,A=0,w=0;if(u.forEach(C=>{const E=C[0].originalTop,B=Math.max(...C.map(T=>T.originalBottom));p!==void 0&&(A+=Math.max(0,E-p)),p=B;const S=C.filter(T=>!this.isEmptyLayoutObject(T.object));if(!S.length)return;const M=d===void 0?E:d+A;S.forEach(T=>{T.object.set("top",M/b),T.object.setCoords()}),d=Math.max(...S.map(T=>(Number(T.object.top||0)+this.getActualLayoutHeight(T.object))*b)),w=B,A=0}),this.canvas.requestRenderAll(),!h.some(C=>C.object?.extensionType==="table"&&this.getActualLayoutHeight(C.object)*g>C.originalBottom-C.originalTop+l)&&o.overflowMode!=="expand"||d===void 0)return s;const x=Math.max(0,s-w);return Math.max(s,d+x)}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){["imageTextList","table"].includes(i?.extensionType)&&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}};eu.pluginName="ActualContentLayoutPlugin",eu.apis=["applyActualContentLayout"];let Bh=eu,P$=0;const x3=we.fabric.util.createClass(we.fabric.Textbox,{type:"TableCellTextbox",initialize(a,i={}){this.callSuper("initialize",a,i),this.cellClipWidth=Math.max(1,Number(i.cellClipWidth)||1),this.cellClipHeight=Math.max(1,Number(i.cellClipHeight)||1),this.cellClipTopOffset=Number(i.cellClipTopOffset)||0,this.cellClipOffsetY=Number(i.cellClipOffsetY)||0},_render(a){a.save();try{a.beginPath(),a.rect(-this.cellClipWidth/2,-this.cellClipHeight/2+this.cellClipOffsetY,this.cellClipWidth,this.cellClipHeight),a.clip(),this.callSuper("_render",a)}finally{a.restore()}},toObject(a){return this.callSuper("toObject",[...a||[],"cellClipWidth","cellClipHeight","cellClipTopOffset","cellClipOffsetY"])},toSVG(a){const i=this.callSuper("toSVG",a),s=`hprint-table-cell-${++P$}`,o=Number(this.left)||0,v=(Number(this.top)||0)+Number(this.cellClipTopOffset||0);return`<defs><clipPath id="${s}" clipPathUnits="userSpaceOnUse"><rect x="${o}" y="${v}" width="${this.cellClipWidth}" height="${this.cellClipHeight}" /></clipPath></defs><g clip-path="url(#${s})">${i}</g>`}});we.fabric.TableCellTextbox=x3;we.fabric.TableCellTextbox.fromObject=(a,i)=>{const s=new x3(String(a.text??""),a);return i?.(s),s};const Q1={width:40,height:12,headerHeight:6,rowHeight:6,heightAllocationMode:"stretch",borderWidth:.2,fontFamily:"Microsoft YaHei",fontSize:3,fontWeight:"normal",fontStyle:"normal",underline:!1,linethrough:!1,textOverflow:"wrap",textAlign:"left",lineHeight:1.5,charSpacing:0,color:"#000000",cellPadding:1,cellPaddingHorizontal:1,cellPaddingVertical:1};function Vp(a){if(!Array.isArray(a)||a.length===0)throw new Error("表格至少需要配置一列");const i=a.map((v,b)=>{if(!v||!String(v.field||"").trim())throw new Error(`表格第 ${b+1} 列缺少 field`);const y=typeof v.width=="string";let g;if(y){const l=String(v.width).trim();if(!/^\d+(?:\.\d+)?%$/.test(l))throw new Error(`表格第 ${b+1} 列的百分比宽度无效`);g=Number.parseFloat(l.slice(0,-1))}else g=Number(v.width);if(!Number.isFinite(g)||g<=0)throw new Error(`表格第 ${b+1} 列的宽度必须大于 0`);return{...v,title:String(v.title??""),field:String(v.field),width:v.width,weight:g,widthType:y?"percent":"number"}});if(new Set(i.map(v=>v.widthType)).size>1)throw new Error("表格列宽不能混用数值和百分比");const o=i.reduce((v,b)=>v+b.weight,0);return i.map(({weight:v,widthType:b,...y})=>({...y,ratio:v/o}))}const tu=class tu{constructor(i,s){this.canvas=i,this.editor=s}async hookTransform(i){if(i.extensionType!=="table")return;const s=i.left,o=i.top,v={...i.extension||{}};if(!Number.isFinite(Number(v.height))){const l=ln(this.editor),h=Number(i._originSize?.[l]?.height);v.height=Number.isFinite(h)?h:l==="px"?Math.abs(Number(i.height||1)*Number(i.scaleY||1)):this.editor.getSizeByUnit(Math.abs(Number(i.height||1)*Number(i.scaleY||1)))}const b=this.normalizeOptions(v),y=this.buildGroup(b);this.updateOriginSize(y,b);const g=y.toObject(this.editor.getExtensionKey?.()||[]);Object.assign(i,g,{left:s,top:o,extensionType:"table",extension:b})}async hookTransformObjectEnd(...i){const{originObject:s,fabricObject:o}=i[0];s.extensionType==="table"&&this.initTableEvents(o)}createTable(i,s={}){const o=this.normalizeOptions({...s,columns:i}),v=this.buildGroup(o);return v.set({extensionType:"table",extension:o}),this.updateOriginSize(v,o),this.initTableEvents(v),v}initTableEvents(i){i.setExtension=async o=>{const v=this.normalizeOptions({...i.get("extension")||{},...o||{}});i.set("extension",v),await this.refreshTable(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.refreshTable(i),i}return s(o,v)}),i.__tableModified&&i.off("modified",i.__tableModified),i.__tableModified=()=>{const o=Math.abs(i.scaleX||1),v=Math.abs(i.scaleY||1);if(o===1&&v===1)return;const b=this.normalizeOptions(i.get("extension")||{}),y=Math.max(1,Number(i.height||1)*v);i.set({scaleX:1,scaleY:1}),i.set("extension",{...b,width:b.width*o,height:ln(this.editor)==="px"?y:this.editor.getSizeByUnit(y)}),this.refreshTable(i)},i.on("modified",i.__tableModified)}async refreshTable(i){const s=this.normalizeOptions(i.get("extension")||{}),o=i.left,v=i.top,b=this.buildGroup(s),y=b.getObjects();i._removeCacheCanvas?.(),i._objects=y,y.forEach(g=>{g.group=i,g.set({dirty:!0,noScaleCache:!1})}),b._objects=[],i.set({left:o,top:v,width:b.width,height:b.height,scaleX:1,scaleY:1,clipPath:void 0,objectCaching:!1,noScaleCache:!1,dirty:!0}),i.set("extension",s),this.updateOriginSize(i,s),i.setCoords(),this.canvas.requestRenderAll()}normalizeOptions(i){const s=(i.columns||[]).map(v=>({...v}));Vp(s);const o=this.nonNegativeNumber(i.cellPadding,Q1.cellPadding);return{...Q1,...i,width:this.positiveNumber(i.width,Q1.width),height:Math.max(this.positiveNumber(i.headerHeight,Q1.headerHeight),this.positiveNumber(i.height,Q1.height)),headerHeight:this.positiveNumber(i.headerHeight,Q1.headerHeight),rowHeight:this.positiveNumber(i.rowHeight,Q1.rowHeight),borderWidth:this.nonNegativeNumber(i.borderWidth,Q1.borderWidth),cellPadding:o,cellPaddingHorizontal:this.nonNegativeNumber(i.cellPaddingHorizontal,o),cellPaddingVertical:this.nonNegativeNumber(i.cellPaddingVertical,o),fontSize:this.positiveNumber(i.fontSize,Q1.fontSize),lineHeight:this.positiveNumber(i.lineHeight,Q1.lineHeight),charSpacing:this.nonNegativeNumber(i.charSpacing,Q1.charSpacing),textOverflow:i.textOverflow==="ellipsis"?"ellipsis":"wrap",heightAllocationMode:i.heightAllocationMode==="grow"?"grow":"stretch",columns:s}}positiveNumber(i,s){const o=Number(i);return Number.isFinite(o)&&o>0?o:s}nonNegativeNumber(i,s){const o=Number(i);return Number.isFinite(o)&&o>=0?o:s}toPx(i){return u1(Number(i)||0,ln(this.editor))}buildGroup(i){const s=Vp(i.columns),o=Math.max(1,this.toPx(i.width)),v=Math.max(1,this.toPx(i.headerHeight)),b=Math.max(v,this.toPx(i.height)),y=Math.max(1,this.toPx(i.rowHeight)),g=Math.max(0,this.toPx(i.borderWidth)),l=Array.isArray(i._renderRows)?i._renderRows:[],h=i.heightAllocationMode==="grow",u=h?Math.max(0,this.toPx(i.cellPaddingVertical??i.cellPadding)):0,f=[];let p=0;s.forEach((G,V)=>{const $=V===s.length-1?o-p:o*G.ratio;f.push({left:p,width:$}),p+=$});const d=h?l.map(G=>Math.max(y,...f.map((V,$)=>{const K=i.columns[$].field;return this.measureCellTextHeight(G?.[K],V.width,i)+u*2}))):l.map(()=>Math.max(1,(b-v)/l.length)),A=v+d.reduce((G,V)=>G+V,0),w=l.length?h?i._actualContentLayout?A:Math.min(A,b):b:v,m=Math.max(1,w),x=[],C=new we.fabric.Rect({left:0,top:0,width:o,height:m,fill:"rgba(0,0,0,0)",strokeWidth:0,selectable:!1,evented:!1});x.push(C),f.forEach((G,V)=>{x.push(this.createCellText(i.columns[V].title,G.left,0,G.width,v,i,Math.min(v,w),u))});let E=v;const B=[];l.forEach((G,V)=>{const $=d[V];if(E>=w)return;const K=Math.min($,w-E);B.push(E),f.forEach((ne,ge)=>{const re=i.columns[ge].field,F=G?.[re];x.push(this.createCellText(F==null?"":String(F),ne.left,E,ne.width,$,i,K,u))}),E+=$});const S=Math.min(g,o,w),M={stroke:"#000000",strokeWidth:S,selectable:!1,evented:!1,objectCaching:!1},T=S/2;x.push(new we.fabric.Rect({left:0,top:0,width:Math.max(0,o-S),height:Math.max(0,w-S),fill:"rgba(0,0,0,0)",...M})),B.filter(G=>G<w).forEach(G=>{x.push(new we.fabric.Line([T,G,o-T,G],M))}),f.slice(1).map(G=>G.left).forEach(G=>{x.push(new we.fabric.Line([G,T,G,w-T],M))});const Q=x.slice(1),Y=new we.fabric.Group([C],{width:o,height:m,subTargetCheck:!1,objectCaching:!1,noScaleCache:!1});return Q.forEach(G=>{G.set({left:(G.left||0)-o/2,top:(G.top||0)-m/2}),G.group=Y}),Y._objects.push(...Q),Y.set({width:o,height:m}),Y.setCoords(),Y}createCellText(i,s,o,v,b,y,g=b,l){const h=Math.max(0,this.toPx(y.cellPaddingHorizontal??y.cellPadding)),u=l??Math.max(0,this.toPx(y.cellPaddingVertical??y.cellPadding)),f=Math.max(1,this.toPx(y.fontSize)),p=Math.max(0,this.toPx(y.charSpacing)),d=Math.max(1,v-h*2),A=Math.min(b,u),w=Math.max(A,Math.min(b-u,g)),m=Math.max(.01,w-A),x={fontFamily:y.fontFamily,fontSize:f,fontWeight:y.fontWeight,fontStyle:y.fontStyle,charSpacing:p/f*1e3},C=y.textOverflow==="ellipsis"?this.ellipsizeCellText(String(i??""),d,x):String(i??""),E=new x3(C,{left:s+h,top:o,width:d,cellClipWidth:d,cellClipHeight:m,cellClipOffsetY:(A+w)/2-b/2,...x,underline:!!y.underline,linethrough:!!y.linethrough,fill:y.color,textAlign:y.textAlign,lineHeight:Number(y.lineHeight)||1,splitByGrapheme:!0,selectable:!1,evented:!1,objectCaching:!1,noScaleCache:!1});E.initDimensions();const B=A-(b-E.getScaledHeight())/2;return E.set({top:o+(b-E.getScaledHeight())/2,cellClipTopOffset:B}),E.setCoords(),E}measureCellTextHeight(i,s,o){const v=Math.max(0,this.toPx(o.cellPaddingHorizontal??o.cellPadding)),b=Math.max(1,this.toPx(o.fontSize)),y=Math.max(0,this.toPx(o.charSpacing)),g=Math.max(1,s-v*2),l={fontFamily:o.fontFamily,fontSize:b,fontWeight:o.fontWeight,fontStyle:o.fontStyle,charSpacing:y/b*1e3},h=o.textOverflow==="ellipsis"?this.ellipsizeCellText(String(i??""),g,l):String(i??""),u=new we.fabric.Textbox(h,{width:g,...l,lineHeight:Number(o.lineHeight)||1,splitByGrapheme:!0,objectCaching:!1});return u.initDimensions(),Math.max(1,u.getScaledHeight())}ellipsizeCellText(i,s,o){const v=i.replace(/[\r\n]+/g," ");if(!v)return"";const b=u=>{const f=new we.fabric.Text(u,{...o,objectCaching:!1});return f.initDimensions(),f.getScaledWidth()};if(b(v)<=s)return v;const y="…",g=Array.from(v);let l=0,h=g.length;for(;l<h;){const u=Math.ceil((l+h)/2),f=`${g.slice(0,u).join("")}${y}`;b(f)<=s?l=u:h=u-1}return`${g.slice(0,l).join("")}${y}`}updateOriginSize(i,s){const o=ln(this.editor),v=i._originSize||{};i._originSize={...v,[o]:Jn({...v[o]||{},width:s.width,height:o==="px"?i.height:this.editor.getSizeByUnit(i.height||1)},this.editor.getPrecision?.())}}destroy(){}};tu.pluginName="TablePlugin",tu.apis=["createTable","initTableEvents","refreshTable"];let Sh=tu;const U$={UnitPlugin:Nf,DringPlugin:Pf,AlignGuidLinePlugin:Uf,ControlsPlugin:Gf,ControlsRotatePlugin:Yf,CenterAlignPlugin:Hf,LayerPlugin:zf,CopyPlugin:qf,MoveHotKeyPlugin:Wf,DeleteHotKeyPlugin:Vf,GroupPlugin:$f,DrawLinePlugin:Xf,GroupTextEditorPlugin:Jf,GroupAlignPlugin:Kf,WorkspacePlugin:Zf,MaskPlugin:eh,HistoryPlugin:th,FlipPlugin:rh,RulerPlugin:ih,MaterialPlugin:ah,WaterMarkPlugin:sh,FontPlugin:oh,PolygonModifyPlugin:ch,DrawPolygonPlugin:lh,FreeDrawPlugin:fh,PathTextPlugin:hh,PsdPlugin:dh,SimpleClipImagePlugin:ph,BarCodePlugin:gh,QrCodePlugin:mh,ImageStroke:bh,ResizePlugin:wh,LockPlugin:yh,AddBaseTypePlugin:xh,PrintPlugin:Ch,CreateElementPlugin:Ih,ImageTextListPlugin:Eh,ActualContentLayoutPlugin:Bh,TablePlugin:Sh},L$=[Nf,Pf,Uf,Gf,Yf,Hf,zf,qf,Wf,Vf,$f,Xf,Jf,Kf,Zf,eh,th,rh,ih,ah,sh,oh,ch,lh,fh,hh,dh,ph,gh,mh,bh,wh,yh,xh,Ch,Ih,Eh,Bh,Sh];exports.SelectEvent=kf;exports.SelectMode=ru;exports.normalizeTableColumns=Vp;exports.pluginsList=L$;exports.pluginsObject=U$;
|