PageSourceSearch

https://www.jukeboxprint.com/dist/vendor-creator.c2264396.js

js jukeboxprint.com collected 2026-10-02 02:56:12 UTC 432,219 bytes, 73 lines download raw bytes

vendor: 12,831 bytes, line 1
1(self.webpackChunkjukebox_website=self.webpackChunkjukebox_website||[]).push([[7762],{56039(t,e){!function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});var e=Object.defineProperty,i=(t,i)=>{let s={};for(var r in t)e(s,r,{get:t[r],enumerable:!0});return i||e(s,Symbol.toStringTag,{value:"Module"}),s};function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function r(t){var e=function(t,e){if("object"!=s(t)||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var r=i.call(t,e||"default");if("object"!=s(r))return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==s(e)?e:e+""}function n(t,e,i){return(e=r(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var o=class{constructor(){n(this,"browserShadowBlurConstant",1),n(this,"DPI",96),n(this,"devicePixelRatio",typeof window<"u"?window.devicePixelRatio:1),n(this,"perfLimitSizeTotal",2097152),n(this,"maxCacheSideLimit",4096),n(this,"minCacheSideLimit",256),n(this,"disableStyleCopyPaste",!1),n(this,"enableGLFiltering",!0),n(this,"textureSize",4096),n(this,"forceGLPutImageData",!1),n(this,"cachesBoundsOfCurve",!1),n(this,"fontPaths",{}),n(this,"NUM_FRACTION_DIGITS",4)}};let a=new class extends o{constructor(t){super(),this.configure(t)}configure(t={}){Object.assign(this,t)}addFonts(t={}){this.fontPaths={...this.fontPaths,...t}}removeFonts(t=[]){t.forEach((t=>{delete this.fontPaths[t]}))}clearFonts(){this.fontPaths={}}restoreDefaults(t){let e=new o,i=(null==t?void 0:t.reduce(((t,i)=>(t[i]=e[i],t)),{}))||e;this.configure(i)}},h=(t,...e)=>console[t]("fabric",...e);var l=class extends Error{constructor(t,e){super(`fabric: ${t}`,e)}},c=class extends l{constructor(t){super(`${t} 'options.signal' is in 'aborted' state`)}},u=class{},d=class extends u{testPrecision(t,e){let i=`precision ${e} float;\nvoid main(){}`,s=t.createShader(t.FRAGMENT_SHADER);return!!s&&(t.shaderSource(s,i),t.compileShader(s),!!t.getShaderParameter(s,t.COMPILE_STATUS))}queryWebGL(t){let e=t.getContext("webgl");e&&(this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),this.GLPrecision=["highp","mediump","lowp"].find((t=>this.testPrecision(e,t))),e.getExtension("WEBGL_lose_context").loseContext(),h("log",`WebGL: max texture size ${this.maxTextureSize}`))}isSupported(t){return!!this.maxTextureSize&&this.maxTextureSize>=t}};let p,g={},f=()=>p||(p={document,window,isTouchSupported:"ontouchstart"in window||"ontouchstart"in document||window&&window.navigator&&window.navigator.maxTouchPoints>0,WebGLProbe:new d,dispose(){},copyPasteData:g}),m=()=>f().document,_=()=>f().window,v=()=>{var t;return Math.max(null==(t=a.devicePixelRatio)?_().devicePixelRatio:t,1)},y=new class{constructor(){n(this,"boundsOfCurveCache",{}),this.charWidthsCache=new Map}getFontCache({fontFamily:t,fontStyle:e,fontWeight:i}){t=t.toLowerCase();let s=this.charWidthsCache;s.has(t)||s.set(t,new Map);let r=s.get(t),n=`${e.toLowerCase()}_${(i+"").toLowerCase()}`;return r.has(n)||r.set(n,new Map),r.get(n)}clearFontCache(t){t?this.charWidthsCache.delete((t||"").toLowerCase()):this.charWidthsCache=new Map}limitDimsByArea(t){let{perfLimitSizeTotal:e}=a,i=Math.sqrt(e*t);return[Math.floor(i),Math.floor(e/i)]}},b="7.4.0";function x(){}let w=Math.PI/2,C=Math.PI/4,S=2*Math.PI,T=Math.PI/180,k=Object.freeze([1,0,0,1,0,0]),D="center",O="left",M="bottom",P="right",E="none",A=/\r?\n/,F="moving",I="scaling",j="rotating",L="rotate",R="skewing",z="resizing",B="modifyPoly",H="changed",W="scale",Y="scaleX",N="scaleY",X="skewX",$="skewY",V="fill",G="stroke",U="modified",K="normal",q="json",J=new class{constructor(){this[q]=new Map,this.svg=new Map}has(t){return this[q].has(t)}getClass(t){let e=this[q].get(t);if(!e)throw new l(`No class registered for ${t}`);return e}setClass(t,e){e?this[q].set(e,t):(this[q].set(t.type,t),this[q].set(t.type.toLowerCase(),t))}getSVGClass(t){return this.svg.get(t)}setSVGClass(t,e){this.svg.set(e??t.type.toLowerCase(),t)}},Q=new class extends Array{remove(t){let e=this.indexOf(t);e>-1&&this.splice(e,1)}cancelAll(){let t=this.splice(0);return t.forEach((t=>t.abort())),t}cancelByCanvas(t){if(!t)return[];let e=this.filter((e=>{var i;return e.target===t||"object"==typeof e.target&&(null==(i=e.target)?void 0:i.canvas)===t}));return e.forEach((t=>t.abort())),e}cancelByTarget(t){if(!t)return[];let e=this.filter((e=>e.target===t));return e.forEach((t=>t.abort())),e}};var Z=class{constructor(){n(this,"__eventListeners",{})}on(t,e){if(this.__eventListeners||(this.__eventListeners={}),"object"==typeof t)return Object.entries(t).forEach((([t,e])=>{this.on(t,e)})),()=>this.off(t);if(e){let i=t;return this.__eventListeners[i]||(this.__eventListeners[i]=[]),this.__eventListeners[i].push(e),()=>this.off(i,e)}return()=>!1}once(t,e){if("object"==typeof t){let e=[];return Object.entries(t).forEach((([t,i])=>{e.push(this.once(t,i))})),()=>e.forEach((t=>t()))}if(e){let i=this.on(t,(function(...t){e.call(this,...t),i()}));return i}return()=>!1}_removeEventListener(t,e){if(this.__eventListeners[t])if(e){let i=this.__eventListeners[t],s=i.indexOf(e);s>-1&&i.splice(s,1)}else this.__eventListeners[t]=[]}off(t,e){if(this.__eventListeners)if(void 0===t)for(let t in this.__eventListeners)this._removeEventListener(t);else"object"==typeof t?Object.entries(t).forEach((([t,e])=>{this._removeEventListener(t,e)})):this._removeEventListener(t,e)}fire(t,e){var i;if(!this.__eventListeners)return;let s=null==(i=this.__eventListeners[t])?void 0:i.concat();if(s)for(let t=0;t<s.length;t++)s[t].call(this,e||{})}};let tt=(t,e)=>{let i=t.indexOf(e);return-1!==i&&t.splice(i,1),t},et=t=>{if(0===t)return 1;switch(Math.abs(t)/w){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},it=t=>{if(0===t)return 0;let e=t/w,i=Math.sign(t);switch(e){case 1:return i;case 2:return 0;case 3:return-i}return Math.sin(t)};var st=class t{constructor(t=0,e=0){"object"==typeof t?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e)}add(e){return new t(this.x+e.x,this.y+e.y)}addEquals(t){return this.x+=t.x,this.y+=t.y,this}scalarAdd(e){return new t(this.x+e,this.y+e)}scalarAddEquals(t){return this.x+=t,this.y+=t,this}subtract(e){return new t(this.x-e.x,this.y-e.y)}subtractEquals(t){return this.x-=t.x,this.y-=t.y,this}scalarSubtract(e){return new t(this.x-e,this.y-e)}scalarSubtractEquals(t){return this.x-=t,this.y-=t,this}multiply(e){return new t(this.x*e.x,this.y*e.y)}scalarMultiply(e){return new t(this.x*e,this.y*e)}scalarMultiplyEquals(t){return this.x*=t,this.y*=t,this}divide(e){return new t(this.x/e.x,this.y/e.y)}scalarDivide(e){return new t(this.x/e,this.y/e)}scalarDivideEquals(t){return this.x/=t,this.y/=t,this}eq(t){return this.x===t.x&&this.y===t.y}lt(t){return this.x<t.x&&this.y<t.y}lte(t){return this.x<=t.x&&this.y<=t.y}gt(t){return this.x>t.x&&this.y>t.y}gte(t){return this.x>=t.x&&this.y>=t.y}lerp(e,i=.5){return i=Math.max(Math.min(1,i),0),new t(this.x+(e.x-this.x)*i,this.y+(e.y-this.y)*i)}distanceFrom(t){let e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)}midPointFrom(t){return this.lerp(t)}min(e){return new t(Math.min(this.x,e.x),Math.min(this.y,e.y))}max(e){return new t(Math.max(this.x,e.x),Math.max(this.y,e.y))}toString(){return`${this.x},${this.y}`}setXY(t,e){return this.x=t,this.y=e,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setFromPoint(t){return this.x=t.x,this.y=t.y,this}swap(t){let e=this.x,i=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=i}clone(){return new t(this.x,this.y)}rotate(e,i=rt){let s=it(e),r=et(e),n=this.subtract(i);return new t(n.x*r-n.y*s,n.x*s+n.y*r).add(i)}transform(e,i=!1){return new t(e[0]*this.x+e[2]*this.y+(i?0:e[4]),e[1]*this.x+e[3]*this.y+(i?0:e[5]))}};let rt=new st(0,0),nt=t=>!!t&&Array.isArray(t._objects);function ot(t){class e extends t{constructor(...t){super(...t),n(this,"_objects",[])}_onObjectAdded(t){}_onObjectRemoved(t){}_onStackOrderChanged(t){}add(...t){let e=this._objects.push(...t);return t.forEach((t=>this._onObjectAdded(t))),e}insertAt(t,...e){return this._objects.splice(t,0,...e),e.forEach((t=>this._onObjectAdded(t))),this._objects.length}remove(...t){let e=this._objects,i=[];return t.forEach((t=>{let s=e.indexOf(t);-1!==s&&(e.splice(s,1),i.push(t),this._onObjectRemoved(t))})),i}forEachObject(t){this.getObjects().forEach(((e,i,s)=>t(e,i,s)))}getObjects(...t){return 0===t.length?[...this._objects]:this._objects.filter((e=>e.isType(...t)))}item(t){return this._objects[t]}isEmpty(){return 0===this._objects.length}size(){return this._objects.length}contains(t,i){return!!this._objects.includes(t)||!!i&&this._objects.some((i=>i instanceof e&&i.contains(t,!0)))}complexity(){return this._objects.reduce(((t,e)=>t+(e.complexity?e.complexity():0)),0)}sendObjectToBack(t){return!(!t||t===this._objects[0]||(tt(this._objects,t),this._objects.unshift(t),this._onStackOrderChanged(t),0))}bringObjectToFront(t){return!(!t||t===this._objects[this._objects.length-1]||(tt(this._objects,t),this._objects.push(t),this._onStackOrderChanged(t),0))}sendObjectBackwards(t,e){if(!t)return!1;let i=this._objects.indexOf(t);if(0!==i){let s=this.findNewLowerIndex(t,i,e);return tt(this._objects,t),this._objects.splice(s,0,t),this._onStackOrderChanged(t),!0}return!1}bringObjectForward(t,e){if(!t)return!1;let i=this._objects.indexOf(t);if(i!==this._objects.length-1){let s=this.findNewUpperIndex(t,i,e);return tt(this._objects,t),this._objects.splice(s,0,t),this._onStackOrderChanged(t),!0}return!1}moveObjectTo(t,e){return t!==this._objects[e]&&(tt(this._objects,t),this._objects.splice(e,0,t),this._onStackOrderChanged(t),!0)}findNewLowerIndex(t,e,i){let s;if(i){s=e;for(let i=e-1;i>=0;--i)if(t.isOverlapping(this._objects[i])){s=i;break}}else s=e-1;return s}findNewUpperIndex(t,e,i){let s;if(i){s=e;for(let i=e+1;i<this._objects.length;++i)if(t.isOverlapping(this._objects[i])){s=i;break}}else s=e+1;return s}collectObjects({left:t,top:e,width:i,height:s},{includeIntersecting:r=!0}={}){let n=[],o=new st(t,e),a=o.add(new st(i,s));for(let t=this._objects.length-1;t>=0;t--){let e=this._objects[t];e.selectable&&e.visible&&(r&&e.intersectsWithRect(o,a)||e.isContainedWithinRect(o,a)||r&&e.containsPoint(o)||r&&e.containsPoint(a))&&n.push(e)}return n}}return e}var at=class extends Z{_setOptions(t={}){for(let e in t)this.set(e,t[e])}_setObject(t){for(let e in t)this._set(e,t[e])}set(t,e){return"object"==typeof t?this._setObject(t):this._set(t,e),this}_set(t,e){this[t]=e}toggle(t){let e=this.get(t);return"boolean"==typeof e&&this.set(t,!e),this}get(t){return this[t]}};function ht(t){return _().requestAnimationFrame(t)}function lt(t){return _().cancelAnimationFrame(t)}let ct=0,ut=()=>ct++,dt=()=>{let t=m().createElement("canvas");if(!t||void 0===t.getContext)throw new l("Failed to create `canvas` element");return t},pt=()=>m().createElement("img"),gt=t=>{var e;let i=ft(t);return null==(e=i.getContext("2d"))||e.drawImage(t,0,0),i},ft=t=>{let e=dt();return e.width=t.width,e.height=t.height,e},mt=(t,e,i)=>t.toDataURL(`image/${e}`,i),_t=(t,e,i)=>new Promise(((s,r)=>{t.toBlob(s,`image/${e}`,i)})),vt=t=>t*T,yt=t=>t/T,bt=t=>t.every(((t,e)=>t===k[e])),xt=(t,e,i)=>new st(t).transform(e,i),wt=t=>{let e=1/(t[0]*t[3]-t[1]*t[2]),i=[e*t[3],-e*t[1],-e*t[2],e*t[0],0,0],{x:s,y:r}=new st(t[4],t[5]).transform(i,!0);return i[4]=-s,i[5]=-r,i},Ct=(t,e,i)=>[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],i?0:t[0]*e[4]+t[2]*e[5]+t[4],i?0:t[1]*e[4]+t[3]*e[5]+t[5]],St=(t,e)=>t.reduceRight(((t,i)=>i&&t?Ct(i,t,e):i||t),void 0)||k.concat(),Tt=([t,e])=>Math.atan2(e,t),kt=([t,e])=>Math.sqrt(t*t+e*e),Dt=([,,t,e])=>Math.sqrt(t*t+e*e),Ot=t=>{let e=Tt(t),i=t[0]**2+t[1]**2,s=Math.sqrt(i),r=(t[0]*t[3]-t[2]*t[1])/s,n=Math.atan2(t[0]*t[2]+t[1]*t[3],i);return{angle:yt(e),scaleX:s,scaleY:r,skewX:yt(n),skewY:0,translateX:t[4]||0,translateY:t[5]||0}},Mt=(t,e=0)=>[1,0,0,1,t,e];function Pt({angle:t=0}={},{x:e=0,y:i=0}={}){let s=vt(t),r=et(s),n=it(s);return[r,n,-n,r,e?e-(r*e-n*i):0,i?i-(n*e+r*i):0]}let Et=(t,e=t)=>[t,0,0,e,0,0],At=t=>Math.tan(vt(t)),Ft=t=>[1,0,At(t),1,0,0],It=t=>[1,At(t),0,1,0,0],jt=({scaleX:t=1,scaleY:e=1,flipX:i=!1,flipY:s=!1,skewX:r=0,skewY:n=0})=>{let o=Et(i?-t:t,s?-e:e);return r&&(o=Ct(o,Ft(r),!0)),n&&(o=Ct(o,It(n),!0)),o},Lt=t=>{let{translateX:e=0,translateY:i=0,angle:s=0}=t,r=Mt(e,i);s&&(r=Ct(r,Pt({angle:s})));let n=jt(t);return bt(n)||(r=Ct(r,n)),r},Rt=(t,{signal:e,crossOrigin:i=null}={})=>new Promise((function(s,r){if(e&&e.aborted)return r(new c("loadImage"));let n,o=pt();e&&(n=function(t){o.src="",r(t)},e.addEventListener("abort",n,{once:!0}));let a=function(){o.onload=o.onerror=null,n&&(null==e||e.removeEventListener("abort",n)),s(o)};
1t?(o.onload=a,o.onerror=function(){n&&(null==e||e.removeEventListener("abort",n)),r(new l(`Error loading ${o.src}`))},i&&(o.crossOrigin=i),o.src=t):a()})),zt=(t,{signal:e,reviver:i=x}={})=>new Promise(((s,r)=>{let n=[];e&&e.addEventListener("abort",r,{once:!0}),Promise.allSettled(t.map((t=>J.getClass(t.type).fromObject(t,{signal:e})))).then((async e=>{for(let[s,r]of e.entries())if("fulfilled"===r.status&&(await i(t[s],r.value),n.push(r.value)),"rejected"===r.status){let e=await i(t[s],void 0,r.reason);e&&n.push(e)}s(n)})).catch((t=>{n.forEach((t=>{t.dispose&&t.dispose()})),r(t)})).finally((()=>{e&&e.removeEventListener("abort",r)}))})),Bt=(t,{signal:e}={})=>new Promise(((i,s)=>{let r=[];e&&e.addEventListener("abort",s,{once:!0});let n=Object.values(t).map((t=>t&&t.type&&J.has(t.type)?zt([t],{signal:e}).then((([t])=>(r.push(t),t))):t)),o=Object.keys(t);Promise.all(n).then((t=>t.reduce(((t,e,i)=>(t[o[i]]=e,t)),{}))).then(i).catch((t=>{r.forEach((t=>{t.dispose&&t.dispose()})),s(t)})).finally((()=>{e&&e.removeEventListener("abort",s)}))})),Ht=(t,e=[])=>e.reduce(((e,i)=>(i in t&&(e[i]=t[i]),e)),{}),Wt=(t,e)=>Object.keys(t).reduce(((i,s)=>(e(t[s],s,t)&&(i[s]=t[s]),i)),{}),Yt=(t,e)=>parseFloat(Number(t).toFixed(e)),Nt=t=>"matrix("+t.map((t=>Yt(t,a.NUM_FRACTION_DIGITS))).join(" ")+")",Xt=t=>!!t&&void 0!==t.toLive,$t=t=>!!t&&"function"==typeof t.toObject,Vt=t=>!!t&&void 0!==t.offsetX&&"source"in t,Gt=t=>!!t&&"multiSelectionStacking"in t;function Ut(t){let e=t&&Kt(t),i=0,s=0;if(!t||!e)return{left:i,top:s};let r=t,n=e.documentElement,o=e.body||{scrollLeft:0,scrollTop:0};for(;r&&(r.parentNode||r.host)&&(r=r.parentNode||r.host,r===e?(i=o.scrollLeft||n.scrollLeft||0,s=o.scrollTop||n.scrollTop||0):(i+=r.scrollLeft||0,s+=r.scrollTop||0),1!==r.nodeType||"fixed"!==r.style.position););return{left:i,top:s}}let Kt=t=>t.ownerDocument||null,qt=t=>{var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||null},Jt=(t,e,{width:i,height:s},r=1)=>{t.width=i,t.height=s,r>1&&(t.setAttribute("width",(i*r).toString()),t.setAttribute("height",(s*r).toString()),e.scale(r,r))},Qt=(t,{width:e,height:i})=>{e&&(t.style.width="number"==typeof e?`${e}px`:e),i&&(t.style.height="number"==typeof i?`${i}px`:i)};function Zt(t){return void 0!==t.onselectstart&&(t.onselectstart=()=>!1),t.style.userSelect=E,t}var te=class{constructor(t){n(this,"_originalCanvasStyle",void 0),n(this,"lower",void 0);let e=this.createLowerCanvas(t);this.lower={el:e,ctx:e.getContext("2d")}}createLowerCanvas(t){let e=(i=t)&&void 0!==i.getContext?t:t&&m().getElementById(t)||dt();var i;if(e.hasAttribute("data-fabric"))throw new l("Trying to initialize a canvas that has already been initialized. Did you forget to dispose the canvas?");return this._originalCanvasStyle=e.style.cssText,e.setAttribute("data-fabric","main"),e.classList.add("lower-canvas"),e}cleanupDOM({width:t,height:e}){let{el:i}=this.lower;i.classList.remove("lower-canvas"),i.removeAttribute("data-fabric"),i.setAttribute("width",`${t}`),i.setAttribute("height",`${e}`),i.style.cssText=this._originalCanvasStyle||"",this._originalCanvasStyle=void 0}setDimensions(t,e){let{el:i,ctx:s}=this.lower;Jt(i,s,t,e)}setCSSDimensions(t){Qt(this.lower.el,t)}calcOffset(){return function(t){var e;let i=t&&Kt(t),s={left:0,top:0};if(!i)return s;let r=(null==(e=qt(t))?void 0:e.getComputedStyle(t,null))||{};s.left+=parseInt(r.borderLeftWidth,10)||0,s.top+=parseInt(r.borderTopWidth,10)||0,s.left+=parseInt(r.paddingLeft,10)||0,s.top+=parseInt(r.paddingTop,10)||0;let n={left:0,top:0},o=i.documentElement;void 0!==t.getBoundingClientRect&&(n=t.getBoundingClientRect());let a=Ut(t);return{left:n.left+a.left-(o.clientLeft||0)+s.left,top:n.top+a.top-(o.clientTop||0)+s.top}}(this.lower.el)}dispose(){f().dispose(this.lower.el),delete this.lower}};let ee={backgroundVpt:!0,backgroundColor:"",overlayVpt:!0,overlayColor:"",includeDefaultValues:!0,svgViewportTransformation:!0,renderOnAddRemove:!0,skipOffscreen:!0,enableRetinaScaling:!0,imageSmoothingEnabled:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,viewportTransform:[...k],patternQuality:"best"};var ie=i({capitalize:()=>re,escapeXml:()=>ne,graphemeSplit:()=>oe});let se,re=(t,e=!1)=>`${t.charAt(0).toUpperCase()}${e?t.slice(1):t.slice(1).toLowerCase()}`,ne=t=>t.toString().replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),oe=t=>{if(se||se||(se="Intl"in _()&&"Segmenter"in Intl&&new Intl.Segmenter(void 0,{granularity:"grapheme"})),se){let e=se.segment(t);return Array.from(e).map((({segment:t})=>t))}return ae(t)},ae=t=>{let e=[];for(let i,s=0;s<t.length;s++)!1!==(i=he(t,s))&&e.push(i);return e},he=(t,e)=>{let i=t.charCodeAt(e);if(isNaN(i))return"";if(i<55296||i>57343)return t.charAt(e);if(55296<=i&&i<=56319){if(t.length<=e+1)throw"High surrogate without following low surrogate";let i=t.charCodeAt(e+1);if(56320>i||i>57343)throw"High surrogate without following low surrogate";return t.charAt(e)+t.charAt(e+1)}if(0===e)throw"Low surrogate without preceding high surrogate";let s=t.charCodeAt(e-1);if(55296>s||s>56319)throw"Low surrogate without preceding high surrogate";return!1};var le=class t extends(ot(at)){get lowerCanvasEl(){var t;return null==(t=this.elements.lower)?void 0:t.el}get contextContainer(){var t;return null==(t=this.elements.lower)?void 0:t.ctx}static getDefaults(){return t.ownDefaults}constructor(t,e={}){super(),Object.assign(this,this.constructor.getDefaults()),this.set(e),this.initElements(t),this._setDimensionsImpl({width:this.width||this.elements.lower.el.width||0,height:this.height||this.elements.lower.el.height||0}
vendor: 19,405 bytes, line 1
1),this.skipControlsDrawing=!1,this.viewportTransform=[...this.viewportTransform],this.calcViewportBoundaries()}initElements(t){this.elements=new te(t)}add(...t){let e=super.add(...t);return t.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),e}insertAt(t,...e){let i=super.insertAt(t,...e);return e.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),i}remove(...t){let e=super.remove(...t);return e.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),e}_onObjectAdded(t){t.canvas&&t.canvas!==this&&(h("warn","Canvas is trying to add an object that belongs to a different canvas.\nResulting to default behavior: removing object from previous canvas and adding to new canvas"),t.canvas.remove(t)),t._set("canvas",this),t.setCoords(),this.fire("object:added",{target:t}),t.fire("added",{target:this})}_onObjectRemoved(t){t._set("canvas",void 0),this.fire("object:removed",{target:t}),t.fire("removed",{target:this})}_onStackOrderChanged(){this.renderOnAddRemove&&this.requestRenderAll()}getRetinaScaling(){return this.enableRetinaScaling?v():1}calcOffset(){return this._offset=this.elements.calcOffset()}getWidth(){return this.width}getHeight(){return this.height}_setDimensionsImpl(t,{cssOnly:e=!1,backstoreOnly:i=!1}={}){if(!e){let e={width:this.width,height:this.height,...t};this.elements.setDimensions(e,this.getRetinaScaling()),this.hasLostContext=!0,this.width=e.width,this.height=e.height}i||this.elements.setCSSDimensions(t),this.calcOffset()}setDimensions(t,e){this._setDimensionsImpl(t,e),e&&e.cssOnly||this.requestRenderAll()}getZoom(){return kt(this.viewportTransform)}setViewportTransform(t){this.viewportTransform=t,this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll()}zoomToPoint(t,e){let i=t,s=[...this.viewportTransform],r=xt(t,wt(s));s[0]=e,s[3]=e;let n=xt(r,s);s[4]+=i.x-n.x,s[5]+=i.y-n.y,this.setViewportTransform(s)}setZoom(t){this.zoomToPoint(new st(0,0),t)}absolutePan(t){let e=[...this.viewportTransform];return e[4]=-t.x,e[5]=-t.y,this.setViewportTransform(e)}relativePan(t){return this.absolutePan(new st(-t.x-this.viewportTransform[4],-t.y-this.viewportTransform[5]))}getElement(){return this.elements.lower.el}clearContext(t){t.clearRect(0,0,this.width,this.height)}getContext(){return this.elements.lower.ctx}clear(){this.remove(...this.getObjects()),this.backgroundImage=void 0,this.overlayImage=void 0,this.backgroundColor="",this.overlayColor="",this.clearContext(this.getContext()),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll()}renderAll(){this.cancelRequestedRender(),this.destroyed||this.renderCanvas(this.getContext(),this._objects)}renderAndReset(){this.nextRenderHandle=0,this.renderAll()}requestRenderAll(){this.nextRenderHandle||this.disposed||this.destroyed||(this.nextRenderHandle=ht((()=>this.renderAndReset())))}calcViewportBoundaries(){let t=this.width,e=this.height,i=wt(this.viewportTransform),s=xt({x:0,y:0},i),r=xt({x:t,y:e},i),n=s.min(r),o=s.max(r);return this.vptCoords={tl:n,tr:new st(o.x,n.y),bl:new st(n.x,o.y),br:o}}cancelRequestedRender(){this.nextRenderHandle&&(lt(this.nextRenderHandle),this.nextRenderHandle=0)}drawControls(t){}renderCanvas(t,e){if(this.destroyed)return;let i=this.viewportTransform,s=this.clipPath;this.calcViewportBoundaries(),this.clearContext(t),t.imageSmoothingEnabled=this.imageSmoothingEnabled,t.patternQuality=this.patternQuality,this.fire("before:render",{ctx:t}),this._renderBackground(t),t.save(),t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this._renderObjects(t,e),t.restore(),this.controlsAboveOverlay||this.skipControlsDrawing||this.drawControls(t),s&&(s._set("canvas",this),s.shouldCache(),s._transformDone=!0,s.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(t,s)),this._renderOverlay(t),this.controlsAboveOverlay&&!this.skipControlsDrawing&&this.drawControls(t),this.fire("after:render",{ctx:t}),this.__cleanupTask&&(this.__cleanupTask(),this.__cleanupTask=void 0)}drawClipPathOnCanvas(t,e){let i=this.viewportTransform;t.save(),t.transform(...i),t.globalCompositeOperation="destination-in",e.transform(t),t.scale(1/e.zoomX,1/e.zoomY),t.drawImage(e._cacheCanvas,-e.cacheTranslationX,-e.cacheTranslationY),t.restore()}_renderObjects(t,e){for(let i=0,s=e.length;i<s;++i)e[i]&&e[i].render(t)}_renderBackgroundOrOverlay(t,e){let i=this[`${e}Color`],s=this[`${e}Image`],r=this.viewportTransform,n=this[`${e}Vpt`];if(!i&&!s)return;let o=Xt(i);if(i){if(t.save(),t.beginPath(),t.moveTo(0,0),t.lineTo(this.width,0),t.lineTo(this.width,this.height),t.lineTo(0,this.height),t.closePath(),t.fillStyle=o?i.toLive(t):i,n&&t.transform(...r),o){t.transform(1,0,0,1,i.offsetX||0,i.offsetY||0);let e=i.gradientTransform||i.patternTransform;e&&t.transform(...e)}t.fill(),t.restore()}if(s){t.save();let{skipOffscreen:e}=this;this.skipOffscreen=n,n&&t.transform(...r),s.render(t),this.skipOffscreen=e,t.restore()}}_renderBackground(t){this._renderBackgroundOrOverlay(t,"background")}_renderOverlay(t){this._renderBackgroundOrOverlay(t,"overlay")}getCenterPoint(){return new st(this.width/2,this.height/2)}centerObjectH(t){return this._centerObject(t,new st(this.getCenterPoint().x,t.getCenterPoint().y))}centerObjectV(t){return this._centerObject(t,new st(t.getCenterPoint().x,this.getCenterPoint().y))}centerObject(t){return this._centerObject(t,this.getCenterPoint())}viewportCenterObject(t){return this._centerObject(t,this.getVpCenter())}viewportCenterObjectH(t){return this._centerObject(t,new st(this.getVpCenter().x,t.getCenterPoint().y))}viewportCenterObjectV(t){return this._centerObject(t,new st(t.getCenterPoint().x,this.getVpCenter().y))}getVpCenter(){return xt(this.getCenterPoint(),wt(this.viewportTransform))}_centerObject(t,e){t.setXY(e,D,D),t.setCoords(),this.renderOnAddRemove&&this.requestRenderAll()}toDatalessJSON(t){return this.toDatalessObject(t)}toObject(t){return this._toObjectMethod("toObject",t)}toJSON(){return this.toObject()}toDatalessObject(t){return this._toObjectMethod("toDatalessObject",t)}_toObjectMethod(t,e){let i=this.clipPath,s=i&&!i.excludeFromExport?this._toObject(i,t,e):null;return{version:b,...Ht(this,e),objects:this._objects.filter((t=>!t.excludeFromExport)).map((i=>this._toObject(i,t,e))),...this.__serializeBgOverlay(t,e),...s?{clipPath:s}:null}}_toObject(t,e,i){let s;this.includeDefaultValues||(s=t.includeDefaultValues,t.includeDefaultValues=!1);let r=t[e](i);return this.includeDefaultValues||(t.includeDefaultValues=!!s),r}__serializeBgOverlay(t,e){let i={},s=this.backgroundImage,r=this.overlayImage,n=this.backgroundColor,o=this.overlayColor;return Xt(n)?n.excludeFromExport||(i.background=n.toObject(e)):n&&(i.background=n),Xt(o)?o.excludeFromExport||(i.overlay=o.toObject(e)):o&&(i.overlay=o),s&&!s.excludeFromExport&&(i.backgroundImage=this._toObject(s,t,e)),r&&!r.excludeFromExport&&(i.overlayImage=this._toObject(r,t,e)),i}toSVG(t={},e){t.reviver=e;let i=[];var s;return this._setSVGPreamble(i,t),this._setSVGHeader(i,t),this.clipPath&&i.push(`<g clip-path="url(#${ne(null==(s=this.clipPath.clipPathId)?"":s)})" >\n`),this._setSVGBgOverlayColor(i,"background"),this._setSVGBgOverlayImage(i,"backgroundImage",e),this._setSVGObjects(i,e),this.clipPath&&i.push("</g>\n"),this._setSVGBgOverlayColor(i,"overlay"),this._setSVGBgOverlayImage(i,"overlayImage",e),i.push("</svg>"),i.join("")}_setSVGPreamble(t,e){e.suppressPreamble||t.push('<?xml version="1.0" encoding="',e.encoding||"UTF-8",'" standalone="no" ?>\n','<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ','"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')}_setSVGHeader(t,e){let i,s=e.width||`${this.width}`,r=e.height||`${this.height}`,n=a.NUM_FRACTION_DIGITS,o=e.viewBox;if(o)i=`viewBox="${o.x} ${o.y} ${o.width} ${o.height}" `;else if(this.svgViewportTransformation){let t=this.viewportTransform;i=`viewBox="${Yt(-t[4]/t[0],n)} ${Yt(-t[5]/t[3],n)} ${Yt(this.width/t[0],n)} ${Yt(this.height/t[3],n)}" `}else i=`viewBox="0 0 ${this.width} ${this.height}" `;t.push("<svg ",'xmlns="http://www.w3.org/2000/svg" ','xmlns:xlink="http://www.w3.org/1999/xlink" ','version="1.1" ','width="',s,'" ','height="',r,'" ',i,'xml:space="preserve">\n',"<desc>Created with Fabric.js ",b,"</desc>\n","<defs>\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),"</defs>\n")}createSVGClipPathMarkup(t){let e=this.clipPath;return e?(e.clipPathId=`CLIPPATH_${ut()}`,`<clipPath id="${e.clipPathId}" >\n${e.toClipPathSVG(t.reviver)}</clipPath>\n`):""}createSVGRefElementsMarkup(){return["background","overlay"].map((t=>{let e=this[`${t}Color`];if(Xt(e)){let i=this[`${t}Vpt`],s=this.viewportTransform,r={isType:()=>!1,width:this.width/(i?s[0]:1),height:this.height/(i?s[3]:1)};return e.toSVG(r,{additionalTransform:i?Nt(s):""})}})).join("")}createSVGFontFacesMarkup(){let t=[],e={},i=a.fontPaths;this._objects.forEach((function e(i){t.push(i),nt(i)&&i._objects.forEach(e)})),t.forEach((t=>{if(!(s=t)||"function"!=typeof s._renderText)return;var s;let{styles:r,fontFamily:n}=t;!e[n]&&i[n]&&(e[n]=!0,r&&Object.values(r).forEach((t=>{Object.values(t).forEach((({fontFamily:t=""})=>{!e[t]&&i[t]&&(e[t]=!0)}))})))}));let s=Object.keys(e).map((t=>`\t\t@font-face {\n\t\t\tfont-family: '${t}';\n\t\t\tsrc: url('${i[t]}');\n\t\t}\n`)).join("");return s?`\t<style type="text/css"><![CDATA[\n${s}]]></style>\n`:""}_setSVGObjects(t,e){this.forEachObject((i=>{i.excludeFromExport||this._setSVGObject(t,i,e)}))}_setSVGObject(t,e,i){t.push(e.toSVG(i))}_setSVGBgOverlayImage(t,e,i){let s=this[e];s&&!s.excludeFromExport&&s.toSVG&&t.push(s.toSVG(i))}_setSVGBgOverlayColor(t,e){let i=this[`${e}Color`];if(i)if(Xt(i)){let s=i.repeat||"",r=this.width,n=this.height,o=this[`${e}Vpt`]?Nt(wt(this.viewportTransform)):"";t.push(`<rect transform="${o} translate(${r/2},${n/2})" x="${i.offsetX-r/2}" y="${i.offsetY-n/2}" width="${"repeat-y"!==s&&"no-repeat"!==s||!Vt(i)?r:i.source.width}" height="${"repeat-x"!==s&&"no-repeat"!==s||!Vt(i)?n:i.source.height}" fill="url(#SVGID_${i.id})"></rect>\n`)}else t.push('<rect x="0" y="0" width="100%" height="100%" ','fill="',i,'"',"></rect>\n")}loadFromJSON(t,e,{signal:i}={}){if(!t)return Promise.reject(new l("`json` is undefined"));let{objects:s=[],...r}="string"==typeof t?JSON.parse(t):t,{backgroundImage:n,background:o,overlayImage:a,overlay:h,clipPath:c}=r,u=this.renderOnAddRemove;return this.renderOnAddRemove=!1,Promise.all([zt(s,{reviver:e,signal:i}),Bt({backgroundImage:n,backgroundColor:o,overlayImage:a,overlayColor:h,clipPath:c},{signal:i})]).then((([t,e])=>(this.clear(),this.add(...t),this.set(r),this.set(e),this.renderOnAddRemove=u,this)))}clone(t){let e=this.toObject(t);return this.cloneWithoutData().loadFromJSON(e)}cloneWithoutData(){let t=ft(this);return new this.constructor(t)}toDataURL(t={}){let{format:e="png",quality:i=1,multiplier:s=1,enableRetinaScaling:r=!1}=t,n=s*(r?this.getRetinaScaling():1);return mt(this.toCanvasElement(n,t),e,i)}toBlob(t={}){let{format:e="png",quality:i=1,multiplier:s=1,enableRetinaScaling:r=!1}=t,n=s*(r?this.getRetinaScaling():1);return _t(this.toCanvasElement(n,t),e,i)}toCanvasElement(t=1,{width:e,height:i,left:s,top:r,filter:n}={}){let o=(e||this.width)*t,a=(i||this.height)*t,h=this.getZoom(),l=this.width,c=this.height,u=this.skipControlsDrawing,d=h*t,p=this.viewportTransform,g=[d,0,0,d,(p[4]-(s||0))*t,(p[5]-(r||0))*t],f=this.enableRetinaScaling,m=ft({width:o,height:a}),_=n?this._objects.filter((t=>n(t))):this._objects;return this.enableRetinaScaling=!1,this.viewportTransform=g,this.width=o,this.height=a,this.skipControlsDrawing=!0,this.calcViewportBoundaries(),this.renderCanvas(m.getContext("2d"),_),this.viewportTransform=p,this.width=l,this.height=c,this.calcViewportBoundaries(),this.enableRetinaScaling=f,this.skipControlsDrawing=u,m}dispose(){return!this.disposed&&this.elements.cleanupDOM({width:this.width,height:this.height}),Q.cancelByCanvas(this),this.disposed=!0,new Promise(((t,e)=>{let i=()=>{this.destroy(),t(!0)};i.kill=e,this.__cleanupTask&&this.__cleanupTask.kill("aborted"),this.destroyed?t(!1):this.nextRenderHandle?this.__cleanupTask=i:i()}))}destroy(){this.destroyed=!0,this.cancelRequestedRender(),this.forEachObject((t=>t.dispose())),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose(),this.backgroundImage=void 0,this.overlayImage&&this.overlayImage.dispose(),this.overlayImage=void 0,this.elements.dispose()}toString(){return`#<Canvas (${this.complexity()}): { objects: ${this._objects.length} }>`}};n(le,"ownDefaults",ee);let ce=["touchstart","touchmove","touchend"],ue=t=>{let e=Ut(t.target),i=function(t){let e=t.changedTouches;return e&&e[0]?e[0]:t}(t);return new st(i.clientX+e.left,i.clientY+e.top)},de=t=>ce.includes(t.type)||"touch"===t.pointerType,pe=t=>{t.preventDefault(),t.stopPropagation()},ge=t=>{let e=0,i=0,s=0,r=0;for(let n=0,o=t.length;n<o;n++){let{x:o,y:a}=t[n];(o>s||!n)&&(s=o),(o<e||!n)&&(e=o),(a>r||!n)&&(r=a),(a<i||!n)&&(i=a)}return{left:e,top:i,width:s-e,height:r-i}},fe=(t,e)=>{_e(t,Ct(wt(e),t.calcOwnMatrix()))},me=(t,e)=>_e(t,Ct(e,t.calcOwnMatrix())),_e=(t,e)=>{let{translateX:i,translateY:s,scaleX:r,scaleY:n,...o}=Ot(e),a=new st(i,s);t.flipX=!1,t.flipY=!1,Object.assign(t,o),t.set({scaleX:r,scaleY:n}),t.setPositionByOrigin(a,D,D)},ve=t=>{t.scaleX=1,t.scaleY=1,t.skewX=0,t.skewY=0,t.flipX=!1,t.flipY=!1,t.rotate(0)},ye=t=>({scaleX:t.scaleX,scaleY:t.scaleY,skewX:t.skewX,skewY:t.skewY,angle:t.angle,left:t.left,flipX:t.flipX,flipY:t.flipY,top:t.top}),be=(t,e,i)=>{let s=t/2,r=e/2,n=ge([new st(-s,-r),new st(s,-r),new st(-s,r),new st(s,r)].map((t=>t.transform(i))));return new st(n.width,n.height)},xe=(t=k,e=k)=>Ct(wt(e),t),we=(t,e=k,i=k)=>t.transform(xe(e,i)),Ce=(t,e=k,i=k)=>t.transform(xe(e,i),!0),Se=(t,e,i)=>{let s=xe(e,i);return _e(t,Ct(s,t.calcOwnMatrix())),s},Te={left:-.5,top:-.5,center:0,bottom:.5,right:.5},ke=t=>"string"==typeof t?Te[t]:t-.5,De=new st(1,0),Oe=new st,Me=(t,e)=>t.rotate(e),Pe=(t,e)=>new st(e).subtract(t),Ee=t=>t.distanceFrom(Oe),Ae=(t,e)=>Math.atan2(Le(t,e),Re(t,e)),Fe=t=>Ae(De,t),Ie=t=>t.eq(Oe)?t:t.scalarDivide(Ee(t)),je=(t,e=!0)=>Ie(new st(-t.y,t.x).scalarMultiply(e?1:-1)),Le=(t,e)=>t.x*e.y-t.y*e.x,Re=(t,e)=>t.x*e.x+t.y*e.y,ze=(t,e,i)=>{if(t.eq(e)||t.eq(i))return!0;let s=Le(e,i),r=Le(e,t),n=Le(i,t);return s>=0?r>=0&&n<=0:!(r<=0&&n>=0)},Be="not-allowed";function He(t){return ke(t.originX)===ke("center")&&ke(t.originY)===ke("center")}function We(t){return.5-ke(t)}let Ye=(t,e)=>t[e],Ne=(t,e,i,s)=>({e:t,transform:e,pointer:new st(i,s)});function Xe(t,e,i){let s=i,r=Fe(Pe(we(t.getCenterPoint(),t.canvas.viewportTransform,void 0),s))+S;return Math.round(r%S/C)}function $e({target:t,corner:e},i,s,r,n){var o;let a=t.controls[e],h=(null==(o=t.canvas)?void 0:o.getZoom())||1,l=t.padding/h,c=function(t,e,i,s){let r=t.getRelativeCenterPoint(),n=void 0!==i&&void 0!==s?t.translateToGivenOrigin(r,D,D,i,s):new st(t.left,t.top);return(t.angle?e.rotate(-vt(t.angle),r):e).subtract(n)}(t,new st(r,n),i,s);return c.x>=l&&(c.x-=l),c.x<=-l&&(c.x+=l),c.y>=l&&(c.y-=l),c.y<=l&&(c.y+=l),c.x-=a.offsetX,c.y-=a.offsetY,c}let Ve=new RegExp(String.raw`[\0-\x1F\x7F;<>\\]|\/\*|\*\/|url\s*\(|expression\s*\(|(?:java|vb)script\s*:|data\s*:|@import\b`,"iu"),Ge=t=>"string"==typeof t&&t.trim().length>0&&!Ve.test(t),Ue=(t,e="")=>{let i=Number(t);return Number.isFinite(i)?`${i}`:e},Ke=(t,e="")=>"string"==typeof t&&Ge(t)?t:e,qe=t=>t.replace(/\s+/g," "),Je={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#0FF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000",blanchedalmond:"#FFEBCD",blue:"#00F",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#0FF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#F0F",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#0F0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#F0F",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#639",red:"#F00",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFF",whitesmoke:"#F5F5F5",yellow:"#FF0",yellowgreen:"#9ACD32"},Qe=(t,e,i)=>(i<0&&(i+=1),i>1&&--i,i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t),Ze=(t,e,i,s)=>{t/=255,e/=255,i/=255;let r,n,o=Math.max(t,e,i),a=Math.min(t,e,i),h=(o+a)/2;if(o===a)r=n=0;else{let s=o-a;switch(n=h>.5?s/(2-o-a):s/(o+a),o){case t:r=(e-i)/s+(e<i?6:0);break;case e:r=(i-t)/s+2;break;case i:r=(t-e)/s+4}r/=6}return[Math.round(360*r),Math.round(100*n),Math.round(100*h),s]},ti=(t="1")=>parseFloat(t)/(t.endsWith("%")?100:1),ei=t=>Math.min(Math.round(t),255).toString(16).toUpperCase().padStart(2,"0"),ii=([t,e,i,s=1])=>{let r=Math.round(.3*t+.59*e+.11*i);return[r,r,r,s]};var si=class t{constructor(e){if(n(this,"isUnrecognised",!1),e)if(e instanceof t)this.setSource([...e._source]);else if(Array.isArray(e)){let[t,i,s,r=1]=e;this.setSource([t,i,s,r])}else this.setSource(this._tryParsingColor(e));else this.setSource([0,0,0,1])}_tryParsingColor(e){return(e=e.toLowerCase())in Je&&(e=Je[e]),"transparent"===e?[255,255,255,0]:t.sourceFromHex(e)||t.sourceFromRgb(e)||t.sourceFromHsl(e)||(this.isUnrecognised=!0)&&[0,0,0,1]}getSource(){return this._source}setSource(t){this._source=t}toRgb(){let[t,e,i]=this.getSource();return`rgb(${t},${e},${i})`}
1toRgba(){return`rgba(${this.getSource().join(",")})`}toHsl(){let[t,e,i]=Ze(...this.getSource());return`hsl(${t},${e}%,${i}%)`}toHsla(){let[t,e,i,s]=Ze(...this.getSource());return`hsla(${t},${e}%,${i}%,${s})`}toHex(){return this.toHexa().slice(0,6)}toHexa(){let[t,e,i,s]=this.getSource();return`${ei(t)}${ei(e)}${ei(i)}${ei(Math.round(255*s))}`}getAlpha(){return this.getSource()[3]}setAlpha(t){return this._source[3]=t,this}toGrayscale(){return this.setSource(ii(this.getSource())),this}toBlackWhite(t){let[e,,,i]=ii(this.getSource()),s=e<(t||127)?0:255;return this.setSource([s,s,s,i]),this}overlayWith(e){e instanceof t||(e=new t(e));let i=this.getSource(),s=e.getSource(),[r,n,o]=i.map(((t,e)=>Math.round(.5*t+.5*s[e])));return this.setSource([r,n,o,i[3]]),this}static fromRgb(e){return t.fromRgba(e)}static fromRgba(e){return new t(t.sourceFromRgb(e))}static sourceFromRgb(t){let e=qe(t).match(/^rgba?\(\s?(\d{0,3}(?:\.\d+)?%?)\s?[\s|,]\s?(\d{0,3}(?:\.\d+)?%?)\s?[\s|,]\s?(\d{0,3}(?:\.\d+)?%?)\s?(?:\s?[,/]\s?(\d{0,3}(?:\.\d+)?%?)\s?)?\)$/i);if(e){let[t,i,s]=e.slice(1,4).map((t=>{let e=parseFloat(t);return t.endsWith("%")?Math.round(2.55*e):e}));return[t,i,s,ti(e[4])]}}static fromHsl(e){return t.fromHsla(e)}static fromHsla(e){return new t(t.sourceFromHsl(e))}static sourceFromHsl(e){let i=qe(e).match(/^hsla?\(\s?([+-]?\d{0,3}(?:\.\d+)?(?:deg|turn|rad)?)\s?[\s|,]\s?(\d{0,3}(?:\.\d+)?%?)\s?[\s|,]\s?(\d{0,3}(?:\.\d+)?%?)\s?(?:\s?[,/]\s?(\d*(?:\.\d+)?%?)\s?)?\)$/i);if(!i)return;let s,r,n,o=(t.parseAngletoDegrees(i[1])%360+360)%360/360,a=parseFloat(i[2])/100,h=parseFloat(i[3])/100;if(0===a)s=r=n=h;else{let t=h<=.5?h*(a+1):h+a-h*a,e=2*h-t;s=Qe(e,t,o+1/3),r=Qe(e,t,o),n=Qe(e,t,o-1/3)}return[Math.round(255*s),Math.round(255*r),Math.round(255*n),ti(i[4])]}static fromHex(e){return new t(t.sourceFromHex(e))}static sourceFromHex(t){if(t.match(/^#?(([0-9a-f]){3,4}|([0-9a-f]{2}){3,4})$/i)){let e,i=t.slice(t.indexOf("#")+1);e=i.length<=4?i.split("").map((t=>t+t)):i.match(/.{2}/g);let[s,r,n,o=255]=e.map((t=>parseInt(t,16)));return[s,r,n,o/255]}}static parseAngletoDegrees(t){let e=t.toLowerCase(),i=parseFloat(e);return e.includes("rad")?yt(i):e.includes("turn")?360*i:i}};let ri=t=>{let e=["instantiated_by_use","style","id","class"];switch(t){case"linearGradient":return e.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);case"radialGradient":return e.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);case"stop":return e.concat(["offset","stop-color","stop-opacity"])}return e},ni=(t,e=16)=>{let i=/\D{0,2}$/.exec(t),s=parseFloat(t),r=a.DPI;switch(null==i?void 0:i[0]){case"mm":return s*r/25.4;case"cm":return s*r/2.54;case"in":return s*r;case"pt":return s*r/72;case"pc":return s*r/72*12;case"em":return s*e;default:return s}},oi=t=>{let[e,i]=t.trim().split(" "),[s,r]=(n=e)&&"none"!==n?[n.slice(1,4),n.slice(5,8)]:"none"===n?[n,n]:["Mid","Mid"];var n;return{meetOrSlice:i||"meet",alignX:s,alignY:r}},ai=(t,e,i=!0)=>{let s,r;if(e)if(e.toLive)s=`url(#SVGID_${ne(e.id)})`;else{let t=String(e);if(Ge(t)){let e=new si(t),i=e.getAlpha();s=e.toRgb(),1!==i&&(r=i.toString())}else s=new si("black").toRgb()}else s="none";return i?`${t}: ${s}; ${r?`${t}-opacity: ${r}; `:""}`:`${t}="${s}" ${r?`${t}-opacity="${r}" `:""}`};var hi=class{getSvgStyles(t){let e=null==this.fillRule?"nonzero":Ke(this.fillRule),i=null==this.strokeWidth?"0":Ue(this.strokeWidth),s=null==this.strokeDashArray?E:this.strokeDashArray.every((t=>Number.isFinite(Number(t))))?this.strokeDashArray.join(" "):"",r=null==this.strokeDashOffset?"0":Ue(this.strokeDashOffset),n=null==this.strokeLineCap?"butt":Ke(this.strokeLineCap),o=null==this.strokeLineJoin?"miter":Ke(this.strokeLineJoin),a=null==this.strokeMiterLimit?"4":Ue(this.strokeMiterLimit),h=null==this.opacity?"1":Ue(this.opacity),l=this.visible?"":" visibility: hidden;",c=t?"":this.getSvgFilter(),u=ai(V,this.fill);return[ai(G,this.stroke),i?`stroke-width: ${i}; `:"",s?`stroke-dasharray: ${s}; `:"",n?`stroke-linecap: ${n}; `:"",r?`stroke-dashoffset: ${r}; `:"",o?`stroke-linejoin: ${o}; `:"",a?`stroke-miterlimit: ${a}; `:"",u,e?`fill-rule: ${e}; `:"",h?`opacity: ${h};`:"",c,l].map((t=>ne(t))).join("")}getSvgFilter(){return this.shadow?`filter: url(#SVGID_${ne(this.shadow.id)});`:""}
vendor: 1,283 bytes, line 1
1getSvgCommons(){return[this.id?`id="${ne(String(this.id))}" `:"",this.clipPath?`clip-path="url(#${ne(this.clipPath.clipPathId)})" `:""].join("")}getSvgTransform(t,e=""){return`transform="${Nt(t?this.calcTransformMatrix():this.calcOwnMatrix())}${e}" `}_toSVG(t){return[""]}toSVG(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})}toClipPathSVG(t){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})}_createBaseClipPathSVGMarkup(t,{reviver:e,additionalTransform:i=""}={}){let s=[this.getSvgTransform(!0,i),this.getSvgCommons()].join(""),r=t.indexOf("COMMON_PARTS");return t[r]=s,e?e(t.join("")):t.join("")}_createBaseSVGMarkup(t,{noStyle:e,reviver:i,withShadow:s,additionalTransform:r}={}){let n,o=e?"":`style="${this.getSvgStyles()}" `,a=s?`style="${this.getSvgFilter()}" `:"",h=this.clipPath,l=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",c=h&&h.absolutePositioned,u=this.stroke,d=this.fill,p=this.shadow,g=[],f=t.indexOf("COMMON_PARTS");return h&&(h.clipPathId=`CLIPPATH_${ut()}`,n=`<clipPath id="${h.clipPathId}" >\n${h.toClipPathSVG(i)}</clipPath>\n`),c&&g.push("<g ",a,this.getSvgCommons()," >\n"),g.push("<g ",this.getSvgTransform(!1),c?"":a+this.getSvgCommons()," >\n"),t[f]=[o,l,e?"":this.addPaintOrder()," ",r?`transform="${r}
1" `:""].join(""),Xt(d)&&g.push(d.toSVG(this)),Xt(u)&&g.push(u.toSVG(this)),p&&g.push(p.toSVG(this)),h&&g.push(n),g.push(t.join("")),g.push("</g>\n"),c&&g.push("</g>\n"),i?i(g.join("")):g.join("")}addPaintOrder(){return"fill"===this.paintFirst?"":` paint-order="${ne(this.paintFirst)}" `}};function li(t){return RegExp("^("+t.join("|")+")\\b","i")}let ci="textDecorationThickness",ui="textDecorationColor",di=["fontSize","fontWeight","fontFamily","fontStyle"],pi=["underline","overline","linethrough"],gi=[...di,"lineHeight","text","charSpacing","textAlign","styles","path","pathStartOffset","pathSide","pathAlign"],fi=[...gi,...pi,"textBackgroundColor","direction",ci,ui],mi=[...di,...pi,G,"strokeWidth",V,"deltaY","textBackgroundColor",ci,ui],_i={_reNewline:A,_reSpacesAndTabs:/[ \t\r]/g,_reSpaceAndTab:/[ \t\r]/,_reWords:/\S+/g,fontSize:40,fontWeight:K,fontFamily:"Times New Roman",underline:!1,overline:!1,linethrough:!1,textAlign:O,fontStyle:K,lineHeight:1.16,textBackgroundColor:"",stroke:null,shadow:null,path:void 0,pathStartOffset:0,pathSide:O,pathAlign:"baseline",charSpacing:0,deltaY:0,direction:"ltr",CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.28167,overline:-.81333},_fontSizeMult:1.13,[ci]:66.667},vi="justify",yi=String.raw`[-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?`,bi=String.raw`(?:\s*,?\s+|\s*,\s*)`,xi="http://www.w3.org/2000/svg",wi=RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+yi+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+yi+"))?\\s+(.*)"),Ci={cx:O,x:O,r:"radius",cy:"top",y:"top",display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","letter-spacing":"charSpacing","paint-order":"paintFirst","stroke-dasharray":"strokeDashArray","stroke-dashoffset":"strokeDashOffset","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"textAnchor",opacity:"opacity","clip-path":"clipPath","clip-rule":"clipRule","vector-effect":"strokeUniform","image-rendering":"imageSmoothing","text-decoration-thickness":ci,"text-decoration-color":ui},Si="font-size",Ti="clip-path",ki=li(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),Di=li(["symbol","image","marker","pattern","view","svg"]),Oi=li(["symbol","g","a","svg","clipPath","defs"]),Mi=new RegExp(String.raw`^\s*(${yi})${bi}(${yi})${bi}(${yi})${bi}(${yi})\s*$`),Pi="(-?\\d+(?:\\.\\d*)?(?:px)?(?:\\s?|$))?",Ei=RegExp("(?:\\s|^)"+Pi+Pi+"("+yi+"?(?:px)?)?(?:\\s?|$)(?:$|\\s)");var Ai=class t{constructor(e={}){let i="string"==typeof e?t.parseShadow(e):e;Object.assign(this,t.ownDefaults,i),this.id=ut()}static parseShadow(t){let e=t.trim(),[,i=0,s=0,r=0]=(Ei.exec(e)||[]).map((t=>parseFloat(t)||0));return{color:(e.replace(Ei,"")||"rgb(0,0,0)").trim(),offsetX:i,offsetY:s,blur:r}}toString(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")}toSVG(t){let e=Me(new st(this.offsetX,this.offsetY),vt(-t.angle)),i=a.NUM_FRACTION_DIGITS,s=new si(this.color),r=40,n=40;return t.width&&t.height&&(r=100*Yt((Math.abs(e.x)+this.blur)/t.width,i)+20,n=100*Yt((Math.abs(e.y)+this.blur)/t.height,i)+20),t.flipX&&(e.x*=-1),t.flipY&&(e.y*=-1),`<filter id="SVGID_${ne(this.id)}" y="-${n}%" height="${100+2*n}%" x="-${r}%" width="${100+2*r}%" >\n\t<feGaussianBlur in="SourceAlpha" stdDeviation="${Yt(this.blur?this.blur/2:0,i)}"></feGaussianBlur>\n\t<feOffset dx="${Yt(e.x,i)}" dy="${Yt(e.y,i)}" result="oBlur" ></feOffset>\n\t<feFlood flood-color="${s.toRgb()}" flood-opacity="${s.getAlpha()}"/>\n\t<feComposite in2="oBlur" operator="in" />\n\t<feMerge>\n\t\t<feMergeNode></feMergeNode>\n\t\t<feMergeNode in="SourceGraphic"></feMergeNode>\n\t</feMerge>\n</filter>\n`}toObject(){let e={color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling,type:this.constructor.type},i=t.ownDefaults;return this.includeDefaultValues?e:Wt(e,((t,e)=>t!==i[e]))}static async fromObject(t){return new this(t)}};n(Ai,"ownDefaults",{color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1}),n(Ai,"type","shadow"),J.setClass(Ai,"shadow");let Fi=(t,e,i)=>Math.max(t,Math.min(e,i)),Ii=["top",O,Y,N,"flipX","flipY","originX","originY","angle","opacity","globalCompositeOperation","shadow","visible",X,$],ji=[V,G,"strokeWidth","strokeDashArray","width","height","paintFirst","strokeUniform","strokeLineCap","strokeDashOffset","strokeLineJoin","strokeMiterLimit","backgroundColor","clipPath"],Li={top:0,left:0,width:0,height:0,angle:0,flipX:!1,flipY:!1,scaleX:1,scaleY:1,minScaleLimit:0,skewX:0,skewY:0,originX:D,originY:D,strokeWidth:1,strokeUniform:!1,padding:0,opacity:1,paintFirst:V,fill:"rgb(0,0,0)",fillRule:"nonzero",stroke:null,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,globalCompositeOperation:"source-over",backgroundColor:"",shadow:null,visible:!0,includeDefaultValues:!0,excludeFromExport:!1,objectCaching:!0,clipPath:void 0,inverted:!1,absolutePositioned:!1,centeredRotation:!0,centeredScaling:!1,dirty:!0};var Ri=i({defaultEasing:()=>Hi,easeInBack:()=>hs,easeInBounce:()=>ds,easeInCirc:()=>is,easeInCubic:()=>Wi,easeInElastic:()=>ns,easeInExpo:()=>Zi,easeInOutBack:()=>cs,easeInOutBounce:()=>ps,easeInOutCirc:()=>rs,easeInOutCubic:()=>Ni,easeInOutElastic:()=>as,easeInOutExpo:()=>es,easeInOutQuad:()=>ms,easeInOutQuart:()=>Vi,easeInOutQuint:()=>Ki,easeInOutSine:()=>Qi,easeInQuad:()=>gs,easeInQuart:()=>Xi,easeInQuint:()=>Gi,easeInSine:()=>qi,easeOutBack:()=>ls,easeOutBounce:()=>us,easeOutCirc:()=>ss,easeOutCubic:()=>Yi,easeOutElastic:()=>os,easeOutExpo:()=>ts,easeOutQuad:()=>fs,easeOutQuart:()=>$i,easeOutQuint:()=>Ui,easeOutSine:()=>Ji});
vendor: 1,969 bytes, line 1
1let zi=(t,e,i,s)=>(t<Math.abs(e)?(t=e,s=i/4):s=0===e&&0===t?i/S*Math.asin(1):i/S*Math.asin(e/t),{a:t,c:e,p:i,s}),Bi=(t,e,i,s,r)=>t*2**(10*--s)*Math.sin((s*r-e)*S/i),Hi=(t,e,i,s)=>-i*Math.cos(t/s*w)+i+e,Wi=(t,e,i,s)=>i*(t/s)**3+e,Yi=(t,e,i,s)=>i*((t/s-1)**3+1)+e,Ni=(t,e,i,s)=>(t/=s/2)<1?i/2*t**3+e:i/2*((t-2)**3+2)+e,Xi=(t,e,i,s)=>i*(t/=s)*t**3+e,$i=(t,e,i,s)=>-i*((t=t/s-1)*t**3-1)+e,Vi=(t,e,i,s)=>(t/=s/2)<1?i/2*t**4+e:-i/2*((t-=2)*t**3-2)+e,Gi=(t,e,i,s)=>i*(t/s)**5+e,Ui=(t,e,i,s)=>i*((t/s-1)**5+1)+e,Ki=(t,e,i,s)=>(t/=s/2)<1?i/2*t**5+e:i/2*((t-2)**5+2)+e,qi=(t,e,i,s)=>-i*Math.cos(t/s*w)+i+e,Ji=(t,e,i,s)=>i*Math.sin(t/s*w)+e,Qi=(t,e,i,s)=>-i/2*(Math.cos(Math.PI*t/s)-1)+e,Zi=(t,e,i,s)=>0===t?e:i*2**(10*(t/s-1))+e,ts=(t,e,i,s)=>t===s?e+i:i*-(2**(-10*t/s)+1)+e,es=(t,e,i,s)=>0===t?e:t===s?e+i:(t/=s/2)<1?i/2*2**(10*(t-1))+e:i/2*-(2**(-10*(t-1))+2)+e,is=(t,e,i,s)=>-i*(Math.sqrt(1-(t/=s)*t)-1)+e,ss=(t,e,i,s)=>i*Math.sqrt(1-(t=t/s-1)*t)+e,rs=(t,e,i,s)=>(t/=s/2)<1?-i/2*(Math.sqrt(1-t**2)-1)+e:i/2*(Math.sqrt(1-(t-=2)*t)+1)+e,ns=(t,e,i,s)=>{let r=i,n=0;if(0===t)return e;if(1==(t/=s))return e+i;n||(n=.3*s);let{a:o,s:a,p:h}=zi(r,i,n,1.70158);return-Bi(o,a,h,t,s)+e},os=(t,e,i,s)=>{let r=i,n=0;if(0===t)return e;if(1==(t/=s))return e+i;n||(n=.3*s);let{a:o,s:a,p:h,c:l}=zi(r,i,n,1.70158);return o*2**(-10*t)*Math.sin((t*s-a)*S/h)+l+e},as=(t,e,i,s)=>{let r=i,n=0;if(0===t)return e;if(2==(t/=s/2))return e+i;n||(n=.3*1.5*s);let{a:o,s:a,p:h,c:l}=zi(r,i,n,1.70158);return t<1?-.5*Bi(o,a,h,t,s)+e:o*2**(-10*--t)*Math.sin((t*s-a)*S/h)*.5+l+e},hs=(t,e,i,s,r=1.70158)=>i*(t/=s)*t*((r+1)*t-r)+e,ls=(t,e,i,s,r=1.70158)=>i*((t=t/s-1)*t*((r+1)*t+r)+1)+e,cs=(t,e,i,s,r=1.70158)=>(t/=s/2)<1?i/2*(t*t*((1+(r*=1.525))*t-r))+e:i/2*((t-=2)*t*((1+(r*=1.525))*t+r)+2)+e,us=(t,e,i,s)=>(t/=s)<1/2.75?i*(7.5625*t*t)+e:t<2/2.75?i*(7.5625*(t-=1.5/2.75)*t+.75)+e:t<2.5/2.75?i*(7.5625*(t-=2.25/2.75)*t+.9375)+e:i*(7.5625*(t-=2.625/2.75)*t+.984375)+e,ds=(t,e,i,s)=>i-us(s-t,0,i,s)+e,ps=(t,e,i,s)=>
vendor: 27,720 bytes, line 1
1t<s/2?.5*ds(2*t,0,i,s)+e:.5*us(2*t-s,0,i,s)+.5*i+e,gs=(t,e,i,s)=>i*(t/=s)*t+e,fs=(t,e,i,s)=>-i*(t/=s)*(t-2)+e,ms=(t,e,i,s)=>(t/=s/2)<1?i/2*t**2+e:-i/2*(--t*(t-2)-1)+e,_s=()=>!1;var vs=class{constructor({startValue:t,byValue:e,duration:i=500,delay:s=0,easing:r=Hi,onStart:o=x,onChange:a=x,onComplete:h=x,abort:l=_s,target:c}){n(this,"_state","pending"),n(this,"durationProgress",0),n(this,"valueProgress",0),this.tick=this.tick.bind(this),this.duration=i,this.delay=s,this.easing=r,this._onStart=o,this._onChange=a,this._onComplete=h,this._abort=l,this.target=c,this.startValue=t,this.byValue=e,this.value=this.startValue,this.endValue=Object.freeze(this.calculate(this.duration).value)}get state(){return this._state}isDone(){return"aborted"===this._state||"completed"===this._state}start(){let t=t=>{"pending"===this._state&&(this.startTime=t||+new Date,this._state="running",this._onStart(),this.tick(this.startTime))};this.register(),this.delay>0?this.timeout=_().setTimeout((()=>ht(t)),this.delay):ht(t)}tick(t){let e=(t||+new Date)-this.startTime,i=Math.min(e,this.duration);this.durationProgress=i/this.duration;let{value:s,valueProgress:r}=this.calculate(i);this.value=Object.freeze(s),this.valueProgress=r,"aborted"!==this._state&&(this._abort(this.value,this.valueProgress,this.durationProgress)?(this._state="aborted",this.unregister()):e>=this.duration?(this.durationProgress=this.valueProgress=1,this._onChange(this.endValue,this.valueProgress,this.durationProgress),this._state="completed",this._onComplete(this.endValue,this.valueProgress,this.durationProgress),this.unregister(),this.timeout=null):(this._onChange(this.value,this.valueProgress,this.durationProgress),ht(this.tick)))}register(){Q.push(this)}unregister(){Q.remove(this)}abort(){this._state="aborted",this.unregister(),this.timeout&&_().clearTimeout(this.timeout)}},ys=class extends vs{constructor({startValue:t=0,endValue:e=100,...i}){super({...i,startValue:t,byValue:e-t})}calculate(t){let e=this.easing(t,this.startValue,this.byValue,this.duration);return{value:e,valueProgress:Math.abs((e-this.startValue)/this.byValue)}}},bs=class extends vs{constructor({startValue:t=[0],endValue:e=[100],...i}){super({...i,startValue:t,byValue:e.map(((e,i)=>e-t[i]))})}calculate(t){let e=this.startValue.map(((e,i)=>this.easing(t,e,this.byValue[i],this.duration,i)));return{value:e,valueProgress:Math.abs((e[0]-this.startValue[0])/this.byValue[0])}}};let xs=(t,e,i,s)=>e+i*(1-Math.cos(t/s*w)),ws=t=>t&&((e,i,s)=>t(new si(e).toRgba(),i,s));var Cs=class extends vs{constructor({startValue:t,endValue:e,easing:i=xs,onChange:s,onComplete:r,abort:n,...o}){let a=new si(t).getSource(),h=new si(e).getSource();super({...o,startValue:a,byValue:h.map(((t,e)=>t-a[e])),easing:i,onChange:ws(s),onComplete:ws(r),abort:ws(n)})}calculate(t){let[e,i,s,r]=this.startValue.map(((e,i)=>this.easing(t,e,this.byValue[i],this.duration,i))),n=[...[e,i,s].map(Math.round),Fi(0,r,1)];return{value:n,valueProgress:n.map(((t,e)=>0===this.byValue[e]?0:Math.abs((t-this.startValue[e])/this.byValue[e]))).find((t=>0!==t))||0}}};function Ss(t){let e=(t=>Array.isArray(t.startValue)||Array.isArray(t.endValue))(t)?new bs(t):new ys(t);return e.start(),e}function Ts(t){let e=new Cs(t);return e.start(),e}var ks=class t{constructor(t){this.status=t,this.points=[]}includes(t){return this.points.some((e=>e.eq(t)))}append(...t){return this.points=this.points.concat(t.filter((t=>!this.includes(t)))),this}static isPointContained(t,e,i,s=!1){if(e.eq(i))return t.eq(e);if(e.x===i.x)return t.x===e.x&&(s||t.y>=Math.min(e.y,i.y)&&t.y<=Math.max(e.y,i.y));if(e.y===i.y)return t.y===e.y&&(s||t.x>=Math.min(e.x,i.x)&&t.x<=Math.max(e.x,i.x));{let r=Pe(e,i),n=Pe(e,t).divide(r);return s?Math.abs(n.x)===Math.abs(n.y):n.x===n.y&&n.x>=0&&n.x<=1}}static isPointInPolygon(t,e){let i=new st(t).setX(Math.min(t.x-1,...e.map((t=>t.x)))),s=0;for(let r=0;r<e.length;r++){let n=this.intersectSegmentSegment(e[r],e[(r+1)%e.length],t,i);if(n.includes(t))return!0;s+=Number("Intersection"===n.status)}return s%2==1}static intersectLineLine(e,i,s,r,n=!0,o=!0){let a=i.x-e.x,h=i.y-e.y,l=r.x-s.x,c=r.y-s.y,u=e.x-s.x,d=e.y-s.y,p=l*d-c*u,g=a*d-h*u,f=c*a-l*h;if(0!==f){let i=p/f,s=g/f;return(n||0<=i&&i<=1)&&(o||0<=s&&s<=1)?new t("Intersection").append(new st(e.x+i*a,e.y+i*h)):new t}return new t(0===p||0===g?n||o||t.isPointContained(e,s,r)||t.isPointContained(i,s,r)||t.isPointContained(s,e,i)||t.isPointContained(r,e,i)?"Coincident":void 0:"Parallel")}static intersectSegmentLine(e,i,s,r){return t.intersectLineLine(e,i,s,r,!1,!0)}static intersectSegmentSegment(e,i,s,r){return t.intersectLineLine(e,i,s,r,!1,!1)}static intersectLinePolygon(e,i,s,r=!0){let n=new t,o=s.length;for(let a,h,l,c=0;c<o;c++){if(a=s[c],h=s[(c+1)%o],l=t.intersectLineLine(e,i,a,h,r,!1),"Coincident"===l.status)return l;n.append(...l.points)}return n.points.length>0&&(n.status="Intersection"),n}static intersectSegmentPolygon(e,i,s){return t.intersectLinePolygon(e,i,s,!1)}static intersectPolygonPolygon(e,i){let s=new t,r=e.length,n=[];for(let o=0;o<r;o++){let a=e[o],h=e[(o+1)%r],l=t.intersectSegmentPolygon(a,h,i);"Coincident"===l.status?(n.push(l),s.append(a,h)):s.append(...l.points)}return n.length>0&&n.length===e.length?new t("Coincident"):(s.points.length>0&&(s.status="Intersection"),s)}static intersectPolygonRectangle(e,i,s){let r=i.min(s),n=i.max(s),o=new st(n.x,r.y),a=new st(r.x,n.y);return t.intersectPolygonPolygon(e,[r,o,n,a])}},Ds=class extends at{getX(){return this.getXY().x}setX(t){this.setXY(this.getXY().setX(t))}getY(){return this.getXY().y}setY(t){this.setXY(this.getXY().setY(t))}getRelativeX(){return this.left}setRelativeX(t){this.left=t}getRelativeY(){return this.top}setRelativeY(t){this.top=t}getXY(){let t=this.getRelativeXY();return this.group?xt(t,this.group.calcTransformMatrix()):t}setXY(t,e,i){this.group&&(t=xt(t,wt(this.group.calcTransformMatrix()))),this.setRelativeXY(t,e,i)}getRelativeXY(){return new st(this.left,this.top)}setRelativeXY(t,e=this.originX,i=this.originY){this.setPositionByOrigin(t,e,i)}isStrokeAccountedForInDimensions(){return!1}getCoords(){let{tl:t,tr:e,br:i,bl:s}=this.aCoords||(this.aCoords=this.calcACoords()),r=[t,e,i,s];if(this.group){let t=this.group.calcTransformMatrix();return r.map((e=>xt(e,t)))}return r}intersectsWithRect(t,e){return"Intersection"===ks.intersectPolygonRectangle(this.getCoords(),t,e).status}intersectsWithObject(t){let e=ks.intersectPolygonPolygon(this.getCoords(),t.getCoords());return"Intersection"===e.status||"Coincident"===e.status||t.isContainedWithinObject(this)||this.isContainedWithinObject(t)}isContainedWithinObject(t){return this.getCoords().every((e=>t.containsPoint(e)))}isContainedWithinRect(t,e){let{left:i,top:s,width:r,height:n}=this.getBoundingRect();return i>=t.x&&i+r<=e.x&&s>=t.y&&s+n<=e.y}isOverlapping(t){return this.intersectsWithObject(t)||this.isContainedWithinObject(t)||t.isContainedWithinObject(this)}containsPoint(t){return ks.isPointInPolygon(t,this.getCoords())}isOnScreen(){if(!this.canvas)return!1;let{tl:t,br:e}=this.canvas.vptCoords;return!!this.getCoords().some((i=>i.x<=e.x&&i.x>=t.x&&i.y<=e.y&&i.y>=t.y))||!!this.intersectsWithRect(t,e)||this.containsPoint(t.midPointFrom(e))}isPartiallyOnScreen(){if(!this.canvas)return!1;let{tl:t,br:e}=this.canvas.vptCoords;return!!this.intersectsWithRect(t,e)||this.getCoords().every((i=>(i.x>=e.x||i.x<=t.x)&&(i.y>=e.y||i.y<=t.y)))&&this.containsPoint(t.midPointFrom(e))}getBoundingRect(){return ge(this.getCoords())}getScaledWidth(){return this._getTransformedDimensions().x}getScaledHeight(){return this._getTransformedDimensions().y}scale(t){this._set(Y,t),this._set(N,t),this.setCoords()}scaleToWidth(t){let e=this.getBoundingRect().width/this.getScaledWidth();return this.scale(t/this.width/e)}scaleToHeight(t){let e=this.getBoundingRect().height/this.getScaledHeight();return this.scale(t/this.height/e)}getCanvasRetinaScaling(){var t;return(null==(t=this.canvas)?void 0:t.getRetinaScaling())||1}getTotalAngle(){return this.group?yt(Tt(this.calcTransformMatrix())):this.angle}getViewportTransform(){var t;return(null==(t=this.canvas)?void 0:t.viewportTransform)||k.concat()}calcACoords(){let t=Pt({angle:this.angle}),{x:e,y:i}=this.getRelativeCenterPoint(),s=Ct(Mt(e,i),t),r=this._getTransformedDimensions(),n=r.x/2,o=r.y/2;return{tl:xt({x:-n,y:-o},s),tr:xt({x:n,y:-o},s),bl:xt({x:-n,y:o},s),br:xt({x:n,y:o},s)}}setCoords(){this.aCoords=this.calcACoords()}transformMatrixKey(t=!1){let e=[];return!t&&this.group&&(e=this.group.transformMatrixKey(t)),e.push(this.top,this.left,this.width,this.height,this.scaleX,this.scaleY,this.angle,this.strokeWidth,this.skewX,this.skewY,+this.flipX,+this.flipY,ke(this.originX),ke(this.originY)),e}calcTransformMatrix(t=!1){let e=this.calcOwnMatrix();if(t||!this.group)return e;let i=this.transformMatrixKey(t),s=this.matrixCache;return s&&s.key.every(((t,e)=>t===i[e]))?s.value:(this.group&&(e=Ct(this.group.calcTransformMatrix(!1),e)),this.matrixCache={key:i,value:e},e)}calcOwnMatrix(){let t=this.transformMatrixKey(!0),e=this.ownMatrixCache;if(e&&e.key.every(((e,i)=>e===t[i])))return e.value;let i=this.getRelativeCenterPoint(),s=Lt({angle:this.angle,translateX:i.x,translateY:i.y,scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY});return this.ownMatrixCache={key:t,value:s},s}_getNonTransformedDimensions(){return new st(this.width,this.height).scalarAdd(this.strokeWidth)}_calculateCurrentDimensions(t){var e;let i=null==(e=this.canvas)?void 0:e.viewportTransform,s=this._getTransformedDimensions(t);return i?s.multiply(new st(kt(i),Dt(i))).scalarAdd(2*this.padding):s.scalarAdd(2*this.padding)}_getTransformedDimensions(t={}){let e={scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,width:this.width,height:this.height,strokeWidth:this.strokeWidth,...t},i=e.strokeWidth,s=i,r=0;this.strokeUniform&&(s=0,r=i);let n,o=e.width+s,a=e.height+s;return n=0===e.skewX&&0===e.skewY?new st(o*e.scaleX,a*e.scaleY):be(o,a,jt(e)),n.scalarAdd(r)}translateToGivenOrigin(t,e,i,s,r){let n=t.x,o=t.y,a=ke(s)-ke(e),h=ke(r)-ke(i);if(a||h){let t=this._getTransformedDimensions();n+=a*t.x,o+=h*t.y}return new st(n,o)}translateToCenterPoint(t,e,i){if("center"===e&&"center"===i)return t;let s=this.translateToGivenOrigin(t,e,i,D,D);return this.angle?s.rotate(vt(this.angle),t):s}translateToOriginPoint(t,e,i){let s=this.translateToGivenOrigin(t,D,D,e,i);return this.angle?s.rotate(vt(this.angle),t):s}getCenterPoint(){let t=this.getRelativeCenterPoint();return this.group?xt(t,this.group.calcTransformMatrix()):t}getRelativeCenterPoint(){return this.translateToCenterPoint(new st(this.left,this.top),this.originX,this.originY)}getPointByOrigin(t,e){return this.getPositionByOrigin(t,e)}getPositionByOrigin(t,e){return this.translateToOriginPoint(this.getRelativeCenterPoint(),t,e)}setPositionByOrigin(t,e,i){let s=this.translateToCenterPoint(t,e,i),r=this.translateToOriginPoint(s,this.originX,this.originY);this.set({left:r.x,top:r.y})}_getLeftTopCoords(){return this.getPositionByOrigin(O,"top")}positionByLeftTop(t){return this.setPositionByOrigin(t,O,"top")}},Os=class t extends Ds{static getDefaults(){return t.ownDefaults}get type(){let t=this.constructor.type;return"FabricObject"===t?"object":t.toLowerCase()}set type(t){h("warn","Setting type has no effect",t)}constructor(e){super(),n(this,"_cacheContext",null),Object.assign(this,t.ownDefaults),this.setOptions(e)}_createCacheCanvas(){this._cacheCanvas=dt(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0}_limitCacheSize(t){let e=t.width,i=t.height,s=a.maxCacheSideLimit,r=a.minCacheSideLimit;if(e<=s&&i<=s&&e*i<=a.perfLimitSizeTotal)return e<r&&(t.width=r),i<r&&(t.height=r),t;let n=e/i,[o,h]=y.limitDimsByArea(n),l=Fi(r,o,s),c=Fi(r,h,s);return e>l&&(t.zoomX/=e/l,t.width=l,t.capped=!0),i>c&&(t.zoomY/=i/c,t.height=c,t.capped=!0),t}_getCacheCanvasDimensions(){let t=this.getTotalObjectScaling(),e=this._getTransformedDimensions({skewX:0,skewY:0}),i=e.x*t.x/this.scaleX,s=e.y*t.y/this.scaleY;return{width:Math.ceil(i+2),height:Math.ceil(s+2),zoomX:t.x,zoomY:t.y,x:i,y:s}}_updateCacheCanvas(){let t=this._cacheCanvas,e=this._cacheContext,{width:i,height:s,zoomX:r,zoomY:n,x:o,y:a}=this._limitCacheSize(this._getCacheCanvasDimensions()),h=i!==t.width||s!==t.height,l=this.zoomX!==r||this.zoomY!==n;if(!t||!e)return!1;if(h||l){i!==t.width||s!==t.height?(t.width=i,t.height=s):(e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t.width,t.height));let h=o/2,l=a/2;return this.cacheTranslationX=Math.round(t.width/2-h)+h,this.cacheTranslationY=Math.round(t.height/2-l)+l,e.translate(this.cacheTranslationX,this.cacheTranslationY),e.scale(r,n),this.zoomX=r,this.zoomY=n,!0}return!1}setOptions(t={}){this._setOptions(t)}transform(t){let e=this.group&&!this.group._transformDone||this.group&&this.canvas&&t===this.canvas.contextTop,i=this.calcTransformMatrix(!e);t.transform(i[0],i[1],i[2],i[3],i[4],i[5])}getObjectScaling(){if(!this.group)return new st(Math.abs(this.scaleX),Math.abs(this.scaleY));let t=Ot(this.calcTransformMatrix());return new st(Math.abs(t.scaleX),Math.abs(t.scaleY))}getTotalObjectScaling(){let t=this.getObjectScaling();if(this.canvas){let e=this.canvas.getZoom(),i=this.getCanvasRetinaScaling();return t.scalarMultiply(e*i)}return t}getObjectOpacity(){let t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t}_constrainScale(t){return Math.abs(t)<this.minScaleLimit?t<0?-this.minScaleLimit:this.minScaleLimit:0===t?1e-4:t}_set(t,e){"scaleX"!==t&&"scaleY"!==t||(e=this._constrainScale(e)),"scaleX"===t&&e<0?(this.flipX=!this.flipX,e*=-1):"scaleY"===t&&e<0?(this.flipY=!this.flipY,e*=-1):"shadow"!==t||!e||e instanceof Ai||(e=new Ai(e));let i=this[t]!==e;return this[t]=e,i&&this.constructor.cacheProperties.includes(t)&&(this.dirty=!0),this.parent&&(this.dirty||i&&this.constructor.stateProperties.includes(t))&&this.parent._set("dirty",!0),this}isNotVisible(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible}render(t){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(t.save(),this._setupCompositeOperation(t),this.drawSelectionBackground(t),this.transform(t),this._setOpacity(t),this._setShadow(t),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.drawObject(t,!1,{}),this.dirty=!1),t.restore())}drawSelectionBackground(t){}renderCache(t){if(t=t||{},this._cacheCanvas&&this._cacheContext||this._createCacheCanvas(),this.isCacheDirty()&&this._cacheContext){let{zoomX:e,zoomY:i,cacheTranslationX:s,cacheTranslationY:r}=this,{width:n,height:o}=this._cacheCanvas;this.drawObject(this._cacheContext,t.forClipping,{zoomX:e,zoomY:i,cacheTranslationX:s,cacheTranslationY:r,width:n,height:o,parentClipPaths:[]}),this.dirty=!1}}_removeCacheCanvas(){this._cacheCanvas=void 0,this._cacheContext=null}hasStroke(){return!!this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth}hasFill(){return!!this.fill&&"transparent"!==this.fill}needsItsOwnCache(){return!!("stroke"===this.paintFirst&&this.hasFill()&&this.hasStroke()&&this.shadow)||!!this.clipPath}shouldCache(){return this.ownCaching=this.objectCaching&&(!this.parent||!this.parent.isOnACache())||this.needsItsOwnCache(),this.ownCaching}willDrawShadow(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)}drawClipPathOnCache(t,e,i){t.save(),e.inverted?t.globalCompositeOperation="destination-out":t.globalCompositeOperation="destination-in",t.setTransform(1,0,0,1,0,0),t.drawImage(i,0,0),t.restore()}drawObject(t,e,i){let s=this.fill,r=this.stroke;e?(this.fill="black",this.stroke="",this._setClippingProperties(t)):this._renderBackground(t),this.fire("before:render",{ctx:t}),this._render(t),this._drawClipPath(t,this.clipPath,i),this.fill=s,this.stroke=r}createClipPathLayer(t,e){let i=ft(e),s=i.getContext("2d");if(s.translate(e.cacheTranslationX,e.cacheTranslationY),s.scale(e.zoomX,e.zoomY),t._cacheCanvas=i,e.parentClipPaths.forEach((t=>{t.transform(s)})),e.parentClipPaths.push(t),t.absolutePositioned){let t=wt(this.calcTransformMatrix());s.transform(t[0],t[1],t[2],t[3],t[4],t[5])}return t.transform(s),t.drawObject(s,!0,e),i}_drawClipPath(t,e,i){if(!e)return;e._transformDone=!0;let s=this.createClipPathLayer(e,i);this.drawClipPathOnCache(t,e,s)}drawCacheOnCanvas(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)}isCacheDirty(t=!1){if(this.isNotVisible())return!1;let e=this._cacheCanvas,i=this._cacheContext;return!(!e||!i||t||!this._updateCacheCanvas())||!!(this.dirty||this.clipPath&&this.clipPath.absolutePositioned)&&(e&&i&&!t&&(i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,e.width,e.height),i.restore()),!0)}_renderBackground(t){if(!this.backgroundColor)return;let e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}_setOpacity(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity}_setStrokeStyles(t,e){let i=e.stroke;i&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,Xt(i)?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?this._applyPatternForTransformedGradient(t,i):(t.strokeStyle=i.toLive(t),this._applyPatternGradientTransform(t,i)):t.strokeStyle=e.stroke)}_setFillStyles(t,{fill:e}){e&&(Xt(e)?(t.fillStyle=e.toLive(t),this._applyPatternGradientTransform(t,e)):t.fillStyle=e)}_setClippingProperties(t){t.globalAlpha=1,t.strokeStyle="transparent",t.fillStyle="#000000"}_setLineDash(t,e){e&&0!==e.length&&t.setLineDash(e)}_setShadow(t){if(!this.shadow)return;let e=this.shadow,i=this.canvas,s=this.getCanvasRetinaScaling(),[r,,,n]=(null==i?void 0:i.viewportTransform)||k,o=r*s,h=n*s,l=e.nonScaling?new st(1,1):this.getObjectScaling();t.shadowColor=e.color,t.shadowBlur=e.blur*a.browserShadowBlurConstant*(o+h)*(l.x+l.y)/4,t.shadowOffsetX=e.offsetX*o*l.x,t.shadowOffsetY=e.offsetY*h*l.y}_removeShadow(t){this.shadow&&(t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)}_applyPatternGradientTransform(t,e){if(!Xt(e))return{offsetX:0,offsetY:0};let i=e.gradientTransform||e.patternTransform,s=-this.width/2+e.offsetX||0,r=-this.height/2+e.offsetY||0;return"percentage"===e.gradientUnits?t.transform(this.width,0,0,this.height,s,r):t.transform(1,0,0,1,s,r),i&&t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),{offsetX:s,offsetY:r}}_renderPaintInOrder(t){"stroke"===this.paintFirst?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))}_render(t){}_renderFill(t){this.fill&&(t.save(),this._setFillStyles(t,this),"evenodd"===this.fillRule?t.fill("evenodd"):t.fill(),t.restore())}_renderStroke(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform){let e=this.getObjectScaling();t.scale(1/e.x,1/e.y)}this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}}_applyPatternForTransformedGradient(t,e){var i;let s=this._limitCacheSize(this._getCacheCanvasDimensions()),r=this.getCanvasRetinaScaling(),n=s.x/this.scaleX/r,o=s.y/this.scaleY/r,a=ft({width:Math.ceil(n),height:Math.ceil(o)}),h=a.getContext("2d");h&&(h.beginPath(),h.moveTo(0,0),h.lineTo(n,0),h.lineTo(n,o),h.lineTo(0,o),h.closePath(),h.translate(n/2,o/2),h.scale(s.zoomX/this.scaleX/r,s.zoomY/this.scaleY/r),this._applyPatternGradientTransform(h,e),h.fillStyle=e.toLive(t),h.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(r*this.scaleX/s.zoomX,r*this.scaleY/s.zoomY),t.strokeStyle=null==(i=h.createPattern(a,"no-repeat"))?"":i)}_findCenterFromElement(){return new st(this.left+this.width/2,this.top+this.height/2)}clone(t){let e=this.toObject(t);return this.constructor.fromObject(e)}cloneAsImage(t){let e=this.toCanvasElement(t);return new(J.getClass("image"))(e)}toCanvasElement(t={}){let e=ye(this),i=this.group,s=this.shadow,r=Math.abs,n=t.enableRetinaScaling?v():1,o=(t.multiplier||1)*n,a=t.canvasProvider||(t=>new le(t,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1}));delete this.group,t.withoutTransform&&ve(this),t.withoutShadow&&(this.shadow=null),t.viewportTransform&&Se(this,this.getViewportTransform()),this.setCoords();let h=dt(),l=this.getBoundingRect(),c=this.shadow,u=new st;if(c){let t=c.blur,e=c.nonScaling?new st(1,1):this.getObjectScaling();u.x=2*Math.round(r(c.offsetX)+t)*r(e.x),u.y=2*Math.round(r(c.offsetY)+t)*r(e.y)}let d=l.width+u.x,p=l.height+u.y;h.width=Math.ceil(d),h.height=Math.ceil(p);let g=a(h);"jpeg"===t.format&&(g.backgroundColor="#fff"),this.setPositionByOrigin(new st(g.width/2,g.height/2),D,D);let f=this.canvas;g._objects=[this],this.set("canvas",g),this.setCoords();let m=g.toCanvasElement(o||1,t);return this.set("canvas",f),this.shadow=s,i&&(this.group=i),this.set(e),this.setCoords(),g._objects=[],g.destroy(),m}toDataURL(t={}){return mt(this.toCanvasElement(t),t.format||"png",t.quality||1)}toBlob(t={}){return _t(this.toCanvasElement(t),t.format||"png",t.quality||1)}isType(...t){return t.includes(this.constructor.type)||t.includes(this.type)}complexity(){return 1}toJSON(){return this.toObject()}rotate(t){let{centeredRotation:e,originX:i,originY:s}=this;if(e){let{x:t,y:e}=this.getRelativeCenterPoint();this.originX=D,this.originY=D,this.left=t,this.top=e}if(this.set("angle",t),e){let{x:t,y:e}=this.getPositionByOrigin(i,s);this.left=t,this.top=e,this.originX=i,this.originY=s}}setOnGroup(){}_setupCompositeOperation(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)}dispose(){Q.cancelByTarget(this),this.off(),this._set("canvas",void 0),this._cacheCanvas&&f().dispose(this._cacheCanvas),this._cacheCanvas=void 0,this._cacheContext=null}animate(t,e){return Object.entries(t).reduce(((t,[i,s])=>(t[i]=this._animate(i,s,e),t)),{})}_animate(t,e,i={}){let s=t.split("."),r=this.constructor.colorProperties.includes(s[s.length-1]),{abort:n,startValue:o,onChange:a,onComplete:h}=i,l={...i,target:this,startValue:o??s.reduce(((t,e)=>t[e]),this),endValue:e,abort:null==n?void 0:n.bind(this),onChange:(t,e,i)=>{s.reduce(((e,i,r)=>(r===s.length-1&&(e[i]=t),e[i])),this),a&&a(t,e,i)},onComplete:(t,e,i)=>{this.setCoords(),h&&h(t,e,i)}};return r?Ts(l):Ss(l)}isDescendantOf(t){let{parent:e,group:i}=this;return e===t||i===t||!!e&&e.isDescendantOf(t)||!!i&&i!==e&&i.isDescendantOf(t)}getAncestors(){let t=[],e=this;do{e=e.parent,e&&t.push(e)}while(e);return t}findCommonAncestors(t){if(this===t)return{fork:[],otherFork:[],common:[this,...this.getAncestors()]};let e=this.getAncestors(),i=t.getAncestors();if(0===e.length&&i.length>0&&this===i[i.length-1])return{fork:[],otherFork:[t,...i.slice(0,i.length-1)],common:[this]};for(let s,r=0;r<e.length;r++){if(s=e[r],s===t)return{fork:[this,...e.slice(0,r)],otherFork:[],common:e.slice(r)};for(let n=0;n<i.length;n++){if(this===i[n])return{fork:[],otherFork:[t,...i.slice(0,n)],common:[this,...e]};if(s===i[n])return{fork:[this,...e.slice(0,r)],otherFork:[t,...i.slice(0,n)],common:e.slice(r)}}}return{fork:[this,...e],otherFork:[t,...i],common:[]}}hasCommonAncestors(t){let e=this.findCommonAncestors(t);return e&&!!e.common.length}isInFrontOf(t){if(this===t)return;let e=this.findCommonAncestors(t);if(e.fork.includes(t))return!0;if(e.otherFork.includes(this))return!1;let i=e.common[0]||this.canvas;if(!i)return;let s=e.fork.pop(),r=e.otherFork.pop(),n=i._objects.indexOf(s),o=i._objects.indexOf(r);return n>-1&&n>o}toObject(e=[]){let i,s=e.concat(t.customProperties,this.constructor.customProperties||[]),r=a.NUM_FRACTION_DIGITS,{clipPath:n,fill:o,stroke:h,shadow:l,strokeDashArray:c,left:u,top:d,originX:p,originY:g,width:f,height:m,strokeWidth:_,strokeLineCap:v,strokeDashOffset:y,strokeLineJoin:x,strokeUniform:w,strokeMiterLimit:C,scaleX:S,scaleY:T,angle:k,flipX:D,flipY:O,opacity:M,visible:P,backgroundColor:E,fillRule:A,paintFirst:F,globalCompositeOperation:I,skewX:j,skewY:L}=this;n&&!n.excludeFromExport&&(i=n.toObject(s.concat("inverted","absolutePositioned")));let R=t=>Yt(t,r),z={...Ht(this,s),type:this.constructor.type,version:b,originX:p,originY:g,left:R(u),top:R(d),width:R(f),height:R(m),fill:$t(o)?o.toObject():o,stroke:$t(h)?h.toObject():h,strokeWidth:R(_),strokeDashArray:c&&c.concat(),strokeLineCap:v,strokeDashOffset:y,strokeLineJoin:x,strokeUniform:w,strokeMiterLimit:R(C),scaleX:R(S),scaleY:R(T),angle:R(k),flipX:D,flipY:O,opacity:R(M),shadow:l&&l.toObject(),visible:P,backgroundColor:E,fillRule:A,paintFirst:F,globalCompositeOperation:I,skewX:R(j),skewY:R(L),...i?{clipPath:i}:null};return this.includeDefaultValues?z:this._removeDefaultValues(z)}toDatalessObject(t){return this.toObject(t)}_removeDefaultValues(t){let e=this.constructor.getDefaults(),i=Object.keys(e).length>0?e:Object.getPrototypeOf(this);return Wt(t,((t,e)=>{if("left"===e||"top"===e||"type"===e)return!0;let s=i[e];return t!==s&&!(Array.isArray(t)&&Array.isArray(s)&&0===t.length&&0===s.length)}))}toString(){return`#<${this.constructor.type}>`}static _fromObject({type:t,...e},{extraParam:i,...s}={}){return Bt(e,s).then((t=>i?(delete t[i],new this(e[i],t)):new this(t)))}static fromObject(t,e){return this._fromObject(t,e)}};n(Os,"stateProperties",Ii),n(Os,"cacheProperties",ji),n(Os,"ownDefaults",Li),n(Os,"type","FabricObject"),n(Os,"colorProperties",[V,G,"backgroundColor"]),n(Os,"customProperties",[]),J.setClass(Os),J.setClass(Os,"object");let Ms=(t,e)=>{var i;let{transform:{target:s}}=e;null==(i=s.canvas)||i.fire(`object:${t}`,{...e,target:s}),s.fire(t,e)},Ps=(t,e,i)=>(s,r,n,o)=>{let a=e(s,r,n,o);return a&&Ms(t,{...Ne(s,r,n,o),...i}),a};function Es(t){return(e,i,s,r)=>{let{target:n,originX:o,originY:a}=i,h=n.getPositionByOrigin(o,a),l=t(e,i,s,r);return n.setPositionByOrigin(h,i.originX,i.originY),l}}let As=(t,e,i,s)=>(r,n,o,a)=>{let h=$e(n,n.originX,n.originY,o,a)[i],l=ke(n[e]);if(0===l||l>0&&h<0||l<0&&h>0){let{target:e}=n,i=e.strokeWidth/(e.strokeUniform?e[s]:1),r=He(n)?2:1,o=e[t],a=Math.abs(h*r/e[s])-i;return e.set(t,Math.max(a,1)),o!==e[t]}return!1},Fs=As("width","originX","x","scaleX"),Is=As("height","originY","y","scaleY"),js=Ps(z,Es(Fs)),Ls=Ps(z,Es(Is));function Rs(t,e,i,s,r){t.save();let{stroke:n,xSize:o,ySize:a,opName:h}=this.commonRenderProps(t,e,i,r,s),l=o;o>a?t.scale(1,a/o):a>o&&(l=a,t.scale(o/a,1)),t.beginPath(),t.arc(0,0,l/2,0,S,!1),t[h](),n&&t.stroke(),t.restore()}function zs(t,e,i,s,r){t.save();let{stroke:n,xSize:o,ySize:a,opName:h}=this.commonRenderProps(t,e,i,r,s),l=o/2,c=a/2;t[`${h}Rect`](-l,-c,o,a),n&&t.strokeRect(-l,-c,o,a),t.restore()}var Bs=class{constructor(t){n(this,"visible",!0),n(this,"actionName",W),n(this,"angle",0),n(this,"x",0),n(this,"y",0),n(this,"offsetX",0),n(this,"offsetY",0),n(this,"sizeX",0),n(this,"sizeY",0),n(this,"touchSizeX",0),n(this,"touchSizeY",0),n(this,"cursorStyle","crosshair"),n(this,"withConnection",!1),Object.assign(this,t)}getTransformAnchorPoint(){var t;return null==(t=this.transformAnchorPoint)?new st(.5-this.x,.5-this.y):t}shouldActivate(t,e,i,{tl:s,tr:r,br:n,bl:o}){var a;return(null==(a=e.canvas)?void 0:a.getActiveObject())===e&&e.isControlVisible(t)&&ks.isPointInPolygon(i,[s,r,n,o])}getActionHandler(t,e,i){return this.actionHandler}getMouseDownHandler(t,e,i){return this.mouseDownHandler}getMouseUpHandler(t,e,i){return this.mouseUpHandler}cursorStyleHandler(t,e,i,s){return e.cursorStyle}getActionName(t,e,i){return e.actionName}getVisibility(t,e){var i,s;return null==(i=null==(s=t._controlsVisibility)?void 0:s[e])?this.visible:i}setVisibility(t,e,i){this.visible=t}
1positionHandler(t,e,i,s){return new st(this.x*t.x+this.offsetX,this.y*t.y+this.offsetY).transform(e)}calcCornerCoords(t,e,i,s,r,n){let o=St([Mt(i,s),Pt({angle:t}),Et((r?this.touchSizeX:this.sizeX)||e,(r?this.touchSizeY:this.sizeY)||e)]);return{tl:new st(-.5,-.5).transform(o),tr:new st(.5,-.5).transform(o),br:new st(.5,.5).transform(o),bl:new st(-.5,.5).transform(o)}}commonRenderProps(t,e,i,s,r={}){let{cornerSize:n,cornerColor:o,transparentCorners:a,cornerStrokeColor:h}=r,l=n||s.cornerSize,c=this.sizeX||l,u=this.sizeY||l,d=void 0===a?s.transparentCorners:a,p=d?G:V,g=h||s.cornerStrokeColor,f=!d&&!!g;return t.fillStyle=o||s.cornerColor||"",t.strokeStyle=g||"",t.translate(e,i),t.rotate(vt(s.getTotalAngle())),{stroke:f,xSize:c,ySize:u,transparentCorners:d,opName:p}}render(t,e,i,s,r){"circle"===((s=s||{}).cornerStyle||r.cornerStyle)?Rs.call(this,t,e,i,s,r):zs.call(this,t,e,i,s,r)}};let Hs=(t,e,i)=>i.lockRotation?Be:e.cursorStyle,Ws=Ps(j,Es(((t,{target:e,ex:i,ey:s,theta:r,originX:n,originY:o},a,h)=>{let l=e.getPositionByOrigin(n,o);if(Ye(e,"lockRotation"))return!1;let c=Math.atan2(s-l.y,i-l.x),u=yt(Math.atan2(h-l.y,a-l.x)-c+r);if(e.snapAngle&&e.snapAngle>0){let t=e.snapAngle,i=e.snapThreshold||t,s=Math.ceil(u/t)*t,r=Math.floor(u/t)*t;Math.abs(u-r)<i?u=r:Math.abs(u-s)<i&&(u=s)}u<0&&(u=360+u),u%=360;let d=e.angle!==u;return e.angle=u,d})));function Ys(t,e){let i=e.canvas,s=t[i.uniScaleKey];return i.uniformScaling&&!s||!i.uniformScaling&&s}function Ns(t,e,i){let s=Ye(t,"lockScalingX"),r=Ye(t,"lockScalingY");if(s&&r||!e&&(s||r)&&i||s&&"x"===e||r&&"y"===e)return!0;let{width:n,height:o,strokeWidth:a}=t;return 0===n&&0===a&&"y"!==e||0===o&&0===a&&"x"!==e}let Xs=["e","se","s","sw","w","nw","n","ne","e"],$s=(t,e,i,s)=>{let r=Ys(t,i);return Ns(i,0!==e.x&&0===e.y?"x":0===e.x&&0!==e.y?"y":"",r)?Be:`${Xs[Xe(i,0,s)]}-resize`};function Vs(t,e,i,s,r={}){let n,o,a,h,l,c,u=e.target,d=r.by,p=Ys(t,u);if(Ns(u,d,p))return!1;if(e.gestureScale)o=e.scaleX*e.gestureScale,a=e.scaleY*e.gestureScale;else{if(n=$e(e,e.originX,e.originY,i,s),l="y"===d?1:Math.sign(n.x||e.signX||1),c="x"===d?1:Math.sign(n.y||e.signY||1),e.signX||(e.signX=l),e.signY||(e.signY=c),Ye(u,"lockScalingFlip")&&(e.signX!==l||e.signY!==c))return!1;if(h=u._getTransformedDimensions(),p&&!d){let t=Math.abs(n.x)+Math.abs(n.y),{original:i}=e,s=t/(Math.abs(h.x*i.scaleX/u.scaleX)+Math.abs(h.y*i.scaleY/u.scaleY));o=i.scaleX*s,a=i.scaleY*s}else o=Math.abs(n.x*u.scaleX/h.x),a=Math.abs(n.y*u.scaleY/h.y);He(e)&&(o*=2,a*=2),e.signX!==l&&"y"!==d&&(e.originX=We(e.originX),o*=-1,e.signX=l),e.signY!==c&&"x"!==d&&(e.originY=We(e.originY),a*=-1,e.signY=c)}let g=u.scaleX,f=u.scaleY;return d?("x"===d&&u.set("scaleX",o),"y"===d&&u.set("scaleY",a)):(!Ye(u,"lockScalingX")&&u.set("scaleX",o),!Ye(u,"lockScalingY")&&u.set("scaleY",a)),g!==u.scaleX||f!==u.scaleY}let Gs=Ps(I,Es(((t,e,i,s)=>Vs(t,e,i,s)))),Us=Ps(I,Es(((t,e,i,s)=>Vs(t,e,i,s,{by:"x"})))),Ks=Ps(I,Es(((t,e,i,s)=>Vs(t,e,i,s,{by:"y"})))),qs={x:{counterAxis:"y",scale:Y,skew:X,lockSkewing:"lockSkewingX",origin:"originX",flip:"flipX"},y:{counterAxis:"x",scale:N,skew:$,lockSkewing:"lockSkewingY",origin:"originY",flip:"flipY"}},Js=["ns","nesw","ew","nwse"],Qs=(t,e,i,s)=>0!==e.x&&Ye(i,"lockSkewingY")||0!==e.y&&Ye(i,"lockSkewingX")?Be:`${Js[Xe(i,0,s)%4]}-resize`;function Zs(t,e,i,s,r){let{target:n}=i,{counterAxis:o,origin:a,lockSkewing:h,skew:l,flip:c}=qs[t];
vendor: 9,269 bytes, line 1
1if(Ye(n,h))return!1;let{origin:u,flip:d}=qs[o],p=ke(i[u])*(n[d]?-1:1),g=-Math.sign(p)*(n[c]?-1:1),f=-(0===n[l]&&$e(i,"center","center",s,r)[t]>0||n[l]>0?1:-1)*g*.5+.5;return Ps(R,Es(((e,i,s,r)=>function(t,{target:e,ex:i,ey:s,skewingSide:r,...n},o){let{skew:a}=qs[t],h=o.subtract(new st(i,s)).divide(new st(e.scaleX,e.scaleY))[t],l=e[a],c=n[a],u=Math.tan(vt(c)),d="y"===t?e._getTransformedDimensions({scaleX:1,scaleY:1,skewX:0}).x:e._getTransformedDimensions({scaleX:1,scaleY:1}).y,p=2*h*r/Math.max(d,1)+u,g=yt(Math.atan(p));e.set(a,g);let f=l!==e[a];if(f&&"y"===t){let{skewX:t,scaleX:i}=e,s=e._getTransformedDimensions({skewY:l}),r=e._getTransformedDimensions(),n=0===t?1:s.x/r.x;1!==n&&e.set("scaleX",n*i)}return f}(t,i,new st(s,r)))))(e,{...i,[a]:f,skewingSide:g},s,r)}let tr=(t,e,i,s)=>Zs("x",t,e,i,s),er=(t,e,i,s)=>Zs("y",t,e,i,s);function ir(t,e){return t[e.canvas.altActionKey]}let sr=(t,e,i)=>{let s=ir(t,i);return 0===e.x?s?X:N:0===e.y?s?$:Y:""},rr=(t,e,i,s)=>ir(t,i)?Qs(0,e,i,s):$s(t,e,i,s),nr=(t,e,i,s)=>ir(t,e.target)?er(t,e,i,s):Us(t,e,i,s),or=(t,e,i,s)=>ir(t,e.target)?tr(t,e,i,s):Ks(t,e,i,s),ar=()=>({ml:new Bs({x:-.5,y:0,cursorStyleHandler:rr,actionHandler:nr,getActionName:sr}),mr:new Bs({x:.5,y:0,cursorStyleHandler:rr,actionHandler:nr,getActionName:sr}),mb:new Bs({x:0,y:.5,cursorStyleHandler:rr,actionHandler:or,getActionName:sr}),mt:new Bs({x:0,y:-.5,cursorStyleHandler:rr,actionHandler:or,getActionName:sr}),tl:new Bs({x:-.5,y:-.5,cursorStyleHandler:$s,actionHandler:Gs}),tr:new Bs({x:.5,y:-.5,cursorStyleHandler:$s,actionHandler:Gs}),bl:new Bs({x:-.5,y:.5,cursorStyleHandler:$s,actionHandler:Gs}),br:new Bs({x:.5,y:.5,cursorStyleHandler:$s,actionHandler:Gs}),mtr:new Bs({x:0,y:-.5,actionHandler:Ws,cursorStyleHandler:Hs,offsetY:-40,withConnection:!0,actionName:L})}),hr=()=>({mr:new Bs({x:.5,y:0,actionHandler:js,cursorStyleHandler:rr,actionName:z}),ml:new Bs({x:-.5,y:0,actionHandler:js,cursorStyleHandler:rr,actionName:z})}),lr=()=>({...ar(),...hr()});var cr=class t extends Os{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e){super(),Object.assign(this,this.constructor.createControls(),t.ownDefaults),this.setOptions(e)}static createControls(){return{controls:ar()}}_updateCacheCanvas(){let t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){let e=t._currentTransform,i=e.target,s=e.action;if(this===i&&s&&s.startsWith("scale"))return!1}return super._updateCacheCanvas()}getActiveControl(){let t=this.__corner;return t?{key:t,control:this.controls[t],coord:this.oCoords[t]}:void 0}findControl(t,e=!1){if(!this.hasControls||!this.canvas)return;this.__corner=void 0;let i=Object.entries(this.oCoords);for(let s=i.length-1;s>=0;s--){let[r,n]=i[s],o=this.controls[r];if(o.shouldActivate(r,this,t,e?n.touchCorner:n.corner))return this.__corner=r,{key:r,control:o,coord:this.oCoords[r]}}}calcOCoords(){let t=this.getViewportTransform(),e=kt(t),i=Dt(t),s=this.getCenterPoint(),r=Ct(Ct(t,Ct(Mt(s.x,s.y),Pt({angle:this.getTotalAngle()-(this.group&&this.flipX?180:0)}))),[1/e,0,0,1/i,0,0]),n=this.group?Ot(this.calcTransformMatrix()):void 0;n&&(n.scaleX=Math.abs(n.scaleX),n.scaleY=Math.abs(n.scaleY));let o=this._calculateCurrentDimensions(n),a={};return this.forEachControl(((t,e)=>{let i=t.positionHandler(o,r,this,t);a[e]=Object.assign(i,this._calcCornerCoords(t,i))})),a}_calcCornerCoords(t,e){let i=this.getTotalAngle();return{corner:t.calcCornerCoords(i,this.cornerSize,e.x,e.y,!1,this),touchCorner:t.calcCornerCoords(i,this.touchCornerSize,e.x,e.y,!0,this)}}setCoords(){super.setCoords(),this.canvas&&(this.oCoords=this.calcOCoords())}forEachControl(t){for(let e in this.controls)t(this.controls[e],e,this)}drawSelectionBackground(t){if(!this.selectionBackgroundColor||this.canvas&&this.canvas._activeObject!==this)return;t.save();let e=this.getRelativeCenterPoint(),i=this._calculateCurrentDimensions(),s=this.getViewportTransform();t.translate(e.x,e.y),t.scale(1/s[0],1/s[3]),t.rotate(vt(this.angle)),t.fillStyle=this.selectionBackgroundColor,t.fillRect(-i.x/2,-i.y/2,i.x,i.y),t.restore()}strokeBorders(t,e){t.strokeRect(-e.x/2,-e.y/2,e.x,e.y)}_drawBorders(t,e,i={}){let s={hasControls:this.hasControls,borderColor:this.borderColor,borderDashArray:this.borderDashArray,...i};t.save(),t.strokeStyle=s.borderColor,this._setLineDash(t,s.borderDashArray),this.strokeBorders(t,e),s.hasControls&&this.drawControlsConnectingLines(t,e),t.restore()}_renderControls(t,e={}){let{hasBorders:i,hasControls:s}=this,r={hasBorders:i,hasControls:s,...e},n=this.getViewportTransform(),o=r.hasBorders,a=r.hasControls,h=Ot(Ct(n,this.calcTransformMatrix()));t.save(),t.translate(h.translateX,h.translateY),t.lineWidth=this.borderScaleFactor,this.group===this.parent&&(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(h.angle-=180);let l=Tt(n);t.rotate(this.group?vt(h.angle):vt(this.angle)+l),o&&this.drawBorders(t,h,e),a&&this.drawControls(t,e),t.restore()}drawBorders(t,e,i){let s;if(i&&i.forActiveSelection||this.group){let t=be(this.width,this.height,jt(e)),i=this.isStrokeAccountedForInDimensions()?rt:(this.strokeUniform?(new st).scalarAdd(this.canvas?this.canvas.getZoom():1):new st(e.scaleX,e.scaleY)).scalarMultiply(this.strokeWidth);s=t.add(i).scalarAdd(this.borderScaleFactor).scalarAdd(2*this.padding)}else s=this._calculateCurrentDimensions().scalarAdd(this.borderScaleFactor);this._drawBorders(t,s,i)}drawControlsConnectingLines(t,e){let i=!1;t.beginPath(),this.forEachControl(((s,r)=>{s.withConnection&&s.getVisibility(this,r)&&(i=!0,t.moveTo(s.x*e.x,s.y*e.y),t.lineTo(s.x*e.x+s.offsetX,s.y*e.y+s.offsetY))})),i&&t.stroke()}drawControls(t,e={}){t.save();let i=this.getCanvasRetinaScaling(),{cornerStrokeColor:s,cornerDashArray:r,cornerColor:n}=this,o={cornerStrokeColor:s,cornerDashArray:r,cornerColor:n,...e};t.setTransform(i,0,0,i,0,0),t.strokeStyle=t.fillStyle=o.cornerColor,this.transparentCorners||(t.strokeStyle=o.cornerStrokeColor),this._setLineDash(t,o.cornerDashArray),this.forEachControl(((e,i)=>{if(e.getVisibility(this,i)){let s=this.oCoords[i];e.render(t,s.x,s.y,o,this)}})),t.restore()}isControlVisible(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)}setControlVisible(t,e){this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e}setControlsVisibility(t={}){Object.entries(t).forEach((([t,e])=>this.setControlVisible(t,e)))}clearContextTop(t){if(!this.canvas)return;let e=this.canvas.contextTop;if(!e)return;let i=this.canvas.viewportTransform;e.save(),e.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this.transform(e);let s=this.width+4,r=this.height+4;return e.clearRect(-s/2,-r/2,s,r),t||e.restore(),e}onDeselect(t){return!1}onSelect(t){return!1}shouldStartDragging(t){return!1}onDragStart(t){return!1}canDrop(t){return!1}renderDragSourceEffect(t){}renderDropTargetEffect(t){}};function ur(t,e){return e.forEach((e=>{Object.getOwnPropertyNames(e.prototype).forEach((i=>{"constructor"!==i&&Object.defineProperty(t.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i)||Object.create(null))}))})),t}n(cr,"ownDefaults",{noScaleCache:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,cornerSize:13,touchCornerSize:24,transparentCorners:!0,cornerColor:"rgb(178,204,255)",cornerStrokeColor:"",cornerStyle:"rect",cornerDashArray:null,hasControls:!0,borderColor:"rgb(178,204,255)",borderDashArray:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,hasBorders:!0,selectionBackgroundColor:"",selectable:!0,evented:!0,perPixelTargetFind:!1,activeOn:"down",hoverCursor:null,moveCursor:null});var dr=class extends cr{};ur(dr,[hi]),J.setClass(dr),J.setClass(dr,"object");let pr=(t,e,i,s)=>{let r=2*(s=Math.round(s))+1,{data:n}=t.getImageData(e-s,i-s,r,r);for(let t=3;t<n.length;t+=4)if(n[t]>0)return!1;return!0};var gr=class{constructor(t){this.options=t,this.strokeProjectionMagnitude=this.options.strokeWidth/2,this.scale=new st(this.options.scaleX,this.options.scaleY),this.strokeUniformScalar=this.options.strokeUniform?new st(1/this.options.scaleX,1/this.options.scaleY):new st(1,1)}createSideVector(t,e){let i=Pe(t,e);return this.options.strokeUniform?i.multiply(this.scale):i}projectOrthogonally(t,e,i){return this.applySkew(t.add(this.calcOrthogonalProjection(t,e,i)))}isSkewed(){return 0!==this.options.skewX||0!==this.options.skewY}applySkew(t){let e=new st(t);return e.y+=e.x*Math.tan(vt(this.options.skewY)),e.x+=e.y*Math.tan(vt(this.options.skewX)),e}scaleUnitVector(t,e){return t.multiply(this.strokeUniformScalar).scalarMultiply(e)}};let fr=new st;var mr=class t extends gr{static getOrthogonalRotationFactor(t,e){let i=e?Ae(t,e):Fe(t);return Math.abs(i)<w?-1:1}constructor(t,e,i,s){super(s),n(this,"AB",void 0),n(this,"AC",void 0),n(this,"alpha",void 0),n(this,"bisector",void 0),this.A=new st(t),this.B=new st(e),this.C=new st(i),this.AB=this.createSideVector(this.A,this.B),this.AC=this.createSideVector(this.A,this.C),this.alpha=Ae(this.AB,this.AC),this.bisector=Ie(Me(this.AB.eq(fr)?this.AC:this.AB,this.alpha/2))}calcOrthogonalProjection(e,i,s=this.strokeProjectionMagnitude){let r=je(this.createSideVector(e,i)),n=t.getOrthogonalRotationFactor(r,this.bisector);return this.scaleUnitVector(r,s*n)}projectBevel(){let t=[];
vendor: 4,297 bytes, line 1
1return(this.alpha%S==0?[this.B]:[this.B,this.C]).forEach((e=>{t.push(this.projectOrthogonally(this.A,e)),t.push(this.projectOrthogonally(this.A,e,-this.strokeProjectionMagnitude))})),t}projectMiter(){let t=[],e=Math.abs(this.alpha),i=1/Math.sin(e/2),s=this.scaleUnitVector(this.bisector,-this.strokeProjectionMagnitude*i),r=this.options.strokeUniform?Ee(this.scaleUnitVector(this.bisector,this.options.strokeMiterLimit)):this.options.strokeMiterLimit;return Ee(s)/this.strokeProjectionMagnitude<=r&&t.push(this.applySkew(this.A.add(s))),t.push(...this.projectBevel()),t}projectRoundNoSkew(e,i){let s=[],r=new st(t.getOrthogonalRotationFactor(this.bisector),t.getOrthogonalRotationFactor(new st(this.bisector.y,this.bisector.x)));return[new st(1,0).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(r),new st(0,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(r)].forEach((t=>{ze(t,e,i)&&s.push(this.A.add(t))})),s}projectRoundWithSkew(t,e){let i=[],{skewX:s,skewY:r,scaleX:n,scaleY:o,strokeUniform:a}=this.options,h=new st(Math.tan(vt(s)),Math.tan(vt(r))),l=this.strokeProjectionMagnitude,c=a?l/o/Math.sqrt(1/o**2+1/n**2*h.y**2):l/Math.sqrt(1+h.y**2),u=new st(Math.sqrt(Math.max(l**2-c**2,0)),c),d=a?l/Math.sqrt(1+h.x**2*(1/o)**2/(1/n+1/n*h.x*h.y)**2):l/Math.sqrt(1+h.x**2/(1+h.x*h.y)**2),p=new st(d,Math.sqrt(Math.max(l**2-d**2,0)));return[p,p.scalarMultiply(-1),u,u.scalarMultiply(-1)].map((t=>this.applySkew(a?t.multiply(this.strokeUniformScalar):t))).forEach((s=>{ze(s,t,e)&&i.push(this.applySkew(this.A).add(s))})),i}projectRound(){let t=[];t.push(...this.projectBevel());let e=this.alpha%S==0,i=this.applySkew(this.A),s=t[e?0:2].subtract(i),r=t[+!!e].subtract(i),n=Le(s,e?this.applySkew(this.AB.scalarMultiply(-1)):this.applySkew(this.bisector.multiply(this.strokeUniformScalar).scalarMultiply(-1)))>0,o=n?s:r,a=n?r:s;return this.isSkewed()?t.push(...this.projectRoundWithSkew(o,a)):t.push(...this.projectRoundNoSkew(o,a)),t}projectPoints(){switch(this.options.strokeLineJoin){case"miter":return this.projectMiter();case"round":return this.projectRound();default:return this.projectBevel()}}project(){return this.projectPoints().map((t=>({originPoint:this.A,projectedPoint:t,angle:this.alpha,bisector:this.bisector})))}},_r=class extends gr{constructor(t,e,i){super(i),this.A=new st(t),this.T=new st(e)}calcOrthogonalProjection(t,e,i=this.strokeProjectionMagnitude){let s=this.createSideVector(t,e);return this.scaleUnitVector(je(s),i)}projectButt(){return[this.projectOrthogonally(this.A,this.T,this.strokeProjectionMagnitude),this.projectOrthogonally(this.A,this.T,-this.strokeProjectionMagnitude)]}projectRound(){let t=[];if(!this.isSkewed()&&this.A.eq(this.T)){let e=new st(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);t.push(this.applySkew(this.A.add(e)),this.applySkew(this.A.subtract(e)))}else t.push(...new mr(this.A,this.T,this.T,this.options).projectRound());return t}projectSquare(){let t=[];if(this.A.eq(this.T)){let e=new st(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);t.push(this.A.add(e),this.A.subtract(e))}else{let e=this.calcOrthogonalProjection(this.A,this.T,this.strokeProjectionMagnitude),i=this.scaleUnitVector(Ie(this.createSideVector(this.A,this.T)),-this.strokeProjectionMagnitude),s=this.A.add(i);t.push(s.add(e),s.subtract(e))}return t.map((t=>this.applySkew(t)))}projectPoints(){switch(this.options.strokeLineCap){case"round":return this.projectRound();case"square":return this.projectSquare();default:return this.projectButt()}}project(){return this.projectPoints().map((t=>({originPoint:this.A,projectedPoint:t})))}};let vr=(t,e,i=!1)=>{let s=[];if(0===t.length)return s;let r=t.reduce(((t,e)=>(t[t.length-1].eq(e)||t.push(new st(e)),t)),[new st(t[0])]);if(1===r.length)i=!0;else if(!i){let t=r[0],e=((t,e)=>{for(let i=t.length-1;i>=0;i--)if(e(t[i],i,t))return i;return-1})(r,(e=>!e.eq(t)));r.splice(e+1)}return r.forEach(((t,r,n)=>{let o,a;0===r?(a=n[1],o=i?t:n[n.length-1]):r===n.length-1?(o=n[r-1],a=i?t:n[0]):(o=n[r-1],a=n[r+1]),i&&1===n.length?s.push(...new _r(t,t,e).project()):!i||0!==r&&r!==n.length-1?s.push(...new mr(t,o,a,e).project()):s.push(...new _r(t,0===r?a:o,e).project())}
vendor: 7,293 bytes, line 1
1)),s},yr=t=>{let e={};return Object.keys(t).forEach((i=>{e[i]={},Object.keys(t[i]).forEach((s=>{e[i][s]={...t[i][s]}}))})),e},br=(t,e,i=!1)=>t.fill!==e.fill||t.stroke!==e.stroke||t.strokeWidth!==e.strokeWidth||t.fontSize!==e.fontSize||t.fontFamily!==e.fontFamily||t.fontWeight!==e.fontWeight||t.fontStyle!==e.fontStyle||t.textDecorationThickness!==e.textDecorationThickness||t.textDecorationColor!==e.textDecorationColor||t.textBackgroundColor!==e.textBackgroundColor||t.deltaY!==e.deltaY||i&&(t.overline!==e.overline||t.underline!==e.underline||t.linethrough!==e.linethrough),xr=(t,e)=>{let i=e.split("\n"),s=[],r=-1,n={};t=yr(t);for(let e=0;e<i.length;e++){let o=oe(i[e]);if(t[e])for(let i=0;i<o.length;i++){r++;let o=t[e][i];o&&Object.keys(o).length>0&&(br(n,o,!0)?s.push({start:r,end:r+1,style:o}):s[s.length-1].end++),n=o||{}}else r+=o.length,n={}}return s},wr=(t,e)=>{if(!Array.isArray(t))return yr(t);let i=e.split(A),s={},r=-1,n=0;for(let e=0;e<i.length;e++){let o=oe(i[e]);for(let i=0;i<o.length;i++)r++,t[n]&&t[n].start<=r&&r<t[n].end&&(s[e]=s[e]||{},s[e][i]={...t[n].style},r===t[n].end-1&&n++)}return s},Cr=["display","transform",V,"fill-opacity","fill-rule","opacity",G,"stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"];function Sr(t,e){let i,s=t.nodeName,r=t.getAttribute("class"),n=t.getAttribute("id"),o="(?![a-zA-Z\\-]+)";if(i=RegExp("^"+s,"i"),e=e.replace(i,""),n&&e.length&&(i=RegExp("#"+n+o,"i"),e=e.replace(i,"")),r&&e.length){let t=r.split(" ");for(let s=t.length;s--;)i=RegExp("\\."+t[s]+o,"i"),e=e.replace(i,"")}return 0===e.length}function Tr(t,e){let i=!0,s=Sr(t,e.pop());return s&&e.length&&(i=function(t,e){let i,s=!0;for(;t.parentElement&&1===t.parentElement.nodeType&&e.length;)s&&(i=e.pop()),s=Sr(t=t.parentElement,i);return 0===e.length}(t,e)),s&&i&&0===e.length}function kr(t,e={}){let i={};for(let s in e)Tr(t,s.split(" "))&&(i={...i,...e[s]});return i}let Dr=t=>{var e;return null==(e=Ci[t])?t:e},Or=RegExp(`(${yi})`,"gi"),Mr=`(${yi})`,Pr=String.raw`(skewX)\(${Mr}\)`,Er=String.raw`(skewY)\(${Mr}\)`,Ar=String.raw`(rotate)\(${Mr}(?: ${Mr} ${Mr})?\)`,Fr=String.raw`(scale)\(${Mr}(?: ${Mr})?\)`,Ir=String.raw`(translate)\(${Mr}(?: ${Mr})?\)`,jr=`(?:${String.raw`(matrix)\(${Mr} ${Mr} ${Mr} ${Mr} ${Mr} ${Mr}\)`}|${Ir}|${Ar}|${Fr}|${Pr}|${Er})`,Lr=`(?:${jr}*)`,Rr=String.raw`^\s*(?:${Lr}?)\s*$`,zr=new RegExp(Rr),Br=new RegExp(jr),Hr=new RegExp(jr,"g");function Wr(t){let e=[];if(!(t=(t=>qe(t.replace(Or," $1 ").replace(/,/gi," ")))(t).replace(/\s*([()])\s*/gi,"$1"))||t&&!zr.test(t))return[...k];for(let i of t.matchAll(Hr)){let t=Br.exec(i[0]);if(!t)continue;let s=k,[,r,...n]=t.filter((t=>!!t)),[o,a,h,l,c,u]=n.map((t=>parseFloat(t)));switch(r){case"translate":s=Mt(o,a);break;case L:s=Pt({angle:o},{x:a,y:h});break;case W:s=Et(o,a);break;case X:s=Ft(o);break;case $:s=It(o);break;case"matrix":s=[o,a,h,l,c,u]}e.push(s)}return St(e)}function Yr(t,e,i,s){let r,n=Array.isArray(e),o=e;if("fill"!==t&&"stroke"!==t||"none"!==e){if("strokeUniform"===t)return"non-scaling-stroke"===e;if("strokeDashArray"===t)o="none"===e?null:e.replace(/,/g," ").split(/\s+/).map(parseFloat);else if("transformMatrix"===t)o=i&&i.transformMatrix?Ct(i.transformMatrix,Wr(e)):Wr(e);else if("visible"===t)o="none"!==e&&"hidden"!==e,i&&!1===i.visible&&(o=!1);else if("opacity"===t)o=parseFloat(e),i&&void 0!==i.opacity&&(o*=i.opacity);else if("textAnchor"===t)o="start"===e?O:"end"===e?P:D;else if("charSpacing"===t||"textDecorationThickness"===t)r=ni(e,s)/s*1e3;else if("paintFirst"===t){let t=e.indexOf(V),i=e.indexOf(G);o=V,(t>-1&&i>-1&&i<t||-1===t&&i>-1)&&(o=G)}else{if("href"===t||"xlink:href"===t||"font"===t||"id"===t)return e;if("imageSmoothing"===t)return"optimizeQuality"===e;r=n?e.map(ni):ni(e,s)}}else o="";return!n&&isNaN(r)?o:r}function Nr(t,e){t.replace(/;\s*$/,"").split(";").forEach((t=>{if(!t)return;let[i,s]=t.split(":");e[i.trim().toLowerCase()]=s.trim()}))}function Xr(t){let e={},i=t.getAttribute("style");return i&&("string"==typeof i?Nr(i,e):function(t,e){Object.entries(t).forEach((([t,i])=>{void 0!==i&&(e[t.toLowerCase()]=i)}))}(i,e)),e}let $r={stroke:"strokeOpacity",fill:"fillOpacity"};function Vr(t,e,i){if(!t)return{};let s,r={},n=16;t.parentNode&&Oi.test(t.parentNode.nodeName)&&(r=Vr(t.parentElement,e,i),r.fontSize&&(s=n=ni(r.fontSize)));let o={...e.reduce(((e,i)=>{let s=t.getAttribute(i);return s&&(e[i]=s),e}),{}),...kr(t,i),...Xr(t)};o["clip-path"]&&t.setAttribute(Ti,o[Ti]),o["font-size"]&&(s=ni(o[Si],n),o[Si]=`${s}`);let a={};for(let t in o){let e=Dr(t);a[e]=Yr(e,o[t],r,s)}a&&a.font&&function(t,e){let i=t.match(wi);if(!i)return;let s=i[1],r=i[3],n=i[4],o=i[5],a=i[6];s&&(e.fontStyle=s),r&&(e.fontWeight=isNaN(parseFloat(r))?r:parseFloat(r)),n&&(e.fontSize=ni(n)),a&&(e.fontFamily=a),o&&(e.lineHeight="normal"===o?1:o)}(a.font,a);let h={...r,...a};return Oi.test(t.nodeName)?h:function(t){let e=dr.getDefaults();return Object.entries($r).forEach((([i,s])=>{if(void 0===t[s]||""===t[i])return;if(void 0===t[i]){if(!e[i])return;t[i]=e[i]}if(0===t[i].indexOf("url("))return;let r=new si(t[i]);t[i]=r.setAlpha(Yt(r.getAlpha()*t[s],2)).toRgba()})),t}(h)}let Gr=["rx","ry"];var Ur=class t extends dr{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e){super(),Object.assign(this,t.ownDefaults),this.setOptions(e),this._initRxRy()}_initRxRy(){let{rx:t,ry:e}=this;t&&!e?this.ry=t:e&&!t&&(this.rx=e)}_render(t){let{width:e,height:i}=this,s=-e/2,r=-i/2,n=this.rx?Math.min(this.rx,e/2):0,o=this.ry?Math.min(this.ry,i/2):0,a=0!==n||0!==o;t.beginPath(),t.moveTo(s+n,r),t.lineTo(s+e-n,r),a&&t.bezierCurveTo(s+e-.4477152502*n,r,s+e,r+.4477152502*o,s+e,r+o),t.lineTo(s+e,r+i-o),a&&t.bezierCurveTo(s+e,r+i-.4477152502*o,s+e-.4477152502*n,r+i,s+e-n,r+i),t.lineTo(s+n,r+i),a&&t.bezierCurveTo(s+.4477152502*n,r+i,s,r+i-.4477152502*o,s,r+i-o),t.lineTo(s,r+o),a&&t.bezierCurveTo(s,r+.4477152502*o,s+.4477152502*n,r,s+n,r),t.closePath(),this._renderPaintInOrder(t)}toObject(t=[]){return super.toObject([...Gr,...t])}_toSVG(){let{width:t,height:e,rx:i,ry:s}=this;return["<rect ","COMMON_PARTS",`x="${-t/2}" y="${-e/2}" rx="${ne(i)}" ry="${ne(s)}" width="${ne(t)}" height="${ne(e)}" />\n`]}static async fromElement(t,e,i){let{left:s=0,top:r=0,width:n=0,height:o=0,visible:a=!0,...h}=Vr(t,this.ATTRIBUTE_NAMES,i);return new this({...e,...h,left:s,top:r,width:n,height:o,visible:!!(a&&n&&o)})}};n(Ur,"type","Rect"),n(Ur,"cacheProperties",[...ji,...Gr]),n(Ur,"ownDefaults",{rx:0,ry:0}),n(Ur,"ATTRIBUTE_NAMES",[...Cr,"x","y","rx","ry","width","height"]),J.setClass(Ur),J.setSVGClass(Ur);let Kr="initialization",qr="added",Jr=(t,e)=>{let{strokeUniform:i,strokeWidth:s,width:r,height:n,group:o}=e,a=o&&o!==t?xe(o.calcTransformMatrix(),t.calcTransformMatrix()):null,h=a?e.getRelativeCenterPoint().transform(a):e.getRelativeCenterPoint(),l=!e.isStrokeAccountedForInDimensions(),c=i&&l?Ce(new st(s,s),void 0,t.calcTransformMatrix()):rt,u=!i&&l?s:0,d=be(r+u,n+u,St([a,e.calcOwnMatrix()],!0)).add(c).scalarDivide(2);return[h.subtract(d),h.add(d)]};var Qr=class{calcLayoutResult(t,e){if(this.shouldPerformLayout(t))return this.calcBoundingBox(e,t)}shouldPerformLayout({type:t,prevStrategy:e,strategy:i}
1){return"initialization"===t||"imperative"===t||!!e&&i!==e}shouldLayoutClipPath({type:t,target:{clipPath:e}}){return"initialization"!==t&&e&&!e.absolutePositioned}getInitialSize(t,e){return e.size}calcBoundingBox(t,e){let{type:i,target:s}=e;if("imperative"===i&&e.overrides)return e.overrides;if(0===t.length)return;let{left:r,top:n,width:o,height:a}=ge(t.map((t=>Jr(s,t))).reduce(((t,e)=>t.concat(e)),[])),h=new st(o,a),l=new st(r,n).add(h.scalarDivide(2));if("initialization"===i){let t=this.getInitialSize(e,{size:h,center:l});return{center:l,relativeCorrection:new st(0,0),size:t}}return{center:l.transform(s.calcOwnMatrix()),size:h}}};n(Qr,"type","strategy");var Zr=class extends Qr{shouldPerformLayout(t){return!0}};n(Zr,"type","fit-content"),J.setClass(Zr);let tn="layoutManager";var en=class{constructor(t=new Zr){n(this,"strategy",void 0),this.strategy=t,this._subscriptions=new Map}performLayout(t){let e={bubbles:!0,strategy:this.strategy,...t,prevStrategy:this._prevLayoutStrategy,stopPropagation(){this.bubbles=!1}};this.onBeforeLayout(e);let i=this.getLayoutResult(e);i&&this.commitLayout(e,i),this.onAfterLayout(e,i),this._prevLayoutStrategy=e.strategy}attachHandlers(t,e){let{target:i}=e;return[U,F,z,j,I,R,H,B,"modifyPath"].map((e=>t.on(e,(t=>this.performLayout("modified"===e?{type:"object_modified",trigger:e,e:t,target:i}:{type:"object_modifying",trigger:e,e:t,target:i})))))}subscribe(t,e){this.unsubscribe(t,e);let i=this.attachHandlers(t,e);this._subscriptions.set(t,i)}unsubscribe(t,e){(this._subscriptions.get(t)||[]).forEach((t=>t())),this._subscriptions.delete(t)}unsubscribeTargets(t){t.targets.forEach((e=>this.unsubscribe(e,t)))}subscribeTargets(t){t.targets.forEach((e=>this.subscribe(e,t)))}onBeforeLayout(t){let{target:e,type:i}=t,{canvas:s}=e;if("initialization"===i||"added"===i?this.subscribeTargets(t):"removed"===i&&this.unsubscribeTargets(t),e.fire("layout:before",{context:t}),s&&s.fire("object:layout:before",{target:e,context:t}),"imperative"===i&&t.deep){let{strategy:i,...s}=t;e.forEachObject((t=>t.layoutManager&&t.layoutManager.performLayout({...s,bubbles:!1,target:t})))}}getLayoutResult(t){let{target:e,strategy:i,type:s}=t,r=i.calcLayoutResult(t,e.getObjects());if(!r)return;let n="initialization"===s?new st:e.getRelativeCenterPoint(),{center:o,correction:a=new st,relativeCorrection:h=new st}=r;return{result:r,prevCenter:n,nextCenter:o,offset:n.subtract(o).add(a).transform("initialization"===s?k:wt(e.calcOwnMatrix()),!0).add(h)}}commitLayout(t,e){let{target:i}=t,{result:{size:s},nextCenter:r}=e;var n,o;i.set({width:s.x,height:s.y}),this.layoutObjects(t,e),"initialization"===t.type?i.set({left:null==(n=t.x)?r.x+s.x*ke(i.originX):n,top:null==(o=t.y)?r.y+s.y*ke(i.originY):o}):(i.setPositionByOrigin(r,D,D),i.setCoords(),i.set("dirty",!0))}layoutObjects(t,e){let{target:i}=t;i.forEachObject((s=>{s.group===i&&this.layoutObject(t,e,s)})),t.strategy.shouldLayoutClipPath(t)&&this.layoutObject(t,e,i.clipPath)}layoutObject(t,{offset:e},i){i.set({left:i.left+e.x,top:i.top+e.y})}onAfterLayout(t,e){let{target:i,strategy:s,bubbles:r,prevStrategy:n,...o}=t,{canvas:a}=i;i.fire("layout:after",{context:t,result:e}),a&&a.fire("object:layout:after",{context:t,result:e,target:i});let h=i.parent;r&&null!=h&&h.layoutManager&&((o.path||(o.path=[])).push(i),h.layoutManager.performLayout({...o,target:h})),i.set("dirty",!0)}dispose(){let{_subscriptions:t}=this;t.forEach((t=>t.forEach((t=>t())))),t.clear()}toObject(){return{type:tn,strategy:this.strategy.constructor.type}}toJSON(){return this.toObject()}};J.setClass(en,tn);var sn=class extends en{performLayout(){}},rn=class t extends(ot(dr)){static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e=[],i={}){super(),n(this,"_activeObjects",[]),n(this,"__objectSelectionTracker",void 0),n(this,"__objectSelectionDisposer",void 0),Object.assign(this,t.ownDefaults),this.setOptions(i),this.groupInit(e,i)}groupInit(t,e){var i;this._objects=[...t],this.__objectSelectionTracker=this.__objectSelectionMonitor.bind(this,!0),this.__objectSelectionDisposer=this.__objectSelectionMonitor.bind(this,!1),this.forEachObject((t=>{this.enterGroup(t,!1)})),this.layoutManager=null==(i=e.layoutManager)?new en:i,this.layoutManager.performLayout({type:Kr,target:this,targets:[...t],x:e.left,y:e.top})}canEnterGroup(t){return t===this||this.isDescendantOf(t)?(h("error","Group: circular object trees are not supported, this call has no effect"),!1):-1===this._objects.indexOf(t)||(h("error","Group: duplicate objects are not supported inside group, this call has no effect"),!1)}_filterObjectsBeforeEnteringGroup(t){return t.filter(((t,e,i)=>this.canEnterGroup(t)&&i.indexOf(t)===e))}add(...t){let e=this._filterObjectsBeforeEnteringGroup(t),i=super.add(...e);return this._onAfterObjectsChange(qr,e),i}insertAt(t,...e){let i=this._filterObjectsBeforeEnteringGroup(e),s=super.insertAt(t,...i);return this._onAfterObjectsChange(qr,i),s}remove(...t){let e=super.remove(...t);return this._onAfterObjectsChange("removed",e),e}_onObjectAdded(t){this.enterGroup(t,!0),this.fire("object:added",{target:t}),t.fire("added",{target:this})}_onObjectRemoved(t,e){this.exitGroup(t,e),this.fire("object:removed",{target:t}),t.fire("removed",{target:this})}_onAfterObjectsChange(t,e){this.layoutManager.performLayout({type:t,targets:e,target:this})}_onStackOrderChanged(){this._set("dirty",!0)}_set(t,e){let i=this[t];return super._set(t,e),"canvas"===t&&i!==e&&(this._objects||[]).forEac
vendor: 139,653 bytes, line 1
1h((i=>{i._set(t,e)})),this}_shouldSetNestedCoords(){return this.subTargetCheck}removeAll(){return this._activeObjects=[],this.remove(...this._objects)}__objectSelectionMonitor(t,{target:e}){let i=this._activeObjects;if(t)i.push(e),this._set("dirty",!0);else if(i.length>0){let t=i.indexOf(e);t>-1&&(i.splice(t,1),this._set("dirty",!0))}}_watchObject(t,e){t&&this._watchObject(!1,e),t?(e.on("selected",this.__objectSelectionTracker),e.on("deselected",this.__objectSelectionDisposer)):(e.off("selected",this.__objectSelectionTracker),e.off("deselected",this.__objectSelectionDisposer))}enterGroup(t,e){t.group&&t.group.remove(t),t._set("parent",this),this._enterGroup(t,e)}_enterGroup(t,e){e&&_e(t,Ct(wt(this.calcTransformMatrix()),t.calcTransformMatrix())),this._shouldSetNestedCoords()&&t.setCoords(),t._set("group",this),t._set("canvas",this.canvas),this._watchObject(!0,t);let i=this.canvas&&this.canvas.getActiveObject&&this.canvas.getActiveObject();i&&(i===t||t.isDescendantOf(i))&&this._activeObjects.push(t)}exitGroup(t,e){this._exitGroup(t,e),t._set("parent",void 0),t._set("canvas",void 0)}_exitGroup(t,e){t._set("group",void 0),e||(_e(t,Ct(this.calcTransformMatrix(),t.calcTransformMatrix())),t.setCoords()),this._watchObject(!1,t);let i=this._activeObjects.length>0?this._activeObjects.indexOf(t):-1;i>-1&&this._activeObjects.splice(i,1)}shouldCache(){let t=dr.prototype.shouldCache.call(this);if(t)for(let t=0;t<this._objects.length;t++)if(this._objects[t].willDrawShadow())return this.ownCaching=!1,!1;return t}willDrawShadow(){if(super.willDrawShadow())return!0;for(let t=0;t<this._objects.length;t++)if(this._objects[t].willDrawShadow())return!0;return!1}isOnACache(){return this.ownCaching||!!this.parent&&this.parent.isOnACache()}drawObject(t,e,i){this._renderBackground(t);for(let e=0;e<this._objects.length;e++){var s;let i=this._objects[e];null!=(s=this.canvas)&&s.preserveObjectStacking&&i.group!==this?(t.save(),t.transform(...wt(this.calcTransformMatrix())),i.render(t),t.restore()):i.group===this&&i.render(t)}this._drawClipPath(t,this.clipPath,i)}setCoords(){super.setCoords(),this._shouldSetNestedCoords()&&this.forEachObject((t=>t.setCoords()))}triggerLayout(t={}){this.layoutManager.performLayout({target:this,type:"imperative",...t})}render(t){this._transformDone=!0,super.render(t),this._transformDone=!1}__serializeObjects(t,e){let i=this.includeDefaultValues;return this._objects.filter((function(t){return!t.excludeFromExport})).map((function(s){let r=s.includeDefaultValues;s.includeDefaultValues=i;let n=s[t||"toObject"](e);return s.includeDefaultValues=r,n}))}toObject(t=[]){let e=this.layoutManager.toObject();return{...super.toObject(["subTargetCheck","interactive",...t]),..."fit-content"!==e.strategy||this.includeDefaultValues?{layoutManager:e}:{},objects:this.__serializeObjects("toObject",t)}}toString(){return`#<Group: (${this.complexity()})>`}dispose(){this.layoutManager.unsubscribeTargets({targets:this.getObjects(),target:this}),this._activeObjects=[],this.forEachObject((t=>{this._watchObject(!1,t),t.dispose()})),super.dispose()}_createSVGBgRect(t){if(!this.backgroundColor)return"";let e=Ur.prototype._toSVG.call(this),i=e.indexOf("COMMON_PARTS");e[i]='for="group" ';let s=e.join("");return t?t(s):s}_toSVG(t){let e=["<g ","COMMON_PARTS"," >\n"],i=this._createSVGBgRect(t);i&&e.push("\t\t",i);for(let i=0;i<this._objects.length;i++)e.push("\t\t",this._objects[i].toSVG(t));return e.push("</g>\n"),e}getSvgStyles(){let t=void 0!==this.opacity&&1!==this.opacity?`opacity: ${ne(this.opacity)};`:"",e=this.visible?"":" visibility: hidden;";return[t,this.getSvgFilter(),e].join("")}toClipPathSVG(t){let e=[],i=this._createSVGBgRect(t);i&&e.push("\t",i);for(let i=0;i<this._objects.length;i++)e.push("\t",this._objects[i].toClipPathSVG(t));return this._createBaseClipPathSVGMarkup(e,{reviver:t})}static fromObject({type:t,objects:e=[],layoutManager:i,...s},r){return Promise.all([zt(e,r),Bt(s,r)]).then((([t,e])=>{let r=new this(t,{...s,...e,layoutManager:new sn});return r.layoutManager=i?new(J.getClass(i.type))(new(J.getClass(i.strategy))):new en,r.layoutManager.subscribeTargets({type:Kr,target:r,targets:r.getObjects()}),r.setCoords(),r}))}};n(rn,"type","Group"),n(rn,"ownDefaults",{strokeWidth:0,subTargetCheck:!1,interactive:!1}),J.setClass(rn);let nn=(t,e)=>t&&1===t.length?t[0]:new rn(t,e),on=(t,e)=>Math.min(e.width/t.width,e.height/t.height),an=(t,e)=>Math.max(e.width/t.width,e.height/t.height),hn="\\s*,?\\s*",ln=`${hn}(${yi})`,cn=`${ln}${ln}${ln}${hn}([01])${hn}([01])${ln}${ln}`,un={m:"l",M:"L"},dn=(t,e,i,s,r,n,o,a,h,l,c)=>{let u=et(t),d=it(t),p=et(e),g=it(e),f=i*r*p-s*n*g+o,m=s*r*p+i*n*g+a;return["C",l+h*(-i*r*d-s*n*u),c+h*(-s*r*d+i*n*u),f+h*(i*r*g+s*n*p),m+h*(s*r*g-i*n*p),f,m]},pn=(t,e,i,s)=>{let r=Math.atan2(e,t),n=Math.atan2(s,i);return n>=r?n-r:2*Math.PI-(r-n)};function gn(t,e,i,s,r,n,o,h){let l;if(a.cachesBoundsOfCurve&&(l=[...arguments].join(),y.boundsOfCurveCache[l]))return y.boundsOfCurveCache[l];let c=Math.sqrt,u=Math.abs,d=[],p=[[0,0],[0,0]],g=6*t-12*i+6*r,f=-3*t+9*i-9*r+3*o,m=3*i-3*t;for(let t=0;t<2;++t){if(t>0&&(g=6*e-12*s+6*n,f=-3*e+9*s-9*n+3*h,m=3*s-3*e),u(f)<1e-12){if(u(g)<1e-12)continue;let t=-m/g;0<t&&t<1&&d.push(t);continue}let i=g*g-4*m*f;if(i<0)continue;let r=c(i),o=(-g+r)/(2*f);0<o&&o<1&&d.push(o);let a=(-g-r)/(2*f);0<a&&a<1&&d.push(a)}let _=d.length,v=_,b=vn(t,e,i,s,r,n,o,h);for(;_--;){let{x:t,y:e}=b(d[_]);p[0][_]=t,p[1][_]=e}p[0][v]=t,p[1][v]=e,p[0][v+1]=o,p[1][v+1]=h;let x=[new st(Math.min(...p[0]),Math.min(...p[1])),new st(Math.max(...p[0]),Math.max(...p[1]))];return a.cachesBoundsOfCurve&&(y.boundsOfCurveCache[l]=x),x}let fn=(t,e,[i,s,r,n,o,a,h,l])=>{let c=((t,e,i,s,r,n,o)=>{if(0===i||0===s)return[];let a=0,h=0,l=0,c=Math.PI,u=o*T,d=it(u),p=et(u),g=.5*(-p*t-d*e),f=.5*(-p*e+d*t),m=i**2,_=s**2,v=f**2,y=g**2,b=m*_-m*v-_*y,x=Math.abs(i),w=Math.abs(s);if(b<0){let t=Math.sqrt(1-b/(m*_));x*=t,w*=t}else l=(r===n?-1:1)*Math.sqrt(b/(m*v+_*y));let C=l*x*f/w,S=-l*w*g/x,k=p*C-d*S+.5*t,D=d*C+p*S+.5*e,O=pn(1,0,(g-C)/x,(f-S)/w),M=pn((g-C)/x,(f-S)/w,(-g-C)/x,(-f-S)/w);0===n&&M>0?M-=2*c:1===n&&M<0&&(M+=2*c);let P=Math.ceil(Math.abs(M/c*2)),E=[],A=M/P,F=8/3*Math.sin(A/4)*Math.sin(A/4)/Math.sin(A/2),I=O+A;for(let t=0;t<P;t++)E[t]=dn(O,I,p,d,x,w,k,D,F,a,h),a=E[t][5],h=E[t][6],O=I,I+=A;return E})(h-t,l-e,s,r,o,a,n);for(let i=0,s=c.length;i<s;i++)c[i][1]+=t,c[i][2]+=e,c[i][3]+=t,c[i][4]+=e,c[i][5]+=t,c[i][6]+=e;return c},mn=t=>{let e,i=0,s=0,r=0,n=0,o=[],a=0,h=0;for(let l of t){let t,c=[...l];switch(c[0]){case"l":c[1]+=i,c[2]+=s;case"L":i=c[1],s=c[2],t=["L",i,s];break;case"h":c[1]+=i;case"H":i=c[1],t=["L",i,s];break;case"v":c[1]+=s;case"V":s=c[1],t=["L",i,s];break;case"m":c[1]+=i,c[2]+=s;case"M":i=c[1],s=c[2],r=c[1],n=c[2],t=["M",i,s];break;case"c":c[1]+=i,c[2]+=s,c[3]+=i,c[4]+=s,c[5]+=i,c[6]+=s;case"C":a=c[3],h=c[4],i=c[5],s=c[6],t=["C",c[1],c[2],a,h,i,s];break;case"s":c[1]+=i,c[2]+=s,c[3]+=i,c[4]+=s;case"S":"C"===e?(a=2*i-a,h=2*s-h):(a=i,h=s),i=c[3],s=c[4],t=["C",a,h,c[1],c[2],i,s],a=t[3],h=t[4];break;case"q":c[1]+=i,c[2]+=s,c[3]+=i,c[4]+=s;case"Q":a=c[1],h=c[2],i=c[3],s=c[4],t=["Q",a,h,i,s];break;case"t":c[1]+=i,c[2]+=s;case"T":"Q"===e?(a=2*i-a,h=2*s-h):(a=i,h=s),i=c[1],s=c[2],t=["Q",a,h,i,s];break;case"a":c[6]+=i,c[7]+=s;case"A":fn(i,s,c).forEach((t=>o.push(t))),i=c[6],s=c[7];break;case"z":case"Z":i=r,s=n,t=["Z"]}t?(o.push(t),e=t[0]):e=""}return o},_n=(t,e,i,s)=>Math.sqrt((i-t)**2+(s-e)**2),vn=(t,e,i,s,r,n,o,a)=>h=>{let l=h**3,c=(t=>3*t**2*(1-t))(h),u=(t=>3*t*(1-t)**2)(h),d=(t=>(1-t)**3)(h);return new st(o*l+r*c+i*u+t*d,a*l+n*c+s*u+e*d)},yn=t=>t**2,bn=t=>2*t*(1-t),xn=t=>(1-t)**2,wn=(t,e,i,s,r,n,o,a)=>h=>{let l=yn(h),c=bn(h),u=xn(h),d=3*(u*(i-t)+c*(r-i)+l*(o-r)),p=3*(u*(s-e)+c*(n-s)+l*(a-n));return Math.atan2(p,d)},Cn=(t,e,i,s,r,n)=>o=>{let a=yn(o),h=bn(o),l=xn(o);return new st(r*a+i*h+t*l,n*a+s*h+e*l)},Sn=(t,e,i,s,r,n)=>o=>{let a=1-o,h=2*(a*(i-t)+o*(r-i)),l=2*(a*(s-e)+o*(n-s));return Math.atan2(l,h)},Tn=(t,e,i)=>{let s=new st(e,i),r=0;for(let e=1;e<=100;e+=1){let i=t(e/100);r+=_n(s.x,s.y,i.x,i.y),s=i}return r},kn=(t,e)=>{let i,s=0,r=0,n={x:t.x,y:t.y},o={...n},a=.01,h=0,l=t.iterator,c=t.angleFinder;for(;r<e&&a>1e-4;)o=l(s),h=s,i=_n(n.x,n.y,o.x,o.y),i+r>e?(s-=a,a/=2):(n=o,s+=a,r+=i);return{...o,angle:c(h)}},Dn=t=>{let e,i,s=0,r=0,n=0,o=0,a=0,h=[];for(let l of t){let t={x:r,y:n,command:l[0],length:0};switch(l[0]){case"M":i=t,i.x=o=r=l[1],i.y=a=n=l[2];break;case"L":i=t,i.length=_n(r,n,l[1],l[2]),r=l[1],n=l[2];break;case"C":e=vn(r,n,l[1],l[2],l[3],l[4],l[5],l[6]),i=t,i.iterator=e,i.angleFinder=wn(r,n,l[1],l[2],l[3],l[4],l[5],l[6]),i.length=Tn(e,r,n),r=l[5],n=l[6];break;case"Q":e=Cn(r,n,l[1],l[2],l[3],l[4]),i=t,i.iterator=e,i.angleFinder=Sn(r,n,l[1],l[2],l[3],l[4]),i.length=Tn(e,r,n),r=l[3],n=l[4];break;case"Z":i=t,i.destX=o,i.destY=a,i.length=_n(r,n,o,a),r=o,n=a}s+=i.length,h.push(i)}return h.push({length:s,x:r,y:n}),h},On=(t,e,i=Dn(t))=>{let s=0;for(;e-i[s].length>0&&s<i.length-2;)e-=i[s].length,s++;let r=i[s],n=e/r.length,o=t[s];switch(r.command){case"M":return{x:r.x,y:r.y,angle:0};case"Z":return{...new st(r.x,r.y).lerp(new st(r.destX,r.destY),n),angle:Math.atan2(r.destY-r.y,r.destX-r.x)};case"L":return{...new st(r.x,r.y).lerp(new st(o[1],o[2]),n),angle:Math.atan2(o[2]-r.y,o[1]-r.x)};case"C":case"Q":return kn(r,e)}},Mn=RegExp("[mzlhvcsqta][^mzlhvcsqta]*","gi"),Pn=new RegExp(cn,"g"),En=new RegExp(yi,"gi"),An={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},Fn=t=>{var e;let i=[],s=null==(e=t.match(Mn))?[]:e;for(let t of s){let e=t[0];if("z"===e||"Z"===e){i.push([e]);continue}let s=An[e.toLowerCase()],r=[];if("a"===e||"A"===e){let e;for(Pn.lastIndex=0;e=Pn.exec(t);)r.push(...e.slice(1))}else r=t.match(En)||[];for(let t=0;t<r.length;t+=s){let n=Array(s),o=un[e];n[0]=t>0&&o?o:e;for(let e=0;e<s;e++)n[e+1]=parseFloat(r[t+e]);i.push(n)}}return i},In=(t,e=0)=>{let i,s=new st(t[0]),r=new st(t[1]),n=1,o=0,a=[],h=t.length,l=h>2;for(l&&(n=t[2].x<r.x?-1:t[2].x===r.x?0:1,o=t[2].y<r.y?-1:t[2].y===r.y?0:1),a.push(["M",s.x-n*e,s.y-o*e]),i=1;i<h;i++){if(!s.eq(r)){let t=s.midPointFrom(r);a.push(["Q",s.x,s.y,t.x,t.y])}s=t[i],i+1<t.length&&(r=t[i+1])}return l&&(n=s.x>t[i-2].x?1:s.x===t[i-2].x?0:-1,o=s.y>t[i-2].y?1:s.y===t[i-2].y?0:-1),a.push(["L",s.x+n*e,s.y+o*e]),a},jn=(t,e,i)=>(i&&(e=Ct(e,[1,0,0,1,-i.x,-i.y])),t.map((t=>{let i=[...t];for(let s=1;s<t.length-1;s+=2){let{x:r,y:n}=xt({x:t[s],y:t[s+1]},e);i[s]=r,i[s+1]=n}return i}))),Ln=(t,e)=>{let i=2*Math.PI/t,s=-w;t%2==0&&(s+=i/2);let r=Array(t+1);for(let n=0;n<t;n++){let t=n*i+s,{x:o,y:a}=new st(et(t),it(t)).scalarMultiply(e);r[n]=[0===n?"M":"L",o,a]}return r[t]=["Z"],r},Rn=(t,e)=>t.map((t=>t.map(((t,i)=>0===i||void 0===e?t:Yt(t,e))).join(" "))).join(" "),zn=(t,e)=>{var i;let s=t,r=e;s.inverted&&!r.inverted&&(s=e,r=t),Se(r,null==(i=r.group)?void 0:i.calcTransformMatrix(),s.calcTransformMatrix());let n=s.inverted&&r.inverted;return n&&(s.inverted=r.inverted=!1),new rn([s],{clipPath:r,inverted:n})},Bn=(t,e)=>Math.floor(Math.random()*(e-t+1))+t,Hn=(t,e)=>{let i=t._findCenterFromElement();t.transformMatrix&&((t=>{if(t.transformMatrix){let{scaleX:e,scaleY:i,angle:s,skewX:r}=Ot(t.transformMatrix);t.flipX=!1,t.flipY=!1,t.set(Y,e),t.set(N,i),t.angle=s,t.skewX=r,t.skewY=0}})(t),i=i.transform(t.transformMatrix)),delete t.transformMatrix,e&&(t.scaleX*=e.scaleX,t.scaleY*=e.scaleY,t.cropX=e.cropX,t.cropY=e.cropY,i.x+=e.offsetLeft,i.y+=e.offsetTop,t.width=e.width,t.height=e.height),t.setPositionByOrigin(i,D,D)};var Wn=i({addTransformToObject:()=>me,animate:()=>Ss,animateColor:()=>Ts,applyTransformToObject:()=>_e,calcAngleBetweenVectors:()=>Ae,calcDimensionsMatrix:()=>jt,calcPlaneChangeMatrix:()=>xe,calcVectorRotation:()=>Fe,cancelAnimFrame:()=>lt,capValue:()=>Fi,composeMatrix:()=>Lt,copyCanvasElement:()=>gt,cos:()=>et,createCanvasElement:()=>dt,createImage:()=>pt,createRotateMatrix:()=>Pt,createScaleMatrix:()=>Et,createSkewXMatrix:()=>Ft,createSkewYMatrix:()=>It,createTranslateMatrix:()=>Mt,createVector:()=>Pe,crossProduct:()=>Le,degreesToRadians:()=>vt,dotProduct:()=>Re,ease:()=>Ri,enlivenObjectEnlivables:()=>Bt,enlivenObjects:()=>zt,findScaleToCover:()=>an,findScaleToFit:()=>on,getBoundsOfCurve:()=>gn,getOrthonormalVector:()=>je,getPathSegmentsInfo:()=>Dn,getPointOnPath:()=>On,getPointer:()=>ue,getRandomInt:()=>Bn,getRegularPolygonPath:()=>Ln,getSmoothPathFromPoints:()=>In,getSvgAttributes:()=>ri,getUnitVector:()=>Ie,groupSVGElements:()=>nn,hasStyleChanged:()=>br,invertTransform:()=>wt,isBetweenVectors:()=>ze,isIdentityMatrix:()=>bt,isTouchEvent:()=>de,isTransparent:()=>pr,joinPath:()=>Rn,loadImage:()=>Rt,magnitude:()=>Ee,makeBoundingBoxFromPoints:()=>ge,makePathSimpler:()=>mn,matrixToSVG:()=>Nt,mergeClipPaths:()=>zn,multiplyTransformMatrices:()=>Ct,multiplyTransformMatrixArray:()=>St,parsePath:()=>Fn,parsePreserveAspectRatioAttribute:()=>oi,parseUnit:()=>ni,pick:()=>Ht,projectStrokeOnPoints:()=>vr,qrDecompose:()=>Ot,radiansToDegrees:()=>yt,removeFromArray:()=>tt,removeTransformFromObject:()=>fe,removeTransformMatrixForSvgParsing:()=>Hn,requestAnimFrame:()=>ht,resetObjectTransform:()=>ve,rotateVector:()=>Me,saveObjectTransform:()=>ye,sendObjectToPlane:()=>Se,sendPointToPlane:()=>we,sendVectorToPlane:()=>Ce,sin:()=>it,sizeAfterTransform:()=>be,string:()=>ie,stylesFromArray:()=>wr,stylesToArray:()=>xr,toBlob:()=>_t,toDataURL:()=>mt,toFixed:()=>Yt,transformPath:()=>jn,transformPoint:()=>xt});function Yn(t,e){let i=t.style;i&&Object.entries(e).forEach((([t,e])=>i.setProperty(t,e)))}var Nn=class extends te{constructor(t,{allowTouchScrolling:e=!1,containerClass:i=""}={}){super(t),n(this,"upper",void 0),n(this,"container",void 0);let{el:s}=this.lower,r=this.createUpperCanvas();this.upper={el:r,ctx:r.getContext("2d")},this.applyCanvasStyle(s,{allowTouchScrolling:e}),this.applyCanvasStyle(r,{allowTouchScrolling:e,styles:{position:"absolute",left:"0",top:"0"}});let o=this.createContainerElement();o.classList.add(i),s.parentNode&&s.parentNode.replaceChild(o,s),o.append(s,r),this.container=o}createUpperCanvas(){let{el:t}=this.lower,e=dt();return e.className=t.className,e.classList.remove("lower-canvas"),e.classList.add("upper-canvas"),e.setAttribute("data-fabric","top"),e.style.cssText=t.style.cssText,e.setAttribute("draggable","true"),e}createContainerElement(){let t=m().createElement("div");return t.setAttribute("data-fabric","wrapper"),Yn(t,{position:"relative"}),Zt(t),t}applyCanvasStyle(t,e){let{styles:i,allowTouchScrolling:s}=e;Yn(t,{...i,"touch-action":s?"manipulation":E}),Zt(t)}setDimensions(t,e){super.setDimensions(t,e);let{el:i,ctx:s}=this.upper;Jt(i,s,t,e)}setCSSDimensions(t){super.setCSSDimensions(t),Qt(this.upper.el,t),Qt(this.container,t)}cleanupDOM(t){let e=this.container,{el:i}=this.lower,{el:s}=this.upper;super.cleanupDOM(t),e.removeChild(s),e.removeChild(i),e.parentNode&&e.parentNode.replaceChild(i,e)}dispose(){super.dispose(),f().dispose(this.upper.el),delete this.upper,delete this.container}};let Xn=(t,e,i,s)=>{let{target:r,offsetX:n,offsetY:o}=e,a=i-n,h=s-o,l=!Ye(r,"lockMovementX")&&r.left!==a,c=!Ye(r,"lockMovementY")&&r.top!==h;return l&&r.set("left",a),c&&r.set("top",h),(l||c)&&Ms(F,Ne(t,e,i,s)),l||c},$n=B,Vn=t=>function(e,i,s){let{points:r,pathOffset:n}=s;return new st(r[t]).subtract(n).transform(Ct(s.getViewportTransform(),s.calcTransformMatrix()))},Gn=(t,e,i,s)=>{let{target:r,pointIndex:n}=e,o=r,a=we(new st(i,s),void 0,o.calcOwnMatrix());return o.points[n]=a.add(o.pathOffset),o.setDimensions(),o.set("dirty",!0),!0},Un=(t,e)=>function(i,s,r,n){let o=s.target,a=new st(o.points[(t>0?t:o.points.length)-1]),h=a.subtract(o.pathOffset).transform(o.calcOwnMatrix()),l=e(i,{...s,pointIndex:t},r,n),c=a.subtract(o.pathOffset).transform(o.calcOwnMatrix()).subtract(h);return o.left-=c.x,o.top-=c.y,l},Kn=t=>Ps($n,Un(t,Gn));function qn(t,e={}){let i={};for(let s=0;s<("number"==typeof t?t:t.points.length);s++)i[`p${s}`]=new Bs({actionName:$n,positionHandler:Vn(s),actionHandler:Kn(s),...e});return i}let Jn=(t,e,i)=>{let{path:s,pathOffset:r}=t,n=s[e];return new st(n[i]-r.x,n[i+1]-r.y).transform(Ct(t.getViewportTransform(),t.calcTransformMatrix()))};function Qn(t,e,i){let{commandIndex:s,pointIndex:r}=this;return Jn(i,s,r)}function Zn(t,e,i,s){let{target:r}=e,{commandIndex:n,pointIndex:o}=this,a=((t,e,i,s,r)=>{let{path:n,pathOffset:o}=t,a=n[(s>0?s:n.length)-1],h=new st(a[r],a[r+1]),l=h.subtract(o).transform(t.calcOwnMatrix()),c=we(new st(e,i),void 0,t.calcOwnMatrix());n[s][r]=c.x+o.x,n[s][r+1]=c.y+o.y,t.setDimensions();let u=h.subtract(t.pathOffset).transform(t.calcOwnMatrix()).subtract(l);return t.left-=u.x,t.top-=u.y,t.set("dirty",!0),!0})(r,i,s,n,o);return a&&Ms(this.actionName,{...Ne(t,e,i,s),commandIndex:n,pointIndex:o}),a}var to=class extends Bs{constructor(t){super(t)}render(t,e,i,s,r){let n={...s,cornerColor:this.controlFill,cornerStrokeColor:this.controlStroke,transparentCorners:!this.controlFill};super.render(t,e,i,n,r)}},eo=class extends to{constructor(t){super(t)}render(t,e,i,s,r){let{path:n}=r,{commandIndex:o,pointIndex:a,connectToCommandIndex:h,connectToPointIndex:l}=this;t.save(),t.strokeStyle=this.controlStroke,this.connectionDashArray&&t.setLineDash(this.connectionDashArray);let[c]=n[o],u=Jn(r,h,l);if("Q"===c){let s=Jn(r,o,a+2);t.moveTo(s.x,s.y),t.lineTo(e,i)}else t.moveTo(e,i);t.lineTo(u.x,u.y),t.stroke(),t.restore(),super.render(t,e,i,s,r)}};let io=(t,e,i,s,r,n)=>new(i?eo:to)({commandIndex:t,pointIndex:e,actionName:"modifyPath",positionHandler:Qn,actionHandler:Zn,connectToCommandIndex:r,connectToPointIndex:n,...s,...i?s.controlPointStyle:s.pointStyle});function so(t,e={}){let i={},s="M";return t.path.forEach(((t,r)=>{let n=t[0];switch("Z"!==n&&(i[`c_${r}_${n}`]=io(r,t.length-2,!1,e)),n){case"C":i[`c_${r}_C_CP_1`]=io(r,1,!0,e,r-1,(t=>"C"===t?5:"Q"===t?3:1)(s)),i[`c_${r}_C_CP_2`]=io(r,3,!0,e,r,5);break;case"Q":i[`c_${r}_Q_CP_1`]=io(r,1,!0,e,r,3)}s=n})),i}var ro=i({changeHeight:()=>Ls,changeObjectHeight:()=>Is,changeObjectWidth:()=>Fs,changeWidth:()=>js,createObjectDefaultControls:()=>ar,createPathControls:()=>so,createPolyActionHandler:()=>Kn,createPolyControls:()=>qn,createPolyPositionHandler:()=>Vn,createResizeControls:()=>hr,createTextboxDefaultControls:()=>lr,dragHandler:()=>Xn,factoryPolyActionHandler:()=>Un,getLocalPoint:()=>$e,polyActionHandler:()=>Gn,renderCircleControl:()=>Rs,renderSquareControl:()=>zs,rotationStyleHandler:()=>Hs,rotationWithSnapping:()=>Ws,scaleCursorStyleHandler:()=>$s,scaleOrSkewActionName:()=>sr,scaleSkewCursorStyleHandler:()=>rr,scalingEqually:()=>Gs,scalingX:()=>Us,scalingXOrSkewingY:()=>nr,scalingY:()=>Ks,scalingYOrSkewingX:()=>or,skewCursorStyleHandler:()=>Qs,skewHandlerX:()=>tr,skewHandlerY:()=>er,wrapWithFireEvent:()=>Ps,wrapWithFixedAnchor:()=>Es}),no=class t extends le{constructor(...t){super(...t),n(this,"_hoveredTargets",[]),n(this,"_currentTransform",null),n(this,"_groupSelector",null),n(this,"contextTopDirty",!1)}static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}get upperCanvasEl(){var t;return null==(t=this.elements.upper)?void 0:t.el}get contextTop(){var t;return null==(t=this.elements.upper)?void 0:t.ctx}get wrapperEl(){return this.elements.container}initElements(t){this.elements=new Nn(t,{allowTouchScrolling:this.allowTouchScrolling,containerClass:this.containerClass}),this._createCacheCanvas()}_onObjectAdded(t){this._objectsToRender=void 0,super._onObjectAdded(t)}_onObjectRemoved(t){this._objectsToRender=void 0,t===this._activeObject&&(this.fire("before:selection:cleared",{deselected:[t]}),this._discardActiveObject(),this.fire("selection:cleared",{deselected:[t]}),t.fire("deselected",{target:t})),t===this._hoveredTarget&&(this._hoveredTarget=void 0,this._hoveredTargets=[]),super._onObjectRemoved(t)}_onStackOrderChanged(){this._objectsToRender=void 0,super._onStackOrderChanged()}_chooseObjectsToRender(){let t=this._activeObject;return!this.preserveObjectStacking&&t?this._objects.filter((e=>!e.group&&e!==t)).concat(t):this._objects}renderAll(){this.cancelRequestedRender(),this.destroyed||(!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1),!this._objectsToRender&&(this._objectsToRender=this._chooseObjectsToRender()),this.renderCanvas(this.getContext(),this._objectsToRender))}renderTopLayer(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()}renderTop(){let t=this.contextTop;this.clearContext(t),this.renderTopLayer(t),this.fire("after:render",{ctx:t})}setTargetFindTolerance(t){t=Math.round(t),this.targetFindTolerance=t;let e=this.getRetinaScaling(),i=Math.ceil((2*t+1)*e);this.pixelFindCanvasEl.width=this.pixelFindCanvasEl.height=i,this.pixelFindContext.scale(e,e)}isTargetTransparent(t,e,i){let s=this.targetFindTolerance,r=this.pixelFindContext;this.clearContext(r),r.save(),r.translate(-e+s,-i+s),r.transform(...this.viewportTransform);let n=t.selectionBackgroundColor;t.selectionBackgroundColor="",t.render(r),t.selectionBackgroundColor=n,r.restore();let o=Math.round(s*this.getRetinaScaling());return pr(r,o,o,o)}_isSelectionKeyPressed(t){let e=this.selectionKey;return!!e&&(Array.isArray(e)?!!e.find((e=>!!e&&!0===t[e])):t[e])}_shouldClearSelection(t,e){let i=this.getActiveObjects(),s=this._activeObject;return!!(!e||e&&s&&i.length>1&&-1===i.indexOf(e)&&s!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&s&&s!==e)}_shouldCenterTransform(t,e,i){if(!t)return;let s;return"scale"===e||"scaleX"===e||"scaleY"===e||"resizing"===e?s=this.centeredScaling||t.centeredScaling:"rotate"===e&&(s=this.centeredRotation||t.centeredRotation),s?!i:i}_getOriginFromCorner(t,e){let i=e?t.controls[e].getTransformAnchorPoint():{x:t.originX,y:t.originY};return e?(["ml","tl","bl"].includes(e)?i.x=P:["mr","tr","br"].includes(e)&&(i.x=O),["tl","mt","tr"].includes(e)?i.y=M:["bl","mb","br"].includes(e)&&(i.y="top"),i):i}_setupCurrentTransform(t,e,i){var s;let r=e.group?we(this.getScenePoint(t),void 0,e.group.calcTransformMatrix()):this.getScenePoint(t),{key:n="",control:o}=e.getActiveControl()||{},a=i&&o?null==(s=o.getActionHandler(t,e,o))?void 0:s.bind(o):Xn,h=((t,e,i,s)=>{if(!e||!t)return"drag";let r=s.controls[e];return r.getActionName(i,r,s)})(i,n,t,e),l=t[this.centeredKey],c=this._shouldCenterTransform(e,h,l)?{x:D,y:D}:this._getOriginFromCorner(e,n),{scaleX:u,scaleY:d,skewX:p,skewY:g,left:f,top:m,angle:_,width:v,height:y,cropX:b,cropY:x}=e,w={target:e,action:h,actionHandler:a,actionPerformed:!1,corner:n,scaleX:u,scaleY:d,skewX:p,skewY:g,offsetX:r.x-f,offsetY:r.y-m,originX:c.x,originY:c.y,ex:r.x,ey:r.y,lastX:r.x,lastY:r.y,theta:vt(_),width:v,height:y,shiftKey:t.shiftKey,altKey:l,original:{...ye(e),originX:c.x,originY:c.y,cropX:b,cropY:x}};this._currentTransform=w,this.fire("before:transform",{e:t,transform:w})}setCursor(t){this.upperCanvasEl.style.cursor=t}_drawSelection(t){let{x:e,y:i,deltaX:s,deltaY:r}=this._groupSelector,n=new st(e,i).transform(this.viewportTransform),o=new st(e+s,i+r).transform(this.viewportTransform),a=this.selectionLineWidth/2,h=Math.min(n.x,o.x),l=Math.min(n.y,o.y),c=Math.max(n.x,o.x),u=Math.max(n.y,o.y);this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(h,l,c-h,u-l)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,h+=a,l+=a,c-=a,u-=a,dr.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(h,l,c-h,u-l))}findTarget(t){if(this._targetInfo)return this._targetInfo;if(this.skipTargetFind)return{subTargets:[],currentSubTargets:[]};let e=this.getScenePoint(t),i=this._activeObject,s=this.getActiveObjects(),r=this.searchPossibleTargets(this._objects,e),{subTargets:n,container:o,target:a}=r,h={...r,currentSubTargets:n,currentContainer:o,currentTarget:a};if(!i)return h;let l={...this.searchPossibleTargets([i],e),currentSubTargets:n,currentContainer:o,currentTarget:a};return i.findControl(this.getViewportPoint(t),de(t))?{...l,target:i}:l.target&&(s.length>1||!this.preserveObjectStacking||this.preserveObjectStacking&&t[this.altSelectionKey])?l:h}_pointIsInObjectSelectionArea(t,e){let i=t.getCoords(),s=this.getZoom(),r=t.padding/s;if(r){let[t,e,s,n]=i,o=Math.atan2(e.y-t.y,e.x-t.x),a=et(o)*r,h=it(o)*r,l=a+h,c=a-h;i=[new st(t.x-c,t.y-l),new st(e.x+l,e.y-c),new st(s.x+c,s.y+l),new st(n.x-l,n.y+c)]}return ks.isPointInPolygon(e,i)}_checkTarget(t,e){if(t&&t.visible&&t.evented&&this._pointIsInObjectSelectionArea(t,e)){if(!this.perPixelTargetFind&&!t.perPixelTargetFind||t.isEditing)return!0;{let i=e.transform(this.viewportTransform);if(!this.isTargetTransparent(t,i.x,i.y))return!0}}return!1}_searchPossibleTargets(t,e,i){let s=t.length;for(;s--;){let r=t[s];if(this._checkTarget(r,e)){if(nt(r)&&r.subTargetCheck){let{target:t}=this._searchPossibleTargets(r._objects,e,i);t&&i.push(t)}return{target:r,subTargets:i}}}return{subTargets:[]}}searchPossibleTargets(t,e){let i=this._searchPossibleTargets(t,e,[]);i.container=i.target;let{container:s,subTargets:r}=i;if(s&&nt(s)&&s.interactive&&r[0]){for(let t=r.length-1;t>0;t--){let e=r[t];if(!nt(e)||!e.interactive)return i.target=e,i}return i.target=r[0],i}return i}getViewportPoint(t){return this._viewportPoint?this._viewportPoint:this._getPointerImpl(t,!0)}getScenePoint(t){return this._scenePoint?this._scenePoint:this._getPointerImpl(t)}_getPointerImpl(t,e=!1){let i=this.upperCanvasEl,s=i.getBoundingClientRect(),r=ue(t),n=s.width||0,o=s.height||0;n&&o||("top"in s&&"bottom"in s&&(o=Math.abs(s.top-s.bottom)),"right"in s&&"left"in s&&(n=Math.abs(s.right-s.left))),this.calcOffset(),r.x-=this._offset.left,r.y-=this._offset.top,e||(r=we(r,void 0,this.viewportTransform));let a=this.getRetinaScaling();1!==a&&(r.x/=a,r.y/=a);let h=0===n||0===o?new st(1,1):new st(i.width/n,i.height/o);return r.multiply(h)}_setDimensionsImpl(t,e){this._resetTransformEventData(),super._setDimensionsImpl(t,e),this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop)}_createCacheCanvas(){this.pixelFindCanvasEl=dt(),this.pixelFindContext=this.pixelFindCanvasEl.getContext("2d",{willReadFrequently:!0}),this.setTargetFindTolerance(this.targetFindTolerance)}getTopContext(){return this.elements.upper.ctx}getSelectionContext(){return this.elements.upper.ctx}getSelectionElement(){return this.elements.upper.el}getActiveObject(){return this._activeObject}getActiveObjects(){let t=this._activeObject;return Gt(t)?t.getObjects():t?[t]:[]}_fireSelectionEvents(t,e){let i=!1,s=!1,r=this.getActiveObjects(),n=[],o=[];t.forEach((t=>{r.includes(t)||(i=!0,t.fire("deselected",{e,target:t}),o.push(t))})),r.forEach((s=>{t.includes(s)||(i=!0,s.fire("selected",{e,target:s}),n.push(s))})),t.length>0&&r.length>0?(s=!0,i&&this.fire("selection:updated",{e,selected:n,deselected:o})):r.length>0?(s=!0,this.fire("selection:created",{e,selected:n})):t.length>0&&(s=!0,this.fire("selection:cleared",{e,deselected:o})),s&&(this._objectsToRender=void 0)}setActiveObject(t,e){let i=this.getActiveObjects(),s=this._setActiveObject(t,e);return this._fireSelectionEvents(i,e),s}_setActiveObject(t,e){let i=this._activeObject;return!(i===t||!this._discardActiveObject(e,t)&&this._activeObject||t.onSelect({e})||(this._activeObject=t,Gt(t)&&i!==t&&t.set("canvas",this),t.setCoords(),0))}_discardActiveObject(t,e){let i=this._activeObject;return!!i&&!i.onDeselect({e:t,object:e})&&(this._currentTransform&&this._currentTransform.target===i&&this.endCurrentTransform(t),Gt(i)&&i===this._hoveredTarget&&(this._hoveredTarget=void 0),this._activeObject=void 0,!0)}discardActiveObject(t){let e=this.getActiveObjects(),i=this.getActiveObject();e.length&&this.fire("before:selection:cleared",{e:t,deselected:[i]});let s=this._discardActiveObject(t);return this._fireSelectionEvents(e,t),s}endCurrentTransform(t){let e=this._currentTransform;this._finalizeCurrentTransform(t),e&&e.target&&(e.target.isMoving=!1),this._currentTransform=null}_finalizeCurrentTransform(t){let e=this._currentTransform,i=e.target,s={e:t,target:i,transform:e,action:e.action};i._scaling&&(i._scaling=!1),i.setCoords(),e.actionPerformed&&(this.fire("object:modified",s),i.fire(U,s))}setViewportTransform(t){super.setViewportTransform(t);let e=this._activeObject;e&&e.setCoords()}destroy(){let t=this._activeObject;Gt(t)&&(t.removeAll(),t.dispose()),delete this._activeObject,super.destroy(),this.pixelFindContext=null,this.pixelFindCanvasEl=void 0}clear(){this.discardActiveObject(),this._activeObject=void 0,this.clearContext(this.contextTop),super.clear()}drawControls(t){let e=this._activeObject;e&&e._renderControls(t)}_toObject(t,e,i){let s=this._realizeGroupTransformOnObject(t),r=super._toObject(t,e,i);return t.set(s),r}_realizeGroupTransformOnObject(t){let{group:e}=t;if(e&&Gt(e)&&this._activeObject===e){let i=Ht(t,["angle","flipX","flipY",O,Y,N,X,$,"top"]);return me(t,e.calcOwnMatrix()),i}return{}}_setSVGObject(t,e,i){let s=this._realizeGroupTransformOnObject(e);super._setSVGObject(t,e,i),e.set(s)}};n(no,"ownDefaults",{uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",selection:!0,selectionKey:"shiftKey",selectionColor:"rgba(100, 100, 255, 0.3)",selectionDashArray:[],selectionBorderColor:"rgba(255, 255, 255, 0.3)",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:"move",moveCursor:"move",defaultCursor:"default",freeDrawingCursor:"crosshair",notAllowedCursor:"not-allowed",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,stopContextMenu:!0,fireRightClick:!0,fireMiddleClick:!0,enablePointerEvents:!1,containerClass:"canvas-container",preserveObjectStacking:!0});var oo=class{constructor(t){n(this,"targets",[]),n(this,"__disposer",void 0);let e=()=>{let{hiddenTextarea:e}=t.getActiveObject()||{};e&&e.focus()},i=t.upperCanvasEl;i.addEventListener("click",e),this.__disposer=()=>i.removeEventListener("click",e)}exitTextEditing(){this.target=void 0,this.targets.forEach((t=>{t.isEditing&&t.exitEditing()}))}add(t){this.targets.push(t)}remove(t){this.unregister(t),tt(this.targets,t)}register(t){this.target=t}unregister(t){t===this.target&&(this.target=void 0)}onMouseMove(t){var e;null!=(e=this.target)&&e.isEditing&&this.target.updateSelectionOnMouseMove(t)}clear(){this.targets=[],this.target=void 0}dispose(){this.clear(),this.__disposer(),delete this.__disposer}};let ao={passive:!1},ho=(t,e)=>({viewportPoint:t.getViewportPoint(e),scenePoint:t.getScenePoint(e)}),lo=(t,...e)=>t.addEventListener(...e),co=(t,...e)=>t.removeEventListener(...e),uo={mouse:{in:"over",out:"out",targetIn:"mouseover",targetOut:"mouseout",canvasIn:"mouse:over",canvasOut:"mouse:out"},drag:{in:"enter",out:"leave",targetIn:"dragenter",targetOut:"dragleave",canvasIn:"drag:enter",canvasOut:"drag:leave"}};var po=class extends no{constructor(t,e={}){super(t,e),n(this,"_isClick",void 0),n(this,"textEditingManager",new oo(this)),["_onMouseDown","_onTouchStart","_onMouseMove","_onMouseUp","_onTouchEnd","_onResize","_onMouseWheel","_onMouseOut","_onMouseEnter","_onContextMenu","_onClick","_onDragStart","_onDragEnd","_onDragProgress","_onDragOver","_onDragEnter","_onDragLeave","_onDrop"].forEach((t=>{this[t]=this[t].bind(this)})),this.addOrRemove(lo)}_getEventPrefix(){return this.enablePointerEvents?"pointer":"mouse"}addOrRemove(t,e=!1){let i=this.upperCanvasEl,s=this._getEventPrefix();t(qt(i),"resize",this._onResize),t(i,s+"down",this._onMouseDown),t(i,`${s}move`,this._onMouseMove,ao),t(i,`${s}out`,this._onMouseOut),t(i,`${s}enter`,this._onMouseEnter),t(i,"wheel",this._onMouseWheel,{passive:!1}),t(i,"contextmenu",this._onContextMenu),e||(t(i,"click",this._onClick),t(i,"dblclick",this._onClick)),t(i,"dragstart",this._onDragStart),t(i,"dragend",this._onDragEnd),t(i,"dragover",this._onDragOver),t(i,"dragenter",this._onDragEnter),t(i,"dragleave",this._onDragLeave),t(i,"drop",this._onDrop),this.enablePointerEvents||t(i,"touchstart",this._onTouchStart,ao)}removeListeners(){this.addOrRemove(co);let t=this._getEventPrefix(),e=Kt(this.upperCanvasEl);co(e,`${t}up`,this._onMouseUp),co(e,"touchend",this._onTouchEnd,ao),co(e,`${t}move`,this._onMouseMove,ao),co(e,"touchmove",this._onMouseMove,ao),clearTimeout(this._willAddMouseDown)}_onMouseWheel(t){this._cacheTransformEventData(t),this._handleEvent(t,"wheel"),this._resetTransformEventData()}_onMouseOut(t){let e=this._hoveredTarget,i={e:t,...ho(this,t)};this.fire("mouse:out",{...i,target:e}),this._hoveredTarget=void 0,e&&e.fire("mouseout",{...i}),this._hoveredTargets.forEach((t=>{this.fire("mouse:out",{...i,target:t}),t&&t.fire("mouseout",{...i})})),this._hoveredTargets=[]}_onMouseEnter(t){let{target:e}=this.findTarget(t);this._currentTransform||e||(this.fire("mouse:over",{e:t,...ho(this,t)}),this._hoveredTarget=void 0,this._hoveredTargets=[])}_onDragStart(t){this._isClick=!1;let e=this.getActiveObject();if(e&&e.onDragStart(t)){this._dragSource=e;let i={e:t,target:e};return this.fire("dragstart",i),e.fire("dragstart",i),void lo(this.upperCanvasEl,"drag",this._onDragProgress)}pe(t)}_renderDragEffects(t,e,i){let s=!1,r=this._dropTarget;r&&r!==e&&r!==i&&(r.clearContextTop(),s=!0),null==e||e.clearContextTop(),i!==e&&(null==i||i.clearContextTop());let n=this.contextTop;n.save(),n.transform(...this.viewportTransform),e&&(n.save(),e.transform(n),e.renderDragSourceEffect(t),n.restore(),s=!0),i&&(n.save(),i.transform(n),i.renderDropTargetEffect(t),n.restore(),s=!0),n.restore(),s&&(this.contextTopDirty=!0)}_onDragEnd(t){let{currentSubTargets:e}=this.findTarget(t),i=!!t.dataTransfer&&"none"!==t.dataTransfer.dropEffect,s=i?this._activeObject:void 0,r={e:t,target:this._dragSource,subTargets:e,dragSource:this._dragSource,didDrop:i,dropTarget:s};co(this.upperCanvasEl,"drag",this._onDragProgress),this.fire("dragend",r),this._dragSource&&this._dragSource.fire("dragend",r),delete this._dragSource,this._onMouseUp(t)}_onDragProgress(t){let e={e:t,target:this._dragSource,dragSource:this._dragSource,dropTarget:this._draggedoverTarget};this.fire("drag",e),this._dragSource&&this._dragSource.fire("drag",e)}_onDragOver(t){let e,i="dragover",{currentContainer:s,currentSubTargets:r}=this.findTarget(t),n=this._dragSource,o={e:t,target:s,subTargets:r,dragSource:n,canDrop:!1,dropTarget:void 0};this.fire(i,o),this._fireEnterLeaveEvents(t,s,o),s&&(s.canDrop(t)&&(e=s),s.fire(i,o));for(let s=0;s<r.length;s++){let n=r[s];n.canDrop(t)&&(e=n),n.fire(i,o)}this._renderDragEffects(t,n,e),this._dropTarget=e}_onDragEnter(t){let{currentContainer:e,currentSubTargets:i}=this.findTarget(t),s={e:t,target:e,subTargets:i,dragSource:this._dragSource};this.fire("dragenter",s),this._fireEnterLeaveEvents(t,e,s)}_onDragLeave(t){let{currentSubTargets:e}=this.findTarget(t),i={e:t,target:this._draggedoverTarget,subTargets:e,dragSource:this._dragSource};this.fire("dragleave",i),this._fireEnterLeaveEvents(t,void 0,i),this._renderDragEffects(t,this._dragSource),this._dropTarget=void 0,this._hoveredTargets=[]}_onDrop(t){let{currentContainer:e,currentSubTargets:i}=this.findTarget(t),s=this._basicEventHandler("drop:before",{e:t,target:e,subTargets:i,dragSource:this._dragSource,...ho(this,t)});s.didDrop=!1,s.dropTarget=void 0,this._basicEventHandler("drop",s),this.fire("drop:after",s)}_onContextMenu(t){let{target:e,subTargets:i}=this.findTarget(t),s=this._basicEventHandler("contextmenu:before",{e:t,target:e,subTargets:i});return this.stopContextMenu&&pe(t),this._basicEventHandler("contextmenu",s),!1}_onClick(t){let e=t.detail;e>3||e<2||(this._cacheTransformEventData(t),2==e&&"dblclick"===t.type&&this._handleEvent(t,"dblclick"),3==e&&this._handleEvent(t,"tripleclick"),this._resetTransformEventData())}fireEventFromPointerEvent(t,e,i,s={}){this._cacheTransformEventData(t);let{target:r,subTargets:n}=this.findTarget(t),o={e:t,target:r,subTargets:n,...ho(this,t),transform:this._currentTransform,...s};this.fire(e,o),r&&r.fire(i,o);for(let t=0;t<n.length;t++)n[t]!==r&&n[t].fire(i,o);this._resetTransformEventData()}getPointerId(t){let e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1}_isMainEvent(t){return!0===t.isPrimary||!1!==t.isPrimary&&("touchend"===t.type&&0===t.touches.length||!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId)}_onTouchStart(t){this._cacheTransformEventData(t);let e=!this.allowTouchScrolling,i=this._activeObject;void 0===this.mainTouchId&&(this.mainTouchId=this.getPointerId(t)),this.__onMouseDown(t);let{target:s}=this.findTarget(t);(this.isDrawingMode||i&&s===i)&&(e=!0),e&&t.preventDefault();let r=this.upperCanvasEl,n=this._getEventPrefix(),o=Kt(r);lo(o,"touchend",this._onTouchEnd,ao),e&&lo(o,"touchmove",this._onMouseMove,ao),co(r,`${n}down`,this._onMouseDown),this._resetTransformEventData()}_onMouseDown(t){this._cacheTransformEventData(t),this.__onMouseDown(t);let e=this.upperCanvasEl,i=this._getEventPrefix();co(e,`${i}move`,this._onMouseMove,ao);let s=Kt(e);lo(s,`${i}up`,this._onMouseUp),lo(s,`${i}move`,this._onMouseMove,ao),this._resetTransformEventData()}_onTouchEnd(t){if(t.touches.length>0)return;this._cacheTransformEventData(t),this.__onMouseUp(t),this._resetTransformEventData(),delete this.mainTouchId;let e=this._getEventPrefix(),i=Kt(this.upperCanvasEl);co(i,"touchend",this._onTouchEnd,ao),co(i,"touchmove",this._onMouseMove,ao),this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((()=>{lo(this.upperCanvasEl,`${e}down`,this._onMouseDown),this._willAddMouseDown=0}),400)}_onMouseUp(t){this._cacheTransformEventData(t),this.__onMouseUp(t);let e=this.upperCanvasEl,i=this._getEventPrefix();if(this._isMainEvent(t)){let t=Kt(this.upperCanvasEl);co(t,`${i}up`,this._onMouseUp),co(t,`${i}move`,this._onMouseMove,ao),lo(e,`${i}move`,this._onMouseMove,ao)}this._resetTransformEventData()}_onMouseMove(t){this._cacheTransformEventData(t);let e=this.getActiveObject();!this.allowTouchScrolling&&(!e||!e.shouldStartDragging(t))&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t),this._resetTransformEventData()}_onResize(){this.calcOffset(),this._resetTransformEventData()}_shouldRender(t){let e=this.getActiveObject();return!!e!=!!t||e&&t&&e!==t}__onMouseUp(t){var e;this._handleEvent(t,"up:before");let i=this._currentTransform,s=this._isClick,{target:r}=this.findTarget(t),{button:n}=t;if(n)return void((this.fireMiddleClick&&1===n||this.fireRightClick&&2===n)&&this._handleEvent(t,"up"));if(this.isDrawingMode&&this._isCurrentlyDrawing)return void this._onMouseUpInDrawingMode(t);if(!this._isMainEvent(t))return;let o,a,h=!1;if(i&&(this._finalizeCurrentTransform(t),h=i.actionPerformed),!s){let e=r===this._activeObject;this.handleSelection(t),h||(h=this._shouldRender(r)||!e&&r===this._activeObject)}if(r){let{key:e,control:s}=r.findControl(this.getViewportPoint(t),de(t))||{};if(a=e,r.selectable&&r!==this._activeObject&&"up"===r.activeOn)this.setActiveObject(r,t),h=!0;else if(s){let e=s.getMouseUpHandler(t,r,s);e&&(o=this.getScenePoint(t),e.call(s,t,i,o.x,o.y))}r.isMoving=!1}if(i&&(i.target!==r||i.corner!==a)){let e=i.target&&i.target.controls[i.corner],s=e&&e.getMouseUpHandler(t,i.target,e);o=o||this.getScenePoint(t),s&&s.call(e,t,i,o.x,o.y)}this._setCursorFromEvent(t,r),this._handleEvent(t,"up"),this._groupSelector=null,this._currentTransform=null,r&&(r.__corner=void 0),h?this.requestRenderAll():s||null!=(e=this._activeObject)&&e.isEditing||this.renderTop()}_basicEventHandler(t,e){let{target:i,subTargets:s=[]}=e;this.fire(t,e),i&&i.fire(t,e);for(let r=0;r<s.length;r++)s[r]!==i&&s[r].fire(t,e);return e}_handleEvent(t,e,i){let{target:s,subTargets:r}=this.findTarget(t),n={e:t,target:s,subTargets:r,...ho(this,t),transform:this._currentTransform,..."down:before"===e||"down"===e?i:{}};"up:before"!==e&&"up"!==e||(n.isClick=this._isClick),this.fire(`mouse:${e}`,n),s&&s.fire(`mouse${e}`,n);for(let t=0;t<r.length;t++)r[t]!==s&&r[t].fire(`mouse${e}`,n)}_onMouseDownInDrawingMode(t){this._isCurrentlyDrawing=!0,this.getActiveObject()&&(this.discardActiveObject(t),this.requestRenderAll());let e=this.getScenePoint(t);this.freeDrawingBrush&&this.freeDrawingBrush.onMouseDown(e,{e:t,pointer:e}),this._handleEvent(t,"down",{alreadySelected:!1})}_onMouseMoveInDrawingMode(t){if(this._isCurrentlyDrawing){let e=this.getScenePoint(t);this.freeDrawingBrush&&this.freeDrawingBrush.onMouseMove(e,{e:t,pointer:e})}this.setCursor(this.freeDrawingCursor),this._handleEvent(t,"move")}_onMouseUpInDrawingMode(t){let e=this.getScenePoint(t);this.freeDrawingBrush?this._isCurrentlyDrawing=!!this.freeDrawingBrush.onMouseUp({e:t,pointer:e}):this._isCurrentlyDrawing=!1,this._handleEvent(t,"up")}__onMouseDown(t){this._isClick=!0,this._handleEvent(t,"down:before");let{target:e}=this.findTarget(t),i=!!e&&e===this._activeObject,{button:s}=t;if(s)return void((this.fireMiddleClick&&1===s||this.fireRightClick&&2===s)&&this._handleEvent(t,"down",{alreadySelected:i}));if(this.isDrawingMode)return void this._onMouseDownInDrawingMode(t);if(!this._isMainEvent(t)||this._currentTransform)return;let r=this._shouldRender(e),n=!1;if(this.handleMultiSelection(t,e)?(e=this._activeObject,n=!0,r=!0):this._shouldClearSelection(t,e)&&this.discardActiveObject(t),this.selection&&(!e||!e.selectable&&!e.isEditing&&e!==this._activeObject)){let e=this.getScenePoint(t);this._groupSelector={x:e.x,y:e.y,deltaY:0,deltaX:0}}if(i=!!e&&e===this._activeObject,e){e.selectable&&"down"===e.activeOn&&this.setActiveObject(e,t);let s=e.findControl(this.getViewportPoint(t),de(t));if(e===this._activeObject&&(s||!n)){this._setupCurrentTransform(t,e,i);let r=s?s.control:void 0,n=this.getScenePoint(t),o=r&&r.getMouseDownHandler(t,e,r);o&&o.call(r,t,this._currentTransform,n.x,n.y)}}r&&(this._objectsToRender=void 0),this._handleEvent(t,"down",{alreadySelected:i}),r&&this.requestRenderAll()}_resetTransformEventData(){this._targetInfo=this._viewportPoint=this._scenePoint=void 0}_cacheTransformEventData(t){this._resetTransformEventData(),this._viewportPoint=this.getViewportPoint(t),this._scenePoint=we(this._viewportPoint,void 0,this.viewportTransform),this._targetInfo=this.findTarget(t),this._currentTransform&&(this._targetInfo.target=this._currentTransform.target)}__onMouseMove(t){if(this._isClick=!1,this._handleEvent(t,"move:before"),this.isDrawingMode)return void this._onMouseMoveInDrawingMode(t);if(!this._isMainEvent(t))return;let e=this._groupSelector;if(e){let i=this.getScenePoint(t);e.deltaX=i.x-e.x,e.deltaY=i.y-e.y,this.renderTop()}else if(this._currentTransform)this._transformObject(t);else{let{target:e}=this.findTarget(t);this._setCursorFromEvent(t,e),this._fireOverOutEvents(t,e)}this.textEditingManager.onMouseMove(t),this._handleEvent(t,"move")}_fireOverOutEvents(t,e){let{_hoveredTarget:i,_hoveredTargets:s}=this,{subTargets:r,currentTarget:n}=this.findTarget(t),o=Math.max(s.length,r.length);this.fireSyntheticInOutEvents("mouse",{e:t,target:e,oldTarget:i,actualTarget:n,oldActualTarget:this._hoveredActualTarget,fireCanvas:!0});for(let n=0;n<o;n++)r[n]===e||s[n]&&s[n]===i||this.fireSyntheticInOutEvents("mouse",{e:t,target:r[n],oldTarget:s[n]});this._hoveredActualTarget=n,this._hoveredTarget=e,this._hoveredTargets=r}_fireEnterLeaveEvents(t,e,i){let s=this._draggedoverTarget,r=this._hoveredTargets,{subTargets:n}=this.findTarget(t),o=Math.max(r.length,n.length);this.fireSyntheticInOutEvents("drag",{...i,target:e,oldTarget:s,fireCanvas:!0});for(let t=0;t<o;t++)this.fireSyntheticInOutEvents("drag",{...i,target:n[t],oldTarget:r[t]});this._draggedoverTarget=e}fireSyntheticInOutEvents(t,{target:e,oldTarget:i,actualTarget:s,oldActualTarget:r,fireCanvas:n,e:o,...a}){let{targetIn:h,targetOut:l,canvasIn:c,canvasOut:u}=uo[t],d=i!==e,p=r!==s,g=e&&d,f=s&&p,m=i&&d,_=r&&p,v={...a,e:o,...ho(this,o)},y={...v,target:i,nextTarget:e,actualTarget:r,nextActualTarget:s};(m||_)&&n&&this.fire(u,y),m&&i.fire(l,y),_&&i!==r&&r.fire(l,y);let b={...v,target:e,previousTarget:i,actualTarget:s,previousActualTarget:r};(g||f)&&n&&this.fire(c,b),g&&e.fire(h,b),f&&s!==e&&s.fire(h,b)}_transformObject(t){let e=this.getScenePoint(t),i=this._currentTransform,s=i.target,r=s.group?we(e,void 0,s.group.calcTransformMatrix()):e;i.shiftKey=t.shiftKey,i.altKey=!!this.centeredKey&&t[this.centeredKey],this._performTransformAction(t,i,r),i.actionPerformed&&this.requestRenderAll()}_performTransformAction(t,e,i){let{action:s,actionHandler:r,target:n}=e,o=!!r&&r(t,e,i.x,i.y);o&&n.setCoords(),"drag"===s&&o&&(e.target.isMoving=!0,this.setCursor(e.target.moveCursor||this.moveCursor)),e.actionPerformed=e.actionPerformed||o}_setCursorFromEvent(t,e){if(!e)return void this.setCursor(this.defaultCursor);let i=e.hoverCursor||this.hoverCursor,s=Gt(this._activeObject)?this._activeObject:null,r=(!s||e.group!==s)&&e.findControl(this.getViewportPoint(t));if(r){let{control:i,coord:s}=r;this.setCursor(i.cursorStyleHandler(t,i,e,s))}else{if(e.subTargetCheck){let{subTargets:e}=this.findTarget(t);e.concat().reverse().forEach((t=>{i=t.hoverCursor||i}))}this.setCursor(i)}}handleMultiSelection(t,e){let i=this._activeObject,s=Gt(i);if(i&&this._isSelectionKeyPressed(t)&&this.selection&&e&&e.selectable&&(i!==e||s)&&(s||!e.isDescendantOf(i)&&!i.isDescendantOf(e))&&!e.onSelect({e:t})&&!i.getActiveControl()){if(s){let s=i.getObjects(),r=[];if(e===i){let i=this.getScenePoint(t),n=this.searchPossibleTargets(s,i);if(n.target?(e=n.target,r=n.subTargets):(n=this.searchPossibleTargets(this._objects,i),e=n.target,r=n.subTargets),!e||!e.selectable)return!1}e.group===i?(i.remove(e),this._hoveredTarget=e,this._hoveredTargets=r,1===i.size()&&this._setActiveObject(i.item(0),t)):(i.multiSelectAdd(e),this._hoveredTarget=i,this._hoveredTargets=r),this._fireSelectionEvents(s,t)}else{i.isEditing&&i.exitEditing();let s=new(J.getClass("ActiveSelection"))([],{canvas:this});s.multiSelectAdd(i,e),this._hoveredTarget=s,this._setActiveObject(s,t),this._fireSelectionEvents([i],t)}return!0}return!1}handleSelection(t){if(!this.selection||!this._groupSelector)return!1;let{x:e,y:i,deltaX:s,deltaY:r}=this._groupSelector,n=new st(e,i),o=n.add(new st(s,r)),a=n.min(o),h=n.max(o).subtract(a),l=this.collectObjects({left:a.x,top:a.y,width:h.x,height:h.y},{includeIntersecting:!this.selectionFullyContained}),c=n.eq(o)?l[0]?[l[0]]:[]:l.length>1?l.filter((e=>!e.onSelect({e:t}))).reverse():l;if(1===c.length)this.setActiveObject(c[0],t);else if(c.length>1){let e=J.getClass("ActiveSelection");this.setActiveObject(new e(c,{canvas:this}),t)}return this._groupSelector=null,!0}toCanvasElement(t=1,e){let{upper:i}=this.elements;i.ctx=void 0;let s=super.toCanvasElement(t,e);return i.ctx=i.el.getContext("2d"),s}clear(){this.textEditingManager.clear(),super.clear()}destroy(){this.removeListeners(),this.textEditingManager.dispose(),super.destroy()}};let go={x1:0,y1:0,x2:0,y2:0},fo={...go,r1:0,r2:0},mo=(t,e)=>isNaN(t)&&"number"==typeof e?e:t;function _o(t){return t&&/%$/.test(t)&&Number.isFinite(parseFloat(t))}function vo(t,e){return Fi(0,mo("number"==typeof t?t:"string"==typeof t?parseFloat(t)/(_o(t)?100:1):NaN,e),1)}let yo=/\s*;\s*/,bo=/\s*:\s*/;function xo(t,e){let i,s,r=t.getAttribute("style");if(r){let t=r.split(yo);""===t[t.length-1]&&t.pop();for(let e=t.length;e--;){let[r,n]=t[e].split(bo).map((t=>t.trim()));"stop-color"===r?i=n:"stop-opacity"===r&&(s=n)}}i=i||t.getAttribute("stop-color")||"rgb(0,0,0)",s=mo(parseFloat(s||t.getAttribute("stop-opacity")||""),1);let n=new si(i);return n.setAlpha(n.getAlpha()*s*e),{offset:vo(t.getAttribute("offset"),0),color:n.toRgba()}}function wo(t,e){let i=[],s=t.getElementsByTagName("stop"),r=vo(e,1);for(let t=s.length;t--;)i.push(xo(s[t],r));return i}function Co(t){return"linearGradient"===t.nodeName||"LINEARGRADIENT"===t.nodeName?"linear":"radial"}function So(t){return"userSpaceOnUse"===t.getAttribute("gradientUnits")?"pixels":"percentage"}function To(t,e){return t.getAttribute(e)}function ko(t,e){return function(t,{width:e,height:i,gradientUnits:s}){let r;return Object.entries(t).reduce(((t,[n,o])=>{if("Infinity"===o)r=1;else if("-Infinity"===o)r=0;else{let t="string"==typeof o;r=t?parseFloat(o):o,t&&_o(o)&&(r*=.01,"pixels"===s&&("x1"!==n&&"x2"!==n&&"r2"!==n||(r*=e),"y1"!==n&&"y2"!==n||(r*=i)))}return t[n]=r,t}),{})}("linear"===Co(t)?function(t){return{x1:To(t,"x1")||0,y1:To(t,"y1")||0,x2:To(t,"x2")||"100%",y2:To(t,"y2")||0}}(t):function(t){return{x1:To(t,"fx")||To(t,"cx")||"50%",y1:To(t,"fy")||To(t,"cy")||"50%",r1:0,x2:To(t,"cx")||"50%",y2:To(t,"cy")||"50%",r2:To(t,"r")||"50%"}}(t),{...e,gradientUnits:So(t)})}var Do=class{constructor(t){let{type:e="linear",gradientUnits:i="pixels",coords:s={},colorStops:r=[],offsetX:n=0,offsetY:o=0,gradientTransform:a,id:h}=t||{};Object.assign(this,{type:e,gradientUnits:i,coords:{..."radial"===e?fo:go,...s},colorStops:r,offsetX:n,offsetY:o,gradientTransform:a,id:h?`${h}_${ut()}`:ut()})}addColorStop(t){for(let e in t)this.colorStops.push({offset:parseFloat(e),color:t[e]});return this}toObject(t){return{...Ht(this,t),type:this.type,coords:{...this.coords},colorStops:this.colorStops.map((t=>({...t}))),offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?[...this.gradientTransform]:void 0}}toSVG(t,{additionalTransform:e}={}){let i=[],s=this.gradientTransform?this.gradientTransform.concat():k.concat(),r="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox",n=this.colorStops.map((t=>({...t}))).sort(((t,e)=>t.offset-e.offset)),o=-this.offsetX,a=-this.offsetY;var h;"objectBoundingBox"===r?(o/=t.width,a/=t.height):(o+=t.width/2,a+=t.height/2),(h=t)&&"function"==typeof h._renderPathCommands&&"percentage"!==this.gradientUnits&&(o-=t.pathOffset.x,a-=t.pathOffset.y),s[4]-=o,s[5]-=a;let l=[`id="SVGID_${ne(String(this.id))}"`,`gradientUnits="${r}"`,`gradientTransform="${e?e+" ":""}${Nt(s)}"`,""].join(" "),c=t=>parseFloat(String(t));if("linear"===this.type){let{x1:t,y1:e,x2:s,y2:r}=this.coords,n=c(t),o=c(e),a=c(s),h=c(r);i.push("<linearGradient ",l,' x1="',n,'" y1="',o,'" x2="',a,'" y2="',h,'">\n')}else if("radial"===this.type){let{x1:t,y1:e,x2:s,y2:r,r1:o,r2:a}=this.coords,h=c(t),u=c(e),d=c(s),p=c(r),g=c(o),f=c(a),m=g>f;i.push("<radialGradient ",l,' cx="',m?h:d,'" cy="',m?u:p,'" r="',m?g:f,'" fx="',m?d:h,'" fy="',m?p:u,'">\n'),m&&(n.reverse(),n.forEach((t=>{t.offset=1-t.offset})));let _=Math.min(g,f);if(_>0){let t=_/Math.max(g,f);n.forEach((e=>{e.offset+=t*(1-e.offset)}))}}return n.forEach((({color:t,offset:e})=>{let s=String(t),r=Ge(s)?s:new si(s).toRgba();i.push(`<stop offset="${100*e}%" style="stop-color:${ne(r)};"/>\n`)})),i.push("linear"===this.type?"</linearGradient>":"</radialGradient>","\n"),i.join("")}toLive(t){let{x1:e,y1:i,x2:s,y2:r,r1:n,r2:o}=this.coords,a="linear"===this.type?t.createLinearGradient(e,i,s,r):t.createRadialGradient(e,i,n,s,r,o);return this.colorStops.forEach((({color:t,offset:e})=>{a.addColorStop(e,t)})),a}static async fromObject(t){let{colorStops:e,gradientTransform:i}=t;return new this({...t,colorStops:e?e.map((t=>({...t}))):void 0,gradientTransform:i?[...i]:void 0})}static fromElement(t,e,i){let s=So(t),r=e._findCenterFromElement();return new this({id:t.getAttribute("id")||void 0,type:Co(t),coords:ko(t,{width:i.viewBoxWidth||i.width,height:i.viewBoxHeight||i.height}),colorStops:wo(t,i.opacity),gradientUnits:s,gradientTransform:Wr(t.getAttribute("gradientTransform")||""),..."pixels"===s?{offsetX:e.width/2-r.x,offsetY:e.height/2-r.y}:{offsetX:0,offsetY:0}})}};n(Do,"type","Gradient"),J.setClass(Do,"gradient"),J.setClass(Do,"linear"),J.setClass(Do,"radial");var Oo=class{get type(){return"pattern"}set type(t){h("warn","Setting type has no effect",t)}constructor(t){n(this,"repeat","repeat"),n(this,"offsetX",0),n(this,"offsetY",0),n(this,"crossOrigin",""),this.id=ut(),Object.assign(this,t)}isImageSource(){return!!this.source&&"string"==typeof this.source.src}isCanvasSource(){return!!this.source&&!!this.source.toDataURL}sourceToString(){return this.isImageSource()?this.source.src:this.isCanvasSource()?this.source.toDataURL():""}toLive(t){return this.source&&(!this.isImageSource()||this.source.complete&&0!==this.source.naturalWidth&&0!==this.source.naturalHeight)?t.createPattern(this.source,this.repeat):null}toObject(t=[]){let{repeat:e,crossOrigin:i}=this;return{...Ht(this,t),type:"pattern",source:this.sourceToString(),repeat:e,crossOrigin:i,offsetX:Yt(this.offsetX,a.NUM_FRACTION_DIGITS),offsetY:Yt(this.offsetY,a.NUM_FRACTION_DIGITS),patternTransform:this.patternTransform?[...this.patternTransform]:null}}toSVG({width:t,height:e}){let{source:i,repeat:s,id:r}=this,n=mo(this.offsetX/t,0),o=mo(this.offsetY/e,0),a="repeat-y"===s||"no-repeat"===s?1+Math.abs(n||0):mo(i.width/t,0),h="repeat-x"===s||"no-repeat"===s?1+Math.abs(o||0):mo(i.height/e,0);return[`<pattern id="SVGID_${ne(r)}" x="${n}" y="${o}" width="${a}" height="${h}">`,`<image x="0" y="0" width="${i.width}" height="${i.height}" xlink:href="${ne(this.sourceToString())}"></image>`,"</pattern>",""].join("\n")}static async fromObject({type:t,source:e,patternTransform:i,...s},r){let n=await Rt(e,{...r,crossOrigin:s.crossOrigin});return new this({...s,patternTransform:i&&i.slice(0),source:n})}};n(Oo,"type","Pattern"),J.setClass(Oo),J.setClass(Oo,"pattern");var Mo=class{constructor(t){n(this,"color","rgb(0, 0, 0)"),n(this,"width",1),n(this,"shadow",null),n(this,"strokeLineCap","round"),n(this,"strokeLineJoin","round"),n(this,"strokeMiterLimit",10),n(this,"strokeDashArray",null),n(this,"limitedToCanvasSize",!1),this.canvas=t}_setBrushStyles(t){t.strokeStyle=this.color,t.lineWidth=this.width,t.lineCap=this.strokeLineCap,t.miterLimit=this.strokeMiterLimit,t.lineJoin=this.strokeLineJoin,t.setLineDash(this.strokeDashArray||[])}_saveAndTransform(t){let e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])}needsFullRender(){return new si(this.color).getAlpha()<1||!!this.shadow}_setShadow(){if(!this.shadow||!this.canvas)return;let t=this.canvas,e=this.shadow,i=t.contextTop,s=t.getZoom()*t.getRetinaScaling();i.shadowColor=e.color,i.shadowBlur=e.blur*s,i.shadowOffsetX=e.offsetX*s,i.shadowOffsetY=e.offsetY*s}_resetShadow(){let t=this.canvas.contextTop;t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0}_isOutSideCanvas(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}},Po=class t extends dr{constructor(e,{path:i,left:s,top:r,...n}={}){super(),Object.assign(this,t.ownDefaults),this.setOptions(n),this._setPath(e||[],!0),"number"==typeof s&&this.set("left",s),"number"==typeof r&&this.set("top",r)}_setPath(t,e){this.path=mn(Array.isArray(t)?t:Fn(t)),this.setBoundingBox(e)}_findCenterFromElement(){let t=this._calcBoundsFromPath();return new st(t.left+t.width/2,t.top+t.height/2)}_renderPathCommands(t){let e=-this.pathOffset.x,i=-this.pathOffset.y;t.beginPath();for(let s of this.path)switch(s[0]){case"L":t.lineTo(s[1]+e,s[2]+i);break;case"M":t.moveTo(s[1]+e,s[2]+i);break;case"C":t.bezierCurveTo(s[1]+e,s[2]+i,s[3]+e,s[4]+i,s[5]+e,s[6]+i);break;case"Q":t.quadraticCurveTo(s[1]+e,s[2]+i,s[3]+e,s[4]+i);break;case"Z":t.closePath()}}_render(t){this._renderPathCommands(t),this._renderPaintInOrder(t)}toString(){return`#<Path (${this.complexity()}): { "top": ${this.top}, "left": ${this.left} }>`}toObject(t=[]){return{...super.toObject(t),path:this.path.map((t=>t.slice()))}}toDatalessObject(t=[]){let e=this.toObject(t);return this.sourcePath&&(delete e.path,e.sourcePath=this.sourcePath),e}_toSVG(){return["<path ","COMMON_PARTS",`d="${Rn(this.path,a.NUM_FRACTION_DIGITS)}" stroke-linecap="round" />\n`]}_getOffsetTransform(){let t=a.NUM_FRACTION_DIGITS;return` translate(${Yt(-this.pathOffset.x,t)}, ${Yt(-this.pathOffset.y,t)})`}toClipPathSVG(t){let e=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}toSVG(t){let e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}complexity(){return this.path.length}setDimensions(){this.setBoundingBox()}setBoundingBox(t){let{width:e,height:i,pathOffset:s}=this._calcDimensions();this.set({width:e,height:i,pathOffset:s}),t&&this.setPositionByOrigin(s,"center","center")}_calcBoundsFromPath(){let t=[],e=0,i=0,s=0,r=0;for(let n of this.path)switch(n[0]){case"L":s=n[1],r=n[2],t.push({x:e,y:i},{x:s,y:r});break;case"M":s=n[1],r=n[2],e=s,i=r;break;case"C":t.push(...gn(s,r,n[1],n[2],n[3],n[4],n[5],n[6])),s=n[5],r=n[6];break;case"Q":t.push(...gn(s,r,n[1],n[2],n[1],n[2],n[3],n[4])),s=n[3],r=n[4];break;case"Z":s=e,r=i}return ge(t)}_calcDimensions(){let t=this._calcBoundsFromPath();return{...t,pathOffset:new st(t.left+t.width/2,t.top+t.height/2)}}static fromObject(t){return this._fromObject(t,{extraParam:"path"})}static async fromElement(t,e,i){let{d:s,...r}=Vr(t,this.ATTRIBUTE_NAMES,i);return new this(s,{...r,...e,left:void 0,top:void 0})}};n(Po,"type","Path"),n(Po,"cacheProperties",[...ji,"path","fillRule"]),n(Po,"ATTRIBUTE_NAMES",[...Cr,"d"]),J.setClass(Po),J.setSVGClass(Po);var Eo=class t extends Mo{constructor(t){super(t),n(this,"decimate",.4),n(this,"drawStraightLine",!1),n(this,"straightLineKey","shiftKey"),this._points=[],this._hasStraightLine=!1}needsFullRender(){return super.needsFullRender()||this._hasStraightLine}static drawSegment(t,e,i){let s=e.midPointFrom(i);return t.quadraticCurveTo(e.x,e.y,s.x,s.y),s}onMouseDown(t,{e}){this.canvas._isMainEvent(e)&&(this.drawStraightLine=!!this.straightLineKey&&e[this.straightLineKey],this._prepareForDrawing(t),this._addPoint(t),this._render())}onMouseMove(e,{e:i}){if(this.canvas._isMainEvent(i)&&(this.drawStraightLine=!!this.straightLineKey&&i[this.straightLineKey],(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(e))&&this._addPoint(e)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{let e=this._points,i=e.length,s=this.canvas.contextTop;this._saveAndTransform(s),this.oldEnd&&(s.beginPath(),s.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=t.drawSegment(s,e[i-2],e[i-1]),s.stroke(),s.restore()}}onMouseUp({e:t}){return!this.canvas._isMainEvent(t)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)}_prepareForDrawing(t){this._reset(),this._addPoint(t),this.canvas.contextTop.moveTo(t.x,t.y)}_addPoint(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1])||(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(t),0))}_reset(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1}_render(e=this.canvas.contextTop){let i=this._points[0],s=this._points[1];if(this._saveAndTransform(e),e.beginPath(),2===this._points.length&&i.x===s.x&&i.y===s.y){let t=this.width/1e3;i.x-=t,s.x+=t}e.moveTo(i.x,i.y);for(let r=1;r<this._points.length;r++)t.drawSegment(e,i,s),i=this._points[r],s=this._points[r+1];e.lineTo(i.x,i.y),e.stroke(),e.restore()}convertPointsToSVGPath(t){return In(t,this.width/1e3)}createPath(t){let e=new Po(t,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeMiterLimit:this.strokeMiterLimit,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray});return this.shadow&&(this.shadow.affectStroke=!0,e.shadow=new Ai(this.shadow)),e}decimatePoints(t,e){if(t.length<=2)return t;let i,s=t[0],r=(e/this.canvas.getZoom())**2,n=t.length-1,o=[s];for(let e=1;e<n-1;e++)i=(s.x-t[e].x)**2+(s.y-t[e].y)**2,i>=r&&(s=t[e],o.push(s));return o.push(t[n]),o}_finalizeAndAddPath(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));let t=this.convertPointsToSVGPath(this._points);if(function(t){return"M 0 0 Q 0 0 0 0 L 0 0"===Rn(t)}(t))return void this.canvas.requestRenderAll();let e=this.createPath(t);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:e})}};let Ao=["radius","startAngle","endAngle","counterClockwise"];var Fo=class t extends dr{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e){super(),Object.assign(this,t.ownDefaults),this.setOptions(e)}_set(t,e){return super._set(t,e),"radius"===t&&this.setRadius(e),this}_render(t){t.beginPath(),t.arc(0,0,this.radius,vt(this.startAngle),vt(this.endAngle),this.counterClockwise),this._renderPaintInOrder(t)}getRadiusX(){return this.get("radius")*this.get(Y)}getRadiusY(){return this.get("radius")*this.get(N)}setRadius(t){this.radius=t,this.set({width:2*t,height:2*t})}toObject(t=[]){return super.toObject([...Ao,...t])}_toSVG(){let{radius:t,startAngle:e,endAngle:i}=this,s=(i-e)%360;if(0===s)return["<circle ","COMMON_PARTS",'cx="0" cy="0" ','r="',`${ne(t)}`,'" />\n'];{let r=vt(e),n=vt(i),o=et(r)*t,a=it(r)*t,h=et(n)*t,l=it(n)*t;return[`<path d="M ${o} ${a} A ${t} ${t} 0 ${+(s>180)} ${+!this.counterClockwise} ${h} ${l}" `,"COMMON_PARTS"," />\n"]}}static async fromElement(t,e,i){let{left:s=0,top:r=0,radius:n=0,...o}=Vr(t,this.ATTRIBUTE_NAMES,i);return new this({...o,radius:n,left:s-n,top:r-n})}static fromObject(t){return super._fromObject(t)}};n(Fo,"type","Circle"),n(Fo,"cacheProperties",[...ji,...Ao]),n(Fo,"ownDefaults",{radius:0,startAngle:0,endAngle:360,counterClockwise:!1}),n(Fo,"ATTRIBUTE_NAMES",["cx","cy","r",...Cr]),J.setClass(Fo),J.setSVGClass(Fo);let Io=["x1","x2","y1","y2"];var jo=class t extends dr{constructor([e,i,s,r]=[0,0,0,0],n={}){super(),Object.assign(this,t.ownDefaults),this.setOptions(n),this.x1=e,this.x2=s,this.y1=i,this.y2=r,this._setWidthHeight();let{left:o,top:a}=n;"number"==typeof o&&this.set("left",o),"number"==typeof a&&this.set("top",a)}_setWidthHeight(){let{x1:t,y1:e,x2:i,y2:s}=this;this.width=Math.abs(i-t),this.height=Math.abs(s-e);let{left:r,top:n,width:o,height:a}=ge([{x:t,y:e},{x:i,y:s}]),h=new st(r+o/2,n+a/2);this.setPositionByOrigin(h,D,D)}_set(t,e){return super._set(t,e),Io.includes(t)&&this._setWidthHeight(),this}_render(t){t.beginPath();let e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;let i=t.strokeStyle;var s;Xt(this.stroke)?t.strokeStyle=this.stroke.toLive(t):t.strokeStyle=null==(s=this.stroke)?t.fillStyle:s,this.stroke&&this._renderStroke(t),t.strokeStyle=i}_findCenterFromElement(){return new st((this.x1+this.x2)/2,(this.y1+this.y2)/2)}toObject(t=[]){return{...super.toObject(t),...this.calcLinePoints()}}_getNonTransformedDimensions(){let t=super._getNonTransformedDimensions();return"butt"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t}calcLinePoints(){let{x1:t,x2:e,y1:i,y2:s,width:r,height:n}=this,o=t<=e?-.5:.5,a=i<=s?-.5:.5;return{x1:o*r,x2:o*-r,y1:a*n,y2:a*-n}}_toSVG(){let{x1:t,x2:e,y1:i,y2:s}=this.calcLinePoints();return["<line ","COMMON_PARTS",`x1="${t}" y1="${i}" x2="${e}" y2="${s}" />\n`]}static async fromElement(t,e,i){let{x1:s=0,y1:r=0,x2:n=0,y2:o=0,...a}=Vr(t,this.ATTRIBUTE_NAMES,i);return new this([s,r,n,o],a)}static fromObject({x1:t,y1:e,x2:i,y2:s,...r}){return this._fromObject({...r,points:[t,e,i,s]},{extraParam:"points"})}};n(jo,"type","Line"),n(jo,"cacheProperties",[...ji,...Io]),n(jo,"ATTRIBUTE_NAMES",Cr.concat(Io)),J.setClass(jo),J.setSVGClass(jo);var Lo=class t extends dr{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e){super(),Object.assign(this,t.ownDefaults),this.setOptions(e)}_render(t){let e=this.width/2,i=this.height/2;t.beginPath(),t.moveTo(-e,i),t.lineTo(0,-i),t.lineTo(e,i),t.closePath(),this._renderPaintInOrder(t)}_toSVG(){let t=this.width/2,e=this.height/2;return["<polygon ","COMMON_PARTS",'points="',`${-t} ${e},0 ${-e},${t} ${e}`,'" />']}};n(Lo,"type","Triangle"),n(Lo,"ownDefaults",{width:100,height:100}),J.setClass(Lo),J.setSVGClass(Lo);let Ro=["rx","ry"];var zo=class t extends dr{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e){super(),Object.assign(this,t.ownDefaults),this.setOptions(e)}_set(t,e){switch(super._set(t,e),t){case"rx":this.rx=e,this.set("width",2*e);break;case"ry":this.ry=e,this.set("height",2*e)}return this}getRx(){return this.get("rx")*this.get(Y)}getRy(){return this.get("ry")*this.get(N)}toObject(t=[]){return super.toObject([...Ro,...t])}_toSVG(){return["<ellipse ","COMMON_PARTS",`cx="0" cy="0" rx="${ne(this.rx)}" ry="${ne(this.ry)}" />\n`]}_render(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,S,!1),t.restore(),this._renderPaintInOrder(t)}static async fromElement(t,e,i){let s=Vr(t,this.ATTRIBUTE_NAMES,i);return s.left=(s.left||0)-s.rx,s.top=(s.top||0)-s.ry,new this(s)}};n(zo,"type","Ellipse"),n(zo,"cacheProperties",[...ji,...Ro]),n(zo,"ownDefaults",{rx:0,ry:0}),n(zo,"ATTRIBUTE_NAMES",[...Cr,"cx","cy","rx","ry"]),J.setClass(zo),J.setSVGClass(zo);let Bo={exactBoundingBox:!1};var Ho=class t extends dr{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e=[],i={}){super(),n(this,"strokeDiff",void 0),Object.assign(this,t.ownDefaults),this.setOptions(i),this.points=e;let{left:s,top:r}=i;this.initialized=!0,this.setBoundingBox(!0),"number"==typeof s&&this.set("left",s),"number"==typeof r&&this.set("top",r)}isOpen(){return!0}_projectStrokeOnPoints(t){return vr(this.points,t,this.isOpen())}_calcDimensions(t){t={scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,strokeLineCap:this.strokeLineCap,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:this.strokeMiterLimit,strokeUniform:this.strokeUniform,strokeWidth:this.strokeWidth,...t||{}};let e=this.exactBoundingBox?this._projectStrokeOnPoints(t).map((t=>t.projectedPoint)):this.points;if(0===e.length)return{left:0,top:0,width:0,height:0,pathOffset:new st,strokeOffset:new st,strokeDiff:new st};let i=ge(e),s=jt({...t,scaleX:1,scaleY:1}),r=ge(this.points.map((t=>xt(t,s,!0)))),n=new st(this.scaleX,this.scaleY),o=i.left+i.width/2,a=i.top+i.height/2;return this.exactBoundingBox&&(o-=a*Math.tan(vt(this.skewX)),a-=o*Math.tan(vt(this.skewY))),{...i,pathOffset:new st(o,a),strokeOffset:new st(r.left,r.top).subtract(new st(i.left,i.top)).multiply(n),strokeDiff:new st(i.width,i.height).subtract(new st(r.width,r.height)).multiply(n)}}_findCenterFromElement(){let t=ge(this.points);return new st(t.left+t.width/2,t.top+t.height/2)}setDimensions(){this.setBoundingBox()}setBoundingBox(t){let{left:e,top:i,width:s,height:r,pathOffset:n,strokeOffset:o,strokeDiff:a}=this._calcDimensions();this.set({width:s,height:r,pathOffset:n,strokeOffset:o,strokeDiff:a}),t&&this.setPositionByOrigin(new st(e+s/2,i+r/2),"center","center")}isStrokeAccountedForInDimensions(){return this.exactBoundingBox}_getNonTransformedDimensions(){return this.exactBoundingBox?new st(this.width,this.height):super._getNonTransformedDimensions()}_getTransformedDimensions(t={}){if(this.exactBoundingBox){let n;if(Object.keys(t).some((t=>this.strokeUniform||this.constructor.layoutProperties.includes(t)))){var e,i;let{width:s,height:r}=this._calcDimensions(t);n=new st(null==(e=t.width)?s:e,null==(i=t.height)?r:i)}else{var s,r;n=new st(null==(s=t.width)?this.width:s,null==(r=t.height)?this.height:r)}return n.multiply(new st(t.scaleX||this.scaleX,t.scaleY||this.scaleY))}return super._getTransformedDimensions(t)}_set(t,e){let i=this.initialized&&this[t]!==e,s=super._set(t,e);return this.exactBoundingBox&&i&&(("scaleX"===t||"scaleY"===t)&&this.strokeUniform&&this.constructor.layoutProperties.includes("strokeUniform")||this.constructor.layoutProperties.includes(t))&&this.setDimensions(),s}toObject(t=[]){return{...super.toObject(t),points:this.points.map((({x:t,y:e})=>({x:t,y:e})))}}_toSVG(){let t=this.pathOffset.x,e=this.pathOffset.y,i=a.NUM_FRACTION_DIGITS,s=this.points.map((({x:s,y:r})=>`${Yt(s-t,i)},${Yt(r-e,i)}`)).join(" ");return[`<${ne(this.constructor.type).toLowerCase()} `,"COMMON_PARTS",`points="${s}" />\n`]}_render(t){let e=this.points.length,i=this.pathOffset.x,s=this.pathOffset.y;if(e&&!isNaN(this.points[e-1].y)){t.beginPath(),t.moveTo(this.points[0].x-i,this.points[0].y-s);for(let r=0;r<e;r++){let e=this.points[r];t.lineTo(e.x-i,e.y-s)}!this.isOpen()&&t.closePath(),this._renderPaintInOrder(t)}}complexity(){return this.points.length}static async fromElement(t,e,i){let s=function(t){if(!t)return[];let e=t.replace(/,/g," ").trim().split(/\s+/),i=[];for(let t=0;t<e.length;t+=2)i.push({x:parseFloat(e[t]),y:parseFloat(e[t+1])});return i}(t.getAttribute("points")),{left:r,top:n,...o}=Vr(t,this.ATTRIBUTE_NAMES,i);return new this(s,{...o,...e})}static fromObject(t){return this._fromObject(t,{extraParam:"points"})}};n(Ho,"ownDefaults",Bo),n(Ho,"type","Polyline"),n(Ho,"layoutProperties",[X,$,"strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeWidth","strokeUniform","points"]),n(Ho,"cacheProperties",[...ji,"points"]),n(Ho,"ATTRIBUTE_NAMES",[...Cr]),J.setClass(Ho),J.setSVGClass(Ho);var Wo=class extends Ho{isOpen(){return!1}};n(Wo,"ownDefaults",Bo),n(Wo,"type","Polygon"),J.setClass(Wo),J.setSVGClass(Wo);var Yo=class extends dr{isEmptyStyles(t){if(!this.styles||void 0!==t&&!this.styles[t])return!0;let e=void 0===t?this.styles:{line:this.styles[t]};for(let t in e)for(let i in e[t])for(let s in e[t][i])return!1;return!0}styleHas(t,e){if(!this.styles||void 0!==e&&!this.styles[e])return!1;let i=void 0===e?this.styles:{0:this.styles[e]};for(let e in i)for(let s in i[e])if(void 0!==i[e][s][t])return!0;return!1}cleanStyle(t){if(!this.styles)return!1;let e,i,s=this.styles,r=0,n=!0,o=0;for(let o in s){e=0;for(let a in s[o]){let h=s[o][a]||{};r++,void 0===h[t]?n=!1:(i?h[t]!==i&&(n=!1):i=h[t],h[t]===this[t]&&delete h[t]),0===Object.keys(h).length?delete s[o][a]:e++}0===e&&delete s[o]}for(let t=0;t<this._textLines.length;t++)o+=this._textLines[t].length;n&&r===o&&(this[t]=i,this.removeStyle(t))}removeStyle(t){if(!this.styles)return;let e,i,s,r=this.styles;for(i in r){for(s in e=r[i],e)delete e[s][t],0===Object.keys(e[s]).length&&delete e[s];0===Object.keys(e).length&&delete r[i]}}_extendStyles(t,e){let{lineIndex:i,charIndex:s}=this.get2DCursorLocation(t);this._getLineStyle(i)||this._setLineStyle(i);let r=Wt({...this._getStyleDeclaration(i,s),...e},(t=>void 0!==t));this._setStyleDeclaration(i,s,r)}getSelectionStyles(t,e,i){let s=[];for(let r=t;r<(e||t);r++)s.push(this.getStyleAtPosition(r,i));return s}getStyleAtPosition(t,e){let{lineIndex:i,charIndex:s}=this.get2DCursorLocation(t);return e?this.getCompleteStyleDeclaration(i,s):this._getStyleDeclaration(i,s)}setSelectionStyles(t,e,i){for(let s=e;s<(i||e);s++)this._extendStyles(s,t);this._forceClearCache=!0}_getStyleDeclaration(t,e){var i;let s=this.styles&&this.styles[t];return s&&null!=(i=s[e])?i:{}}getCompleteStyleDeclaration(t,e){return{...Ht(this,this.constructor._styleProperties),...this._getStyleDeclaration(t,e)}}_setStyleDeclaration(t,e,i){this.styles[t][e]=i}_deleteStyleDeclaration(t,e){delete this.styles[t][e]}_getLineStyle(t){return!!this.styles[t]}_setLineStyle(t){this.styles[t]={}}_deleteLineStyle(t){delete this.styles[t]}};n(Yo,"_styleProperties",mi);let No,Xo=/  +/g,$o=/"/g;function Vo(t,e,i,s,r){return`\t\t${((t,{left:e,top:i,width:s,height:r},n=a.NUM_FRACTION_DIGITS)=>{let o=ai(V,t,!1),[h,l,c,u]=[e,i,s,r].map((t=>Yt(t,n)));return`<rect ${o} x="${h}" y="${l}" width="${c}" height="${u}"></rect>`})(t,{left:e,top:i,width:s,height:r})}\n`}var Go=class t extends Yo{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e,i){super(),n(this,"__charBounds",[]),Object.assign(this,t.ownDefaults),this.setOptions(i),this.styles||(this.styles={}),this.text=e,this.initialized=!0,this.path&&this.setPathInfo(),this.initDimensions(),this.setCoords()}setPathInfo(){let t=this.path;t&&(t.segmentsInfo=Dn(t.path))}_splitText(){let t=this._splitTextIntoLines(this.text);return this.textLines=t.lines,this._textLines=t.graphemeLines,this._unwrappedTextLines=t._unwrappedLines,this._text=t.graphemeText,t}initDimensions(){this._splitText(),this._clearCache(),this.dirty=!0,this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.includes("justify")&&this.enlargeSpaces()}enlargeSpaces(){let t,e,i,s,r,n,o;for(let a=0,h=this._textLines.length;a<h;a++)if(("justify"===this.textAlign||a!==h-1&&!this.isEndOfWrapping(a))&&(s=0,r=this._textLines[a],e=this.getLineWidth(a),e<this.width&&(o=this.textLines[a].match(this._reSpacesAndTabs)))){i=o.length,t=(this.width-e)/i;for(let e=0;e<=r.length;e++)n=this.__charBounds[a][e],this._reSpaceAndTab.test(r[e])?(n.width+=t,n.kernedWidth+=t,n.left+=s,s+=t):n.left+=s}}isEndOfWrapping(t){return t===this._textLines.length-1}missingNewlineOffset(t){return 1}get2DCursorLocation(t,e){let i,s=e?this._unwrappedTextLines:this._textLines;for(i=0;i<s.length;i++){if(t<=s[i].length)return{lineIndex:i,charIndex:t};t-=s[i].length+this.missingNewlineOffset(i,e)}return{lineIndex:i-1,charIndex:s[i-1].length<t?s[i-1].length:t}}toString(){return`#<Text (${this.complexity()}): { "text": "${this.text}", "fontFamily": "${this.fontFamily}" }>`}_getCacheCanvasDimensions(){let t=super._getCacheCanvasDimensions(),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t}_render(t){let e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")}_renderText(t){"stroke"===this.paintFirst?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))}_setTextStyles(t,e,i){if(t.textBaseline="alphabetic",this.path)switch(this.pathAlign){case D:t.textBaseline="middle";break;case"ascender":t.textBaseline="top";break;case"descender":t.textBaseline=M}t.font=this._getFontDeclaration(e,i)}calcTextWidth(){let t=this.getLineWidth(0);for(let e=1,i=this._textLines.length;e<i;e++){let i=this.getLineWidth(e);i>t&&(t=i)}return t}_renderTextLine(t,e,i,s,r,n){this._renderChars(t,e,i,s,r,n)}_renderTextLinesBackground(t){if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor"))return;let e=t.fillStyle,i=this._getLeftOffset(),s=this._getTopOffset();for(let e=0,r=this._textLines.length;e<r;e++){let r=this.getHeightOfLine(e);if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor",e)){s+=r;continue}let n,o,a=this._textLines[e].length,h=this._getLineLeftOffset(e),l=0,c=0,u=this.getValueOfPropertyAt(e,0,"textBackgroundColor"),d=this.getHeightOfLineImpl(e);for(let r=0;r<a;r++){let a=this.__charBounds[e][r];o=this.getValueOfPropertyAt(e,r,"textBackgroundColor"),this.path?(t.save(),t.translate(a.renderLeft,a.renderTop),t.rotate(a.angle),t.fillStyle=o,o&&t.fillRect(-a.width/2,-d*(1-this._fontSizeFraction),a.width,d),t.restore()):o===u?l+=a.kernedWidth:(n=i+h+c,"rtl"===this.direction&&(n=this.width-n-l),t.fillStyle=u,u&&t.fillRect(n,s,l,d),c=a.left,l=a.width,u=o)}o&&!this.path&&(n=i+h+c,"rtl"===this.direction&&(n=this.width-n-l),t.fillStyle=o,t.fillRect(n,s,l,d)),s+=r}t.fillStyle=e,this._removeShadow(t)}_measureChar(t,e,i,s){let r,n,o,a,h=y.getFontCache(e),l=this._getFontDeclaration(e),c=i?i+t:t,u=i&&l===this._getFontDeclaration(s),d=e.fontSize/this.CACHE_FONT_SIZE;if(i&&h.has(i)&&(o=h.get(i)),h.has(t)&&(a=r=h.get(t)),u&&h.has(c)&&(n=h.get(c),a=n-o),void 0===r||void 0===o||void 0===n){let s=(No||(No=ft({width:0,height:0}).getContext("2d")),No);this._setTextStyles(s,e,!0),void 0===r&&(a=r=s.measureText(t).width,h.set(t,r)),void 0===o&&u&&i&&(o=s.measureText(i).width,h.set(i,o)),u&&void 0===n&&(n=s.measureText(c).width,h.set(c,n),a=n-o)}return{width:r*d,kernedWidth:a*d}}getHeightOfChar(t,e){return this.getValueOfPropertyAt(t,e,"fontSize")}measureLine(t){let e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e}_measureLine(t){let e,i,s=0,r=this.pathSide===P,n=this.path,o=this._textLines[t],a=o.length,h=Array(a);this.__charBounds[t]=h;for(let r=0;r<a;r++){let n=o[r];i=this._getGraphemeBox(n,t,r,e),h[r]=i,s+=i.kernedWidth,e=n}if(h[a]={left:i?i.left+i.width:0,width:0,kernedWidth:0,height:this.fontSize,deltaY:0},n&&n.segmentsInfo){let t=0,e=n.segmentsInfo[n.segmentsInfo.length-1].length;switch(this.textAlign){case O:t=r?e-s:0;break;case D:t=(e-s)/2;break;case P:t=r?0:e-s}t+=this.pathStartOffset*(r?-1:1);for(let s=r?a-1:0;r?s>=0:s<a;r?s--:s++)i=h[s],t>e?t%=e:t<0&&(t+=e),this._setGraphemeOnPath(t,i),t+=i.kernedWidth}return{width:s,numOfSpaces:0}}_setGraphemeOnPath(t,e){let i=t+e.kernedWidth/2,s=this.path,r=On(s.path,i,s.segmentsInfo);e.renderLeft=r.x-s.pathOffset.x,e.renderTop=r.y-s.pathOffset.y,e.angle=r.angle+("right"===this.pathSide?Math.PI:0)}_getGraphemeBox(t,e,i,s,r){let n,o=this.getCompleteStyleDeclaration(e,i),a=s?this.getCompleteStyleDeclaration(e,i-1):{},h=this._measureChar(t,o,s,a),l=h.kernedWidth,c=h.width;0!==this.charSpacing&&(n=this._getWidthOfCharSpacing(),c+=n,l+=n);let u={width:c,left:0,height:o.fontSize,kernedWidth:l,deltaY:o.deltaY};if(i>0&&!r){let t=this.__charBounds[e][i-1];u.left=t.left+t.width+h.kernedWidth-h.width}return u}getHeightOfLineImpl(t){let e=this.__lineHeights;if(e[t])return e[t];let i=this.getHeightOfChar(t,0);for(let e=1,s=this._textLines[t].length;e<s;e++)i=Math.max(this.getHeightOfChar(t,e),i);return e[t]=i*this._fontSizeMult}getHeightOfLine(t){return this.getHeightOfLineImpl(t)*this.lineHeight}calcTextHeight(){let t=0;for(let e=0,i=this._textLines.length;e<i;e++)t+=e===i-1?this.getHeightOfLineImpl(e):this.getHeightOfLine(e);return t}_getLeftOffset(){return"ltr"===this.direction?-this.width/2:this.width/2}_getTopOffset(){return-this.height/2}_renderTextCommon(t,e){t.save();let i=0,s=this._getLeftOffset(),r=this._getTopOffset();for(let n=0,o=this._textLines.length;n<o;n++)this._renderTextLine(e,t,this._textLines[n],s+this._getLineLeftOffset(n),r+i+this.getHeightOfLineImpl(n),n),i+=this.getHeightOfLine(n);t.restore()}_renderTextFill(t){(this.fill||this.styleHas("fill"))&&this._renderTextCommon(t,"fillText")}_renderTextStroke(t){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this._setLineDash(t,this.strokeDashArray),t.beginPath(),this._renderTextCommon(t,"strokeText"),t.closePath(),t.restore())}_renderChars(t,e,i,s,r,n){let o,a,h,l,c,u=this.textAlign.includes(vi),d=this.path,p=!u&&0===this.charSpacing&&this.isEmptyStyles(n)&&!d,g="ltr"===this.direction,f="ltr"===this.direction?1:-1,m=e.direction,_="",v=0;if(e.save(),m!==this.direction&&(e.canvas.setAttribute("dir",g?"ltr":"rtl"),e.direction=g?"ltr":"rtl",e.textAlign=g?O:P),r-=this.getHeightOfLineImpl(n)*this._fontSizeFraction,p)return this._renderChar(t,e,n,0,i.join(""),s,r),void e.restore();for(let p=0,g=i.length-1;p<=g;p++)l=p===g||this.charSpacing||d,_+=i[p],h=this.__charBounds[n][p],0===v?(s+=f*(h.kernedWidth-h.width),v+=h.width):v+=h.kernedWidth,u&&!l&&this._reSpaceAndTab.test(i[p])&&(l=!0),l||(o=o||this.getCompleteStyleDeclaration(n,p),a=this.getCompleteStyleDeclaration(n,p+1),l=br(o,a,!1)),l&&(d?(e.save(),e.translate(h.renderLeft,h.renderTop),e.rotate(h.angle),this._renderChar(t,e,n,p,_,-v/2,0),e.restore()):(c=s,this._renderChar(t,e,n,p,_,c,r)),_="",o=a,s+=f*v,v=0);e.restore()}_applyPatternGradientTransformText(t){let e=this.width+this.strokeWidth,i=this.height+this.strokeWidth,s=ft({width:e,height:i}),r=s.getContext("2d");return s.width=e,s.height=i,r.beginPath(),r.moveTo(0,0),r.lineTo(e,0),r.lineTo(e,i),r.lineTo(0,i),r.closePath(),r.translate(e/2,i/2),r.fillStyle=t.toLive(r),this._applyPatternGradientTransform(r,t),r.fill(),r.createPattern(s,"no-repeat")}handleFiller(t,e,i){let s,r;return Xt(i)?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?(s=-this.width/2,r=-this.height/2,t.translate(s,r),t[e]=this._applyPatternGradientTransformText(i),{offsetX:s,offsetY:r}):(t[e]=i.toLive(t),this._applyPatternGradientTransform(t,i)):(t[e]=i,{offsetX:0,offsetY:0})}_setStrokeStyles(t,{stroke:e,strokeWidth:i}){return t.lineWidth=i,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,"strokeStyle",e)}_setFillStyles(t,{fill:e}){return this.handleFiller(t,"fillStyle",e)}_renderChar(t,e,i,s,r,n,o){let a=this._getStyleDeclaration(i,s),h=this.getCompleteStyleDeclaration(i,s),l="fillText"===t&&h.fill,c="strokeText"===t&&h.stroke&&h.strokeWidth;if(c||l){if(e.save(),e.font=this._getFontDeclaration(h),a.textBackgroundColor&&this._removeShadow(e),a.deltaY&&(o+=a.deltaY),l){let t=this._setFillStyles(e,h);e.fillText(r,n-t.offsetX,o-t.offsetY)}if(c){let t=this._setStrokeStyles(e,h);e.strokeText(r,n-t.offsetX,o-t.offsetY)}e.restore()}}setSuperscript(t,e){this._setScript(t,e,this.superscript)}setSubscript(t,e){this._setScript(t,e,this.subscript)}_setScript(t,e,i){let s=this.get2DCursorLocation(t,!0),r=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"fontSize"),n=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"deltaY"),o={fontSize:r*i.size,deltaY:n+r*i.baseline};this.setSelectionStyles(o,t,e)}_getLineLeftOffset(t){let e=this.getLineWidth(t),i=this.width-e,s=this.textAlign,r=this.direction,n=this.isEndOfWrapping(t),o=0;return"justify"===s||"justify-center"===s&&!n||"justify-right"===s&&!n||"justify-left"===s&&!n?0:("center"===s&&(o=i/2),"right"===s&&(o=i),"justify-center"===s&&(o=i/2),"justify-right"===s&&(o=i),"rtl"===r&&("right"===s||"justify-right"===s?o=0:"left"===s||"justify-left"===s?o=-i:"center"!==s&&"justify-center"!==s||(o=-i/2)),o)}_clearCache(){this._forceClearCache=!1,this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]}getLineWidth(t){if(void 0!==this.__lineWidths[t])return this.__lineWidths[t];let{width:e}=this.measureLine(t);return this.__lineWidths[t]=e,e}_getWidthOfCharSpacing(){return 0===this.charSpacing?0:this.fontSize*this.charSpacing/1e3}getValueOfPropertyAt(t,e,i){var s;return null==(s=this._getStyleDeclaration(t,e)[i])?this[i]:s}_renderTextDecoration(t,e){if(!this[e]&&!this.styleHas(e))return;let i=this._getTopOffset(),s=this._getLeftOffset(),r=this.path,n=this._getWidthOfCharSpacing(),o="linethrough"===e?.5:+("overline"===e),a=this.offsets[e];for(let h=0,l=this._textLines.length;h<l;h++){let l=this.getHeightOfLine(h);if(!this[e]&&!this.styleHas(e,h)){i+=l;continue}let c,u=this._textLines[h],d=l/this.lineHeight,p=this._getLineLeftOffset(h),g=0,f=0,m=this.getValueOfPropertyAt(h,0,e),_=this.getValueOfPropertyAt(h,0,V),v=this.getValueOfPropertyAt(h,0,"textDecorationColor")||_,y=this.getValueOfPropertyAt(h,0,ci),b=m,x=v,w=y,C=i+d*(1-this._fontSizeFraction),S=this.getHeightOfChar(h,0),T=this.getValueOfPropertyAt(h,0,"deltaY");for(let i=0,n=u.length;i<n;i++){let n=this.__charBounds[h][i];b=this.getValueOfPropertyAt(h,i,e),c=this.getValueOfPropertyAt(h,i,V),x=this.getValueOfPropertyAt(h,i,"textDecorationColor")||c,w=this.getValueOfPropertyAt(h,i,ci);let l=this.getHeightOfChar(h,i),u=this.getValueOfPropertyAt(h,i,"deltaY");if(r&&b&&c){let e=this.fontSize*w/1e3;t.save(),t.fillStyle=x,t.translate(n.renderLeft,n.renderTop),t.rotate(n.angle),t.fillRect(-n.kernedWidth/2,a*l+u-o*e,n.kernedWidth,e),t.restore()}else if((b!==m||c!==_||x!==v||l!==S||w!==y||u!==T)&&f>0){let e=this.fontSize*y/1e3,i=s+p+g;"rtl"===this.direction&&(i=this.width-i-f),m&&v&&y&&(t.fillStyle=v,t.fillRect(i,C+a*S+T-o*e,f,e)),g=n.left,f=n.width,m=b,v=x,y=w,_=c,S=l,T=u}else f+=n.kernedWidth}let k=s+p+g;"rtl"===this.direction&&(k=this.width-k-f),t.fillStyle=x;let D=this.fontSize*w/1e3;b&&x&&w&&t.fillRect(k,C+a*S+T-o*D,f-n,D),i+=l}this._removeShadow(t)}_getFontDeclaration({fontFamily:e=this.fontFamily,fontStyle:i=this.fontStyle,fontWeight:s=this.fontWeight,fontSize:r=this.fontSize}={},n){let o=e.includes("'")||e.includes('"')||e.includes(",")||t.genericFonts.includes(e.toLowerCase())?e:`"${e}"`;return[i,s,`${n?this.CACHE_FONT_SIZE:r}px`,o].join(" ")}render(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._forceClearCache&&this.initDimensions(),super.render(t)))}graphemeSplit(t){return oe(t)}_splitTextIntoLines(t){let e=t.split(this._reNewline),i=Array(e.length),s=["\n"],r=[];for(let t=0;t<e.length;t++)i[t]=this.graphemeSplit(e[t]),r=r.concat(i[t],s);return r.pop(),{_unwrappedLines:i,lines:e,graphemeText:r,graphemeLines:i}}toObject(t=[]){return{...super.toObject([...fi,...t]),styles:xr(this.styles,this.text),...this.path?{path:this.path.toObject()}:{}}}set(t,e){let{textLayoutProperties:i}=this.constructor;super.set(t,e);let s=!1,r=!1;if("object"==typeof t)for(let e in t)"path"===e&&this.setPathInfo(),s=s||i.includes(e),r=r||"path"===e;else s=i.includes(t),r="path"===t;return r&&this.setPathInfo(),s&&this.initialized&&(this.initDimensions(),this.setCoords()),this}complexity(){return 1}static async fromElement(e,i,s){let r=Vr(e,t.ATTRIBUTE_NAMES,s),{textAnchor:n=O,textDecoration:o="",dx:a=0,dy:h=0,top:l=0,left:c=0,fontSize:u=16,strokeWidth:d=1,...p}={...i,...r},g=new this(qe(e.textContent||"").trim(),{left:c+a,top:l+h,underline:o.includes("underline"),overline:o.includes("overline"),linethrough:o.includes("line-through"),strokeWidth:0,fontSize:u,...p}),f=g.getScaledHeight()/g.height,m=((g.height+g.strokeWidth)*g.lineHeight-g.height)*f,_=g.getScaledHeight()+m,v=0;return"center"===n&&(v=g.getScaledWidth()/2),"right"===n&&(v=g.getScaledWidth()),g.set({left:g.left-v,top:g.top-(_-g.fontSize*(.07+g._fontSizeFraction))/g.lineHeight,strokeWidth:d}),g}static fromObject(t){return this._fromObject({...t,styles:wr(t.styles||{},t.text)},{extraParam:"text"})}};n(Go,"textLayoutProperties",gi),n(Go,"cacheProperties",[...ji,...fi]),n(Go,"ownDefaults",_i),n(Go,"type","Text"),n(Go,"genericFonts",["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]),n(Go,"ATTRIBUTE_NAMES",Cr.concat("x","y","dx","dy","font-family","font-style","font-weight","font-size","letter-spacing","text-decoration","text-decoration-thickness","text-decoration-color","text-anchor")),ur(Go,[class extends hi{_toSVG(){let t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)}toSVG(t){let e=this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0}),i=this.path;return i?e+i._createBaseSVGMarkup(i._toSVG(),{reviver:t,withShadow:!0,additionalTransform:Nt(this.calcOwnMatrix())}):e}_getSVGLeftTopOffsets(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}}_wrapSVGTextAndBg({textBgRects:t,textSpans:e}){let i=this.getSvgTextDecoration(this);return[t.join(""),'\t\t<text xml:space="preserve" ',`font-family="${ne(this.fontFamily.replace($o,"'"))}" `,`font-size="${ne(this.fontSize)}" `,this.fontStyle?`font-style="${ne(this.fontStyle)}" `:"",this.fontWeight?`font-weight="${ne(this.fontWeight)}" `:"",i?`text-decoration="${i}" `:"","rtl"===this.direction?'direction="rtl" ':"",'style="',this.getSvgStyles(!0),'"',this.addPaintOrder()," >",e.join(""),"</text>\n"]}_getSVGTextAndBg(t,e){let i,s=[],r=[],n=t;this.backgroundColor&&r.push(Vo(this.backgroundColor,-this.width/2,-this.height/2,this.width,this.height));for(let t=0,o=this._textLines.length;t<o;t++)i=this._getLineLeftOffset(t),"rtl"===this.direction&&(i+=this.width),(this.textBackgroundColor||this.styleHas("textBackgroundColor",t))&&this._setSVGTextLineBg(r,t,e+i,n),this._setSVGTextLineText(s,t,e+i,n),n+=this.getHeightOfLine(t);return{textSpans:s,textBgRects:r}}_createTextCharSpan(t,e,i,s,r){let n=a.NUM_FRACTION_DIGITS,o=this.getSvgSpanStyles(e,t!==t.trim()||!!t.match(Xo)),h=o?`style="${o}"`:"",l=e.deltaY,c=l?` dy="${Yt(l,n)}" `:"",{angle:u,renderLeft:d,renderTop:p,width:g}=r,f="";if(void 0!==d){let t=g/2;u&&(f=` rotate="${Yt(yt(u),n)}"`);let e=Pt({angle:yt(u)});e[4]=d,e[5]=p;let r=new st(-t,0).transform(e);i=r.x,s=r.y}return`<tspan x="${Yt(i,n)}" y="${Yt(s,n)}" ${c}${f}${h}>${ne(t)}</tspan>`}_setSVGTextLineText(t,e,i,s){let r,n,o,a,h,l=this.getHeightOfLine(e),c=this.textAlign.includes(vi),u=this._textLines[e],d="",p=0;s+=l*(1-this._fontSizeFraction)/this.lineHeight;for(let l=0,g=u.length-1;l<=g;l++)h=l===g||this.charSpacing||this.path,d+=u[l],o=this.__charBounds[e][l],0===p?(i+=o.kernedWidth-o.width,p+=o.width):p+=o.kernedWidth,c&&!h&&this._reSpaceAndTab.test(u[l])&&(h=!0),h||(r=r||this.getCompleteStyleDeclaration(e,l),n=this.getCompleteStyleDeclaration(e,l+1),h=br(r,n,!0)),h&&(a=this._getStyleDeclaration(e,l),t.push(this._createTextCharSpan(d,a,i,s,o)),d="",r=n,"rtl"===this.direction?i-=p:i+=p,p=0)}_setSVGTextLineBg(t,e,i,s){let r,n=this._textLines[e],o=this.getHeightOfLine(e)/this.lineHeight,a=0,h=0,l=this.getValueOfPropertyAt(e,0,"textBackgroundColor");for(let c=0;c<n.length;c++){let{left:n,width:u,kernedWidth:d}=this.__charBounds[e][c];r=this.getValueOfPropertyAt(e,c,"textBackgroundColor"),r===l?a+=d:(l&&t.push(Vo(l,i+h,s,a,o)),h=n,a=u,l=r)}r&&t.push(Vo(l,i+h,s,a,o))}getSvgStyles(t){let e=Ge(this.textDecorationColor)?` text-decoration-color: ${ne(this[ui])};`:"";return`${super.getSvgStyles(t)} text-decoration-thickness: ${Yt(this.textDecorationThickness*this.getObjectScaling().y/10,a.NUM_FRACTION_DIGITS)}%;${e} white-space: pre;`}getSvgSpanStyles(t,e){let{fontFamily:i,strokeWidth:s,stroke:r,fill:n,fontSize:o,fontStyle:h,fontWeight:l,textDecorationThickness:c,textDecorationColor:u,linethrough:d,overline:p,underline:g}=t,f=this.getSvgTextDecoration({underline:g??this.underline,overline:p??this.overline,linethrough:d??this.linethrough}),m=c||this.textDecorationThickness,_=u||this.textDecorationColor,v=Ue(s),y=Ke(i),b=Ue(o),x=Ke(h),w=Ue(l)||Ke(l),C=Ke(_);return[r?ai(G,r):"",v?`stroke-width: ${ne(v)}; `:"",y?`font-family: ${y.includes("'")||y.includes('"')?ne(y):`'${ne(y)}'`}; `:"",b?`font-size: ${ne(b)}px; `:"",x?`font-style: ${ne(x)}; `:"",w?`font-weight: ${ne(w)}; `:"",f?`text-decoration: ${f}; text-decoration-thickness: ${Yt(m*this.getObjectScaling().y/10,a.NUM_FRACTION_DIGITS)}%;${C?` text-decoration-color: ${ne(C)};`:""} `:"",n?ai(V,n):"",e?"white-space: pre; ":""].join("")}getSvgTextDecoration(t){return["overline","underline","line-through"].filter((e=>t[e.replace("-","")])).join(" ")}}]),J.setClass(Go),J.setSVGClass(Go);var Uo=class{constructor(t){n(this,"target",void 0),n(this,"__mouseDownInPlace",!1),n(this,"__dragStartFired",!1),n(this,"__isDraggingOver",!1),n(this,"__dragStartSelection",void 0),n(this,"__dragImageDisposer",void 0),n(this,"_dispose",void 0),this.target=t;let e=[this.target.on("dragenter",this.dragEnterHandler.bind(this)),this.target.on("dragover",this.dragOverHandler.bind(this)),this.target.on("dragleave",this.dragLeaveHandler.bind(this)),this.target.on("dragend",this.dragEndHandler.bind(this)),this.target.on("drop",this.dropHandler.bind(this))];this._dispose=()=>{e.forEach((t=>t())),this._dispose=void 0}}isPointerOverSelection(t){let e=this.target,i=e.getSelectionStartFromPointer(t);return e.isEditing&&i>=e.selectionStart&&i<=e.selectionEnd&&e.selectionStart<e.selectionEnd}start(t){return this.__mouseDownInPlace=this.isPointerOverSelection(t)}isActive(){return this.__mouseDownInPlace}end(t){let e=this.isActive();return e&&!this.__dragStartFired&&(this.target.setCursorByClick(t),this.target.initDelayedCursor(!0)),this.__mouseDownInPlace=!1,this.__dragStartFired=!1,this.__isDraggingOver=!1,e}getDragStartSelection(){return this.__dragStartSelection}setDragImage(t,{selectionStart:e,selectionEnd:i}){var s;let r=this.target,n=r.canvas,o=new st(r.flipX?-1:1,r.flipY?-1:1),a=r._getCursorBoundaries(e),h=new st(a.left+a.leftOffset,a.top+a.topOffset).multiply(o).transform(r.calcTransformMatrix()),l=n.getScenePoint(t).subtract(h),c=r.getCanvasRetinaScaling(),u=r.getBoundingRect(),d=h.subtract(new st(u.left,u.top)),p=n.viewportTransform,g=d.add(l).transform(p,!0),f=r.backgroundColor,m=yr(r.styles);r.backgroundColor="";let _={stroke:"transparent",fill:"transparent",textBackgroundColor:"transparent"};r.setSelectionStyles(_,0,e),r.setSelectionStyles(_,i,r.text.length),r.dirty=!0;let v=r.toCanvasElement({enableRetinaScaling:n.enableRetinaScaling,viewportTransform:!0});r.backgroundColor=f,r.styles=m,r.dirty=!0,Yn(v,{position:"fixed",left:-v.width+"px",border:E,width:v.width/c+"px",height:v.height/c+"px"}),this.__dragImageDisposer&&this.__dragImageDisposer(),this.__dragImageDisposer=()=>{v.remove()},Kt(t.target||this.target.hiddenTextarea).body.appendChild(v),null==(s=t.dataTransfer)||s.setDragImage(v,g.x,g.y)}onDragStart(t){this.__dragStartFired=!0;let e=this.target,i=this.isActive();if(i&&t.dataTransfer){let i=this.__dragStartSelection={selectionStart:e.selectionStart,selectionEnd:e.selectionEnd},s=e._text.slice(i.selectionStart,i.selectionEnd).join(""),r={text:e.text,value:s,...i};t.dataTransfer.setData("text/plain",s),t.dataTransfer.setData("application/fabric",JSON.stringify({value:s,styles:e.getSelectionStyles(i.selectionStart,i.selectionEnd,!0)})),t.dataTransfer.effectAllowed="copyMove",this.setDragImage(t,r)}return e.abortCursorAnimation(),i}canDrop(t){if(this.target.editable&&!this.target.getActiveControl()&&!t.defaultPrevented){if(this.isActive()&&this.__dragStartSelection){let e=this.target.getSelectionStartFromPointer(t),i=this.__dragStartSelection;return e<i.selectionStart||e>i.selectionEnd}return!0}return!1}targetCanDrop(t){return this.target.canDrop(t)}dragEnterHandler({e:t}){let e=this.targetCanDrop(t);!this.__isDraggingOver&&e&&(this.__isDraggingOver=!0)}dragOverHandler(t){let{e}=t,i=this.targetCanDrop(e);!this.__isDraggingOver&&i?this.__isDraggingOver=!0:this.__isDraggingOver&&!i&&(this.__isDraggingOver=!1),this.__isDraggingOver&&(e.preventDefault(),t.canDrop=!0,t.dropTarget=this.target)}dragLeaveHandler(){(this.__isDraggingOver||this.isActive())&&(this.__isDraggingOver=!1)}dropHandler(t){var e;let{e:i}=t,s=i.defaultPrevented;this.__isDraggingOver=!1,i.preventDefault();let r=null==(e=i.dataTransfer)?void 0:e.getData("text/plain");if(r&&!s){let e=this.target,s=e.canvas,n=e.getSelectionStartFromPointer(i),{styles:o}=i.dataTransfer.types.includes("application/fabric")?JSON.parse(i.dataTransfer.getData("application/fabric")):{},a=r[Math.max(0,r.length-1)];if(this.__dragStartSelection){let t=this.__dragStartSelection.selectionStart,i=this.__dragStartSelection.selectionEnd;n>t&&n<=i?n=t:n>i&&(n-=i-t),e.removeChars(t,i),delete this.__dragStartSelection}e._reNewline.test(a)&&(e._reNewline.test(e._text[n])||n===e._text.length)&&(r=r.trimEnd()),t.didDrop=!0,t.dropTarget=e,e.insertChars(r,o,n),s.setActiveObject(e),e.enterEditing(i),e.selectionStart=Math.min(n+0,e._text.length),e.selectionEnd=Math.min(e.selectionStart+r.length,e._text.length),e.hiddenTextarea.value=e.text,e._updateTextarea(),e.hiddenTextarea.focus(),e.fire(H,{index:n+0,action:"drop"}),s.fire("text:changed",{target:e}),s.contextTopDirty=!0,s.requestRenderAll()}}dragEndHandler({e:t}){if(this.isActive()&&this.__dragStartFired&&this.__dragStartSelection){var e;let i=this.target,s=this.target.canvas,{selectionStart:r,selectionEnd:n}=this.__dragStartSelection,o=(null==(e=t.dataTransfer)?void 0:e.dropEffect)||"none";"none"===o?(i.selectionStart=r,i.selectionEnd=n,i._updateTextarea(),i.hiddenTextarea.focus()):(i.clearContextTop(),"move"===o&&(i.removeChars(r,n),i.selectionStart=i.selectionEnd=r,i.hiddenTextarea&&(i.hiddenTextarea.value=i.text),i._updateTextarea(),i.fire(H,{index:r,action:"dragend"}),s.fire("text:changed",{target:i}),s.requestRenderAll()),i.exitEditing())}this.__dragImageDisposer&&this.__dragImageDisposer(),delete this.__dragImageDisposer,delete this.__dragStartSelection,this.__isDraggingOver=!1}dispose(){this._dispose&&this._dispose()}};let Ko=/[ \n\.,;!\?\-]/;var qo=class extends Go{constructor(...t){super(...t),n(this,"_currentCursorOpacity",1)}initBehavior(){this._tick=this._tick.bind(this),this._onTickComplete=this._onTickComplete.bind(this),this.updateSelectionOnMouseMove=this.updateSelectionOnMouseMove.bind(this)}onDeselect(t){return this.isEditing&&this.exitEditing(),this.selected=!1,super.onDeselect(t)}_animateCursor({toValue:t,duration:e,delay:i,onComplete:s}){return Ss({startValue:this._currentCursorOpacity,endValue:t,duration:e,delay:i,onComplete:s,abort:()=>!this.canvas||this.selectionStart!==this.selectionEnd,onChange:t=>{this._currentCursorOpacity=t,this.renderCursorOrSelection()}})}_tick(t){this._currentTickState=this._animateCursor({toValue:0,duration:this.cursorDuration/2,delay:Math.max(t||0,100),onComplete:this._onTickComplete})}_onTickComplete(){var t;null==(t=this._currentTickCompleteState)||t.abort(),this._currentTickCompleteState=this._animateCursor({toValue:1,duration:this.cursorDuration,onComplete:this._tick})}initDelayedCursor(t){this.abortCursorAnimation(),this._tick(t?0:this.cursorDelay)}abortCursorAnimation(){let t=!1;[this._currentTickState,this._currentTickCompleteState].forEach((e=>{e&&!e.isDone()&&(t=!0,e.abort())})),this._currentCursorOpacity=1,t&&this.clearContextTop()}restartCursorIfNeeded(){[this._currentTickState,this._currentTickCompleteState].some((t=>!t||t.isDone()))&&this.initDelayedCursor()}selectAll(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this}cmdAll(){this.selectAll(),this.renderCursorOrSelection()}getSelectedText(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")}findWordBoundaryLeft(t){let e=0,i=t-1;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i--;for(;/\S/.test(this._text[i])&&i>-1;)e++,i--;return t-e}findWordBoundaryRight(t){let e=0,i=t;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i++;for(;/\S/.test(this._text[i])&&i<this._text.length;)e++,i++;return t+e}findLineBoundaryLeft(t){let e=0,i=t-1;for(;!/\n/.test(this._text[i])&&i>-1;)e++,i--;return t-e}findLineBoundaryRight(t){let e=0,i=t;for(;!/\n/.test(this._text[i])&&i<this._text.length;)e++,i++;return t+e}searchWordBoundary(t,e){let i=this._text,s=t>0&&this._reSpace.test(i[t])&&(-1===e||!A.test(i[t-1]))?t-1:t,r=i[s];for(;s>0&&s<i.length&&!Ko.test(r);)s+=e,r=i[s];return-1===e&&Ko.test(r)&&s++,s}selectWord(t){var e;t=null==(e=t)?this.selectionStart:e;let i=this.searchWordBoundary(t,-1),s=Math.max(i,this.searchWordBoundary(t,1));this.selectionStart=i,this.selectionEnd=s,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()}selectLine(t){var e;t=null==(e=t)?this.selectionStart:e;let i=this.findLineBoundaryLeft(t),s=this.findLineBoundaryRight(t);this.selectionStart=i,this.selectionEnd=s,this._fireSelectionChanged(),this._updateTextarea()}enterEditing(t){!this.isEditing&&this.editable&&(this.enterEditingImpl(),this.fire("editing:entered",t?{e:t}:void 0),this._fireSelectionChanged(),this.canvas&&(this.canvas.fire("text:editing:entered",{target:this,e:t}),this.canvas.requestRenderAll()))}enterEditingImpl(){this.canvas&&(this.canvas.calcOffset(),this.canvas.textEditingManager.exitTextEditing()),this.isEditing=!0,this.initHiddenTextarea(),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick()}updateSelectionOnMouseMove(t){if(this.getActiveControl())return;let e=this.hiddenTextarea;Kt(e).activeElement!==e&&e.focus();let i=this.getSelectionStartFromPointer(t),s=this.selectionStart,r=this.selectionEnd;(i===this.__selectionStartOnMouseDown&&s!==r||s!==i&&r!==i)&&(i>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=i):(this.selectionStart=i,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===s&&this.selectionEnd===r||(this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}_setEditingProps(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0}fromStringToGraphemeSelection(t,e,i){let s=i.slice(0,t),r=this.graphemeSplit(s).length;if(t===e)return{selectionStart:r,selectionEnd:r};let n=i.slice(t,e);return{selectionStart:r,selectionEnd:r+this.graphemeSplit(n).length}}fromGraphemeToStringSelection(t,e,i){let s=i.slice(0,t).join("").length;return t===e?{selectionStart:s,selectionEnd:s}:{selectionStart:s,selectionEnd:s+i.slice(t,e).join("").length}}_updateTextarea(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){let t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}}updateFromTextArea(){let{hiddenTextarea:t,direction:e,textAlign:i,inCompositionMode:s}=this;if(!t)return;let r="justify"===i?"ltr"===e?O:P:i.replace("justify-",""),n=this.getPositionByOrigin(r,"top");this.cursorOffsetCache={},this.text=t.value,this.set("dirty",!0),this.initDimensions(),this.setPositionByOrigin(n,r,"top"),this.setCoords();let o=this.fromStringToGraphemeSelection(t.selectionStart,t.selectionEnd,t.value);this.selectionEnd=this.selectionStart=o.selectionEnd,s||(this.selectionStart=o.selectionStart),this.updateTextareaPosition()}updateTextareaPosition(){if(this.selectionStart===this.selectionEnd){let t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}}_calcTextareaPosition(){if(!this.canvas)return{left:"1px",top:"1px"};let t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),i=this.get2DCursorLocation(t),s=i.lineIndex,r=i.charIndex,n=this.getValueOfPropertyAt(s,r,"fontSize")*this.lineHeight,o=e.leftOffset,a=this.getCanvasRetinaScaling(),h=this.canvas.upperCanvasEl,l=h.width/a,c=h.height/a,u=l-n,d=c-n,p=new st(e.left+o,e.top+e.topOffset+n).transform(this.calcTransformMatrix()).transform(this.canvas.viewportTransform).multiply(new st(h.clientWidth/l,h.clientHeight/c));return p.x<0&&(p.x=0),p.x>u&&(p.x=u),p.y<0&&(p.y=0),p.y>d&&(p.y=d),p.x+=this.canvas._offset.left,p.y+=this.canvas._offset.top,{left:`${p.x}px`,top:`${p.y}px`,fontSize:`${n}px`,charHeight:n}}_saveEditingProps(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}}_restoreEditingProps(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor||this.canvas.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor||this.canvas.moveCursor),delete this._savedProps)}exitEditingImpl(){let t=this.hiddenTextarea;this.selected=!1,this.isEditing=!1,t&&(t.blur&&t.blur(),t.parentNode&&t.parentNode.removeChild(t)),this.hiddenTextarea=null,this.abortCursorAnimation(),this.selectionStart!==this.selectionEnd&&this.clearContextTop(),this.selectionEnd=this.selectionStart,this._restoreEditingProps(),this._forceClearCache&&(this.initDimensions(),this.setCoords())}exitEditing(){let t=this._textBeforeEdit!==this.text;return this.exitEditingImpl(),this.fire("editing:exited"),t&&this.fire("modified"),this.canvas&&(this.canvas.fire("text:editing:exited",{target:this}),t&&this.canvas.fire("object:modified",{target:this})),this}_removeExtraneousStyles(){for(let t in this.styles)this._textLines[t]||delete this.styles[t]}removeStyleFromTo(t,e){let{lineIndex:i,charIndex:s}=this.get2DCursorLocation(t,!0),{lineIndex:r,charIndex:n}=this.get2DCursorLocation(e,!0);if(i!==r){if(this.styles[i])for(let t=s;t<this._unwrappedTextLines[i].length;t++)delete this.styles[i][t];if(this.styles[r])for(let t=n;t<this._unwrappedTextLines[r].length;t++){let e=this.styles[r][t];e&&(this.styles[i]||(this.styles[i]={}),this.styles[i][s+t-n]=e)}for(let t=i+1;t<=r;t++)delete this.styles[t];this.shiftLineStyles(r,i-r)}else if(this.styles[i]){let t=this.styles[i],e=n-s;for(let e=s;e<n;e++)delete t[e];for(let s in this.styles[i]){let i=parseInt(s,10);i>=n&&(t[i-e]=t[s],delete t[s])}}}shiftLineStyles(t,e){let i=Object.assign({},this.styles);for(let s in this.styles){let r=parseInt(s,10);r>t&&(this.styles[r+e]=i[r],i[r-e]||delete this.styles[r])}}insertNewlineStyleObject(t,e,i,s){let r={},n=this._unwrappedTextLines[t].length,o=n===e,a=!1;i||(i=1),this.shiftLineStyles(t,i);let h=this.styles[t]?this.styles[t][0===e?e:e-1]:void 0;for(let i in this.styles[t]){let s=parseInt(i,10);s>=e&&(a=!0,r[s-e]=this.styles[t][i],o&&0===e||delete this.styles[t][i])}let l=!1;for(a&&!o&&(this.styles[t+i]=r,l=!0),(l||n>e)&&i--;i>0;)s&&s[i-1]?this.styles[t+i]={0:{...s[i-1]}}:h?this.styles[t+i]={0:{...h}}:delete this.styles[t+i],i--;this._forceClearCache=!0}insertCharStyleObject(t,e,i,s){this.styles||(this.styles={});let r=this.styles[t],n=r?{...r}:{};i||(i=1);for(let t in n){let s=parseInt(t,10);s>=e&&(r[s+i]=n[s],n[s-i]||delete r[s])}if(this._forceClearCache=!0,s){for(;i--;)Object.keys(s[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]={...s[i]});return}if(!r)return;let o=r[e?e-1:1];for(;o&&i--;)this.styles[t][e+i]={...o}}insertNewStyleBlock(t,e,i){let s,r=this.get2DCursorLocation(e,!0),n=[0],o=0;for(let e=0;e<t.length;e++)"\n"===t[e]?(o++,n[o]=0):n[o]++;for(n[0]>0&&(this.insertCharStyleObject(r.lineIndex,r.charIndex,n[0],i),i=i&&i.slice(n[0]+1)),o&&this.insertNewlineStyleObject(r.lineIndex,r.charIndex+n[0],o),s=1;s<o;s++)n[s]>0?this.insertCharStyleObject(r.lineIndex+s,0,n[s],i):i&&this.styles[r.lineIndex+s]&&i[0]&&(this.styles[r.lineIndex+s][0]=i[0]),i=i&&i.slice(n[s]+1);n[s]>0&&this.insertCharStyleObject(r.lineIndex+s,0,n[s],i)}removeChars(t,e=t+1){this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(""),this.set("dirty",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}insertChars(t,e,i,s=i){s>i&&this.removeStyleFromTo(i,s);let r=this.graphemeSplit(t);this.insertNewStyleBlock(r,i,e),this._text=[...this._text.slice(0,i),...r,...this._text.slice(s)],this.text=this._text.join(""),this.set("dirty",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}setSelectionStartEndWithShift(t,e,i){i<=t?(e===t?this._selectionDirection=O:"right"===this._selectionDirection&&(this._selectionDirection=O,this.selectionEnd=t),this.selectionStart=i):i>t&&i<e?"right"===this._selectionDirection?this.selectionEnd=i:this.selectionStart=i:(e===t?this._selectionDirection=P:"left"===this._selectionDirection&&(this._selectionDirection=P,this.selectionStart=e),this.selectionEnd=i)}},Jo=class extends qo{initHiddenTextarea(){let t=this.canvas&&Kt(this.canvas.getElement())||m(),e=t.createElement("textarea");Object.entries({autocapitalize:"off",autocorrect:"off",autocomplete:"off",spellcheck:"false","data-fabric":"textarea",wrap:"off",name:"fabricTextarea"}).map((([t,i])=>e.setAttribute(t,i)));let{top:i,left:s,fontSize:r}=this._calcTextareaPosition();e.style.cssText=`position: absolute; top: ${i}; left: ${s}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${r};`,(this.hiddenTextareaContainer||t.body).appendChild(e),Object.entries({blur:"blur",keydown:"onKeyDown",keyup:"onKeyUp",input:"onInput",copy:"copy",cut:"copy",paste:"paste",compositionstart:"onCompositionStart",compositionupdate:"onCompositionUpdate",compositionend:"onCompositionEnd"}).map((([t,i])=>e.addEventListener(t,this[i].bind(this)))),this.hiddenTextarea=e}blur(){this.abortCursorAnimation()}onKeyDown(t){if(!this.isEditing)return;let e="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}onKeyUp(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())}onInput(t){let e=this.fromPaste,{value:i,selectionStart:s,selectionEnd:r}=this.hiddenTextarea;if(this.fromPaste=!1,t&&t.stopPropagation(),!this.isEditing)return;let n=()=>{this.updateFromTextArea(),this.fire(H),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())};if(""===this.hiddenTextarea.value)return this.styles={},void n();let o,h,l,c,u=this._splitTextIntoLines(i).graphemeText,d=this._text.length,p=u.length,g=this.selectionStart,m=this.selectionEnd,_=g!==m,v=p-d,y=this.fromStringToGraphemeSelection(s,r,i),b=g>y.selectionStart;_?(h=this._text.slice(g,m),v+=m-g):p<d&&(h=b?this._text.slice(m+v,m):this._text.slice(g,g-v));let x=u.slice(y.selectionEnd-v,y.selectionEnd);if(h&&h.length&&(x.length&&(o=this.getSelectionStyles(g,g+1,!1),o=x.map((()=>o[0]))),_?(l=g,c=m):b?(l=m-h.length,c=m):(l=m,c=m+h.length),this.removeStyleFromTo(l,c)),x.length){let{copyPasteData:t}=f();e&&x.join("")===t.copiedText&&!a.disableStyleCopyPaste&&(o=t.copiedTextStyle),this.insertNewStyleBlock(x,g,o)}n()}onCompositionStart(){this.inCompositionMode=!0}onCompositionEnd(){this.inCompositionMode=!1}onCompositionUpdate({target:t}){let{selectionStart:e,selectionEnd:i}=t;this.compositionStart=e,this.compositionEnd=i,this.updateTextareaPosition()}copy(){if(this.selectionStart===this.selectionEnd)return;let{copyPasteData:t}=f();t.copiedText=this.getSelectedText(),a.disableStyleCopyPaste?t.copiedTextStyle=void 0:t.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0}paste(){this.fromPaste=!0}_getWidthBeforeCursor(t,e){let i,s=this._getLineLeftOffset(t);return e>0&&(i=this.__charBounds[t][e-1],s+=i.left+i.width),s}getDownCursorOffset(t,e){let i=this._getSelectionForOffset(t,e),s=this.get2DCursorLocation(i),r=s.lineIndex;if(r===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;let n=s.charIndex,o=this._getWidthBeforeCursor(r,n),a=this._getIndexOnLine(r+1,o);return this._textLines[r].slice(n).length+a+1+this.missingNewlineOffset(r)}_getSelectionForOffset(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart}getUpCursorOffset(t,e){let i=this._getSelectionForOffset(t,e),s=this.get2DCursorLocation(i),r=s.lineIndex;if(0===r||t.metaKey||33===t.keyCode)return-i;let n=s.charIndex,o=this._getWidthBeforeCursor(r,n),a=this._getIndexOnLine(r-1,o),h=this._textLines[r].slice(0,n),l=this.missingNewlineOffset(r-1);return-this._textLines[r-1].length+a-h.length+(1-l)}_getIndexOnLine(t,e){let i,s,r=this._textLines[t],n=this._getLineLeftOffset(t),o=0;for(let a=0,h=r.length;a<h;a++)if(i=this.__charBounds[t][a].width,n+=i,n>e){s=!0;let t=n-i,r=n,h=Math.abs(t-e);o=Math.abs(r-e)<h?a:a-1;break}return s||(o=r.length-1),o}moveCursorDown(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)}moveCursorUp(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)}_moveCursorUpOrDown(t,e){let i=this[`get${t}CursorOffset`](e,this._selectionDirection===P);if(e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i){let t=this.text.length;this.selectionStart=Fi(0,this.selectionStart,t),this.selectionEnd=Fi(0,this.selectionEnd,t),this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea()}}moveCursorWithShift(t){let e="left"===this._selectionDirection?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t}moveCursorWithoutShift(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t}moveCursorLeft(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)}_move(t,e,i){let s;if(t.altKey)s=this[`findWordBoundary${i}`](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;s=this[`findLineBoundary${i}`](this[e])}return void 0!==s&&this[e]!==s&&(this[e]=s,!0)}_moveLeft(t,e){return this._move(t,e,"Left")}_moveRight(t,e){return this._move(t,e,"Right")}moveCursorLeftWithoutShift(t){let e=!0;return this._selectionDirection=O,this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e}moveCursorLeftWithShift(t){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0===this.selectionStart?void 0:(this._selectionDirection=O,this._moveLeft(t,"selectionStart"))}moveCursorRight(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)}_moveCursorLeftOrRight(t,e){let i=`moveCursor${t}${e.shiftKey?"WithShift":"WithoutShift"}`;this._currentCursorOpacity=1,this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())}moveCursorRightWithShift(t){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd===this._text.length?void 0:(this._selectionDirection=P,this._moveRight(t,"selectionEnd"))}moveCursorRightWithoutShift(t){let e=!0;return this._selectionDirection=P,this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e}};let Qo=t=>!!t.button;var Zo=class extends Jo{constructor(...t){super(...t),n(this,"draggableTextDelegate",void 0)}initBehavior(){this.on("mousedown",this._mouseDownHandler),this.on("mouseup",this.mouseUpHandler),this.on("mousedblclick",this.doubleClickHandler),this.on("mousetripleclick",this.tripleClickHandler),this.draggableTextDelegate=new Uo(this),super.initBehavior()}shouldStartDragging(){return this.draggableTextDelegate.isActive()}onDragStart(t){return this.draggableTextDelegate.onDragStart(t)}canDrop(t){return this.draggableTextDelegate.canDrop(t)}doubleClickHandler(t){this.isEditing&&(this.selectWord(this.getSelectionStartFromPointer(t.e)),this.renderCursorOrSelection())}tripleClickHandler(t){this.isEditing&&(this.selectLine(this.getSelectionStartFromPointer(t.e)),this.renderCursorOrSelection())}_mouseDownHandler({e:t,alreadySelected:e}){this.canvas&&this.editable&&!Qo(t)&&!this.getActiveControl()&&(this.draggableTextDelegate.start(t)||(this.canvas.textEditingManager.register(this),e&&(this.inCompositionMode=!1,this.setCursorByClick(t)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()),this.selected||(this.selected=e||this.isEditing)))}mouseUpHandler({e:t,transform:e}){let i=this.draggableTextDelegate.end(t);if(this.canvas){this.canvas.textEditingManager.unregister(this);let t=this.canvas._activeObject;if(t&&t!==this)return}!this.editable||this.group&&!this.group.interactive||e&&e.actionPerformed||Qo(t)||i||this.selected&&!this.getActiveControl()&&(this.enterEditing(t),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection())}setCursorByClick(t){let e=this.getSelectionStartFromPointer(t),i=this.selectionStart,s=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(i,s,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())}getSelectionStartFromPointer(t){let e=this.canvas.getScenePoint(t).transform(wt(this.calcTransformMatrix())).add(new st(-this._getLeftOffset(),-this._getTopOffset())),i=0,s=0,r=0;for(let t=0;t<this._textLines.length&&i<=e.y;t++)i+=this.getHeightOfLine(t),r=t,t>0&&(s+=this._textLines[t-1].length+this.missingNewlineOffset(t-1));let n=Math.abs(this._getLineLeftOffset(r)),o=this._textLines[r].length,a=this.__charBounds[r];for(let t=0;t<o;t++){let i=n+a[t].kernedWidth;if(e.x<=i){Math.abs(e.x-i)<=Math.abs(e.x-n)&&s++;break}n=i,s++}return Math.min(this.flipX?o-s:s,this._text.length)}};let ta="moveCursorUp",ea="moveCursorDown",ia="moveCursorLeft",sa="moveCursorRight",ra="exitEditing",na=(t,e)=>{let i=e.getRetinaScaling();t.setTransform(i,0,0,i,0,0);let s=e.viewportTransform;t.transform(s[0],s[1],s[2],s[3],s[4],s[5])},oa={selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,keysMap:{9:ra,27:ra,33:ta,34:ea,35:sa,36:ia,37:ia,38:ta,39:sa,40:ea},keysMapRtl:{9:ra,27:ra,33:ta,34:ea,35:ia,36:sa,37:sa,38:ta,39:ia,40:ea},ctrlKeysMapDown:{65:"cmdAll"},ctrlKeysMapUp:{67:"copy",88:"cut"},_selectionDirection:null,_reSpace:/\s|\r?\n/,inCompositionMode:!1};var aa=class t extends Zo{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}get type(){let t=super.type;return"itext"===t?"i-text":t}constructor(e,i){super(e,{...t.ownDefaults,...i}),this.initBehavior()}_set(t,e){return this.isEditing&&this._savedProps&&t in this._savedProps?(this._savedProps[t]=e,this):("canvas"===t&&(this.canvas instanceof po&&this.canvas.textEditingManager.remove(this),e instanceof po&&e.textEditingManager.add(this)),super._set(t,e))}setSelectionStart(t){t=Math.max(t,0),this._updateAndFire("selectionStart",t)}setSelectionEnd(t){t=Math.min(t,this.text.length),this._updateAndFire("selectionEnd",t)}_updateAndFire(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()}_fireSelectionChanged(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})}initDimensions(){this.isEditing&&this.initDelayedCursor(),super.initDimensions()}getSelectionStyles(t=this.selectionStart||0,e=this.selectionEnd,i){return super.getSelectionStyles(t,e,i)}setSelectionStyles(t,e=this.selectionStart||0,i=this.selectionEnd){return super.setSelectionStyles(t,e,i)}get2DCursorLocation(t=this.selectionStart,e){return super.get2DCursorLocation(t,e)}render(t){super.render(t),this.cursorOffsetCache={},this.renderCursorOrSelection()}toCanvasElement(t){let e=this.isEditing;this.isEditing=!1;let i=super.toCanvasElement(t);return this.isEditing=e,i}renderCursorOrSelection(){if(!this.isEditing||!this.canvas)return;let t=this.clearContextTop(!0);if(!t)return;let e,i=this._getCursorBoundaries(),s=this.findAncestorsWithClipPath(),r=s.length>0,n=t;if(r){e=ft(t.canvas),n=e.getContext("2d"),na(n,this.canvas);let i=this.calcTransformMatrix();n.transform(i[0],i[1],i[2],i[3],i[4],i[5])}if(this.selectionStart!==this.selectionEnd||this.inCompositionMode?this.renderSelection(n,i):this.renderCursor(n,i),r)for(let e of s){let i=e.clipPath,s=ft(t.canvas),r=s.getContext("2d");if(na(r,this.canvas),!i.absolutePositioned){let t=e.calcTransformMatrix();r.transform(t[0],t[1],t[2],t[3],t[4],t[5])}i.transform(r),i.drawObject(r,!0,{}),this.drawClipPathOnCache(n,i,s)}r&&(t.setTransform(1,0,0,1,0,0),t.drawImage(e,0,0)),this.canvas.contextTopDirty=!0,t.restore()}findAncestorsWithClipPath(){let t=[],e=this;for(;e;)e.clipPath&&t.push(e),e=e.parent;return t}_getCursorBoundaries(t=this.selectionStart,e){let i=this._getLeftOffset(),s=this._getTopOffset(),r=this._getCursorBoundariesOffsets(t,e);return{left:i,top:s,leftOffset:r.left,topOffset:r.top}}_getCursorBoundariesOffsets(t,e){return e?this.__getCursorBoundariesOffsets(t):this.cursorOffsetCache&&"top"in this.cursorOffsetCache?this.cursorOffsetCache:this.cursorOffsetCache=this.__getCursorBoundariesOffsets(t)}__getCursorBoundariesOffsets(t){let e=0,i=0,{charIndex:s,lineIndex:r}=this.get2DCursorLocation(t),{textAlign:n,direction:o}=this;for(let t=0;t<r;t++)e+=this.getHeightOfLine(t);let a=this._getLineLeftOffset(r),h=this.__charBounds[r][s];h&&(i=h.left),0!==this.charSpacing&&s===this._textLines[r].length&&(i-=this._getWidthOfCharSpacing());let l=a+(i>0?i:0);return"rtl"===o&&("right"===n||"justify"===n||"justify-right"===n?l*=-1:"left"===n||"justify-left"===n?l=a-(i>0?i:0):"center"!==n&&"justify-center"!==n||(l=a-(i>0?i:0))),{top:e,left:l}}renderCursorAt(t){this._renderCursor(this.canvas.contextTop,this._getCursorBoundaries(t,!0),t)}renderCursor(t,e){this._renderCursor(t,e,this.selectionStart)}getCursorRenderingData(t=this.selectionStart,e=this._getCursorBoundaries(t)){let i=this.get2DCursorLocation(t),s=i.lineIndex,r=i.charIndex>0?i.charIndex-1:0,n=this.getValueOfPropertyAt(s,r,"fontSize"),o=this.getObjectScaling().x*this.canvas.getZoom(),a=this.cursorWidth/o,h=this.getValueOfPropertyAt(s,r,"deltaY"),l=e.topOffset+(1-this._fontSizeFraction)*this.getHeightOfLine(s)/this.lineHeight-n*(1-this._fontSizeFraction);return{color:this.cursorColor||this.getValueOfPropertyAt(s,r,"fill"),opacity:this._currentCursorOpacity,left:e.left+e.leftOffset-a/2,top:l+e.top+h,width:a,height:n}}_renderCursor(t,e,i){let{color:s,opacity:r,left:n,top:o,width:a,height:h}=this.getCursorRenderingData(i,e);t.fillStyle=s,t.globalAlpha=r,t.fillRect(n,o,a,h)}renderSelection(t,e){let i={selectionStart:this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,selectionEnd:this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd};this._renderSelection(t,i,e)}renderDragSourceEffect(){let t=this.draggableTextDelegate.getDragStartSelection();this._renderSelection(this.canvas.contextTop,t,this._getCursorBoundaries(t.selectionStart,!0))}renderDropTargetEffect(t){let e=this.getSelectionStartFromPointer(t);this.renderCursorAt(e)}_renderSelection(t,e,i){let{textAlign:s,direction:r}=this,n=e.selectionStart,o=e.selectionEnd,a=s.includes(vi),h=this.get2DCursorLocation(n),l=this.get2DCursorLocation(o),c=h.lineIndex,u=l.lineIndex,d=h.charIndex<0?0:h.charIndex,p=l.charIndex<0?0:l.charIndex;for(let e=c;e<=u;e++){let n=this._getLineLeftOffset(e)||0,o=this.getHeightOfLine(e),h=0,l=0;if(e===c&&(h=this.__charBounds[c][d].left),e>=c&&e<u)l=a&&!this.isEndOfWrapping(e)?this.width:this.getLineWidth(e)||5;else if(e===u)if(0===p)l=this.__charBounds[u][p].left;else{let t=this._getWidthOfCharSpacing();l=this.__charBounds[u][p-1].left+this.__charBounds[u][p-1].width-t}let g=o;(this.lineHeight<1||e===u&&this.lineHeight>1)&&(o/=this.lineHeight);let f=i.left+n+h,m=o,_=0,v=l-h;this.inCompositionMode?(t.fillStyle=this.compositionColor||"black",m=1,_=o):t.fillStyle=this.selectionColor,"rtl"===r&&("right"===s||"justify"===s||"justify-right"===s?f=this.width-f-v:"left"===s||"justify-left"===s?f=i.left+n-l:"center"!==s&&"justify-center"!==s||(f=i.left+n-l)),t.fillRect(f,i.top+i.topOffset+_,v,m),i.topOffset+=g}}getCurrentCharFontSize(){let t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fontSize")}getCurrentCharColor(){let t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,V)}_getCurrentCharIndex(){let t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}dispose(){this.exitEditingImpl(),this.draggableTextDelegate.dispose(),super.dispose()}};n(aa,"ownDefaults",oa),n(aa,"type","IText"),J.setClass(aa),J.setClass(aa,"i-text");var ha=class t extends aa{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e,i){super(e,{...t.ownDefaults,...i})}static createControls(){return{controls:lr()}}initDimensions(){this.initialized&&(this.isEditing&&this.initDelayedCursor(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),this.textAlign.includes("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight())}_generateStyleMap(t){let e=0,i=0,s=0,r={};for(let n=0;n<t.graphemeLines.length;n++)"\n"===t.graphemeText[s]&&n>0?(i=0,s++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[s])&&n>0&&(i++,s++),r[n]={line:e,offset:i},s+=t.graphemeLines[n].length,i+=t.graphemeLines[n].length;return r}styleHas(t,e){if(this._styleMap&&!this.isWrapping){let t=this._styleMap[e];t&&(e=t.line)}return super.styleHas(t,e)}isEmptyStyles(t){if(!this.styles)return!0;let e,i,s=0,r=!1,n=this._styleMap[t],o=this._styleMap[t+1];n&&(t=n.line,s=n.offset),o&&(e=o.line,r=e===t,i=o.offset);let a=void 0===t?this.styles:{line:this.styles[t]};for(let t in a)for(let e in a[t]){let n=parseInt(e,10);if(n>=s&&(!r||n<i))for(let i in a[t][e])return!1}return!0}_getStyleDeclaration(t,e){if(this._styleMap&&!this.isWrapping){let i=this._styleMap[t];if(!i)return{};t=i.line,e=i.offset+e}return super._getStyleDeclaration(t,e)}_setStyleDeclaration(t,e,i){let s=this._styleMap[t];super._setStyleDeclaration(s.line,s.offset+e,i)}_deleteStyleDeclaration(t,e){let i=this._styleMap[t];super._deleteStyleDeclaration(i.line,i.offset+e)}_getLineStyle(t){let e=this._styleMap[t];return!!this.styles[e.line]}_setLineStyle(t){let e=this._styleMap[t];super._setLineStyle(e.line)}_wrapText(t,e){this.isWrapping=!0;let i=this.getGraphemeDataForRender(t),s=[];for(let t=0;t<i.wordsData.length;t++)s.push(...this._wrapLine(t,e,i));return this.isWrapping=!1,s}getGraphemeDataForRender(t){let e=this.splitByGrapheme,i=e?"":" ",s=0;return{wordsData:t.map(((t,r)=>{let n=0,o=e?this.graphemeSplit(t):this.wordSplit(t);return 0===o.length?[{word:[],width:0}]:o.map((t=>{let o=e?[t]:this.graphemeSplit(t),a=this._measureWord(o,r,n);return s=Math.max(a,s),n+=o.length+i.length,{word:o,width:a}}))})),largestWordWidth:s}}_measureWord(t,e,i=0){let s,r=0;for(let n=0,o=t.length;n<o;n++)r+=this._getGraphemeBox(t[n],e,n+i,s,!0).kernedWidth,s=t[n];return r}wordSplit(t){return t.split(this._wordJoiners)}_wrapLine(t,e,{largestWordWidth:i,wordsData:s},r=0){let n=this._getWidthOfCharSpacing(),o=this.splitByGrapheme,a=[],h=o?"":" ",l=0,c=[],u=0,d=0,p=!0;e-=r;let g,f=Math.max(e,i,this.dynamicMinWidth),m=s[t];for(g=0;g<m.length;g++){let{word:e,width:i}=m[g];u+=e.length,l+=d+i-n,l>f&&!p?(a.push(c),c=[],l=i,p=!0):l+=n,p||o||c.push(h),c=c.concat(e),d=o?0:this._measureWord([h],t,u),u++,p=!1}return g&&a.push(c),i+r>this.dynamicMinWidth&&(this.dynamicMinWidth=i-n+r),a}isEndOfWrapping(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line}missingNewlineOffset(t,e){return this.splitByGrapheme&&!e?+!!this.isEndOfWrapping(t):1}_splitTextIntoLines(t){let e=super._splitTextIntoLines(t),i=this._wrapText(e.lines,this.width),s=Array(i.length);for(let t=0;t<i.length;t++)s[t]=i[t].join("");return e.lines=s,e.graphemeLines=i,e}getMinWidth(){return Math.max(this.minWidth,this.dynamicMinWidth)}_removeExtraneousStyles(){let t=new Map;for(let e in this._styleMap){let i=parseInt(e,10);if(this._textLines[i]){let i=this._styleMap[e].line;t.set(`${i}`,!0)}}for(let e in this.styles)t.has(e)||delete this.styles[e]}toObject(t=[]){return super.toObject(["minWidth","splitByGrapheme",...t])}};n(ha,"type","Textbox"),n(ha,"textLayoutProperties",[...aa.textLayoutProperties,"width"]),n(ha,"ownDefaults",{minWidth:20,dynamicMinWidth:2,lockScalingFlip:!0,noScaleCache:!1,_wordJoiners:/[ \t\r]/,splitByGrapheme:!1}),J.setClass(ha);var la=class extends Qr{shouldPerformLayout(t){return!!t.target.clipPath&&super.shouldPerformLayout(t)}shouldLayoutClipPath(){return!1}calcLayoutResult(t,e){let{target:i}=t,{clipPath:s,group:r}=i;if(!s||!this.shouldPerformLayout(t))return;let{width:n,height:o}=ge(Jr(i,s)),a=new st(n,o);if(s.absolutePositioned)return{center:we(s.getRelativeCenterPoint(),void 0,r?r.calcTransformMatrix():void 0),size:a};{let r=s.getRelativeCenterPoint().transform(i.calcOwnMatrix(),!0);if(this.shouldPerformLayout(t)){let{center:i=new st,correction:s=new st}=this.calcBoundingBox(e,t)||{};return{center:i.add(r),correction:s.subtract(r),size:a}}return{center:i.getRelativeCenterPoint().add(r),size:a}}}};n(la,"type","clip-path"),J.setClass(la);var ca=class extends Qr{getInitialSize({target:t},{size:e}){return new st(t.width||e.x,t.height||e.y)}};n(ca,"type","fixed"),J.setClass(ca);var ua=class extends en{subscribeTargets(t){let e=t.target;t.targets.reduce(((t,e)=>(e.parent&&t.add(e.parent),t)),new Set).forEach((t=>{t.layoutManager.subscribeTargets({target:t,targets:[e]})}))}unsubscribeTargets(t){let e=t.target,i=e.getObjects();t.targets.reduce(((t,e)=>(e.parent&&t.add(e.parent),t)),new Set).forEach((t=>{!i.some((e=>e.parent===t))&&t.layoutManager.unsubscribeTargets({target:t,targets:[e]})}))}},da=class t extends rn{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e=[],i={}){super(),Object.assign(this,t.ownDefaults),this.setOptions(i);let{left:s,top:r,layoutManager:n}=i;this.groupInit(e,{left:s,top:r,layoutManager:n??new ua})}_shouldSetNestedCoords(){return!0}__objectSelectionMonitor(){}multiSelectAdd(...t){"selection-order"===this.multiSelectionStacking?this.add(...t):t.forEach((t=>{let e=this._objects.findIndex((e=>e.isInFrontOf(t))),i=-1===e?this.size():e;this.insertAt(i,t)}))}canEnterGroup(t){return this.getObjects().some((e=>e.isDescendantOf(t)||t.isDescendantOf(e)))?(h("error","ActiveSelection: circular object trees are not supported, this call has no effect"),!1):super.canEnterGroup(t)}enterGroup(t,e){t.parent&&t.parent===t.group?t.parent._exitGroup(t):t.group&&t.parent!==t.group&&t.group.remove(t),this._enterGroup(t,e)}exitGroup(t,e){this._exitGroup(t,e),t.parent&&t.parent._enterGroup(t,!0)}_onAfterObjectsChange(t,e){super._onAfterObjectsChange(t,e);let i=new Set;e.forEach((t=>{let{parent:e}=t;e&&i.add(e)})),"removed"===t?i.forEach((t=>{t._onAfterObjectsChange(qr,e)})):i.forEach((t=>{t._set("dirty",!0)}))}onDeselect(){return this.removeAll(),!1}toString(){return`#<ActiveSelection: (${this.complexity()})>`}shouldCache(){return!1}isOnACache(){return!1}_renderControls(t,e,i){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1;let s={hasControls:!1,...i,forActiveSelection:!0};for(let e=0;e<this._objects.length;e++)this._objects[e]._renderControls(t,s);super._renderControls(t,e),t.restore()}};n(da,"type","ActiveSelection"),n(da,"ownDefaults",{multiSelectionStacking:"canvas-stacking"}),J.setClass(da),J.setClass(da,"activeSelection");var pa=class{constructor(){n(this,"resources",{})}applyFilters(t,e,i,s,r){let n=r.getContext("2d",{willReadFrequently:!0,desynchronized:!0});if(!n)return;n.drawImage(e,0,0,i,s);let o={sourceWidth:i,sourceHeight:s,imageData:n.getImageData(0,0,i,s),originalEl:e,originalImageData:n.getImageData(0,0,i,s),canvasEl:r,ctx:n,filterBackend:this};t.forEach((t=>{t.applyTo(o)}));let{imageData:a}=o;return a.width===i&&a.height===s||(r.width=a.width,r.height=a.height),n.putImageData(a,0,0),o}},ga=class{constructor({tileSize:t=a.textureSize}={}){n(this,"aPosition",new Float32Array([0,0,0,1,1,0,1,1])),n(this,"resources",{}),this.tileSize=t,this.setupGLContext(t,t),this.captureGPUInfo()}setupGLContext(t,e){this.dispose(),this.createWebGLCanvas(t,e)}createWebGLCanvas(t,e){let i=ft({width:t,height:e}),s=i.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1});s&&(s.clearColor(0,0,0,0),this.canvas=i,this.gl=s)}applyFilters(t,e,i,s,r,n){let o,a=this.gl,h=r.getContext("2d");if(!a||!h)return;n&&(o=this.getCachedTexture(n,e));let l={originalWidth:e.width||e.naturalWidth||0,originalHeight:e.height||e.naturalHeight||0,sourceWidth:i,sourceHeight:s,destinationWidth:i,destinationHeight:s,context:a,sourceTexture:this.createTexture(a,i,s,o?void 0:e),targetTexture:this.createTexture(a,i,s),originalTexture:o||this.createTexture(a,i,s,o?void 0:e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:r},c=a.createFramebuffer();return a.bindFramebuffer(a.FRAMEBUFFER,c),t.forEach((t=>{t&&t.applyTo(l)})),function(t){let e=t.targetCanvas,i=e.width,s=e.height,r=t.destinationWidth,n=t.destinationHeight;i===r&&s===n||(e.width=r,e.height=n)}(l),this.copyGLTo2D(a,l),a.bindTexture(a.TEXTURE_2D,null),a.deleteTexture(l.sourceTexture),a.deleteTexture(l.targetTexture),a.deleteFramebuffer(c),h.setTransform(1,0,0,1,0,0),l}dispose(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()}clearWebGLCaches(){this.programCache={},this.textureCache={}}createTexture(t,e,i,s,r){let{NEAREST:n,TEXTURE_2D:o,RGBA:a,UNSIGNED_BYTE:h,CLAMP_TO_EDGE:l,TEXTURE_MAG_FILTER:c,TEXTURE_MIN_FILTER:u,TEXTURE_WRAP_S:d,TEXTURE_WRAP_T:p}=t,g=t.createTexture();return t.bindTexture(o,g),t.texParameteri(o,c,r||n),t.texParameteri(o,u,r||n),t.texParameteri(o,d,l),t.texParameteri(o,p,l),s?t.texImage2D(o,0,a,a,h,s):t.texImage2D(o,0,a,e,i,0,a,h,null),g}getCachedTexture(t,e,i){let{textureCache:s}=this;if(s[t])return s[t];{let r=this.createTexture(this.gl,e.width,e.height,e,i);return r&&(s[t]=r),r}}evictCachesForKey(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])}copyGLTo2D(t,e){let i=t.canvas,s=e.targetCanvas,r=s.getContext("2d");if(!r)return;r.translate(0,s.height),r.scale(1,-1);let n=i.height-s.height;r.drawImage(i,0,n,s.width,s.height,0,0,s.width,s.height)}copyGLTo2DPutImageData(t,e){let i=e.targetCanvas.getContext("2d"),s=e.destinationWidth,r=e.destinationHeight,n=s*r*4;if(!i)return;let o=new Uint8Array(this.imageBuffer,0,n),a=new Uint8ClampedArray(this.imageBuffer,0,n);t.readPixels(0,0,s,r,t.RGBA,t.UNSIGNED_BYTE,o);let h=new ImageData(a,s,r);i.putImageData(h,0,0)}captureGPUInfo(){if(this.gpuInfo)return this.gpuInfo;let t=this.gl,e={renderer:"",vendor:""};if(!t)return e;let i=t.getExtension("WEBGL_debug_renderer_info");if(i){let s=t.getParameter(i.UNMASKED_RENDERER_WEBGL),r=t.getParameter(i.UNMASKED_VENDOR_WEBGL);s&&(e.renderer=s.toLowerCase()),r&&(e.vendor=r.toLowerCase())}return this.gpuInfo=e,e}};let fa;function ma(){let{WebGLProbe:t}=f();return t.queryWebGL(dt()),a.enableGLFiltering&&t.isSupported(a.textureSize)?new ga({tileSize:a.textureSize}):new pa}function _a(t=!0){return!fa&&t&&(fa=ma()),fa}let va=["cropX","cropY"];var ya=class t extends dr{static getDefaults(){return{...super.getDefaults(),...t.ownDefaults}}constructor(e,i){super(),n(this,"_lastScaleX",1),n(this,"_lastScaleY",1),n(this,"_filterScalingX",1),n(this,"_filterScalingY",1),this.filters=[],Object.assign(this,t.ownDefaults),this.setOptions(i),this.cacheKey=`texture${ut()}`,this.setElement("string"==typeof e?(this.canvas&&Kt(this.canvas.getElement())||m()).getElementById(e):e,i)}getElement(){return this._element}setElement(t,e={}){this.removeTexture(this.cacheKey),this.removeTexture(`${this.cacheKey}_filtered`),this._element=t,this._originalElement=t,this._setWidthHeight(e),0!==this.filters.length&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters()}removeTexture(t){let e=_a(!1);e instanceof ga&&e.evictCachesForKey(t)}dispose(){super.dispose(),this.removeTexture(this.cacheKey),this.removeTexture(`${this.cacheKey}_filtered`),this._cacheContext=null,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach((t=>{let e=this[t];e&&f().dispose(e),this[t]=void 0}))}getCrossOrigin(){return this._originalElement&&(this._originalElement.crossOrigin||null)}getOriginalSize(){let t=this.getElement();return t?{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}:{width:0,height:0}}_stroke(t){if(!this.stroke||0===this.strokeWidth)return;let e=this.width/2,i=this.height/2;t.beginPath(),t.moveTo(-e,-i),t.lineTo(e,-i),t.lineTo(e,i),t.lineTo(-e,i),t.lineTo(-e,-i),t.closePath()}toObject(t=[]){let e=[];return this.filters.forEach((t=>{t&&e.push(t.toObject())})),{...super.toObject([...va,...t]),src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:e,...this.resizeFilter?{resizeFilter:this.resizeFilter.toObject()}:{}}}hasCrop(){return!!this.cropX||!!this.cropY||this.width<this._element.width||this.height<this._element.height}_toSVG(){let t=[],e=this._element,i=-this.width/2,s=-this.height/2,r=[],n=[],o="",a="";if(!e)return[];if(this.hasCrop()){let t=ut();r.push('<clipPath id="imageCrop_'+t+'">\n','\t<rect x="'+i+'" y="'+s+'" width="'+ne(this.width)+'" height="'+ne(this.height)+'" />\n',"</clipPath>\n"),o=' clip-path="url(#imageCrop_'+t+')" '}if(this.imageSmoothing||(a=' image-rendering="optimizeSpeed"'),t.push("\t<image ","COMMON_PARTS",`xlink:href="${ne(this.getSrc(!0))}" x="${i-this.cropX}" y="${s-this.cropY}" width="${e.width||e.naturalWidth}" height="${e.height||e.naturalHeight}"${a}${o}></image>\n`),this.stroke||this.strokeDashArray){let t=this.fill;this.fill=null,n=[`\t<rect x="${i}" y="${s}" width="${ne(this.width)}" height="${ne(this.height)}" style="${this.getSvgStyles()}" />\n`],this.fill=t}return r="fill"===this.paintFirst?r.concat(t,n):r.concat(n,t),r}getSrc(t){let e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src")||"":e.src:this.src||""}getSvgSrc(t){return this.getSrc(t)}setSrc(t,{crossOrigin:e,signal:i}={}){return Rt(t,{crossOrigin:e,signal:i}).then((t=>{void 0!==e&&this.set({crossOrigin:e}),this.setElement(t)}))}toString(){return`#<Image: { src: "${this.getSrc()}" }>`}applyResizeFilters(){let t=this.resizeFilter,e=this.minimumScaleTrigger,i=this.getTotalObjectScaling(),s=i.x,r=i.y,n=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!t||s>e&&r>e)return this._element=n,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=s,void(this._lastScaleY=r);let o=ft(n),{width:a,height:h}=n;this._element=o,this._lastScaleX=t.scaleX=s,this._lastScaleY=t.scaleY=r,_a().applyFilters([t],n,a,h,this._element),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height}applyFilters(t=this.filters||[]){if(t=t.filter((t=>t&&!t.isNeutralState())),this.set("dirty",!0),this.removeTexture(`${this.cacheKey}_filtered`),0===t.length)return this._element=this._originalElement,this._filteredEl=void 0,this._filterScalingX=1,void(this._filterScalingY=1);let e=this._originalElement,i=e.naturalWidth||e.width,s=e.naturalHeight||e.height;if(this._element===this._originalElement){let t=ft({width:i,height:s});this._element=t,this._filteredEl=t}else this._filteredEl&&(this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,i,s),this._lastScaleX=1,this._lastScaleY=1);_a().applyFilters(t,this._originalElement,i,s,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height)}_render(t){t.imageSmoothingEnabled=this.imageSmoothing,!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)}drawCacheOnCanvas(t){t.imageSmoothingEnabled=this.imageSmoothing,super.drawCacheOnCanvas(t)}shouldCache(){return this.needsItsOwnCache()}_renderFill(t){let e=this._element;if(!e)return;let i=this._filterScalingX,s=this._filterScalingY,r=this.width,n=this.height,o=Math.max(this.cropX,0),a=Math.max(this.cropY,0),h=e.naturalWi
1dth||e.width,l=e.naturalHeight||e.height,c=o*i,u=a*s,d=Math.min(r*i,h-c),p=Math.min(n*s,l-u),g=-r/2,f=-n/2,m=Math.min(r,h/i-o),_=Math.min(n,l/s-a);e&&t.drawImage(e,c,u,d,p,g,f,m,_)}_needsResize(){let t=this.getTotalObjectScaling();return t.x!==this._lastScaleX||t.y!==this._lastScaleY}_resetWidthHeight(){this.set(this.getOriginalSize())}_setWidthHeight({width:t,height:e}={}){let i=this.getOriginalSize();this.width=t||i.width,this.height=e||i.height}parsePreserveAspectRatioAttribute(){let t,e=oi(this.preserveAspectRatio||""),i=this.width,s=this.height,r={width:i,height:s},n=this._element.width,o=this._element.height,a=1,h=1,l=0,c=0,u=0,d=0;return!e||"none"===e.alignX&&"none"===e.alignY?(a=i/n,h=s/o):("meet"===e.meetOrSlice&&(a=h=on(this._element,r),t=(i-n*a)/2,"Min"===e.alignX&&(l=-t),"Max"===e.alignX&&(l=t),t=(s-o*h)/2,"Min"===e.alignY&&(c=-t),"Max"===e.alignY&&(c=t)),"slice"===e.meetOrSlice&&(a=h=an(this._element,r),t=n-i/a,"Mid"===e.alignX&&(u=t/2),"Max"===e.alignX&&(u=t),t=o-s/h,"Mid"===e.alignY&&(d=t/2),"Max"===e.alignY&&(d=t),n=i/a,o=s/h)),{width:n,height:o,scaleX:a,scaleY:h,offsetLeft:l,offsetTop:c,cropX:u,cropY:d}}static fromObject({filters:t,resizeFilter:e,src:i,crossOrigin:s,type:r,...n},o){return Promise.all([Rt(i,{...o,crossOrigin:s}),t&&zt(t,o),e?zt([e],o):[],Bt(n,o)]).then((([t,e=[],[s],r={}])=>new this(t,{...n,src:i,filters:e,resizeFilter:s,...r})))}static fromURL(t,{crossOrigin:e=null,signal:i}={},s){return Rt(t,{crossOrigin:e,signal:i}).then((t=>new this(t,s)))}static async fromElement(t,e={},i){let s=Vr(t,this.ATTRIBUTE_NAMES,i);return this.fromURL(s["xlink:href"]||s.href,e,s).catch((t=>(h("log","Unable to parse Image",t),null)))}};function ba(t){if(!Di.test(t.nodeName))return{};let e,i,s=t.getAttribute("viewBox"),r=1,n=1,o=t.getAttribute("width"),a=t.getAttribute("height"),h=t.getAttribute("x")||0,l=t.getAttribute("y")||0,c=!(s&&Mi.test(s)),u=!o||!a||"100%"===o||"100%"===a,d="",p=0,g=0;if(c&&(h||l)&&t.parentNode&&"#document"!==t.parentNode.nodeName&&(d=" translate("+ni(h||"0")+" "+ni(l||"0")+") ",e=(t.getAttribute("transform")||"")+d,t.setAttribute("transform",e),t.removeAttribute("x"),t.removeAttribute("y")),c&&u)return{width:0,height:0};let f={width:0,height:0};if(c)return f.width=ni(o),f.height=ni(a),f;let m=s.match(Mi),_=-parseFloat(m[1]),v=-parseFloat(m[2]),y=parseFloat(m[3]),b=parseFloat(m[4]);f.minX=_,f.minY=v,f.viewBoxWidth=y,f.viewBoxHeight=b,u?(f.width=y,f.height=b):(f.width=ni(o),f.height=ni(a),r=f.width/y,n=f.height/b);let x=oi(t.getAttribute("preserveAspectRatio")||"");if("none"!==x.alignX&&("meet"===x.meetOrSlice&&(n=r=r>n?n:r),"slice"===x.meetOrSlice&&(n=r=r>n?r:n),p=f.width-y*r,g=f.height-b*r,"Mid"===x.alignX&&(p/=2),"Mid"===x.alignY&&(g/=2),"Min"===x.alignX&&(p=0),"Min"===x.alignY&&(g=0)),1===r&&1===n&&0===_&&0===v&&0===h&&0===l)return f;if((h||l)&&"#document"!==t.parentNode.nodeName&&(d=" translate("+ni(h||"0")+" "+ni(l||"0")+") "),e=d+" matrix("+r+" 0 0 "+n+" "+(_*r+p)+" "+(v*n+g)+") ","svg"===t.nodeName){for(i=t.ownerDocument.createElementNS(xi,"g");t.firstChild;)i.appendChild(t.firstChild);t.appendChild(i)}else i=t,i.removeAttribute("x"),i.removeAttribute("y"),e=i.getAttribute("transform")+e;return i.setAttribute("transform",e),f}n(ya,"type","Image"),n(ya,"cacheProperties",[...ji,...va]),n(ya,"ownDefaults",{strokeWidth:0,srcFromAttribute:!1,minimumScaleTrigger:.5,cropX:0,cropY:0,imageSmoothing:!0}),n(ya,"ATTRIBUTE_NAMES",[...Cr,"x","y","width","height","preserveAspectRatio","xlink:href","href","crossOrigin","image-rendering"]),J.setClass(ya),J.setSVGClass(ya);let xa=t=>t.tagName.replace("svg:",""),wa=li(["pattern","defs","symbol","metadata","clipPath","mask","desc"]);function Ca(t,e){let i,s,r,n,o=[];for(r=0,n=e.length;r<n;r++)i=e[r],s=t.getElementsByTagNameNS("http://www.w3.org/2000/svg",i),o=o.concat(Array.from(s));return o}let Sa=["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"],Ta="xlink:href";function ka(t,e){var i;let s=(null==(i=e.getAttribute(Ta))?void 0:i.slice(1))||"",r=t.getElementById(s);if(r&&r.getAttribute(Ta)&&ka(t,r),r&&(Sa.forEach((t=>{let i=r.getAttribute(t);!e.hasAttribute(t)&&i&&e.setAttribute(t,i)})),!e.children.length)){let t=r.cloneNode(!0);for(;t.firstChild;)e.appendChild(t.firstChild)}e.removeAttribute(Ta)}let Da=["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"],Oa=t=>J.getSVGClass(xa(t).toLowerCase());var Ma=class{constructor(t,e,i,s,r){this.elements=t,this.options=e,this.reviver=i,this.regexUrl=/^url\(['"]?#([^'"]+)['"]?\)/g,this.doc=s,this.clipPaths=r,this.gradientDefs=function(t){let e=Ca(t,Da),i={},s=e.length;for(;s--;
vendor: 12,217 bytes, line 1
1){let r=e[s];r.getAttribute("xlink:href")&&ka(t,r);let n=r.getAttribute("id");n&&(i[n]=r)}return i}(s),this.cssRules=function(t){let e=t.getElementsByTagName("style"),i={};for(let t=0;t<e.length;t++){let s=(e[t].textContent||"").replace(/\/\*[\s\S]*?\*\//g,"");""!==s.trim()&&s.split("}").filter(((t,e,i)=>i.length>1&&t.trim())).forEach((t=>{if((t.match(/{/g)||[]).length>1&&t.trim().startsWith("@"))return;let e=t.split("{"),s={},r=e[1].trim().split(";").filter((function(t){return t.trim()}));for(let t=0;t<r.length;t++){let e=r[t].split(":"),i=e[0].trim();s[i]=e[1].trim()}(t=e[0].trim()).split(",").forEach((t=>{""!==(t=t.replace(/^svg/i,"").trim())&&(i[t]={...i[t]||{},...s})}))}))}return i}(s)}parse(){return Promise.all(this.elements.map((t=>this.createObject(t))))}async createObject(t){let e=Oa(t);if(e){let i=await e.fromElement(t,this.options,this.cssRules);return this.resolveGradient(i,t,V),this.resolveGradient(i,t,G),i instanceof ya&&i._originalElement?Hn(i,i.parsePreserveAspectRatioAttribute()):Hn(i),await this.resolveClipPath(i,t),this.reviver&&this.reviver(t,i),i}return null}extractPropertyDefinition(t,e,i){let s=t[e],r=this.regexUrl;if(!r.test(s))return;r.lastIndex=0;let n=r.exec(s)[1];return r.lastIndex=0,i[n]}resolveGradient(t,e,i){let s=this.extractPropertyDefinition(t,i,this.gradientDefs);if(s){let r=e.getAttribute(i+"-opacity"),n=Do.fromElement(s,t,{...this.options,opacity:r});t.set(i,n)}}async resolveClipPath(t,e,i){let s=this.extractPropertyDefinition(t,"clipPath",this.clipPaths);if(s){let r=wt(t.calcTransformMatrix()),n=s[0].parentElement,o=e;for(;!i&&o.parentElement&&o.getAttribute("clip-path")!==t.clipPath;)o=o.parentElement;o.parentElement.appendChild(n);let a=Wr(`${o.getAttribute("transform")||""} ${n.getAttribute("originalTransform")||""}`);n.setAttribute("transform",`matrix(${a.join(",")})`);let h=await Promise.all(s.map((t=>Oa(t).fromElement(t,this.options,this.cssRules).then((t=>(Hn(t),t.fillRule=t.clipRule,delete t.clipRule,t)))))),l=1===h.length?h[0]:new rn(h),c=Ct(r,l.calcTransformMatrix());l.clipPath&&await this.resolveClipPath(l,o,n.getAttribute("clip-path")?o:void 0);let{scaleX:u,scaleY:d,angle:p,skewX:g,translateX:f,translateY:m}=Ot(c);l.set({flipX:!1,flipY:!1}),l.set({scaleX:u,scaleY:d,angle:p,skewX:g,skewY:0}),l.setPositionByOrigin(new st(f,m),D,D),t.clipPath=l}else delete t.clipPath}};let Pa=t=>ki.test(xa(t));async function Ea(t,e,{crossOrigin:i,signal:s}={}){if(s&&s.aborted)return h("log",new c("parseSVGDocument")),{objects:[],elements:[],options:{},allElements:[]};let r=t.documentElement;!function(t){let e=Ca(t,["use","svg:use"]),i=["x","y","xlink:href","href","transform"];for(let s of e){let e=s.attributes,r={};for(let t of e)t.value&&(r[t.name]=t.value);let n=(r["xlink:href"]||r.href||"").slice(1);if(""===n)return;let o=t.getElementById(n);if(null===o)return;let a=o.cloneNode(!0),h=a.attributes,l={};for(let t of h)t.value&&(l[t.name]=t.value);let{x:c=0,y:u=0,transform:d=""}=r,p=`${d} ${l.transform||""} translate(${c}, ${u})`;if(ba(a),/^svg$/i.test(a.nodeName)){let t=a.ownerDocument.createElementNS(xi,"g");Object.entries(l).forEach((([e,i])=>t.setAttributeNS(xi,e,i))),t.append(...a.childNodes),a=t}for(let t of e){if(!t)continue;let{name:e,value:s}=t;if(!i.includes(e))if("style"===e){let t={};Nr(s,t),Object.entries(l).forEach((([e,i])=>{t[e]=i})),Nr(l.style||"",t);let i=Object.entries(t).map((t=>t.join(":"))).join(";");a.setAttribute(e,i)}else!l[e]&&a.setAttribute(e,s)}a.setAttribute("transform",p),a.setAttribute("instantiated_by_use","1"),a.removeAttribute("id"),s.parentNode.replaceChild(a,s)}}(t);let n=Array.from(r.getElementsByTagName("*")),o={...ba(r),crossOrigin:i,signal:s},a=n.filter((t=>(ba(t),Pa(t)&&!function(t){let e=t;for(;e&&(e=e.parentElement);)if(e&&e.nodeName&&wa.test(xa(e))&&!e.getAttribute("instantiated_by_use"))return!0;return!1}(t))));if(!a||a&&!a.length)return{objects:[],elements:[],options:{},allElements:[],options:o,allElements:n};let l={};return n.filter((t=>"clipPath"===xa(t))).forEach((t=>{t.setAttribute("originalTransform",t.getAttribute("transform")||"");let e=t.getAttribute("id");l[e]=Array.from(t.getElementsByTagName("*")).filter((t=>Pa(t)))})),{objects:await new Ma(a,o,e,t,l).parse(),elements:a,options:o,allElements:n}}function Aa(t,e,i){return Ea((new(_().DOMParser)).parseFromString(t.trim(),"text/xml"),e,i)}let Fa=t=>void 0!==t.webgl,Ia="precision highp float",ja=`\n    ${Ia};\n    varying vec2 vTexCoord;\n    uniform sampler2D uTexture;\n    void main() {\n      gl_FragColor = texture2D(uTexture, vTexCoord);\n    }`,La=new RegExp(Ia,"g");var Ra=class{get type(){return this.constructor.type}constructor({type:t,...e}={}){Object.assign(this,this.constructor.defaults,e)}getFragmentSource(){return ja}getVertexSource(){return"\n    attribute vec2 aPosition;\n    varying vec2 vTexCoord;\n    void main() {\n      vTexCoord = aPosition;\n      gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n    }"}createProgram(t,e=this.getFragmentSource(),i=this.getVertexSource()){let{WebGLProbe:{GLPrecision:s="highp"}}=f();"highp"!==s&&(e=e.replace(La,Ia.replace("highp",s)));let r=t.createShader(t.VERTEX_SHADER),n=t.createShader(t.FRAGMENT_SHADER),o=t.createProgram();if(!r||!n||!o)throw new l("Vertex, fragment shader or program creation error");if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new l(`Vertex shader compile error for ${this.type}: ${t.getShaderInfoLog(r)}`);if(t.shaderSource(n,e),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new l(`Fragment shader compile error for ${this.type}: ${t.getShaderInfoLog(n)}`);if(t.attachShader(o,r),t.attachShader(o,n),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))throw new l(`Shader link error for "${this.type}" ${t.getProgramInfoLog(o)}`);let a=this.getUniformLocations(t,o)||{};return a.uStepW=t.getUniformLocation(o,"uStepW"),a.uStepH=t.getUniformLocation(o,"uStepH"),{program:o,attributeLocations:this.getAttributeLocations(t,o),uniformLocations:a}}getAttributeLocations(t,e){return{aPosition:t.getAttribLocation(e,"aPosition")}}getUniformLocations(t,e){let i=this.constructor.uniformLocations,s={};for(let r=0;r<i.length;r++)s[i[r]]=t.getUniformLocation(e,i[r]);return s}sendAttributeData(t,e,i){let s=e.aPosition,r=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,r),t.enableVertexAttribArray(s),t.vertexAttribPointer(s,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW)}_setupFrameBuffer(t){let e=t.context;if(t.passes>1){let i=t.destinationWidth,s=t.destinationHeight;t.sourceWidth===i&&t.sourceHeight===s||(e.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(e,i,s)),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.targetTexture,0)}else e.bindFramebuffer(e.FRAMEBUFFER,null),e.finish()}_swapTextures(t){t.passes--,t.pass++;let e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e}isNeutralState(t){return!1}applyTo(t){Fa(t)?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)}applyTo2d(t){}getCacheKey(){return this.type}retrieveShader(t){let e=this.getCacheKey();return t.programCache[e]||(t.programCache[e]=this.createProgram(t.context)),t.programCache[e]}applyToWebGL(t){let e=t.context,i=this.retrieveShader(t);0===t.pass&&t.originalTexture?e.bindTexture(e.TEXTURE_2D,t.originalTexture):e.bindTexture(e.TEXTURE_2D,t.sourceTexture),e.useProgram(i.program),this.sendAttributeData(e,i.attributeLocations,t.aPosition),e.uniform1f(i.uniformLocations.uStepW,1/t.sourceWidth),e.uniform1f(i.uniformLocations.uStepH,1/t.sourceHeight),this.sendUniformData(e,i.uniformLocations),e.viewport(0,0,t.destinationWidth,t.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)}bindAdditionalTexture(t,e,i){t.activeTexture(i),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)}unbindAdditionalTexture(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)}sendUniformData(t,e){}createHelpLayer(t){if(!t.helpLayer){let{sourceWidth:e,sourceHeight:i}=t;t.helpLayer=ft({width:e,height:i})}}toObject(){let t=Object.keys(this.constructor.defaults||{});return{type:this.type,...t.reduce(((t,e)=>(t[e]=this[e],t)),{})}}toJSON(){return this.toObject()}static async fromObject({type:t,...e},i){return new this(e)}};n(Ra,"type","BaseFilter"),n(Ra,"uniformLocations",[]);let za={multiply:"gl_FragColor.rgb *= uColor.rgb;\n",screen:"gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\n",add:"gl_FragColor.rgb += uColor.rgb;\n",difference:"gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\n",subtract:"gl_FragColor.rgb -= uColor.rgb;\n",lighten:"gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\n",darken:"gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\n",exclusion:"gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\n",overlay:"\n    if (uColor.r < 0.5) {\n      gl_FragColor.r *= 2.0 * uColor.r;\n    } else {\n      gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\n    }\n    if (uColor.g < 0.5) {\n      gl_FragColor.g *= 2.0 * uColor.g;\n    } else {\n      gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\n    }\n    if (uColor.b < 0.5) {\n      gl_FragColor.b *= 2.0 * uColor.b;\n    } else {\n      gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\n    }\n    ",tint:"\n    gl_FragColor.rgb *= (1.0 - uColor.a);\n    gl_FragColor.rgb += uColor.rgb;\n    "};var Ba=class extends Ra{getCacheKey(){return`${this.type}_${this.mode}`}getFragmentSource(){return`\n      precision highp float;\n      uniform sampler2D uTexture;\n      uniform vec4 uColor;\n      varying vec2 vTexCoord;\n      void main() {\n        vec4 color = texture2D(uTexture, vTexCoord);\n        gl_FragColor = color;\n        if (color.a > 0.0) {\n          ${za[this.mode]}\n        }\n      }\n      `}applyTo2d({imageData:{data:t}}){let e=new si(this.color).getSource(),i=this.alpha,s=e[0]*i,r=e[1]*i,n=e[2]*i,o=1-i;for(let e=0;e<t.length;e+=4){let i,a,h,l=t[e],c=t[e+1],u=t[e+2];switch(this.mode){case"multiply":i=l*s/255,a=c*r/255,h=u*n/255;break;case"screen":i=255-(255-l)*(255-s)/255,a=255-(255-c)*(255-r)/255,h=255-(255-u)*(255-n)/255;break;case"add":i=l+s,a=c+r,h=u+n;break;case"difference":i=Math.abs(l-s),a=Math.abs(c-r),h=Math.abs(u-n);break;case"subtract":i=l-s,a=c-r,h=u-n;break;case"darken":i=Math.min(l,s),a=Math.min(c,r),h=Math.min(u,n);break;case"lighten":i=Math.max(l,s),a=Math.max(c,r),h=Math.max(u,n);break;case"overlay":i=s<128?2*l*s/255:255-2*(255-l)*(255-s)/255,a=r<128?2*c*r/255:255-2*(255-c)*(255-r)/255,h=n<128?2*u*n/255:255-2*(255-u)*(255-n)/255;break;case"exclusion":i=s+l-2*s*l/255,a=r+c-2*r*c/255,h=n+u-2*n*u/255;break;case"tint":i=s+l*o,a=r+c*o,h=n+u*o}t[e]=i,t[e+1]=a,t[e+2]=h}}sendUniformData(t,e){let i=new si(this.color).getSource();i[0]=this.alpha*i[0]/255,i[1]=this.alpha*i[1]/255,i[2]=this.alpha*i[2]/255,i[3]=this.alpha,t.uniform4fv(e.uColor,i)}};n(Ba,"defaults",{color:"#F95C63",mode:"multiply",alpha:1}),n(Ba,"type","BlendColor"),n(Ba,"uniformLocations",["uColor"]),J.setClass(Ba);let Ha={multiply:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform sampler2D uImage;\n    uniform vec4 uColor;\n    varying vec2 vTexCoord;\n    varying vec2 vTexCoord2;\n    void main() {\n      vec4 color = texture2D(uTexture, vTexCoord);\n      vec4 color2 = texture2D(uImage, vTexCoord2);\n      color.rgba *= color2.rgba;\n      gl_FragColor = color;\n    }\n    ",mask:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform sampler2D uImage;\n    uniform vec4 uColor;\n    varying vec2 vTexCoord;\n    varying vec2 vTexCoord2;\n    void main() {\n      vec4 color = texture2D(uTexture, vTexCoord);\n      vec4 color2 = texture2D(uImage, vTexCoord2);\n      color.a = color2.a;\n      gl_FragColor = color;\n    }\n    "};var Wa=class extends Ra{getCacheKey(){return`${this.type}_${this.mode}`}getFragmentSource(){return Ha[this.mode]}getVertexSource(){return"\n    attribute vec2 aPosition;\n    varying vec2 vTexCoord;\n    varying vec2 vTexCoord2;\n    uniform mat3 uTransformMatrix;\n    void main() {\n      vTexCoord = aPosition;
1\n      vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\n      gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n    }\n    "}applyToWebGL(t){let e=t.context,i=this.createTexture(t.filterBackend,this.image);this.bindAdditionalTexture(e,i,e.TEXTURE1),super.applyToWebGL(t),this.unbindAdditionalTexture(e,e.TEXTURE1)}createTexture(t,e){return t.getCachedTexture(e.cacheKey,e.getElement())}calculateMatrix(){let t=this.image,{width:e,height:i}=t.getElement();return[1/t.scaleX,0,0,0,1/t.scaleY,0,-t.left/e,-t.top/i,1]}applyTo2d({imageData:{data:t,width:e,height:i},filterBackend:{resources:s}}){let r=this.image;s.blendImage||(s.blendImage=dt());let n=s.blendImage,o=n.getContext("2d");n.width!==e||n.height!==i?(n.width=e,n.height=i):o.clearRect(0,0,e,i),o.setTransform(r.scaleX,0,0,r.scaleY,r.left,r.top),o.drawImage(r.getElement(),0,0,e,i);let a=o.getImageData(0,0,e,i).data;for(let e=0;e<t.length;e+=4){let i=t[e],s=t[e+1],r=t[e+2],n=t[e+3],o=a[e],h=a[e+1],l=a[e+2],c=a[e+3];switch(this.mode){case"multiply":t[e]=i*o/255,t[e+1]=s*h/255,t[e+2]=r*l/255,t[e+3]=n*c/255;break;case"mask":t[e+3]=c}}}sendUniformData(t,e){let i=this.calculateMatrix();t.uniform1i(e.uImage,1),t.uniformMatrix3fv(e.uTransformMatrix,!1,i)}toObject(){return{...super.toObject(),image:this.image&&this.image.toObject()}}static async fromObject({type:t,image:e,...i},s){return ya.fromObject(e,s).then((t=>new this({...i,image:t})))}};n(Wa,"type","BlendImage"),n(Wa,"defaults",{mode:"multiply",alpha:1}),n(Wa,"uniformLocations",["uTransformMatrix","uImage"]),J.setClass(Wa);var Ya=class extends Ra{getFragmentSource(){return"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform vec2 uDelta;\n    varying vec2 vTexCoord;\n    const float nSamples = 15.0;\n    vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\n    float random(vec3 scale) {\n      /* use the fragment position for a different seed per-pixel */\n      return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\n    }\n    void main() {\n      vec4 color = vec4(0.0);\n      float totalC = 0.0;\n      float totalA = 0.0;\n      float offset = random(v3offset);\n      for (float t = -nSamples; t <= nSamples; t++) {\n        float percent = (t + offset - 0.5) / nSamples;\n        vec4 sample = texture2D(uTexture, vTexCoord + uDelta * percent);\n        float weight = 1.0 - abs(percent);\n        float alpha = weight * sample.a;\n        color.rgb += sample.rgb * alpha;\n        color.a += alpha;\n        totalA += weight;\n        totalC += alpha;\n      }\n      gl_FragColor.rgb = color.rgb / totalC;\n      gl_FragColor.a = color.a / totalA;\n    }\n  "}
vendor: 31,628 bytes, line 1
1applyTo(t){Fa(t)?(this.aspectRatio=t.sourceWidth/t.sourceHeight,t.passes++,this._setupFrameBuffer(t),this.horizontal=!0,this.applyToWebGL(t),this._swapTextures(t),this._setupFrameBuffer(t),this.horizontal=!1,this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)}applyTo2d({imageData:{data:t,width:e,height:i}}){this.aspectRatio=e/i,this.horizontal=!0;let s=this.getBlurValue()*e,r=new Uint8ClampedArray(t),n=4*e;for(let e=0;e<t.length;e+=4){let i=0,o=0,a=0,h=0,l=0,c=e-e%n,u=c+n;for(let r=-14;r<15;r++){let n=r/15,d=4*Math.floor(s*n),p=1-Math.abs(n),g=e+d;g<c?g=c:g>u&&(g=u);let f=t[g+3]*p;i+=t[g]*f,o+=t[g+1]*f,a+=t[g+2]*f,h+=f,l+=p}r[e]=i/h,r[e+1]=o/h,r[e+2]=a/h,r[e+3]=h/l}this.horizontal=!1,s=this.getBlurValue()*i;for(let e=0;e<r.length;e+=4){let i=0,o=0,a=0,h=0,l=0,c=e%n,u=r.length-n+c;for(let t=-14;t<15;t++){let d=t/15,p=Math.floor(s*d)*n,g=1-Math.abs(d),f=e+p;f<c?f=c:f>u&&(f=u);let m=r[f+3]*g;i+=r[f]*m,o+=r[f+1]*m,a+=r[f+2]*m,h+=m,l+=g}t[e]=i/h,t[e+1]=o/h,t[e+2]=a/h,t[e+3]=h/l}}sendUniformData(t,e){let i=this.chooseRightDelta();t.uniform2fv(e.uDelta,i)}isNeutralState(){return 0===this.blur}getBlurValue(){let t=1,{horizontal:e,aspectRatio:i}=this;return e?i>1&&(t=1/i):i<1&&(t=i),t*this.blur*.12}chooseRightDelta(){let t=this.getBlurValue();return this.horizontal?[t,0]:[0,t]}};n(Ya,"type","Blur"),n(Ya,"defaults",{blur:0}),n(Ya,"uniformLocations",["uDelta"]),J.setClass(Ya);var Na=class extends Ra{getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform float uBrightness;\n  varying vec2 vTexCoord;\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    color.rgb += uBrightness;\n    gl_FragColor = color;\n  }\n"}applyTo2d({imageData:{data:t}}){let e=Math.round(255*this.brightness);for(let i=0;i<t.length;i+=4)t[i]+=e,t[i+1]+=e,t[i+2]+=e}isNeutralState(){return 0===this.brightness}sendUniformData(t,e){t.uniform1f(e.uBrightness,this.brightness)}};n(Na,"type","Brightness"),n(Na,"defaults",{brightness:0}),n(Na,"uniformLocations",["uBrightness"]),J.setClass(Na);let Xa={matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],colorsOnly:!0};var $a=class extends Ra{getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  varying vec2 vTexCoord;\n  uniform mat4 uColorMatrix;\n  uniform vec4 uConstants;\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    color *= uColorMatrix;\n    color += uConstants;\n    gl_FragColor = color;\n  }"}applyTo2d(t){let e=t.imageData.data,i=this.matrix,s=this.colorsOnly;for(let t=0;t<e.length;t+=4){let r=e[t],n=e[t+1],o=e[t+2];if(e[t]=r*i[0]+n*i[1]+o*i[2]+255*i[4],e[t+1]=r*i[5]+n*i[6]+o*i[7]+255*i[9],e[t+2]=r*i[10]+n*i[11]+o*i[12]+255*i[14],!s){let s=e[t+3];e[t]+=s*i[3],e[t+1]+=s*i[8],e[t+2]+=s*i[13],e[t+3]=r*i[15]+n*i[16]+o*i[17]+s*i[18]+255*i[19]}}}sendUniformData(t,e){let i=this.matrix,s=[i[0],i[1],i[2],i[3],i[5],i[6],i[7],i[8],i[10],i[11],i[12],i[13],i[15],i[16],i[17],i[18]],r=[i[4],i[9],i[14],i[19]];t.uniformMatrix4fv(e.uColorMatrix,!1,s),t.uniform4fv(e.uConstants,r)}toObject(){return{...super.toObject(),matrix:[...this.matrix]}}};function Va(t,e){var i;let s=(n(i=class extends $a{toObject(){return{type:this.type,colorsOnly:this.colorsOnly}}},"type",t),n(i,"defaults",{colorsOnly:!1,matrix:e}),i);return J.setClass(s,t),s}n($a,"type","ColorMatrix"),n($a,"defaults",Xa),n($a,"uniformLocations",["uColorMatrix","uConstants"]),J.setClass($a);let Ga=Va("Brownie",[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0]),Ua=Va("Vintage",[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0]),Ka=Va("Kodachrome",[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0]),qa=Va("Technicolor",[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0]),Ja=Va("Polaroid",[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0]),Qa=Va("Sepia",[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0]),Za=Va("BlackWhite",[1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,0,0,0,1,0]);var th=class extends Ra{constructor(t={}){super(t),this.subFilters=t.subFilters||[]}applyTo(t){Fa(t)&&(t.passes+=this.subFilters.length-1),this.subFilters.forEach((e=>{e.applyTo(t)}))}toObject(){return{type:this.type,subFilters:this.subFilters.map((t=>t.toObject()))}}isNeutralState(){return!this.subFilters.some((t=>!t.isNeutralState()))}static fromObject(t,e){return Promise.all((t.subFilters||[]).map((t=>J.getClass(t.type).fromObject(t,e)))).then((t=>new this({subFilters:t})))}};n(th,"type","Composed"),J.setClass(th);var eh=class extends Ra{getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform float uContrast;\n  varying vec2 vTexCoord;\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\n    color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\n    gl_FragColor = color;\n  }"}isNeutralState(){return 0===this.contrast}applyTo2d({imageData:{data:t}}){let e=Math.floor(255*this.contrast),i=259*(e+255)/(255*(259-e));for(let e=0;e<t.length;e+=4)t[e]=i*(t[e]-128)+128,t[e+1]=i*(t[e+1]-128)+128,t[e+2]=i*(t[e+2]-128)+128}sendUniformData(t,e){t.uniform1f(e.uContrast,this.contrast)}};n(eh,"type","Contrast"),n(eh,"defaults",{contrast:0}),n(eh,"uniformLocations",["uContrast"]),J.setClass(eh);let ih={Convolute_3_1:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[9];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 0);\n      for (float h = 0.0; h < 3.0; h+=1.0) {\n        for (float w = 0.0; w < 3.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\n          color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\n        }\n      }\n      gl_FragColor = color;\n    }\n    ",Convolute_3_0:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[9];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 1);\n      for (float h = 0.0; h < 3.0; h+=1.0) {\n        for (float w = 0.0; w < 3.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\n          color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\n        }\n      }\n      float alpha = texture2D(uTexture, vTexCoord).a;\n      gl_FragColor = color;\n      gl_FragColor.a = alpha;\n    }\n    ",Convolute_5_1:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[25];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 0);\n      for (float h = 0.0; h < 5.0; h+=1.0) {\n        for (float w = 0.0; w < 5.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\n          color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\n        }\n      }\n      gl_FragColor = color;\n    }\n    ",Convolute_5_0:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[25];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 1);\n      for (float h = 0.0; h < 5.0; h+=1.0) {\n        for (float w = 0.0; w < 5.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\n          color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\n        }\n      }\n      float alpha = texture2D(uTexture, vTexCoord).a;\n      gl_FragColor = color;\n      gl_FragColor.a = alpha;\n    }\n    ",Convolute_7_1:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[49];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 0);\n      for (float h = 0.0; h < 7.0; h+=1.0) {\n        for (float w = 0.0; w < 7.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\n          color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\n        }\n      }\n      gl_FragColor = color;\n    }\n    ",Convolute_7_0:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[49];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 1);\n      for (float h = 0.0; h < 7.0; h+=1.0) {\n        for (float w = 0.0; w < 7.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\n          color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\n        }\n      }\n      float alpha = texture2D(uTexture, vTexCoord).a;\n      gl_FragColor = color;\n      gl_FragColor.a = alpha;\n    }\n    ",Convolute_9_1:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[81];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 0);\n      for (float h = 0.0; h < 9.0; h+=1.0) {\n        for (float w = 0.0; w < 9.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\n          color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\n        }\n      }\n      gl_FragColor = color;\n    }\n    ",Convolute_9_0:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform float uMatrix[81];\n    uniform float uStepW;\n    uniform float uStepH;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = vec4(0, 0, 0, 1);\n      for (float h = 0.0; h < 9.0; h+=1.0) {\n        for (float w = 0.0; w < 9.0; w+=1.0) {\n          vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\n          color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\n        }\n      }\n      float alpha = texture2D(uTexture, vTexCoord).a;\n      gl_FragColor = color;\n      gl_FragColor.a = alpha;\n    }\n    "};var sh=class extends Ra{getCacheKey(){return`${this.type}_${Math.sqrt(this.matrix.length)}_${+!!this.opaque}`}getFragmentSource(){return ih[this.getCacheKey()]}applyTo2d(t){let e,i,s,r,n,o,a,h,l,c,u,d,p,g=t.imageData,f=g.data,m=this.matrix,_=Math.round(Math.sqrt(m.length)),v=Math.floor(_/2),y=g.width,b=g.height,x=t.ctx.createImageData(y,b),w=x.data,C=+!!this.opaque;for(u=0;u<b;u++)for(c=0;c<y;c++){for(n=4*(u*y+c),e=0,i=0,s=0,r=0,p=0;p<_;p++)for(d=0;d<_;d++)a=u+p-v,o=c+d-v,a<0||a>=b||o<0||o>=y||(h=4*(a*y+o),l=m[p*_+d],e+=f[h]*l,i+=f[h+1]*l,s+=f[h+2]*l,C||(r+=f[h+3]*l));w[n]=e,w[n+1]=i,w[n+2]=s,w[n+3]=C?f[n+3]:r}t.imageData=x}sendUniformData(t,e){t.uniform1fv(e.uMatrix,this.matrix)}toObject(){return{...super.toObject(),opaque:this.opaque,matrix:[...this.matrix]}}};n(sh,"type","Convolute"),n(sh,"defaults",{opaque:!1,matrix:[0,0,0,0,1,0,0,0,0]}),n(sh,"uniformLocations",["uMatrix","uOpaque","uHalfSize","uSize"]),J.setClass(sh);let rh="Gamma";var nh=class extends Ra{getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform vec3 uGamma;\n  varying vec2 vTexCoord;\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    vec3 correction = (1.0 / uGamma);\n    color.r = pow(color.r, correction.r);\n    color.g = pow(color.g, correction.g);\n    color.b = pow(color.b, correction.b);\n    gl_FragColor = color;\n    gl_FragColor.rgb *= color.a;\n  }\n"}constructor(t={}){super(t),this.gamma=t.gamma||this.constructor.defaults.gamma.concat()}applyTo2d({imageData:{data:t}}){let e=this.gamma,i=1/e[0],s=1/e[1],r=1/e[2];this.rgbValues||(this.rgbValues={r:new Uint8Array(256),g:new Uint8Array(256),b:new Uint8Array(256)});let n=this.rgbValues;for(let t=0;t<256;t++)n.r[t]=255*(t/255)**i,n.g[t]=255*(t/255)**s,n.b[t]=255*(t/255)**r;for(let e=0;e<t.length;e+=4)t[e]=n.r[t[e]],t[e+1]=n.g[t[e+1]],t[e+2]=n.b[t[e+2]]}sendUniformData(t,e){t.uniform3fv(e.uGamma,this.gamma)}isNeutralState(){let{gamma:t}=this;return 1===t[0]&&1===t[1]&&1===t[2]}toObject(){return{type:rh,gamma:this.gamma.concat()}}};n(nh,"type",rh),n(nh,"defaults",{gamma:[1,1,1]}),n(nh,"uniformLocations",["uGamma"]),J.setClass(nh);let oh={average:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 color = texture2D(uTexture, vTexCoord);\n      float average = (color.r + color.b + color.g) / 3.0;\n      gl_FragColor = vec4(average, average, average, color.a);\n    }\n    ",lightness:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform int uMode;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 col = texture2D(uTexture, vTexCoord);\n      float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\n      gl_FragColor = vec4(average, average, average, col.a);\n    }\n    ",luminosity:"\n    precision highp float;\n    uniform sampler2D uTexture;\n    uniform int uMode;\n    varying vec2 vTexCoord;\n    void main() {\n      vec4 col = texture2D(uTexture, vTexCoord);\n      float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\n      gl_FragColor = vec4(average, average, average, col.a);\n    }\n    "};var ah=class extends Ra{applyTo2d({imageData:{data:t}}){for(let e,i=0;i<t.length;i+=4){let s=t[i],r=t[i+1],n=t[i+2];switch(this.mode){case"average":e=(s+r+n)/3;break;case"lightness":e=(Math.min(s,r,n)+Math.max(s,r,n))/2;break;case"luminosity":e=.21*s+.72*r+.07*n}t[i+2]=t[i+1]=t[i]=e}}getCacheKey(){return`${this.type}_${this.mode}`}getFragmentSource(){return oh[this.mode]}sendUniformData(t,e){t.uniform1i(e.uMode,1)}isNeutralState(){return!1}};n(ah,"type","Grayscale"),n(ah,"defaults",{mode:"average"}),n(ah,"uniformLocations",["uMode"]),J.setClass(ah);let hh={...Xa,rotation:0};var lh=class extends $a{calculateMatrix(){let t=this.rotation*Math.PI,e=et(t),i=it(t),s=1/3,r=Math.sqrt(s)*i,n=1-e;this.matrix=[e+n/3,s*n-r,s*n+r,0,0,s*n+r,e+s*n,s*n-r,0,0,s*n-r,s*n+r,e+s*n,0,0,0,0,0,1,0]}isNeutralState(){return 0===this.rotation}applyTo(t){this.calculateMatrix(),super.applyTo(t)}toObject(){return{type:this.type,rotation:this.rotation}}};n(lh,"type","HueRotation"),n(lh,"defaults",hh),J.setClass(lh);var ch=class extends Ra{applyTo2d({imageData:{data:t}}){for(let e=0;e<t.length;e+=4)t[e]=255-t[e],t[e+1]=255-t[e+1],t[e+2]=255-t[e+2],this.alpha&&(t[e+3]=255-t[e+3])}getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform int uInvert;\n  uniform int uAlpha;\n  varying vec2 vTexCoord;\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    if (uInvert == 1) {\n      if (uAlpha == 1) {\n        gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,1.0 -color.a);\n      } else {\n        gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\n      }\n    } else {\n      gl_FragColor = color;\n    }\n  }\n"}isNeutralState(){return!this.invert}sendUniformData(t,e){t.uniform1i(e.uInvert,Number(this.invert)),t.uniform1i(e.uAlpha,Number(this.alpha))}};n(ch,"type","Invert"),n(ch,"defaults",{alpha:!1,invert:!0}),n(ch,"uniformLocations",["uInvert","uAlpha"]),J.setClass(ch);var uh=class extends Ra{getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform float uStepH;\n  uniform float uNoise;\n  uniform float uSeed;\n  varying vec2 vTexCoord;\n  float rand(vec2 co, float seed, float vScale) {\n    return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\n  }\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\n    gl_FragColor = color;\n  }\n"}applyTo2d({imageData:{data:t}}){let e=this.noise;for(let i=0;i<t.length;i+=4){let s=(.5-Math.random())*e;t[i]+=s,t[i+1]+=s,t[i+2]+=s}}sendUniformData(t,e){t.uniform1f(e.uNoise,this.noise/255),t.uniform1f(e.uSeed,Math.random())}isNeutralState(){return 0===this.noise}};n(uh,"type","Noise"),n(uh,"defaults",{noise:0}),n(uh,"uniformLocations",["uNoise","uSeed"]),J.setClass(uh);var dh=class extends Ra{applyTo2d({imageData:{data:t,width:e,height:i}}){for(let s=0;s<i;s+=this.blocksize)for(let r=0;r<e;r+=this.blocksize){let n=4*s*e+4*r,o=t[n],a=t[n+1],h=t[n+2],l=t[n+3];for(let n=s;n<Math.min(s+this.blocksize,i);n++)for(let i=r;i<Math.min(r+this.blocksize,e);i++){let s=4*n*e+4*i;t[s]=o,t[s+1]=a,t[s+2]=h,t[s+3]=l}}}isNeutralState(){return 1===this.blocksize}getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform float uBlocksize;\n  uniform float uStepW;\n  uniform float uStepH;\n  varying vec2 vTexCoord;\n  void main() {\n    float blockW = uBlocksize * uStepW;\n    float blockH = uBlocksize * uStepH;\n    int posX = int(vTexCoord.x / blockW);\n    int posY = int(vTexCoord.y / blockH);\n    float fposX = float(posX);\n    float fposY = float(posY);\n    vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\n    vec4 color = texture2D(uTexture, squareCoords);\n    gl_FragColor = color;\n  }\n"}sendUniformData(t,e){t.uniform1f(e.uBlocksize,this.blocksize)}};n(dh,"type","Pixelate"),n(dh,"defaults",{blocksize:4}),n(dh,"uniformLocations",["uBlocksize"]),J.setClass(dh);var ph=class extends Ra{getFragmentSource(){return"\nprecision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uLow;\nuniform vec4 uHigh;\nvarying vec2 vTexCoord;\nvoid main() {\n  gl_FragColor = texture2D(uTexture, vTexCoord);\n  if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\n    gl_FragColor.a = 0.0;\n  }\n}\n"}applyTo2d({imageData:{data:t}}){let e=255*this.distance,i=new si(this.color).getSource(),s=[i[0]-e,i[1]-e,i[2]-e],r=[i[0]+e,i[1]+e,i[2]+e];for(let e=0;e<t.length;e+=4){let i=t[e],n=t[e+1],o=t[e+2];i>s[0]&&n>s[1]&&o>s[2]&&i<r[0]&&n<r[1]&&o<r[2]&&(t[e+3]=0)}}sendUniformData(t,e){let i=new si(this.color).getSource(),s=this.distance,r=[0+i[0]/255-s,0+i[1]/255-s,0+i[2]/255-s,1],n=[i[0]/255+s,i[1]/255+s,i[2]/255+s,1];t.uniform4fv(e.uLow,r),t.uniform4fv(e.uHigh,n)}};n(ph,"type","RemoveColor"),n(ph,"defaults",{color:"#FFFFFF",distance:.02,useAlpha:!1}),n(ph,"uniformLocations",["uLow","uHigh"]),J.setClass(ph);var gh=class extends Ra{sendUniformData(t,e){t.uniform2fv(e.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),t.uniform1fv(e.uTaps,this.taps)}getFilterWindow(){let t=this.tempScale;return Math.ceil(this.lanczosLobes/t)}getCacheKey(){let t=this.getFilterWindow();return`${this.type}_${t}`}getFragmentSource(){let t=this.getFilterWindow();return this.generateShader(t)}getTaps(){let t=this.lanczosCreate(this.lanczosLobes),e=this.tempScale,i=this.getFilterWindow(),s=Array(i);for(let r=1;r<=i;r++)s[r-1]=t(r*e);return s}generateShader(t){let e=Array(t);for(let i=1;i<=t;i++)e[i-1]=`${i}.0 * uDelta`;return`\n      precision highp float;\n      uniform sampler2D uTexture;\n      uniform vec2 uDelta;\n      varying vec2 vTexCoord;\n      uniform float uTaps[${t}];\n      void main() {\n        vec4 color = texture2D(uTexture, vTexCoord);\n        float sum = 1.0;\n        ${e.map(((t,e)=>`\n              color += texture2D(uTexture, vTexCoord + ${t}) * uTaps[${e}] + texture2D(uTexture, vTexCoord - ${t}) * uTaps[${e}];\n              sum += 2.0 * uTaps[${e}];\n            `)).join("\n")}\n        gl_FragColor = color / sum;\n      }\n    `}applyToForWebgl(t){t.passes++,this.width=t.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=t.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),t.destinationWidth=this.dW,super.applyTo(t),t.sourceWidth=t.destinationWidth,this.height=t.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),t.destinationHeight=this.dH,super.applyTo(t),t.sourceHeight=t.destinationHeight}applyTo(t){Fa(t)?this.applyToForWebgl(t):this.applyTo2d(t)}isNeutralState(){return 1===this.scaleX&&1===this.scaleY}lanczosCreate(t){return e=>{if(e>=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;let i=(e*=Math.PI)/t;return Math.sin(e)/e*Math.sin(i)/i}}applyTo2d(t){let e=t.imageData,i=this.scaleX,s=this.scaleY;this.rcpScaleX=1/i,this.rcpScaleY=1/s;let r,n=e.width,o=e.height,a=Math.round(n*i),h=Math.round(o*s);r="sliceHack"===this.resizeType?this.sliceByTwo(t,n,o,a,h):"hermite"===this.resizeType?this.hermiteFastResize(t,n,o,a,h):"bilinear"===this.resizeType?this.bilinearFiltering(t,n,o,a,h):"lanczos"===this.resizeType?this.lanczosResize(t,n,o,a,h):new ImageData(a,h),t.imageData=r}sliceByTwo(t,e,i,s,r){let n=t.imageData,o=.5,a=!1,h=!1,l=e*o,c=i*o,u=t.filterBackend.resources,d=0,p=0,g=e,f=0;u.sliceByTwo||(u.sliceByTwo=dt());let m=u.sliceByTwo;(m.width<1.5*e||m.height<i)&&(m.width=1.5*e,m.height=i);let _=m.getContext("2d");for(_.clearRect(0,0,1.5*e,i),_.putImageData(n,0,0),s=Math.floor(s),r=Math.floor(r);!a||!h;)e=l,i=c,s<Math.floor(l*o)?l=Math.floor(l*o):(l=s,a=!0),r<Math.floor(c*o)?c=Math.floor(c*o):(c=r,h=!0),_.drawImage(m,d,p,e,i,g,f,l,c),d=g,p=f,f+=c;return _.getImageData(d,p,s,r)}lanczosResize(t,e,i,s,r){let n=t.imageData.data,o=t.ctx.createImageData(s,r),a=o.data,h=this.lanczosCreate(this.lanczosLobes),l=this.rcpScaleX,c=this.rcpScaleY,u=2/this.rcpScaleX,d=2/this.rcpScaleY,p=Math.ceil(l*this.lanczosLobes/2),g=Math.ceil(c*this.lanczosLobes/2),f={},m={x:0,y:0},_={x:0,y:0};return function t(v){let y,b,x,w,C,S,T,k,D,O,M;for(m.x=(v+.5)*l,_.x=Math.floor(m.x),y=0;y<r;y++){for(m.y=(y+.5)*c,_.y=Math.floor(m.y),C=0,S=0,T=0,k=0,D=0,b=_.x-p;b<=_.x+p;b++)if(!(b<0||b>=e)){O=Math.floor(1e3*Math.abs(b-m.x)),f[O]||(f[O]={});for(let t=_.y-g;t<=_.y+g;t++)t<0||t>=i||(M=Math.floor(1e3*Math.abs(t-m.y)),f[O][M]||(f[O][M]=h(Math.sqrt((O*u)**2+(M*d)**2)/1e3)),x=f[O][M],x>0&&(w=4*(t*e+b),C+=x,S+=x*n[w],T+=x*n[w+1],k+=x*n[w+2],D+=x*n[w+3]))}w=4*(y*s+v),a[w]=S/C,a[w+1]=T/C,a[w+2]=k/C,a[w+3]=D/C}return++v<s?t(v):o}(0)}bilinearFiltering(t,e,i,s,r){let n,o,a,h,l,c,u,d,p,g,f,m,_,v=0,y=this.rcpScaleX,b=this.rcpScaleY,x=4*(e-1),w=t.imageData.data,C=t.ctx.createImageData(s,r),S=C.data;for(u=0;u<r;u++)for(d=0;d<s;d++)for(l=Math.floor(y*d),c=Math.floor(b*u),p=y*d-l,g=b*u-c,_=4*(c*e+l),f=0;f<4;f++)n=w[_+f],o=w[_+4+f],a=w[_+x+f],h=w[_+x+4+f],m=n*(1-p)*(1-g)+o*p*(1-g)+a*g*(1-p)+h*p*g,S[v++]=m;return C}hermiteFastResize(t,e,i,s,r){let n=this.rcpScaleX,o=this.rcpScaleY,a=Math.ceil(n/2),h=Math.ceil(o/2),l=t.imageData.data,c=t.ctx.createImageData(s,r),u=c.data;for(let t=0;t<r;t++)for(let i=0;i<s;i++){let r,c=4*(i+t*s),d=0,p=0,g=0,f=0,m=0,_=0,v=(t+.5)*o;for(let s=Math.floor(t*o);s<(t+1)*o;s++){let t=Math.abs(v-(s+.5))/h,o=(i+.5)*n,c=t*t;for(let t=Math.floor(i*n);t<(i+1)*n;t++){let i=Math.abs(o-(t+.5))/a,n=Math.sqrt(c+i*i);n>1&&n<-1||(r=2*n*n*n-3*n*n+1,r>0&&(i=4*(t+s*e),_+=r*l[i+3],p+=r,l[i+3]<255&&(r=r*l[i+3]/250),g+=r*l[i],f+=r*l[i+1],m+=r*l[i+2],d+=r))}}u[c]=g/d,u[c+1]=f/d,u[c+2]=m/d,u[c+3]=_/p}return c}};n(gh,"type","Resize"),n(gh,"defaults",{resizeType:"hermite",scaleX:1,scaleY:1,lanczosLobes:3}),n(gh,"uniformLocations",["uDelta","uTaps"]),J.setClass(gh);var fh=class extends Ra{getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform float uSaturation;\n  varying vec2 vTexCoord;\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    float rgMax = max(color.r, color.g);\n    float rgbMax = max(rgMax, color.b);\n    color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\n    color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\n    color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\n    gl_FragColor = color;\n  }\n"}applyTo2d({imageData:{data:t}}){let e=-this.saturation;for(let i=0;i<t.length;i+=4){let s=t[i],r=t[i+1],n=t[i+2],o=Math.max(s,r,n);t[i]+=o===s?0:(o-s)*e,t[i+1]+=o===r?0:(o-r)*e,t[i+2]+=o===n?0:(o-n)*e}}sendUniformData(t,e){t.uniform1f(e.uSaturation,-this.saturation)}isNeutralState(){return 0===this.saturation}};n(fh,"type","Saturation"),n(fh,"defaults",{saturation:0}),n(fh,"uniformLocations",["uSaturation"]),J.setClass(fh);var mh=class extends Ra{getFragmentSource(){return"\n  precision highp float;\n  uniform sampler2D uTexture;\n  uniform float uVibrance;\n  varying vec2 vTexCoord;\n  void main() {\n    vec4 color = texture2D(uTexture, vTexCoord);\n    float max = max(color.r, max(color.g, color.b));\n    float avg = (color.r + color.g + color.b) / 3.0;\n    float amt = (abs(max - avg) * 2.0) * uVibrance;\n    color.r += max != color.r ? (max - color.r) * amt : 0.00;\n    color.g += max != color.g ? (max - color.g) * amt : 0.00;\n    color.b += max != color.b ? (max - color.b) * amt : 0.00;\n    gl_FragColor = color;\n  }\n"}applyTo2d({imageData:{data:t}}){let e=-this.vibrance;for(let i=0;i<t.length;i+=4){let s=t[i],r=t[i+1],n=t[i+2],o=Math.max(s,r,n),a=(s+r+n)/3,h=2*Math.abs(o-a)/255*e;t[i]+=o===s?0:(o-s)*h,t[i+1]+=o===r?0:(o-r)*h,t[i+2]+=o===n?0:(o-n)*h}}sendUniformData(t,e){t.uniform1f(e.uVibrance,-this.vibrance)}isNeutralState(){return 0===this.vibrance}};n(mh,"type","Vibrance"),n(mh,"defaults",{vibrance:0}),n(mh,"uniformLocations",["uVibrance"]),J.setClass(mh);var _h=i({BaseFilter:()=>Ra,BlackWhite:()=>Za,BlendColor:()=>Ba,BlendImage:()=>Wa,Blur:()=>Ya,Brightness:()=>Na,Brownie:()=>Ga,ColorMatrix:()=>$a,Composed:()=>th,Contrast:()=>eh,Convolute:()=>sh,Gamma:()=>nh,Grayscale:()=>ah,HueRotation:()=>lh,Invert:()=>ch,Kodachrome:()=>Ka,Noise:()=>uh,Pixelate:()=>dh,Polaroid:()=>Ja,RemoveColor:()=>ph,Resize:()=>gh,Saturation:()=>fh,Sepia:()=>Qa,Technicolor:()=>qa,Vibrance:()=>mh,Vintage:()=>Ua});t.ActiveSelection=da,t.BaseBrush=Mo,t.BaseFabricObject=Os,t.Canvas=po,t.Canvas2dFilterBackend=pa,t.CanvasDOMManager=Nn,t.Circle=Fo,t.CircleBrush=class extends Mo{constructor(t){super(t),n(this,"width",10),this.points=[]}drawDot(t){let e=this.addPoint(t),i=this.canvas.contextTop;this._saveAndTransform(i),this.dot(i,e),i.restore()}dot(t,e){t.fillStyle=e.fill,t.beginPath(),t.arc(e.x,e.y,e.radius,0,2*Math.PI,!1),t.closePath(),t.fill()}onMouseDown(t){this.points=[],this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)}_render(){let t=this.canvas.contextTop,e=this.points;this._saveAndTransform(t);for(let i=0;i<e.length;i++)this.dot(t,e[i]);t.restore()}onMouseMove(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(t),this._render()):this.drawDot(t))}onMouseUp(){let t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;let e=[];for(let t=0;t<this.points.length;t++){let i=this.points[t],s=new Fo({radius:i.radius,left:i.x,top:i.y,originX:D,originY:D,fill:i.fill});this.shadow&&(s.shadow=new Ai(this.shadow)),e.push(s)}let i=new rn(e,{canvas:this.canvas});this.canvas.fire("before:path:created",{path:i}),this.canvas.add(i),this.canvas.fire("path:created",{path:i}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()}addPoint({x:t,y:e}){let i={x:t,y:e,radius:Bn(Math.max(0,this.width-20),this.width+20)/2,fill:new si(this.color).setAlpha(Bn(0,100)/100).toRgba()};return this.points.push(i),i}},t.ClipPathLayout=la,t.Color=si,t.Control=Bs,t.Ellipse=zo,t.FabricImage=ya,t.Image=ya,t.FabricObject=dr,t.Object=dr,t.FabricText=Go,t.Text=Go,t.FitContentLayout=Zr,t.FixedLayout=ca,t.Gradient=Do,t.Group=rn,t.IText=aa,t.InteractiveFabricObject=cr,t.Intersection=ks,t.LayoutManager=en,t.LayoutStrategy=Qr,t.Line=jo,t.Observable=Z,t.Path=Po,t.Pattern=Oo,t.PatternBrush=class extends Eo{constructor(t){super(t)}getPatternSrc(){let t=dt(),e=t.getContext("2d");return t.width=t.height=25,e&&(e.fillStyle=this.color,e.beginPath(),e.arc(10,10,10,0,2*Math.PI,!1),e.closePath(),e.fill()),t}getPattern(t){return t.createPattern(this.source||this.getPatternSrc(),"repeat")}_setBrushStyles(t){super._setBrushStyles(t);let e=this.getPattern(t);e&&(t.strokeStyle=e)}createPath(t){let e=super.createPath(t),i=e._getLeftTopCoords().scalarAdd(e.strokeWidth/2);return e.stroke=new Oo({source:this.source||this.getPatternSrc(),offsetX:-i.x,offsetY:-i.y}),e}},t.PencilBrush=Eo,t.Point=st,t.Polygon=Wo,t.Polyline=Ho,t.Rect=Ur,t.Shadow=Ai,t.SprayBrush=class extends Mo{constructor(t){super(t),n(this,"width",10),n(this,"density",20),n(this,"dotWidth",1),n(this,"dotWidthVariance",1),n(this,"randomOpacity",!1),n(this,"optimizeOverlapping",!0),this.sprayChunks=[],this.sprayChunk=[]}onMouseDown(t){this.sprayChunks=[],this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(t),this.renderChunck(this.sprayChunk)}onMouseMove(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.addSprayChunk(t),this.renderChunck(this.sprayChunk))}onMouseUp(){let t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;let e=[];for(let t=0;t<this.sprayChunks.length;t++){let i=this.sprayChunks[t];for(let t=0;t<i.length;t++){let s=i[t],r=new Ur({width:s.width,height:s.width,left:s.x+1,top:s.y+1,originX:D,originY:D,fill:this.color});e.push(r)}}let i=new rn(this.optimizeOverlapping?function(t){let e={},i=[];for(let s,r=0;r<t.length;r++)s=`${t[r].left}${t[r].top}`,e[s]||(e[s]=!0,i.push(t[r]));return i}(e):e,{objectCaching:!0,subTargetCheck:!1,interactive:!1});this.shadow&&i.set("shadow",new Ai(this.shadow)),this.canvas.fire("before:path:created",{path:i}),this.canvas.add(i),this.canvas.fire("path:created",{path:i}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()}renderChunck(t){let e=this.canvas.contextTop;e.fillStyle=this.color,this._saveAndTransform(e);for(let i=0;i<t.length;i++){let s=t[i];e.globalAlpha=s.opacity,e.fillRect(s.x,s.y,s.width,s.width)}e.restore()}_render(){let t=this.canvas.contextTop;t.fillStyle=this.color,this._saveAndTransform(t);for(let t=0;t<this.sprayChunks.length;t++)this.renderChunck(this.sprayChunks[t]);t.restore()}addSprayChunk(t){this.sprayChunk=[];let e=this.width/2;for(let i=0;i<this.density;i++)this.sprayChunk.push({x:Bn(t.x-e,t.x+e),y:Bn(t.y-e,t.y+e),width:this.dotWidthVariance?Bn(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth,opacity:this.randomOpacity?Bn(0,100)/100:1});this.sprayChunks.push(this.sprayChunk)}},t.StaticCanvas=le,t.StaticCanvasDOMManager=te,t.Textbox=ha,t.Triangle=Lo,t.WebGLFilterBackend=ga,t.cache=y,t.classRegistry=J,t.config=a,Object.defineProperty(t,"controlsUtils",{enumerable:!0,get:function(){return ro}}),t.createCollectionMixin=ot,Object.defineProperty(t,"filters",{enumerable:!0,get:function(){return _h}}),t.getEnv=f,t.getFabricDocument=m,t.getFabricWindow=_,t.getFilterBackend=_a,t.iMatrix=k,t.initFilterBackend=ma,t.isPutImageFaster=(t,e)=>{let i,s=ft({width:t,height:e}),r=dt().getContext("webgl"),n={imageBuffer:new ArrayBuffer(t*e*4)},o={destinationWidth:t,destinationHeight:e,targetCanvas:s};i=_().performance.now(),ga.prototype.copyGLTo2D.call(n,r,o);let a=_().performance.now()-i;return i=_().performance.now(),ga.prototype.copyGLTo2DPutImageData.call(n,r,o),a>_().performance.now()-i},t.isWebGLPipelineState=Fa,t.loadSVGFromString=Aa,t.loadSVGFromURL=function(t,e,
vendor: 22,153 bytes, lines 1-33
1i={}){return fetch(t.replace(/^\n\s*/,"").trim(),{signal:i.signal}).then((t=>{if(!t.ok)throw new l(`HTTP error! status: ${t.status}`);return t.text()})).then((t=>Aa(t,e,i))).catch((()=>({objects:[],elements:[],options:{},allElements:[]})))},t.parseSVGDocument=Ea,t.runningAnimations=Q,t.setEnv=t=>{p=t},t.setFilterBackend=function(t){fa=t},Object.defineProperty(t,"util",{enumerable:!0,get:function(){return Wn}}),t.version=b}(e)},58481(t,e,i){var s,r,n;
2/*!
3 * jQuery UI Button 1.14.1
4 * https://jqueryui.com
5 *
6 * Copyright OpenJS Foundation and other contributors
7 * Released under the MIT license.
8 * https://jquery.org/license
9 */!function(){"use strict";r=[i(19636),i(96605),i(12097),i(41897),i(69139)],s=function(t){t.widget("ui.button",{version:"1.14.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),null!=(t=this.element[0].disabled)&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,r=s?this.options.iconPosition:i,n="top"===r||"bottom"===r;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(r),n?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(r))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.trigger("blur"))},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),!0===t.uiBackCompat&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){"text"!==t?("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments)):this._super("showLabel",e)}}),t.fn.button=(e=t.fn.button,function(i){var s="string"==typeof i,r=Array.prototype.slice.call(arguments,1),n=this;return s?this.length||"instance"!==i?this.each((function(){var e,s=t(this).attr("type"),o="checkbox"!==s&&"radio"!==s?"button":"checkboxradio",a=t.data(this,"ui-"+o);return"instance"===i?(n=a,!1):a?"function"!=typeof a[i]||"_"===i.charAt(0)?t.error("no such method '"+i+"' for button widget instance"):(e=a[i].apply(a,r))!==a&&void 0!==e?(n=e&&e.jquery?n.pushStack(e.get()):e,!1):void 0:t.error("cannot call methods on button prior to initialization; attempted to call method '"+i+"'")})):n=void 0:(r.length&&(i=t.widget.extend.apply(null,[i].concat(r))),this.each((function(){var s=t(this).attr("type"),r="checkbox"!==s&&"radio"!==s?"button":"checkboxradio",n=t.data(this,"ui-"+r);if(n)n.option(i||{}),n._init&&n._init();else{if("button"===r)return void e.call(t(this),i);t(this).checkboxradio(t.extend({icon:!1},i))}}))),n}),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))});var e;return t.ui.button},void 0===(n="function"==typeof s?s.apply(e,r):s)||(t.exports=n)}()},12097(t,e,i){var s,r,n;
10/*!
11 * jQuery UI Checkboxradio 1.14.1
12 * https://jqueryui.com
13 *
14 * Copyright OpenJS Foundation and other contributors
15 * Released under the MIT license.
16 * https://jquery.org/license
17 */!function(){"use strict";r=[i(19636),i(47687),i(92420),i(69139)],void 0===(n="function"==typeof(s=function(t){return t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.14.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s,r=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",(s=this.label.contents().not(this.element[0])).length&&(this.originalLabel+=s.clone().wrapAll("<div></div>").parent().html()),this.originalLabel&&(r.label=this.originalLabel),null!=(e=this.element[0].disabled)&&(r.disabled=e),r},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e=this.element[0].name,i="input[name='"+CSS.escape(e)+"']";return e?(this.form.length?t(this.form[0].elements).filter(i):t(i).filter((function(){return 0===t(t(this).prop("form")).length}))).not(this.element):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each((function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")}))},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){if("label"!==t||e){if(this._super(t,e),"disabled"===t)return this._toggleClass(this.label,null,"ui-state-disabled",e),void(this.element[0].disabled=e);this.refresh()}},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio})?s.apply(e,r):s)||(t.exports=n)}()},96605(t,e,i){var s,r,n;
18/*!
19 * jQuery UI Controlgroup 1.14.1
20 * https://jqueryui.com
21 *
22 * Copyright OpenJS Foundation and other contributors
23 * Released under the MIT license.
24 * https://jquery.org/license
25 */!function(){"use strict";r=[i(19636),i(69139)],void 0===(n="function"==typeof(s=function(t){var e=/ui-corner-([a-z]){2,6}/g;return t.widget("ui.controlgroup",{version:"1.14.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,(function(s,r){var n,o={};if(r)return"controlgroupLabel"===s?((n=e.element.find(r)).each((function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")})),e._addClass(n,null,"ui-widget ui-widget-content ui-state-default"),void(i=i.concat(n.get()))):void(t.fn[s]&&(o=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(r).each((function(){var r=t(this),n=r[s]("instance"),a=t.widget.extend({},o);if("button"!==s||!r.parent(".ui-spinner").length){n||(n=r[s]()[s]("instance")),n&&(a.classes=e._resolveClassesValues(a.classes,n)),r[s](a);var h=r[s]("widget");t.data(h[0],"ui-controlgroup-data",n||r[s]("instance")),i.push(h[0])}}))))})),this.childWidgets=t(t.uniqueSort(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each((function(){var i=t(this).data("ui-controlgroup-data");i&&i[e]&&i[e]()}))},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:!!e&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(i,s){var r={};return t.each(i,(function(t){var n=s.options.classes[t]||"";n=String.prototype.trim.call(n.replace(e,"")),r[t]=(n+" "+i[t]).replace(/\s+/g," ")})),r},_setOption:function(t,e){"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"!==t?this.refresh():this._callChildMethod(e?"disable":"enable")},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],(function(t,s){var r=e[s]().data("ui-controlgroup-data");if(r&&i["_"+r.widgetName+"Options"]){var n=i["_"+r.widgetName+"Options"](1===e.length?"only":s);n.classes=i._resolveClassesValues(n.classes,r),r.element[r.widgetName](n)}else i._updateCornerClass(e[s](),s)})),this._callChildMethod("refresh"))}})})?s.apply(e,r):s)||(t.exports=n)}()},83431(t,e,i){var s,r,n;
26/*!
27 * jQuery UI Datepicker 1.14.1
28 * https://jqueryui.com
29 *
30 * Copyright OpenJS Foundation and other contributors
31 * Released under the MIT license.
32 * https://jquery.org/license
33 */!function(){"use strict";r=[i(19636),i(56883),i(41897)],s=function(t){var e;function i(t){for(var e,i;t.length&&t[0]!==document;){if(("absolute"===(e=t.css("position"))||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:"",selectMonthLabel:"Select month",selectYearLabel:"Select year"},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,onUpdateDatepicker:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=r(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function r(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,(function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")})).on("mouseover",i,n)}function n(){t.datepicker._isDisabledDatepicker(e.inline?e.dpDiv.parent()[0]:e.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function o(e,i){for(var s in t.extend(e,i),i)null==i[s]&&(e[s]=i[s]);return e}return t.extend(t.ui,{datepicker:{version:"1.14.1"}}),t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return o(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,r,n;r="div"===(s=e.nodeName.toLowerCase())||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),(n=this._newInst(t(e),r)).settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,n):r&&this._inlineDatepicker(e,n)},_newInst:function(e,i){return{id:e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1"),input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?r(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,r,n,o=this._get(i,"appendText"),a=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=t("<span>").addClass(this._appendClass).text(o),e[a?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),"focus"!==(s=this._get(i,"showOn"))&&"both"!==s||e.on("focus",this._showDatepicker),"button"!==s&&"both"!==s||(r=this._get(i,"buttonText"),n=this._get(i,"buttonImage"),this._get(i,"buttonImageOnly")?i.trigger=t("<img>").addClass(this._triggerClass).attr({src:n,alt:r,title:r}):(i.trigger=t("<button type='button'>").addClass(this._triggerClass),n?i.trigger.html(t("<img>").attr({src:n,alt:r,title:r})):i.trigger.text(r)),e[a?"before":"after"](i.trigger),i.trigger.on("click",(function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1})))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,r,n=new Date(2009,11,20),o=this._get(t,"dateFormat");o.match(/[DM]/)&&(e=function(t){for(i=0,s=0,r=0;r<t.length;r++)t[r].length>i&&(i=t[r].length,s=r);return s},n.setMonth(e(this._get(t,o.match(/MM/)?"monthNames":"monthNamesShort"))),n.setDate(e(this._get(t,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-n.getDay())),t.input.attr("size",this._formatDate(t,n).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,r,n){var a,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,a="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+a+"' style='position: absolute; top: -100px; width: 0px;'/>
33"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),(d=this._dialogInst=this._newInst(this._dialogInput,!1)).settings={},t.data(this._dialogInput[0],"datepicker",d)),o(d.settings,r||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(i){var s,r=t(i),n=t.data(i,"datepicker");r.hasClass(this.markerClassName)&&(s=i.nodeName.toLowerCase(),t.removeData(i,"datepicker"),"input"===s?(n.append.remove(),n.trigger.remove(),r.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):"div"!==s&&"span"!==s||r.removeClass(this.markerClassName).empty(),t.datepicker._hideDatepicker(),e===n&&(e=null,this._curInst=null))},_enableDatepicker:function(e){var i,s,r=t(e),n=t.data(e,"datepicker");r.hasClass(this.markerClassName)&&("input"===(i=e.nodeName.toLowerCase())?(e.disabled=!1,n.trigger.filter("button").each((function(){this.disabled=!1})).end().filter("img").css({opacity:"1.0",cursor:""})):"div"!==i&&"span"!==i||((s=r.children("."+this._inlineClass)).children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,(function(t){return t===e?null:t})))},_disableDatepicker:function(e){var i,s,r=t(e),n=t.data(e,"datepicker");r.hasClass(this.markerClassName)&&("input"===(i=e.nodeName.toLowerCase())?(e.disabled=!0,n.trigger.filter("button").each((function(){this.disabled=!0})).end().filter("img").css({opacity:"0.5",cursor:"default"})):"div"!==i&&"span"!==i||((s=r.children("."+this._inlineClass)).children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,(function(t){return t===e?null:t})),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;e<this._disabledInputs.length;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(t){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var r,n,a,h,l=this._getInst(e);if(2===arguments.length&&"string"==typeof i)return"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null;r=i||{},"string"==typeof i&&((r={})[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),n=this._getDateDatepicker(e,!0),a=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),o(l.settings,r),null!==a&&void 0!==r.dateFormat&&void 0===r.minDate&&(l.settings.minDate=this._formatDate(l,a)),null!==h&&void 0!==r.dateFormat&&void 0===r.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in r&&(r.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,n),this._updateAlternate(l),this._updateDatepicker(l))},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,r,n=t.datepicker._getInst(e.target),o=!0,a=n.dpDiv.is(".ui-datepicker-rtl");if(n._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),o=!1;break;case 13:return(r=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",n.dpDiv))[0]&&t.datepicker._selectDay(e.target,n.selectedMonth,n.selectedYear,r[0]),(i=t.datepicker._get(n,"onSelect"))?(s=t.datepicker._formatDate(n),i.apply(n.input?n.input[0]:null,[s,n])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(n,"stepBigMonths"):-t.datepicker._get(n,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(n,"stepBigMonths"):+t.datepicker._get(n,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),o=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),o=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?1:-1,"D"),o=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(n,"stepBigMonths"):-t.datepicker._get(n,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),o=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?-1:1,"D"),o=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(n,"stepBigMonths"):+t.datepicker._get(n,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),o=e.ctrlKey||e.metaKey;break;default:o=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):o=!1;o&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,r=t.datepicker._getInst(e.target);if(t.datepicker._get(r,"constrainInput"))return i=t.datepicker._possibleChars(t.datepicker._get(r,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||s<" "||!i||i.indexOf(s)>-1},_doKeyUp:function(e){var i=t.datepicker._getInst(e.target);if(i.input.val()!==i.lastVal)try{t.datepicker.parseDate(t.datepicker._get(i,"dateFormat"),i.input?i.input.val():null,t.datepicker._getFormatConfig(i))&&(t.datepicker._setDateFromField(i),t.datepicker._updateAlternate(i),t.datepicker._updateDatepicker(i))}catch(t){}return!0},_showDatepicker:function(e){var s,r,n,a,h,l,c;("input"!==(e=e.target||e).nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),t.datepicker._isDisabledDatepicker(e)||t.datepicker._lastInput===e)||(s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),!1!==(n=(r=t.datepicker._get(s,"beforeShow"))?r.apply(e,[e,s]):{})&&(o(s.settings,n),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),a=!1,t(e).parents().each((function(){return!(a|="fixed"===t(this).css("position"))})),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,a),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":a?"fixed":"absolute",display:"none",left:h.left+"px",to
vendor: 58,681 bytes, lines 33-65
33p:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)))},_updateDatepicker:function(i){this.maxRows=4,e=i,i.dpDiv.empty().append(this._generateHTML(i)),this._attachHandlers(i);var s,r=this._getNumberOfMonths(i),o=r[1],a=17,h=i.dpDiv.find("."+this._dayOverClass+" a"),l=t.datepicker._get(i,"onUpdateDatepicker");h.length>0&&n.apply(h.get(0)),i.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),o>1&&i.dpDiv.addClass("ui-datepicker-multi-"+o).css("width",a*o+"em"),i.dpDiv[(1!==r[0]||1!==r[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),i.dpDiv[(this._get(i,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),i===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(i)&&i.input.trigger("focus"),i.yearshtml&&(s=i.yearshtml,setTimeout((function(){s===i.yearshtml&&i.yearshtml&&i.dpDiv.find("select.ui-datepicker-year").first().replaceWith(i.yearshtml),s=i.yearshtml=null}),0)),l&&l.apply(i.input?i.input[0]:null,[i])},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")},_checkOffset:function(e,i,s){var r=e.dpDiv.outerWidth(),n=e.dpDiv.outerHeight(),o=e.input?e.input.outerWidth():0,a=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?r-o:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+a?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+r>h&&h>r?Math.abs(i.left+r-h):0),i.top-=Math.min(i.top,i.top+n>l&&l>n?Math.abs(n+a):0),i},_findPos:function(e){for(var i,s=this._getInst(e),r=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.pseudos.hidden(e));)e=e[r?"previousSibling":"nextSibling"];return[(i=t(e).offset()).left,i.top]},_hideDatepicker:function(e){var i,s,r,n,o=this._curInst;!o||e&&o!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),r=function(){t.datepicker._tidyDialog(o)},t.effects&&t.effects.effect[i]?o.dpDiv.hide(i,t.datepicker._get(o,"showOptions"),s,r):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,r),i||r(),this._datepickerShowing=!1,(n=this._get(o,"onClose"))&&n.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id===t.datepicker._mainDivId||0!==i.parents("#"+t.datepicker._mainDivId).length||i.hasClass(t.datepicker.markerClassName)||i.closest("."+t.datepicker._triggerClass).length||!t.datepicker._datepickerShowing||t.datepicker._inDialog&&t.blockUI)&&(!i.hasClass(t.datepicker.markerClassName)||t.datepicker._curInst===s)||t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var r=t(e),n=this._getInst(r[0]);this._isDisabledDatepicker(r[0])||(this._adjustInstDate(n,i,s),this._updateDatepicker(n))},_gotoToday:function(e){var i,s=t(e),r=this._getInst(s[0]);this._get(r,"gotoCurrent")&&r.currentDay?(r.selectedDay=r.currentDay,r.drawMonth=r.selectedMonth=r.currentMonth,r.drawYear=r.selectedYear=r.currentYear):(i=new Date,r.selectedDay=i.getDate(),r.drawMonth=r.selectedMonth=i.getMonth(),r.drawYear=r.selectedYear=i.getFullYear()),this._notifyChange(r),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var r=t(e),n=this._getInst(r[0]);n["selected"+("M"===s?"Month":"Year")]=n["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(n),this._adjustDate(r)},_selectDay:function(e,i,s,r){var n,o=t(e);t(r).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||((n=this._getInst(o[0])).selectedDay=n.currentDay=parseInt(t("a",r).attr("data-date")),n.selectedMonth=n.currentMonth=i,n.selectedYear=n.currentYear=s,this._selectDate(e,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,r=t(e),n=this._getInst(r[0]);i=null!=i?i:this._formatDate(n),n.input&&n.input.val(i),this._updateAlternate(n),(s=this._get(n,"onSelect"))?s.apply(n.input?n.input[0]:null,[i,n]):n.input&&n.input.trigger("change"),n.inline?this._updateDatepicker(n):(this._hideDatepicker(),this._lastInput=n.input[0],"object"!=typeof n.input[0]&&n.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,r,n=this._get(e,"altField");n&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),r=this.formatDate(i,s,this._getFormatConfig(e)),t(document).find(n).val(r))},noWeekends:function(t){var e=t.getDay();return[e>0&&e<6,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(""===(i="object"==typeof i?i.toString():i+""))return null;var r,n,o,a,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,g=(s?s.monthNames:null)||this._defaults.monthNames,f=-1,m=-1,_=-1,v=-1,y=!1,b=function(t){var i=r+1<e.length&&e.charAt(r+1)===t;return i&&r++,i},x=function(t){var e=b(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,r=new RegExp("^\\d{"+("y"===t?s:1)+","+s+"}"),n=i.substring(h).match(r);if(!n)throw"Missing number at position "+h;return h+=n[0].length,parseInt(n[0],10)},w=function(e,s,r){var n=-1,o=t.map(b(e)?r:s,(function(t,e){return[[e,t]]})).sort((function(t,e){return-(t[1].length-e[1].length)}));if(t.each(o,(function(t,e){var s=e[1];if(i.substr(h,s.length).toLowerCase()===s.toLowerCase())return n=e[0],h+=s.length,!1})),-1!==n)return n+1;throw"Unknown name at position "+h},C=function(){if(i.charAt(h)!==e.charAt(r))throw"Unexpected literal at position "+h;h++};for(r=0;r<e.length;r++)if(y)"'"!==e.charAt(r)||b("'")?C():y=!1;else switch(e.charAt(r)){case"d":_=x("d");break;case"D":w("D",u,d);break;case"o":v=x("o");break;case"m":m=x("m");break;case"M":m=w("M",p,g);break;case"y":f=x("y");break;case"@":f=(a=new Date(x("@"))).getFullYear(),m=a.getMonth()+1,_=a.getDate();break;case"!":f=(a=new Date((x("!")-this._ticksTo1970)/1e4)).getFullYear(),m=a.getMonth()+1,_=a.getDate();break;case"'":b("'")?C():y=!0;break;default:C()}if(h<i.length&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===f?f=(new Date).getFullYear():f<100&&(f+=(new Date).getFullYear()-(new Date).getFullYear()%100+(f<=c?0:-100)),v>-1)for(m=1,_=v;;){if(_<=(n=this._getDaysInMonth(f,m-1)))break;m++,_-=n}if((a=this._daylightSavingAdjust(new Date(f,m-1,_))).getFullYear()!==f||a.getMonth()+1!==m||a.getDate()!==_)throw"Invalid date";return a},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(t,e,i){if(!e)return"";var s,r=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,n=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,a=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=s+1<t.length&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;s.length<i;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;s<t.length;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),r,n);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),o,a);break;case"y":u+=h("y")?e.getFullYear():(e.getFullYear()%100<10?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,r=function(i){var s=e+1<t.length&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;e<t.length;e++)if(s)"'"!==t.charAt(e)||r("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":r("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,r=this._getDefaultDate(t),n=r,o=this._getFormatConfig(t);try{n=this.parseDate(i,s,o)||r}catch(t){s=e?"":s}t.selectedDay=n.getDate(),t.drawMonth=t.selectedMonth=n.getMonth(),t.drawYear=t.selectedYear=n.getFullYear(),t.currentDay=s?n.getDate():0,t.currentMonth=s?n.getMonth():0,t.currentYear=s?n.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var r=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},n=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(t){}for(var s=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,r=s.getFullYear(),n=s.getMonth(),o=s.getDate(),a=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,h=a.exec(i);h;){switch(h[2]||"d"){case"d":case"D":o+=parseInt(h[1],10);break;case"w":case"W":o+=7*parseInt(h[1],10);break;case"m":case"M":n+=parseInt(h[1],10),o=Math.min(o,t.datepicker._getDaysInMonth(r,n));break;case"y":case"Y":r+=parseInt(h[1],10),o=Math.min(o,t.datepicker._getDaysInMonth(r,n))}h=a.exec(i)}return new Date(r,n,o)},o=null==i||""===i?s:"string"==typeof i?n(i):"number"==typeof i?isNaN(i)?s:r(i):new Date(i.getTime());return(o=o&&"Invalid Date"===o.toString()?s:o)&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,r=t.selectedMonth,n=t.selectedYear,o=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=o.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=o.getMonth(),t.drawYear=t.selectedYear=t.currentYear=o.getFullYear(),r===t.selectedMonth&&n===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){return!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay))},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map((function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])}))},_generateHTML:function(e){var i,s,r,n,o,a,h,l,c,u,d,p,g,f,m,_,v,y,b,x,w,C,S,T,k,D,O,M,P,E,A,F,I,j,L,R,z,B,H,W=new Date,Y=this._daylightSavingAdjust(new Date(W.getFullYear(),W.getMonth(),W.getDate())),N=this._get(e,"isRTL"),X=this._get(e,"showButtonPanel"),$=this._get(e,"hideIfNoPrevNext"),V=this._get(e,"navigationAsDateFormat"),G=this._getNumberOfMonths(e),U=this._get(e,"showCurrentAtPos"),K=this._get(e,"stepMonths"),q=1!==G[0]||1!==G[1],J=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(e,"min"),Z=this._getMinMaxDate(e,"max"),tt=e.drawMonth-U,et=e.drawYear;if(tt<0&&(tt+=12,et--),Z)for(i=this._daylightSavingAdjust(new Date(Z.getFullYear(),Z.getMonth()-G[0]*G[1]+1,Z.getDate())),i=Q&&i<Q?Q:i;this._daylightSavingAdjust(new Date(et,tt,1))>i;)--tt<0&&(tt=11,et--);for(e.drawMonth=tt,e.drawYear=et,s=this._get(e,"prevText"),s=V?this.formatDate(s,this._daylightSavingAdjust(new Date(et,tt-K,1)),this._getFormatConfig(e)):s,r=this._canAdjustMonth(e,-1,et,tt)?t("<a>").attr({class:"ui-datepicker-prev ui-corner-all","data-handler":"prev","data-event":"click",title:s}).append(t("<span>").addClass("ui-icon ui-icon-circle-triangle-"+(N?"e":"w")).text(s))[0].outerHTML:$?"":t("<a>").attr({class:"ui-datepicker-prev ui-corner-all ui-state-disabled",title:s}).append(t("<span>").addClass("ui-icon ui-icon-circle-triangle-"+(N?"e":"w")).text(s))[0].outerHTML,n=this._get(e,"nextText"),n=V?this.formatDate(n,this._daylightSavingAdjust(new Date(et,tt+K,1)),this._getFormatConfig(e)):n,o=this._canAdjustMonth(e,1,et,tt)?t("<a>").attr({class:"ui-datepicker-next ui-corner-all","data-handler":"next","data-event":"click",title:n}).append(t("<span>").addClass("ui-icon ui-icon-circle-triangle-"+(N?"w":"e")).text(n))[0].outerHTML:$?"":t("<a>").attr({class:"ui-datepicker-next ui-corner-all ui-state-disabled",title:n}).append(t("<span>").attr("class","ui-icon ui-icon-circle-triangle-"+(N?"w":"e")).text(n))[0].outerHTML,a=this._get(e,"currentText"),h=this._get(e,"gotoCurrent")&&e.currentDay?J:Y,a=V?this.formatDate(a,h,this._getFormatConfig(e)):a,l="",e.inline||(l=t("<button>").attr({type:"button",class:"ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all","data-handler":"hide","data-event":"click"}).text(this._get(e,"closeText"))[0].outerHTML),c="",X&&(c=t("<div class='ui-datepicker-buttonpane ui-widget-content'>").append(N?l:"").append(this._isInRange(e,h)?t("<button>").attr({type:"button",class:"ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all","data-handler":"today","data-event":"click"}).text(a):"").append(N?"":l)[0].outerHTML),u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),p=this._get(e,"dayNames"),g=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),_=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),x="",C=0;C<G[0];C++){for(S="",this.maxRows=4,T=0;T<G[1];T++){if(k=this._daylightSavingAdjust(new Date(et,tt,e.selectedDay)),D=" ui-corner-all",O="",q){if(O+="<div class='ui-datepicker-group",G[1]>1)switch(T){case 0:O+=" ui-datepicker-group-first",D=" ui-corner-"+(N?"right":"left");break;case G[1]-1:O+=" ui-datepicker-group-last",D=" ui-corner-"+(N?"left":"right");break;default:O+=" ui-datepicker-group-middle",D=""}O+="'>"}for(O+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+D+"'>"+(/all|left/.test(D)&&0===C?N?o:r:"")+(/all|right/.test(D)&&0===C?N?r:o:"")+this._generateMonthYearHeader(e,tt,et,Q,Z,C>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead><tr>",M=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",w=0;w<7;w++)M+="<th scope='col'"+((w+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+"><span title='"+p[P=(w+u)%7]+"'>"+g[P]+"</span></th>";for(O+=M+"</tr></thead><tbody>",E=this._getDaysInMonth(et,tt),et===e.selectedYear&&tt===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,E)),A=(this._getFirstDayOfMonth(et,tt)-u+7)%7,F=Math.ceil((A+E)/7),I=q&&this.maxRows>F?this.maxRows:F,this.maxRows=I,j=this._daylightSavingAdjust(new Date(et,tt,1-A)),L=0;L<I;L++){for(O+="<tr>",R=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(j)+"</td>":"",w=0;w<7;w++)z=_?_.apply(e.input?e.input[0]:null,[j]):[!0,""],H=(B=j.getMonth()!==tt)&&!y||!z[0]||Q&&j<Q||Z&&j>Z,R+="<td class='"+((w+u+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(j.getTime()===k.getTime()&&tt===e.selectedMonth&&e._keyEvent||b.getTime()===j.getTime()&&b.getTime()===k.getTime()?" "+this._dayOverClass:"")+(H?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!v?"":" "+z[1]+(j.getTime()===J.getTime()?" "+this._currentClass:"")+(j.getTime()===Y.getTime()?" ui-datepicker-today":""))+"'"+(B&&!v||!z[2]?"":" title='"+z[2].replace(/'/g,"&#39;")+"'")+(H?"":" data-handler='selectDay' data-event='click' data-month='"+j.getMonth()+"' data-year='"+j.getFullYear()+"'")+">"+(B&&!v?"&#xa0;":H?"<span class='ui-state-default'>"+j.getDate()+"</span>":"<a class='ui-state-default"+(j.getTime()===Y.getTime()?" ui-state-highlight":"")+(j.getTime()===J.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+"' href='#' aria-current='"+(j.getTime()===J.getTime()?"true":"false")+"' data-date='"+j.getDate()+"'>"+j.getDate()+"</a>")+"</td>",j.setDate(j.getDate()+1),j=this._daylightSavingAdjust(j);O+=R+"</tr>"}++tt>11&&(tt=0,et++),S+=O+="</tbody></table>"+(q?"</div>"+(G[0]>0&&T===G[1]-1?"<div class='ui-datepicker-row-break'></div>":""):"")}x+=S}return x+=c,e._keyEvent=!1,x},_generateMonthYearHeader:function(t,e,i,s,r,n,o,a){var h,l,c,u,d,p,g,f,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),y=this._get(t,"selectMonthLabel"),b=this._get(t,"selectYearLabel"),x="<div class='ui-datepicker-title'>",w="";if(n||!m)w+="<span class='ui-datepicker-month'>"+o[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=r&&r.getFullYear()===i,w+="<select class='ui-datepicker-month' aria-label='"+y+"' data-handler='selectMonth' data-event='change'>",c=0;c<12;c++)(!h||c>=s.getMonth())&&(!l||c<=r.getMonth())&&(w+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+a[c]+"</option>");w+="</select>"}if(v||(x+=w+(!n&&m&&_?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",n||!_)x+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},g=p(u[0]),f=Math.max(g,p(u[1]||"")),g=s?Math.max(g,s.getFullYear()):g,f=r?Math.min(f,r.getFullYear()):f,t.yearshtml+="<select class='ui-datepicker-year' aria-label='"+b+"' data-handler='selectYear' data-event='change'>";g<=f;g++)t.yearshtml+="<option value='"+g+"'"+(g===i?" selected='selected'":"")+">"+g+"</option>";t.yearshtml+="</select>",x+=t.yearshtml,t.yearshtml=null}return x+=this._get(t,"yearSuffix"),v&&(x+=(!n&&m&&_?"":"&#xa0;")+w),x+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),r=t.selectedMonth+("M"===i?e:0),n=Math.min(t.selectedDay,this._getDaysInMonth(s,r))+("D"===i?e:0),o=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,r,n)));t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),"M"!==i&&"Y"!==i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),r=i&&e<i?i:e;return s&&r>s?s:r},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var r=this._getNumberOfMonths(t),n=this._daylightSavingAdjust(new Date(i,s+(e<0?e:r[0]*r[1]),1));return e<0&&n.setDate(this._getDaysInMonth(n.getFullYear(),n.getMonth())),this._isInRange(t,n)},_isInRange:function(t,e){var i,s,r=this._getMinMaxDate(t,"min"),n=this._getMinMaxDate(t,"max"),o=null,a=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),a=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(a+=s)),(!r||e.getTime()>=r.getTime())&&(!n||e.getTime()<=n.getTime())&&(!o||e.getFullYear()>=o)&&(!a||e.getFullYear()<=a)},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var r=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),r,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each((function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)})):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.14.1",t.datepicker},void 0===(n="function"==typeof s?s.apply(e,r):s)||(t.exports=n)}()},71193(t,e,i){var s,r,n;
34/*!
35 * jQuery UI Dialog 1.14.1
36 * https://jqueryui.com
37 *
38 * Copyright OpenJS Foundation and other contributors
39 * Released under the MIT license.
40 * https://jquery.org/license
41 */!function(){"use strict";r=[i(19636),i(58481),i(41758),i(23662),i(68604),i(61255),i(41897),i(4224),i(67144),i(15304),i(56883),i(69139)],s=function(t){t.widget("ui.dialog",{version:"1.14.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;i<0&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,uiDialogTitleHeadingLevel:0,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),(t=e.parent.children().eq(e.index)).length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&!1!==this._trigger("beforeClose",e)&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t(this.document[0].activeElement).trigger("blur"),this._hide(this.uiDialog,this.options.hide,(function(){i._trigger("close",e)})))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,r=this.uiDialog.siblings(".ui-front:visible").map((function(){return+t(this).css("z-index")})).get(),n=Math.max.apply(null,r);return n>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",n+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=t(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,(function(){e._focusTabbable(),e._trigger("focus")})),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_restoreTabbableFocus:function(){var e=this.document[0].activeElement;this.uiDialog[0]===e||t.contains(this.uiDialog[0],e)||this._focusTabbable()},_keepFocus:function(t){t.preventDefault(),this._restoreTabbableFocus()},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog","aria-modal":this.options.modal?"true":null}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),void this.close(e);if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.first(),r=i.last();e.target!==r[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay((function(){r.trigger("focus")})),e.preventDefault()):(this._delay((function(){s.trigger("focus")})),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}});var i=Number.isInteger(this.options.uiDialogTitleHeadingLevel)&&this.options.uiDialogTitleHeadingLevel>0&&this.options.uiDialogTitleHeadingLevel<=6?"h"+this.options.uiDialogTitleHeadingLevel:"span";e=t("<"+i+">").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||Array.isArray(i)&&!i.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(t.each(i,(function(i,s){var r,n;s="function"==typeof s?{click:s,text:i}:s,s=t.extend({type:"button"},s),r=s.click,n={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(n).appendTo(e.uiButtonSet).on("click",(function(){r.apply(e.element[0],arguments)}))})),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){var e=this,i=this.options;function s(t){return{position:t.position,offset:t.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(i,r){e._addClass(t(this),"ui-dialog-dragging"),e._blockFrames(),e._trigger("dragStart",i,s(r))},drag:function(t,i){e._trigger("drag",t,s(i))},stop:function(r,n){var o=n.offset.left-e.document.scrollLeft(),a=n.offset.top-e.document.scrollTop();i.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" top"+(a>=0?"+":"")+a,of:e.window},e._removeClass(t(this),"ui-dialog-dragging"),e._unblockFrames(),e._trigger("dragStop",r,s(n))}})},_makeResizable:function(){var e=this,i=this.options,s=i.resizable,r=this.uiDialog.css("position"),n="string"==typeof s?s:"n,e,s,w,se,sw,ne,nw";function o(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:n,start:function(i,s){e._addClass(t(this),"ui-dialog-resizing"),e._blockFrames(),e._trigger("resizeStart",i,o(s))},resize:function(t,i){e._trigger("resize",t,o(i))},stop:function(s,r){var n=e.uiDialog.offset(),a=n.left-e.document.scrollLeft(),h=n.top-e.document.scrollTop();i.height=e.uiDialog.height(),i.width=e.uiDialog.width(),i.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" top"+(h>=0?"+":"")+h,of:e.window},e._removeClass(t(this),"ui-dialog-resizing"),e._unblockFrames(),e._trigger("resizeStop",s,o(r))}}).css("position",r)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,r={};t.each(e,(function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(r[t]=e)})),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",r)},_setOption:function(e,i){var s,r,n=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&((s=n.is(":data(ui-draggable)"))&&!i&&n.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&((r=n.is(":data(ui-resizable)"))&&!i&&n.resizable("destroy"),r&&"string"==typeof i&&n.resizable("option","handles",i),r||!1===i||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")),"modal"===e&&n.attr("aria-modal",i?"true":null))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map((function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]}))},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return!!t(e.target).closest(".ui-dialog").length||!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay((function(){e=!1})),this.document.data("ui-dialog-overlays")||this.document.on("focusin.ui-dialog",function(t){if(!e){var i=this._trackingInstances()[0];i._allowInteraction(t)||(t.preventDefault(),i._focusTabbable())}}.bind(this)),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this.document.off("focusin.ui-dialog"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),!0===t.uiBackCompat&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}});return t.ui.dialog},void 0===(n="function"==typeof s?s.apply(e,r):s)||(t.exports=n)}()},41758(t,e,i){var s,r,n;
42/*!
43 * jQuery UI Draggable 1.14.1
44 * https://jqueryui.com
45 *
46 * Copyright OpenJS Foundation and other contributors
47 * Released under the MIT license.
48 * https://jquery.org/license
49 */!function(){"use strict";r=[i(19636),i(23662),i(69983),i(12336),i(82299),i(56883),i(69139)],void 0===(n="function"==typeof(s=function(t){return t.widget("ui.draggable",t.ui.mouse,{version:"1.14.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){(this.helper||this.element).is(".ui-draggable-dragging")?this.destroyOnClear=!0:(this._removeHandleClassName(),this._mouseDestroy())},_mouseCapture:function(e){var i=this.options;return!(this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0)&&(this.handle=this._getHandle(e),!!this.handle&&(this._blurActiveElement(e),this._blockFrames(!0===i.iframeFix?"iframe":i.iframeFix),!0))},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map((function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]}))},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=this.document[0].activeElement;t(e.target).closest(i).length||t(i).trigger("blur")},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter((function(){return"fixed"===t(this).css("position")})).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),!1===this._trigger("start",e)?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(!1===this._trigger("drag",e,s))return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||!0===this.options.revert||"function"==typeof this.options.revert&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),(function(){!1!==i._trigger("stop",e)&&i._clear()})):!1!==this._trigger("stop",e)&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return!this.options.handle||!!t(e.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s="function"==typeof i.helper,r=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&r[0]===this.element[0]&&this._setPositionRelative(),r[0]===this.element[0]||/(fixed|absolute)/.test(r.css("position"))||r.css("position","absolute"),r},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),Array.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,r=this.options,n=this.document[0];this.relativeContainer=null,r.containment?"window"!==r.containment?"document"!==r.containment?r.containment.constructor!==Array?("parent"===r.containment&&(r.containment=this.helper[0].parentNode),(s=(i=t(r.containment))[0])&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i)):this.containment=r.containment:this.containment=[0,0,t(n).width()-this.helperProportions.width-this.margins.left,(t(n).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=null},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,r,n,o=this.options,a=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(r=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?r-this.offset.click.top>=i[1]||r-this.offset.click.top>i[3]?r:r-this.offset.click.top>=i[1]?r-o.grid[1]:r+o.grid[1]:r,n=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?n-this.offset.click.left>=i[0]||n-this.offset.click.left>i[2]?n:n-this.offset.click.left>=i[0]?n-o.grid[0]:n+o.grid[0]:n),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var r=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each((function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,r))}))},stop:function(e,i,s){var r=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,(function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,r))}))},drag:function(e,i,s){t.each(s.sortables,(function(){var r=!1,n=this;n.positionAbs=s.positionAbs,n.helperProportions=s.helperProportions,n.offset.click=s.offset.click,n._intersectsWith(n.containerCache)&&(r=!0,t.each(s.sortables,(function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==n&&this._intersectsWith(this.containerCache)&&t.contains(n.element[0],this.element[0])&&(r=!1),r}))),r?(n.isOver||(n.isOver=1,s._parent=i.helper.parent(),n.currentItem=i.helper.appendTo(n.element).data("ui-sortable-item",!0),n.options._helper=n.options.helper,n.options.helper=function(){return i.helper[0]},e.target=n.currentItem[0],n._mouseCapture(e,!0),n._mouseStart(e,!0,!0),n.offset.click.top=s.offset.click.top,n.offset.click.left=s.offset.click.left,n.offset.parent.left-=s.offset.parent.left-n.offset.parent.left,n.offset.parent.top-=s.offset.parent.top-n.offset.parent.top,s._trigger("toSortable",e),s.dropped=n.element,t.each(s.sortables,(function(){this.refreshPositions()})),s.currentItem=s.element,n.fromOutside=s),n.currentItem&&(n._mouseDrag(e),i.position=n.position)):n.isOver&&(n.isOver=0,n.cancelHelperRemoval=!0,n.options._revert=n.options.revert,n.options.revert=!1,n._trigger("out",e,n._uiHash(n)),n._mouseStop(e,!0),n.options.revert=n.options._revert,n.options.helper=n.options._helper,n.placeholder&&n.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,(function(){this.refreshPositions()})))}))}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var r=t("body"),n=s.options;r.css("cursor")&&(n._cursor=r.css("cursor")),r.css("cursor",n.cursor)},stop:function(e,i,s){var r=s.options;r._cursor&&t("body").css("cursor",r._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var r=t(i.helper),n=s.options;r.css("opacity")&&(n._opacity=r.css("opacity")),r.css("opacity",n.opacity)},stop:function(e,i,s){var r=s.options;r._opacity&&t(i.helper).css("opacity",r._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var r=s.options,n=!1,o=s.scrollParentNotHidden[0],a=s.document[0];o!==a&&"HTML"!==o.tagName?(r.axis&&"x"===r.axis||(s.overflowOffset.top+o.offsetHeight-e.pageY<r.scrollSensitivity?o.scrollTop=n=o.scrollTop+r.scrollSpeed:e.pageY-s.overflowOffset.top<r.scrollSensitivity&&(o.scrollTop=n=o.scrollTop-r.scrollSpeed)),r.axis&&"y"===r.axis||(s.overflowOffset.left+o.offsetWidth-e.pageX<r.scrollSensitivity?o.scrollLeft=n=o.scrollLeft+r.scrollSpeed:e.pageX-s.overflowOffset.left<r.scrollSensitivity&&(o.scrollLeft=n=o.scrollLeft-r.scrollSpeed))):(r.axis&&"x"===r.axis||(e.pageY-t(a).scrollTop()<r.scrollSensitivity?n=t(a).scrollTop(t(a).scrollTop()-r.scrollSpeed):t(window).height()-(e.pageY-t(a).scrollTop())<r.scrollSensitivity&&(n=t(a).scrollTop(t(a).scrollTop()+r.scrollSpeed))),r.axis&&"y"===r.axis||(e.pageX-t(a).scrollLeft()<r.scrollSensitivity?n=t(a).scrollLeft(t(a).scrollLeft()-r.scrollSpeed):t(window).width()-(e.pageX-t(a).scrollLeft())<r.scrollSensitivity&&(n=t(a).scrollLeft(t(a).scrollLeft()+r.scrollSpeed)))),!1!==n&&t.ui.ddmanager&&!r.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var r=s.options;s.snapElements=[],t(r.snap.constructor!==String?r.snap.items||":data(ui-draggable)":r.snap).each((function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})}))},drag:function(e,i,s){var r,n,o,a,h,l,c,u,d,p,g=s.options,f=g.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,y=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)l=(h=s.snapElements[d].left-s.margins.left)+s.snapElements[d].width,u=(c=s.snapElements[d].top-s.margins.top)+s.snapElements[d].height,_<h-f||m>l+f||y<c-f||v>u+f||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==g.snapMode&&(r=Math.abs(c-y)<=f,n=Math.abs(u-v)<=f,o=Math.abs(h-_)<=f,a=Math.abs(l-m)<=f,r&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=r||n||o||a,"outer"!==g.snapMode&&(r=Math.abs(c-v)<=f,n=Math.abs(u-y)<=f,o=Math.abs(h-m)<=f,a=Math.abs(l-_)<=f,r&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(r||n||o||a||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=r||n||o||a||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var r,n=s.options,o=t.makeArray(t(n.stack)).sort((function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)}));o.length&&(r=parseInt(t(o[0]).css("zIndex"),10)||0,t(o).each((function(e){t(this).css("zIndex",r+e)})),this.css("zIndex",r+o.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var r=t(i.helper),n=s.options;r.css("zIndex")&&(n._zIndex=r.css("zIndex")),r.css("zIndex",n.zIndex)},stop:function(e,i,s){var r=s.options;r._zIndex&&t(i.helper).css("zIndex",r._zIndex)}}),t.ui.draggable})?s.apply(e,r):s)||(t.exports=n)}()},23662(t,e,i){var s,r,n;
50/*!
51 * jQuery UI Mouse 1.14.1
52 * https://jqueryui.com
53 *
54 * Copyright OpenJS Foundation and other contributors
55 * Released under the MIT license.
56 * https://jquery.org/license
57 */!function(){"use strict";r=[i(19636),i(56883),i(69139)],void 0===(n="function"==typeof(s=function(t){var e=!1;return t(document).on("mouseup",(function(){e=!1})),t.widget("ui.mouse",{version:"1.14.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,(function(t){return e._mouseDown(t)})).on("click."+this.widgetName,(function(i){if(!0===t.data(i.target,e.widgetName+".preventClickEvent"))return t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1})),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!e){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,r=1===i.which,n="string"==typeof this.options.cancel&&t(i.target).closest(this.options.cancel).length;return!(r&&!n&&this._mouseCapture(i))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout((function(){s.mouseDelayMet=!0}),this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=!1!==this._mouseStart(i),!this._mouseStarted)?(i.preventDefault(),!0):(!0===t.data(i.target,this.widgetName+".preventClickEvent")&&t.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return s._mouseMove(t)},this._mouseUpDelegate=function(t){return s._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),e=!0,!0))}},_mouseMove:function(t){if(this._mouseMoved&&!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t);return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(i){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,i.target===this._mouseDownEvent.target&&t.data(i.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(i)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,e=!1,i.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})?s.apply(e,r):s)||(t.exports=n)}()},68604(t,e,i){var s,r,n;
58/*!
59 * jQuery UI Resizable 1.14.1
60 * https://jqueryui.com
61 *
62 * Copyright OpenJS Foundation and other contributors
63 * Released under the MIT license.
64 * https://jquery.org/license
65 */!function(){"use strict";r=[i(19636),i(23662),i(724),i(12336),i(56883),i(69139)],s=function(t){return t.widget("ui.resizable",t.ui.mouse,{version:"1.14.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){var s,r=!1,n=t(e).css("overflow");if("hidden"===n)return!1;if("scroll"===n)return!0;
vendor: 16,479 bytes, line 65
65if(e[s=i&&"left"===i?"scrollLeft":"scrollTop"]>0)return!0;try{e[s]=1,r=e[s]>0,e[s]=0}catch(t){}return r},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper'></div>").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",(function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())})).on("mouseleave",(function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable")};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var e,i,s,r,n,o=this.options,a=this;if(this.handles=o.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this._addedHandles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;i<s.length;i++)r="ui-resizable-"+(e=String.prototype.trim.call(s[i])),n=t("<div>"),this._addClass(n,"ui-resizable-handle "+r),n.css({zIndex:o.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.children(this.handles[e]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(e){var i,s,r,n;for(i in e=e||this.element,this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),n=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),r=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(r,n),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",(function(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=n&&n[1]?n[1]:"se")})),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(e){var i,s,r=!1;for(i in this.handles)((s=t(this.handles[i])[0])===e.target||t.contains(s,e.target))&&(r=!0);return!this.options.disabled&&r},_mouseStart:function(e){var i,s,r,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this._helper||(n=this._calculateAdjustedElementDimensions(a)),this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width,height:n.height},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:n.width,height:n.height},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,r=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===r?this.axis+"-resize":r),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,r=this.originalMousePosition,n=this.axis,o=e.pageX-r.left||0,a=e.pageY-r.top||0,h=this._change[n];return this._updatePrevProperties(),!!h&&(i=h.apply(this,[e,o,a]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1)},_mouseStop:function(e){this.resizing=!1;var i,s,r,n,o,a,h,l=this.options,c=this;return this._helper&&(r=(s=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,n=s?0:c.sizeDiff.width,o={width:c.helper.width()-n,height:c.helper.height()-r},a=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(o,{top:h,left:a})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.helper.css(t),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px",this.helper.width(t.width)),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px",this.helper.height(t.height)),t},_updateVirtualBoundaries:function(t){var e,i,s,r,n,o=this.options;n={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,s=n.minWidth/this.aspectRatio,i=n.maxHeight*this.aspectRatio,r=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),s>n.minHeight&&(n.minHeight=s),i<n.maxWidth&&(n.maxWidth=i),r<n.maxHeight&&(n.maxHeight=r)),this._vBoundaries=n},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,r=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,n=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,o=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return n&&(t.width=e.minWidth),o&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),r&&(t.height=e.maxHeight),n&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),o&&c&&(t.top=h-e.minHeight),r&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],r=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(r[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_calculateAdjustedElementDimensions:function(t){var e,i,s,r=t.get(0);return"content-box"!==t.css("box-sizing")||!this._hasScroll(r)&&!this._hasScroll(r,"left")?{height:parseFloat(t.css("height")),width:parseFloat(t.css("width"))}:(e=parseFloat(r.style.width),i=parseFloat(r.style.height),s=this._getPaddingPlusBorderDimensions(t),e=isNaN(e)?this._getElementTheoreticalSize(t,s,"width"):e,{height:i=isNaN(i)?this._getElementTheoreticalSize(t,s,"height"):i,width:e})},_getElementTheoreticalSize:function(t,e,i){return Math.max(0,Math.ceil(t.get(0)["offset"+i[0].toUpperCase()+i.slice(1)]-e[i]-.5))||0},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e<this._proportionallyResizeElements.length;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div></div>").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,r=i._proportionallyResizeElements,n=r.length&&/textarea/i.test(r[0].nodeName),o=n&&i._hasScroll(r[0],"left")?0:i.sizeDiff.height,a=n?0:i.sizeDiff.width,h={width:i.size.width-a,height:i.size.height-o},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};r&&r.length&&t(r[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,r,n,o,a,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each((function(t,s){i[t]=h._num(e.css("padding"+s))})),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,r=h.containerSize.height,n=h.containerSize.width,o=h._hasScroll(d,"left")?d.scrollWidth:n,a=h._hasScroll(d)?d.scrollHeight:r,h.parentData={element:d,left:s.left,top:s.top,width:o,height:a}))},resize:function(e){var i,s,r,n,o=t(this).resizable("instance"),a=o.options,h=o.containerOffset,l=o.position,c=o._aspectRatio||e.shiftKey,u={top:0,left:0},d=o.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-u.left),c&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=a.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),c&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?h.top:0),r=o.containerElement.get(0)===o.element.parent().get(0),n=/relative|absolute/.test(o.containerElement.css("position")),r&&n?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),i=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-u.left:o.offset.left-h.left)),s=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-u.top:o.offset.top-h.top)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,c&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,c&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,r=e.containerPosition,n=e.containerElement,o=t(e.helper),a=o.offset(),h=o.outerWidth()-e.sizeDiff.width,l=o.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(n.css("position"))&&t(this).css({left:a.left-r.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(n.css("position"))&&t(this).css({left:a.left-r.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each((function(){var i=t(this),s=e._calculateAdjustedElementDimensions(i);i.data("ui-resizable-alsoresize",{width:s.width,height:s.height,left:parseFloat(i.css("left")),top:parseFloat(i.css("top"))})}))},resize:function(e,i){var s=t(this).resizable("instance"),r=s.options,n=s.originalSize,o=s.originalPosition,a={height:s.size.height-n.height||0,width:s.size.width-n.width||0,top:s.position.top-o.top||0,left
vendor: 26,360 bytes, lines 65-73
65:s.position.left-o.left||0};t(r.alsoResize).each((function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),r={},n=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(n,(function(t,e){var i=(s[e]||0)+(a[e]||0);i&&i>=0&&(r[e]=i||null)})),e.css(r)}))},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),!0===t.uiBackCompat&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,r=i.size,n=i.originalSize,o=i.originalPosition,a=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((r.width-n.width)/l)*l,d=Math.round((r.height-n.height)/c)*c,p=n.width+u,g=n.height+d,f=s.maxWidth&&s.maxWidth<p,m=s.maxHeight&&s.maxHeight<g,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>g;s.grid=h,_&&(p+=l),v&&(g+=c),f&&(p-=l),m&&(g-=c),/^(se|s|e)$/.test(a)?(i.size.width=p,i.size.height=g):/^(ne)$/.test(a)?(i.size.width=p,i.size.height=g,i.position.top=o.top-d):/^(sw)$/.test(a)?(i.size.width=p,i.size.height=g,i.position.left=o.left-u):((g-c<=0||p-l<=0)&&(e=i._getPaddingPlusBorderDimensions(this)),g-c>0?(i.size.height=g,i.position.top=o.top-d):(g=c-e.height,i.size.height=g,i.position.top=o.top+n.height-g),p-l>0?(i.size.width=p,i.position.left=o.left-u):(p=l-e.width,i.size.width=p,i.position.left=o.left+n.width-p))}}),t.ui.resizable},void 0===(n="function"==typeof s?s.apply(e,r):s)||(t.exports=n)}()},65285(t,e,i){var s,r,n;
66/*!
67 * jQuery UI Sortable 1.14.1
68 * https://jqueryui.com
69 *
70 * Copyright OpenJS Foundation and other contributors
71 * Released under the MIT license.
72 * https://jquery.org/license
73 */!function(){"use strict";r=[i(19636),i(23662),i(69983),i(82299),i(56883),i(69139)],s=function(t){return t.widget("ui.sortable",t.ui.mouse,{version:"1.14.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&t<e+i},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,(function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")}))},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,r=!1,n=this;return!this.reverting&&(!this.options.disabled&&"static"!==this.options.type&&(this._refreshItems(e),t(e.target).parents().each((function(){if(t.data(this,n.widgetName+"-item")===n)return s=t(this),!1})),t.data(e.target,n.widgetName+"-item")===n&&(s=t(e.target)),!!s&&(!(this.options.handle&&!i&&(t(this.options.handle,s).find("*").addBack().each((function(){this===e.target&&(r=!0)})),!r))&&(this.currentItem=s,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(e,i,s){var r,n,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.appendTo=t("parent"!==o.appendTo?o.appendTo:this.currentItem.parent()),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),this.scrollParent=this.placeholder.scrollParent(),t.extend(this.offset,{parent:this._getParentOffset()}),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(n=this.document.find("body"),this._storedStylesheet=t("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(n)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(r=this.containers.length-1;r>=0;r--)this.containers[r]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo("absolute"),this._mouseDrag(e),!0},_scroll:function(t){var e=this.options,i=!1;return this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<e.scrollSensitivity?this.scrollParent[0].scrollTop=i=this.scrollParent[0].scrollTop+e.scrollSpeed:t.pageY-this.overflowOffset.top<e.scrollSensitivity&&(this.scrollParent[0].scrollTop=i=this.scrollParent[0].scrollTop-e.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<e.scrollSensitivity?this.scrollParent[0].scrollLeft=i=this.scrollParent[0].scrollLeft+e.scrollSpeed:t.pageX-this.overflowOffset.left<e.scrollSensitivity&&(this.scrollParent[0].scrollLeft=i=this.scrollParent[0].scrollLeft-e.scrollSpeed)):(t.pageY-this.document.scrollTop()<e.scrollSensitivity?i=this.document.scrollTop(this.document.scrollTop()-e.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<e.scrollSensitivity&&(i=this.document.scrollTop(this.document.scrollTop()+e.scrollSpeed)),t.pageX-this.document.scrollLeft()<e.scrollSensitivity?i=this.document.scrollLeft(this.document.scrollLeft()-e.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<e.scrollSensitivity&&(i=this.document.scrollLeft(this.document.scrollLeft()+e.scrollSpeed))),i},_mouseDrag:function(e){var i,s,r,n,o=this.options;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),o.scroll&&!1!==this._scroll(e)&&(this._refreshItemPositions(!0),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.dragDirection={vertical:this._getDragVerticalDirection(),horizontal:this._getDragHorizontalDirection()},i=this.items.length-1;i>=0;i--)if(r=(s=this.items[i]).item[0],(n=this._intersectsWithPointer(s))&&s.instance===this.currentContainer&&!(r===this.currentItem[0]||this.placeholder[1===n?"next":"prev"]()[0]===r||t.contains(this.placeholder[0],r)||"semi-dynamic"===this.options.type&&t.contains(this.element[0],r))){if(this.direction=1===n?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,r=this.placeholder.offset(),n=this.options.axis,o={};n&&"x"!==n||(o.left=r.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),n&&"y"!==n||(o.top=r.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(o,parseInt(this.options.revert,10)||500,(function(){s._clear(e)}))}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each((function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))})),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each((function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")})),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,r=s+this.helperProportions.height,n=t.left,o=n+t.width,a=t.top,h=a+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>a&&s+l<h,d="y"===this.options.axis||e+c>n&&e+c<o,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:n<e+this.helperProportions.width/2&&i-this.helperProportions.width/2<o&&a<s+this.helperProportions.height/2&&r-this.helperProportions.height/2<h},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),r="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width);return!(!s||!r)&&(e=this.dragDirection.vertical,i=this.dragDirection.horizontal,this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1))},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this.dragDirection.vertical,r=this.dragDirection.horizontal;return this.floating&&r?"right"===r&&i||"left"===r&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){var i,s,r,n,o=[],a=[],h=this._connectWith();if(h&&e)for(i=h.length-1;i>=0;i--)for(s=(r=t(h[i],this.document[0])).length-1;s>=0;s--)(n=t.data(r[s],this.widgetFullName))&&n!==this&&!n.options.disabled&&a.push(["function"==typeof n.options.items?n.options.items.call(n.element):t(n.options.items,n.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),n]);function l(){o.push(this)}for(a.push(["function"==typeof this.options.items?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=a.length-1;i>=0;i--)a[i][0].each(l);return t(o)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,(function(t){for(var i=0;i<e.length;i++)if(e[i]===t.item[0])return!1;return!0}))},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,r,n,o,a,h,l,c=this.items,u=[["function"==typeof this.options.items?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(s=(r=t(d[i],this.document[0])).length-1;s>=0;s--)(n=t.data(r[s],this.widgetFullName))&&n!==this&&!n.options.disabled&&(u.push(["function"==typeof n.options.items?n.options.items.call(n.element[0],e,{item:this.currentItem}):t(n.options.items,n.element),n]),this.containers.push(n));for(i=u.length-1;i>=0;i--)for(o=u[i][1],s=0,l=(a=u[i][0]).length;s<l;s++)(h=t(a[s])).data(this.widgetName+"-item",o),c.push({item:h,instance:o,width:0,height:0,left:0,top:0})},_refreshItemPositions:function(e){var i,s,r,n;for(i=this.items.length-1;i>=0;i--)s=this.items[i],this.currentContainer&&s.instance!==this.currentContainer&&s.item[0]!==this.currentItem[0]||(r=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=r.outerWidth(),s.height=r.outerHeight()),n=r.offset(),s.left=n.left,s.top=n.top)},refreshPositions:function(t){var e,i;if(this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),this._refreshItemPositions(t),this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(e=this.containers.length-1;e>=0;e--)i=this.containers[e].element.offset(),this.containers[e].containerCache.left=i.left,this.containers[e].containerCache.top=i.top,this.containers[e].containerCache.width=this.containers[e].element.outerWidth(),this.containers[e].containerCache.height=this.containers[e].element.outerHeight();return this},_createPlaceholder:function(e){var i,s,r=(e=e||this).options;r.placeholder&&r.placeholder.constructor!==String||(i=r.placeholder,s=e.currentItem[0].nodeName.toLowerCase(),r.placeholder={element:function(){var r=t("<"+s+">",e.document[0]);return e._addClass(r,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(r,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(r)):"tr"===s?e._createTrPlaceholder(e.currentItem,r):"img"===s&&r.attr("src",e.currentItem.attr("src")),i||r.css("visibility","hidden"),r},update:function(t,n){i&&!r.forcePlaceholderSize||(n.height()&&(!r.forcePlaceholderSize||"tbody"!==s&&"tr"!==s)||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(r.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),r.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each((function(){t("<td>&#160;</td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)}))},_contactContainers:function(e){var i,s,r,n,o,a,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(r=1e4,n=null,o=(c=d.floating||this._isFloating(this.currentItem))?"left":"top",a=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,e[u]-h>this.items[s][a]/2&&(l=!0),Math.abs(e[u]-h)<r&&(r=Math.abs(e[u]-h),n=this.items[s],this.direction=l?"up":"down"));if(!n&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return void(this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1));n?this._rearrange(e,n,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.scrollParent=this.placeholder.scrollParent(),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s="function"==typeof i.helper?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||this.appendTo[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),s[0].style.width&&!i.forceHelperSize||s.width(this.currentItem.width()),s[0].style.height&&!i.forceHelperSize||s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),Array.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this.offsetParent[0]===this.document[0].body&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,r=this.options;"parent"===r.containment&&(r.containment=this.helper[0].parentNode),"document"!==r.containment&&"window"!==r.containment||(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===r.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===r.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(r.containment)||(e=t(r.containment)[0],i=t(r.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,n=/(html|body)/i.test(r[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():n?0:r.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():n?0:r.scrollLeft())*s}},_generatePosition:function(e){var i,s,r=this.options,n=e.pageX,o=e.pageY,a="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(a[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(n=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(n=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),r.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/r.grid[1])*r.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-r.grid[1]:i+r.grid[1]:i,s=this.originalPageX+Math.round((n-this.originalPageX)/r.grid[0])*r.grid[0],n=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-r.grid[0]:s+r.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:a.scrollTop()),left:n-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:a.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var r=this.counter;this._delay((function(){r===this.counter&&this.refreshPositions(!s)}))},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function r(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}for(this.fromOutside&&!e&&s.push((function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))})),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push((function(t){this._trigger("update",t,this._uiHash())})),this!==this.currentContainer&&(e||(s.push((function(t){this._trigger("remove",t,this._uiHash())})),s.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;
vendor: 1,180 bytes, line 73
73i--)e||s.push(r("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(r("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this._storedStylesheet&&(this._storedStylesheet.remove(),this._storedStylesheet=null),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i<s.length;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){!1===t.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})},void 0===(n="function"==typeof s?s.apply(e,r):s)||(t.exports=n)}()}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.