gridjs-spreadsheet 22.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/05f087c9088a0b2278c09809fc7b57c7.svg +832 -0
- package/555f60323063f2b68b6eac7ce9c45b19.svg +88 -0
- package/package.json +37 -0
- package/readme.md +166 -0
- package/xspreadsheet.css +1373 -0
- package/xspreadsheet.css.map +1 -0
- package/xspreadsheet.js +12 -0
- package/xspreadsheet.js.map +1 -0
package/xspreadsheet.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
!function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=38)}([function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function i(e){return t.exports=i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},t.exports.default=t.exports,t.exports.__esModule=!0,i(e)}t.exports=i,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function i(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}t.exports=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(24);t.exports=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&n(t,e)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(13).default,r=i(8);t.exports=function(t,e){if(e&&("object"===n(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return r(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(16),r=i(21),o=i(15),a=i(18);t.exports=function(t,e){return n(t)||r(t,e)||o(t,e)||a()},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(22),r=i(19),o=i(15),a=i(23);t.exports=function(t){return n(t)||r(t)||o(t)||a()},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(26);function r(){return"undefined"!=typeof Reflect&&Reflect.get?(t.exports=r=Reflect.get,t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=r=function(t,e,i){var r=n(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(arguments.length<3?t:i):o.value}},t.exports.default=t.exports,t.exports.__esModule=!0),r.apply(this,arguments)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){(function(t){
|
|
2
|
+
/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */
|
|
3
|
+
var n,r,o,a,s,l,c,h,u,f,d,v,g,p,m,y,b,w,x,C,k,_,S=S||{version:"4.6.0"};if(e.fabric=S,"undefined"!=typeof document&&"undefined"!=typeof window)document instanceof("undefined"!=typeof HTMLDocument?HTMLDocument:Document)?S.document=document:S.document=document.implementation.createHTMLDocument(""),S.window=window;else{var T=new(i(32).JSDOM)(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;S.document=T.document,S.jsdomImplForWrapper=i(33).implForWrapper,S.nodeCanvas=i(34).Canvas,S.window=T,DOMParser=S.window.DOMParser}function O(t,e){var i=t.canvas,n=e.targetCanvas,r=n.getContext("2d");r.translate(0,n.height),r.scale(1,-1);var o=i.height-n.height;r.drawImage(i,0,o,n.width,n.height,0,0,n.width,n.height)}function E(t,e){var i=e.targetCanvas.getContext("2d"),n=e.destinationWidth,r=e.destinationHeight,o=n*r*4,a=new Uint8Array(this.imageBuffer,0,o),s=new Uint8ClampedArray(this.imageBuffer,0,o);t.readPixels(0,0,n,r,t.RGBA,t.UNSIGNED_BYTE,a);var l=new ImageData(s,n,r);i.putImageData(l,0,0)}S.isTouchSupported="ontouchstart"in S.window||"ontouchstart"in S.document||S.window&&S.window.navigator&&S.window.navigator.maxTouchPoints>0,S.isLikelyNode=void 0!==t&&"undefined"==typeof window,S.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],S.DPI=96,S.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",S.commaWsp="(?:\\s+,?\\s*|,\\s*)",S.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,S.reNonWord=/[ \n\.,;!\?\-]/,S.fontPaths={},S.iMatrix=[1,0,0,1,0,0],S.svgNS="http://www.w3.org/2000/svg",S.perfLimitSizeTotal=2097152,S.maxCacheSideLimit=4096,S.minCacheSideLimit=256,S.charWidthsCache={},S.textureSize=2048,S.disableStyleCopyPaste=!1,S.enableGLFiltering=!0,S.devicePixelRatio=S.window.devicePixelRatio||S.window.webkitDevicePixelRatio||S.window.mozDevicePixelRatio||1,S.browserShadowBlurConstant=1,S.arcToSegmentsCache={},S.boundsOfCurveCache={},S.cachesBoundsOfCurve=!0,S.forceGLPutImageData=!1,S.initFilterBackend=function(){return S.enableGLFiltering&&S.isWebglSupported&&S.isWebglSupported(S.textureSize)?(console.log("max texture size: "+S.maxTextureSize),new S.WebglFilterBackend({tileSize:S.textureSize})):S.Canvas2dFilterBackend?new S.Canvas2dFilterBackend:void 0},"undefined"!=typeof document&&"undefined"!=typeof window&&(window.fabric=S),function(){function t(t,e){if(this.__eventListeners[t]){var i=this.__eventListeners[t];e?i[i.indexOf(e)]=!1:S.util.array.fill(i,!1)}}function e(t,e){var i=function(){e.apply(this,arguments),this.off(t,i)}.bind(this);this.on(t,i)}S.Observable={fire:function(t,e){if(!this.__eventListeners)return this;var i=this.__eventListeners[t];if(!i)return this;for(var n=0,r=i.length;n<r;n++)i[n]&&i[n].call(this,e||{});return this.__eventListeners[t]=i.filter((function(t){return!1!==t})),this},on:function(t,e){if(this.__eventListeners||(this.__eventListeners={}),1===arguments.length)for(var i in t)this.on(i,t[i]);else this.__eventListeners[t]||(this.__eventListeners[t]=[]),this.__eventListeners[t].push(e);return this},once:function(t,i){if(1===arguments.length)for(var n in t)e.call(this,n,t[n]);else e.call(this,t,i);return this},off:function(e,i){if(!this.__eventListeners)return this;if(0===arguments.length)for(e in this.__eventListeners)t.call(this,e);else if(1===arguments.length&&"object"==typeof arguments[0])for(var n in e)t.call(this,n,e[n]);else t.call(this,e,i);return this}}}(),S.Collection={_objects:[],add:function(){if(this._objects.push.apply(this._objects,arguments),this._onObjectAdded)for(var t=0,e=arguments.length;t<e;t++)this._onObjectAdded(arguments[t]);return this.renderOnAddRemove&&this.requestRenderAll(),this},insertAt:function(t,e,i){var n=this._objects;return i?n[e]=t:n.splice(e,0,t),this._onObjectAdded&&this._onObjectAdded(t),this.renderOnAddRemove&&this.requestRenderAll(),this},remove:function(){for(var t,e=this._objects,i=!1,n=0,r=arguments.length;n<r;n++)-1!==(t=e.indexOf(arguments[n]))&&(i=!0,e.splice(t,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[n]));return this.renderOnAddRemove&&i&&this.requestRenderAll(),this},forEachObject:function(t,e){for(var i=this.getObjects(),n=0,r=i.length;n<r;n++)t.call(e,i[n],n,i);return this},getObjects:function(t){return void 0===t?this._objects.concat():this._objects.filter((function(e){return e.type===t}))},item:function(t){return this._objects[t]},isEmpty:function(){return 0===this._objects.length},size:function(){return this._objects.length},contains:function(t,e){return this._objects.indexOf(t)>-1||!!e&&this._objects.some((function(e){return"function"==typeof e.contains&&e.contains(t,!0)}))},complexity:function(){return this._objects.reduce((function(t,e){return t+=e.complexity?e.complexity():0}),0)}},S.CommonMethods={_setOptions:function(t){for(var e in t)this.set(e,t[e])},_initGradient:function(t,e){!t||!t.colorStops||t instanceof S.Gradient||this.set(e,new S.Gradient(t))},_initPattern:function(t,e,i){!t||!t.source||t instanceof S.Pattern?i&&i():this.set(e,new S.Pattern(t,i))},_setObject:function(t){for(var e in t)this._set(e,t[e])},set:function(t,e){return"object"==typeof t?this._setObject(t):this._set(t,e),this},_set:function(t,e){this[t]=e},toggle:function(t){var e=this.get(t);return"boolean"==typeof e&&this.set(t,!e),this},get:function(t){return this[t]}},n=e,r=Math.sqrt,o=Math.atan2,a=Math.pow,s=Math.PI/180,l=Math.PI/2,S.util={cos:function(t){if(0===t)return 1;switch(t<0&&(t=-t),t/l){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},sin:function(t){if(0===t)return 0;var e=1;switch(t<0&&(e=-1),t/l){case 1:return e;case 2:return 0;case 3:return-e}return Math.sin(t)},removeFromArray:function(t,e){var i=t.indexOf(e);return-1!==i&&t.splice(i,1),t},getRandomInt:function(t,e){return Math.floor(Math.random()*(e-t+1))+t},degreesToRadians:function(t){return t*s},radiansToDegrees:function(t){return t/s},rotatePoint:function(t,e,i){var n=new S.Point(t.x-e.x,t.y-e.y),r=S.util.rotateVector(n,i);return new S.Point(r.x,r.y).addEquals(e)},rotateVector:function(t,e){var i=S.util.sin(e),n=S.util.cos(e);return{x:t.x*n-t.y*i,y:t.x*i+t.y*n}},transformPoint:function(t,e,i){return i?new S.Point(e[0]*t.x+e[2]*t.y,e[1]*t.x+e[3]*t.y):new S.Point(e[0]*t.x+e[2]*t.y+e[4],e[1]*t.x+e[3]*t.y+e[5])},makeBoundingBoxFromPoints:function(t,e){if(e)for(var i=0;i<t.length;i++)t[i]=S.util.transformPoint(t[i],e);var n=[t[0].x,t[1].x,t[2].x,t[3].x],r=S.util.array.min(n),o=S.util.array.max(n)-r,a=[t[0].y,t[1].y,t[2].y,t[3].y],s=S.util.array.min(a);return{left:r,top:s,width:o,height:S.util.array.max(a)-s}},invertTransform:function(t){var e=1/(t[0]*t[3]-t[1]*t[2]),i=[e*t[3],-e*t[1],-e*t[2],e*t[0]],n=S.util.transformPoint({x:t[4],y:t[5]},i,!0);return i[4]=-n.x,i[5]=-n.y,i},toFixed:function(t,e){return parseFloat(Number(t).toFixed(e))},parseUnit:function(t,e){var i=/\D{0,2}$/.exec(t),n=parseFloat(t);switch(e||(e=S.Text.DEFAULT_SVG_FONT_SIZE),i[0]){case"mm":return n*S.DPI/25.4;case"cm":return n*S.DPI/2.54;case"in":return n*S.DPI;case"pt":return n*S.DPI/72;case"pc":return n*S.DPI/72*12;case"em":return n*e;default:return n}},falseFunction:function(){return!1},getKlass:function(t,e){return t=S.util.string.camelize(t.charAt(0).toUpperCase()+t.slice(1)),S.util.resolveNamespace(e)[t]},getSvgAttributes:function(t){var e=["instantiated_by_use","style","id","class"];switch(t){case"linearGradient":e=e.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":e=e.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":e=e.concat(["offset","stop-color","stop-opacity"])}return e},resolveNamespace:function(t){if(!t)return S;var e,i=t.split("."),r=i.length,o=n||S.window;for(e=0;e<r;++e)o=o[i[e]];return o},loadImage:function(t,e,i,n){if(t){var r=S.util.createImage(),o=function(){e&&e.call(i,r,!1),r=r.onload=r.onerror=null};r.onload=o,r.onerror=function(){S.log("Error loading "+r.src),e&&e.call(i,null,!0),r=r.onload=r.onerror=null},0!==t.indexOf("data")&&null!=n&&(r.crossOrigin=n),"data:image/svg"===t.substring(0,14)&&(r.onload=null,S.util.loadImageInDom(r,o)),r.src=t}else e&&e.call(i,t)},loadImageInDom:function(t,e){var i=S.document.createElement("div");i.style.width=i.style.height="1px",i.style.left=i.style.top="-100%",i.style.position="absolute",i.appendChild(t),S.document.querySelector("body").appendChild(i),t.onload=function(){e(),i.parentNode.removeChild(i),i=null}},enlivenObjects:function(t,e,i,n){var r=[],o=0,a=(t=t||[]).length;function s(){++o===a&&e&&e(r.filter((function(t){return t})))}a?t.forEach((function(t,e){t&&t.type?S.util.getKlass(t.type,i).fromObject(t,(function(i,o){o||(r[e]=i),n&&n(t,i,o),s()})):s()})):e&&e(r)},enlivenPatterns:function(t,e){function i(){++r===o&&e&&e(n)}var n=[],r=0,o=(t=t||[]).length;o?t.forEach((function(t,e){t&&t.source?new S.Pattern(t,(function(t){n[e]=t,i()})):(n[e]=t,i())})):e&&e(n)},groupSVGElements:function(t,e,i){var n;return t&&1===t.length?t[0]:(e&&(e.width&&e.height?e.centerPoint={x:e.width/2,y:e.height/2}:(delete e.width,delete e.height)),n=new S.Group(t,e),void 0!==i&&(n.sourcePath=i),n)},populateWithProperties:function(t,e,i){if(i&&"[object Array]"===Object.prototype.toString.call(i))for(var n=0,r=i.length;n<r;n++)i[n]in t&&(e[i[n]]=t[i[n]])},drawDashedLine:function(t,e,i,n,a,s){var l=n-e,c=a-i,h=r(l*l+c*c),u=o(c,l),f=s.length,d=0,v=!0;for(t.save(),t.translate(e,i),t.moveTo(0,0),t.rotate(u),e=0;h>e;)(e+=s[d++%f])>h&&(e=h),t[v?"lineTo":"moveTo"](e,0),v=!v;t.restore()},createCanvasElement:function(){return S.document.createElement("canvas")},copyCanvasElement:function(t){var e=S.util.createCanvasElement();return e.width=t.width,e.height=t.height,e.getContext("2d").drawImage(t,0,0),e},toDataURL:function(t,e,i){return t.toDataURL("image/"+e,i)},createImage:function(){return S.document.createElement("img")},multiplyTransformMatrices:function(t,e,i){return[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]]},qrDecompose:function(t){var e=o(t[1],t[0]),i=a(t[0],2)+a(t[1],2),n=r(i),l=(t[0]*t[3]-t[2]*t[1])/n,c=o(t[0]*t[2]+t[1]*t[3],i);return{angle:e/s,scaleX:n,scaleY:l,skewX:c/s,skewY:0,translateX:t[4],translateY:t[5]}},calcRotateMatrix:function(t){if(!t.angle)return S.iMatrix.concat();var e=S.util.degreesToRadians(t.angle),i=S.util.cos(e),n=S.util.sin(e);return[i,n,-n,i,0,0]},calcDimensionsMatrix:function(t){var e=void 0===t.scaleX?1:t.scaleX,i=void 0===t.scaleY?1:t.scaleY,n=[t.flipX?-e:e,0,0,t.flipY?-i:i,0,0],r=S.util.multiplyTransformMatrices,o=S.util.degreesToRadians;return t.skewX&&(n=r(n,[1,0,Math.tan(o(t.skewX)),1],!0)),t.skewY&&(n=r(n,[1,Math.tan(o(t.skewY)),0,1],!0)),n},composeMatrix:function(t){var e=[1,0,0,1,t.translateX||0,t.translateY||0],i=S.util.multiplyTransformMatrices;return t.angle&&(e=i(e,S.util.calcRotateMatrix(t))),(1!==t.scaleX||1!==t.scaleY||t.skewX||t.skewY||t.flipX||t.flipY)&&(e=i(e,S.util.calcDimensionsMatrix(t))),e},resetObjectTransform:function(t){t.scaleX=1,t.scaleY=1,t.skewX=0,t.skewY=0,t.flipX=!1,t.flipY=!1,t.rotate(0)},saveObjectTransform:function(t){return{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}},isTransparent:function(t,e,i,n){n>0&&(e>n?e-=n:e=0,i>n?i-=n:i=0);var r,o=!0,a=t.getImageData(e,i,2*n||1,2*n||1),s=a.data.length;for(r=3;r<s&&!1!=(o=a.data[r]<=0);r+=4);return a=null,o},parsePreserveAspectRatioAttribute:function(t){var e,i="meet",n=t.split(" ");return n&&n.length&&("meet"!==(i=n.pop())&&"slice"!==i?(e=i,i="meet"):n.length&&(e=n.pop())),{meetOrSlice:i,alignX:"none"!==e?e.slice(1,4):"none",alignY:"none"!==e?e.slice(5,8):"none"}},clearFabricFontCache:function(t){(t=(t||"").toLowerCase())?S.charWidthsCache[t]&&delete S.charWidthsCache[t]:S.charWidthsCache={}},limitDimsByArea:function(t,e){var i=Math.sqrt(e*t),n=Math.floor(e/i);return{x:Math.floor(i),y:n}},capValue:function(t,e,i){return Math.max(t,Math.min(e,i))},findScaleToFit:function(t,e){return Math.min(e.width/t.width,e.height/t.height)},findScaleToCover:function(t,e){return Math.max(e.width/t.width,e.height/t.height)},matrixToSVG:function(t){return"matrix("+t.map((function(t){return S.util.toFixed(t,S.Object.NUM_FRACTION_DIGITS)})).join(" ")+")"},removeTransformFromObject:function(t,e){var i=S.util.invertTransform(e),n=S.util.multiplyTransformMatrices(i,t.calcOwnMatrix());S.util.applyTransformToObject(t,n)},addTransformToObject:function(t,e){S.util.applyTransformToObject(t,S.util.multiplyTransformMatrices(e,t.calcOwnMatrix()))},applyTransformToObject:function(t,e){var i=S.util.qrDecompose(e),n=new S.Point(i.translateX,i.translateY);t.flipX=!1,t.flipY=!1,t.set("scaleX",i.scaleX),t.set("scaleY",i.scaleY),t.skewX=i.skewX,t.skewY=i.skewY,t.angle=i.angle,t.setPositionByOrigin(n,"center","center")},sizeAfterTransform:function(t,e,i){var n=t/2,r=e/2,o=[{x:-n,y:-r},{x:n,y:-r},{x:-n,y:r},{x:n,y:r}],a=S.util.calcDimensionsMatrix(i),s=S.util.makeBoundingBoxFromPoints(o,a);return{x:s.width,y:s.height}}},function(){var t=Array.prototype.join,e={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},i={m:"l",M:"L"};function n(t,e,i,n,r,o,a,s,l,c,h){var u=S.util.cos(t),f=S.util.sin(t),d=S.util.cos(e),v=S.util.sin(e),g=i*r*d-n*o*v+a,p=n*r*d+i*o*v+s;return["C",c+l*(-i*r*f-n*o*u),h+l*(-n*r*f+i*o*u),g+l*(i*r*v+n*o*d),p+l*(n*r*v-i*o*d),g,p]}function r(t,e,i,r,a,s,l){var c=Math.PI,h=l*c/180,u=S.util.sin(h),f=S.util.cos(h),d=0,v=0,g=-f*t*.5-u*e*.5,p=-f*e*.5+u*t*.5,m=(i=Math.abs(i))*i,y=(r=Math.abs(r))*r,b=p*p,w=g*g,x=m*y-m*b-y*w,C=0;if(x<0){var k=Math.sqrt(1-x/(m*y));i*=k,r*=k}else C=(a===s?-1:1)*Math.sqrt(x/(m*b+y*w));var _=C*i*p/r,T=-C*r*g/i,O=f*_-u*T+.5*t,E=u*_+f*T+.5*e,R=o(1,0,(g-_)/i,(p-T)/r),A=o((g-_)/i,(p-T)/r,(-g-_)/i,(-p-T)/r);0===s&&A>0?A-=2*c:1===s&&A<0&&(A+=2*c);for(var I=Math.ceil(Math.abs(A/c*2)),P=[],D=A/I,F=8/3*Math.sin(D/4)*Math.sin(D/4)/Math.sin(D/2),M=R+D,j=0;j<I;j++)P[j]=n(R,M,f,u,i,r,O,E,F,d,v),d=P[j][5],v=P[j][6],R=M,M+=D;return P}function o(t,e,i,n){var r=Math.atan2(e,t),o=Math.atan2(n,i);return o>=r?o-r:2*Math.PI-(r-o)}function a(e,i,n,r,o,a,s,l){var c;if(S.cachesBoundsOfCurve&&(c=t.call(arguments),S.boundsOfCurveCache[c]))return S.boundsOfCurveCache[c];var h,u,f,d,v,g,p,m,y=Math.sqrt,b=Math.min,w=Math.max,x=Math.abs,C=[],k=[[],[]];u=6*e-12*n+6*o,h=-3*e+9*n-9*o+3*s,f=3*n-3*e;for(var _=0;_<2;++_)if(_>0&&(u=6*i-12*r+6*a,h=-3*i+9*r-9*a+3*l,f=3*r-3*i),x(h)<1e-12){if(x(u)<1e-12)continue;0<(d=-f/u)&&d<1&&C.push(d)}else(p=u*u-4*f*h)<0||(0<(v=(-u+(m=y(p)))/(2*h))&&v<1&&C.push(v),0<(g=(-u-m)/(2*h))&&g<1&&C.push(g));for(var T,O,E,R=C.length,A=R;R--;)T=(E=1-(d=C[R]))*E*E*e+3*E*E*d*n+3*E*d*d*o+d*d*d*s,k[0][R]=T,O=E*E*E*i+3*E*E*d*r+3*E*d*d*a+d*d*d*l,k[1][R]=O;k[0][A]=e,k[1][A]=i,k[0][A+1]=s,k[1][A+1]=l;var I=[{x:b.apply(null,k[0]),y:b.apply(null,k[1])},{x:w.apply(null,k[0]),y:w.apply(null,k[1])}];return S.cachesBoundsOfCurve&&(S.boundsOfCurveCache[c]=I),I}function s(t,e,i){for(var n=i[1],o=i[2],a=i[3],s=i[4],l=i[5],c=r(i[6]-t,i[7]-e,n,o,s,l,a),h=0,u=c.length;h<u;h++)c[h][1]+=t,c[h][2]+=e,c[h][3]+=t,c[h][4]+=e,c[h][5]+=t,c[h][6]+=e;return c}function l(t,e,i,n){return Math.sqrt((i-t)*(i-t)+(n-e)*(n-e))}function c(t,e,i,n,r,o,a,s){return function(l){var c,h=(c=l)*c*c,u=function(t){return 3*t*t*(1-t)}(l),f=function(t){return 3*t*(1-t)*(1-t)}(l),d=function(t){return(1-t)*(1-t)*(1-t)}(l);return{x:a*h+r*u+i*f+t*d,y:s*h+o*u+n*f+e*d}}}function h(t,e,i,n,r,o,a,s){return function(l){var c=1-l,h=3*c*c*(i-t)+6*c*l*(r-i)+3*l*l*(a-r),u=3*c*c*(n-e)+6*c*l*(o-n)+3*l*l*(s-o);return Math.atan2(u,h)}}function u(t,e,i,n,r,o){return function(a){var s,l=(s=a)*s,c=function(t){return 2*t*(1-t)}(a),h=function(t){return(1-t)*(1-t)}(a);return{x:r*l+i*c+t*h,y:o*l+n*c+e*h}}}function f(t,e,i,n,r,o){return function(a){var s=1-a,l=2*s*(i-t)+2*a*(r-i),c=2*s*(n-e)+2*a*(o-n);return Math.atan2(c,l)}}function d(t,e,i){var n,r,o={x:e,y:i},a=0;for(r=1;r<=100;r+=1)n=t(r/100),a+=l(o.x,o.y,n.x,n.y),o=n;return a}function v(t,e){for(var i,n,r,o=0,a=0,s=t.iterator,c={x:t.x,y:t.y},h=.01,u=t.angleFinder;a<e&&o<=1&&h>1e-4;)i=s(o),r=o,(n=l(c.x,c.y,i.x,i.y))+a>e?o-=h/=2:(c=i,o+=h,a+=n);return i.angle=u(r),i}function g(t){for(var e,i,n,r,o=0,a=t.length,s=0,v=0,g=0,p=0,m=[],y=0;y<a;y++){switch(n={x:s,y:v,command:(e=t[y])[0]},e[0]){case"M":n.length=0,g=s=e[1],p=v=e[2];break;case"L":n.length=l(s,v,e[1],e[2]),s=e[1],v=e[2];break;case"C":i=c(s,v,e[1],e[2],e[3],e[4],e[5],e[6]),r=h(s,v,e[1],e[2],e[3],e[4],e[5],e[6]),n.iterator=i,n.angleFinder=r,n.length=d(i,s,v),s=e[5],v=e[6];break;case"Q":i=u(s,v,e[1],e[2],e[3],e[4]),r=f(s,v,e[1],e[2],e[3],e[4]),n.iterator=i,n.angleFinder=r,n.length=d(i,s,v),s=e[3],v=e[4];break;case"Z":case"z":n.destX=g,n.destY=p,n.length=l(s,v,g,p),s=g,v=p}o+=n.length,m.push(n)}return m.push({length:o,x:s,y:v}),m}S.util.joinPath=function(t){return t.map((function(t){return t.join(" ")})).join(" ")},S.util.parsePath=function(t){var n,r,o,a,s,l=[],c=[],h=S.rePathCommand,u="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",f="("+u+")"+S.commaWsp,d="([01])"+S.commaWsp+"?",v=new RegExp(f+"?"+f+"?"+f+d+d+f+"?("+u+")","g");if(!t||!t.match)return l;for(var g,p=0,m=(s=t.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi)).length;p<m;p++){a=(n=s[p]).slice(1).trim(),c.length=0;var y=n.charAt(0);if(g=[y],"a"===y.toLowerCase())for(var b;b=v.exec(a);)for(var w=1;w<b.length;w++)c.push(b[w]);else for(;o=h.exec(a);)c.push(o[0]);w=0;for(var x=c.length;w<x;w++)r=parseFloat(c[w]),isNaN(r)||g.push(r);var C=e[y.toLowerCase()],k=i[y]||y;if(g.length-1>C)for(var _=1,T=g.length;_<T;_+=C)l.push([y].concat(g.slice(_,_+C))),y=k;else l.push(g)}return l},S.util.makePathSimpler=function(t){var e,i,n,r,o,a,l=0,c=0,h=t.length,u=0,f=0,d=[];for(i=0;i<h;++i){switch(n=!1,(e=t[i].slice(0))[0]){case"l":e[0]="L",e[1]+=l,e[2]+=c;case"L":l=e[1],c=e[2];break;case"h":e[1]+=l;case"H":e[0]="L",e[2]=c,l=e[1];break;case"v":e[1]+=c;case"V":e[0]="L",c=e[1],e[1]=l,e[2]=c;break;case"m":e[0]="M",e[1]+=l,e[2]+=c;case"M":l=e[1],c=e[2],u=e[1],f=e[2];break;case"c":e[0]="C",e[1]+=l,e[2]+=c,e[3]+=l,e[4]+=c,e[5]+=l,e[6]+=c;case"C":o=e[3],a=e[4],l=e[5],c=e[6];break;case"s":e[0]="S",e[1]+=l,e[2]+=c,e[3]+=l,e[4]+=c;case"S":"C"===r?(o=2*l-o,a=2*c-a):(o=l,a=c),l=e[3],c=e[4],e[0]="C",e[5]=e[3],e[6]=e[4],e[3]=e[1],e[4]=e[2],e[1]=o,e[2]=a,o=e[3],a=e[4];break;case"q":e[0]="Q",e[1]+=l,e[2]+=c,e[3]+=l,e[4]+=c;case"Q":o=e[1],a=e[2],l=e[3],c=e[4];break;case"t":e[0]="T",e[1]+=l,e[2]+=c;case"T":"Q"===r?(o=2*l-o,a=2*c-a):(o=l,a=c),e[0]="Q",l=e[1],c=e[2],e[1]=o,e[2]=a,e[3]=l,e[4]=c;break;case"a":e[0]="A",e[6]+=l,e[7]+=c;case"A":n=!0,d=d.concat(s(l,c,e)),l=e[6],c=e[7];break;case"z":case"Z":l=u,c=f}n||d.push(e),r=e[0]}return d},S.util.getSmoothPathFromPoints=function(t,e){var i,n=[],r=new S.Point(t[0].x,t[0].y),o=new S.Point(t[1].x,t[1].y),a=t.length,s=1,l=0,c=a>2;for(e=e||0,c&&(s=t[2].x<o.x?-1:t[2].x===o.x?0:1,l=t[2].y<o.y?-1:t[2].y===o.y?0:1),n.push(["M",r.x-s*e,r.y-l*e]),i=1;i<a;i++){if(!r.eq(o)){var h=r.midPointFrom(o);n.push(["Q",r.x,r.y,h.x,h.y])}r=t[i],i+1<t.length&&(o=t[i+1])}return c&&(s=r.x>t[i-2].x?1:r.x===t[i-2].x?0:-1,l=r.y>t[i-2].y?1:r.y===t[i-2].y?0:-1),n.push(["L",r.x+s*e,r.y+l*e]),n},S.util.getPathSegmentsInfo=g,S.util.getBoundsOfCurve=a,S.util.getPointOnPath=function(t,e,i){i||(i=g(t));for(var n=0;e-i[n].length>0&&n<i.length-2;)e-=i[n].length,n++;var r,o=i[n],a=e/o.length,s=o.command,l=t[n];switch(s){case"M":return{x:o.x,y:o.y,angle:0};case"Z":case"z":return(r=new S.Point(o.x,o.y).lerp(new S.Point(o.destX,o.destY),a)).angle=Math.atan2(o.destY-o.y,o.destX-o.x),r;case"L":return(r=new S.Point(o.x,o.y).lerp(new S.Point(l[1],l[2]),a)).angle=Math.atan2(l[2]-o.y,l[1]-o.x),r;case"C":case"Q":return v(o,e)}},S.util.transformPath=function(t,e,i){return i&&(e=S.util.multiplyTransformMatrices(e,[1,0,0,1,-i.x,-i.y])),t.map((function(t){for(var i=t.slice(0),n={},r=1;r<t.length-1;r+=2)n.x=t[r],n.y=t[r+1],n=S.util.transformPoint(n,e),i[r]=n.x,i[r+1]=n.y;return i}))},S.util.fromArcToBeizers=s,S.util.getBoundsOfArc=function(t,e,i,n,o,s,l,c,h){for(var u,f=0,d=0,v=[],g=r(c-t,h-e,i,n,s,l,o),p=0,m=g.length;p<m;p++)u=a(f,d,g[p][1],g[p][2],g[p][3],g[p][4],g[p][5],g[p][6]),v.push({x:u[0].x+t,y:u[0].y+e}),v.push({x:u[1].x+t,y:u[1].y+e}),f=g[p][5],d=g[p][6];return v},S.util.drawArc=function(t,e,i,n){s(e,i,n=n.slice(0).unshift("X")).forEach((function(e){t.bezierCurveTo.apply(t,e.slice(1))}))}}(),function(){var t=Array.prototype.slice;function e(t,e,i){if(t&&0!==t.length){var n=t.length-1,r=e?t[n][e]:t[n];if(e)for(;n--;)i(t[n][e],r)&&(r=t[n][e]);else for(;n--;)i(t[n],r)&&(r=t[n]);return r}}S.util.array={fill:function(t,e){for(var i=t.length;i--;)t[i]=e;return t},invoke:function(e,i){for(var n=t.call(arguments,2),r=[],o=0,a=e.length;o<a;o++)r[o]=n.length?e[o][i].apply(e[o],n):e[o][i].call(e[o]);return r},min:function(t,i){return e(t,i,(function(t,e){return t<e}))},max:function(t,i){return e(t,i,(function(t,e){return t>=e}))}}}(),function(){function t(e,i,n){if(n)if(!S.isLikelyNode&&i instanceof Element)e=i;else if(i instanceof Array){e=[];for(var r=0,o=i.length;r<o;r++)e[r]=t({},i[r],n)}else if(i&&"object"==typeof i)for(var a in i)"canvas"===a||"group"===a?e[a]=null:i.hasOwnProperty(a)&&(e[a]=t({},i[a],n));else e=i;else for(var a in i)e[a]=i[a];return e}S.util.object={extend:t,clone:function(e,i){return t({},e,i)}},S.util.object.extend(S.util,S.Observable)}(),function(){function t(t,e){var 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";var n=t.charCodeAt(e+1);if(56320>n||n>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";var r=t.charCodeAt(e-1);if(55296>r||r>56319)throw"Low surrogate without preceding high surrogate";return!1}S.util.string={camelize:function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},capitalize:function(t,e){return t.charAt(0).toUpperCase()+(e?t.slice(1):t.slice(1).toLowerCase())},escapeXml:function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")},graphemeSplit:function(e){var i,n=0,r=[];for(n=0;n<e.length;n++)!1!==(i=t(e,n))&&r.push(i);return r}}}(),function(){var t=Array.prototype.slice,e=function(){},i=function(){for(var t in{toString:1})if("toString"===t)return!1;return!0}(),n=function(t,e,n){for(var r in e)r in t.prototype&&"function"==typeof t.prototype[r]&&(e[r]+"").indexOf("callSuper")>-1?t.prototype[r]=function(t){return function(){var i=this.constructor.superclass;this.constructor.superclass=n;var r=e[t].apply(this,arguments);if(this.constructor.superclass=i,"initialize"!==t)return r}}(r):t.prototype[r]=e[r],i&&(e.toString!==Object.prototype.toString&&(t.prototype.toString=e.toString),e.valueOf!==Object.prototype.valueOf&&(t.prototype.valueOf=e.valueOf))};function r(){}function o(e){for(var i=null,n=this;n.constructor.superclass;){var r=n.constructor.superclass.prototype[e];if(n[e]!==r){i=r;break}n=n.constructor.superclass.prototype}return i?arguments.length>1?i.apply(this,t.call(arguments,1)):i.call(this):console.log("tried to callSuper "+e+", method not found in prototype chain",this)}S.util.createClass=function(){var i=null,a=t.call(arguments,0);function s(){this.initialize.apply(this,arguments)}"function"==typeof a[0]&&(i=a.shift()),s.superclass=i,s.subclasses=[],i&&(r.prototype=i.prototype,s.prototype=new r,i.subclasses.push(s));for(var l=0,c=a.length;l<c;l++)n(s,a[l],i);return s.prototype.initialize||(s.prototype.initialize=e),s.prototype.constructor=s,s.prototype.callSuper=o,s}}(),c=!!S.document.createElement("div").attachEvent,h=["touchstart","touchmove","touchend"],S.util.addListener=function(t,e,i,n){t&&t.addEventListener(e,i,!c&&n)},S.util.removeListener=function(t,e,i,n){t&&t.removeEventListener(e,i,!c&&n)},S.util.getPointer=function(t){var e=t.target,i=S.util.getScrollLeftTop(e),n=function(t){var e=t.changedTouches;return e&&e[0]?e[0]:t}(t);return{x:n.clientX+i.left,y:n.clientY+i.top}},S.util.isTouchEvent=function(t){return h.indexOf(t.type)>-1||"touch"===t.pointerType},u=S.document.createElement("div"),f="string"==typeof u.style.opacity,d="string"==typeof u.style.filter,v=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,g=function(t){return t},f?g=function(t,e){return t.style.opacity=e,t}:d&&(g=function(t,e){var i=t.style;return t.currentStyle&&!t.currentStyle.hasLayout&&(i.zoom=1),v.test(i.filter)?(e=e>=.9999?"":"alpha(opacity="+100*e+")",i.filter=i.filter.replace(v,e)):i.filter+=" alpha(opacity="+100*e+")",t}),S.util.setStyle=function(t,e){var i=t.style;if(!i)return t;if("string"==typeof e)return t.style.cssText+=";"+e,e.indexOf("opacity")>-1?g(t,e.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(var n in e)"opacity"===n?g(t,e[n]):i["float"===n||"cssFloat"===n?void 0===i.styleFloat?"cssFloat":"styleFloat":n]=e[n];return t},function(){var t=Array.prototype.slice;var e,i,n,r,o=function(e){return t.call(e,0)};try{e=o(S.document.childNodes)instanceof Array}catch(t){}function a(t,e){var i=S.document.createElement(t);for(var n in e)"class"===n?i.className=e[n]:"for"===n?i.htmlFor=e[n]:i.setAttribute(n,e[n]);return i}function s(t){for(var e=0,i=0,n=S.document.documentElement,r=S.document.body||{scrollLeft:0,scrollTop:0};t&&(t.parentNode||t.host)&&((t=t.parentNode||t.host)===S.document?(e=r.scrollLeft||n.scrollLeft||0,i=r.scrollTop||n.scrollTop||0):(e+=t.scrollLeft||0,i+=t.scrollTop||0),1!==t.nodeType||"fixed"!==t.style.position););return{left:e,top:i}}e||(o=function(t){for(var e=new Array(t.length),i=t.length;i--;)e[i]=t[i];return e}),i=S.document.defaultView&&S.document.defaultView.getComputedStyle?function(t,e){var i=S.document.defaultView.getComputedStyle(t,null);return i?i[e]:void 0}:function(t,e){var i=t.style[e];return!i&&t.currentStyle&&(i=t.currentStyle[e]),i},n=S.document.documentElement.style,r="userSelect"in n?"userSelect":"MozUserSelect"in n?"MozUserSelect":"WebkitUserSelect"in n?"WebkitUserSelect":"KhtmlUserSelect"in n?"KhtmlUserSelect":"",S.util.makeElementUnselectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=S.util.falseFunction),r?t.style[r]="none":"string"==typeof t.unselectable&&(t.unselectable="on"),t},S.util.makeElementSelectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=null),r?t.style[r]="":"string"==typeof t.unselectable&&(t.unselectable=""),t},S.util.setImageSmoothing=function(t,e){t.imageSmoothingEnabled=t.imageSmoothingEnabled||t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled||t.oImageSmoothingEnabled,t.imageSmoothingEnabled=e},S.util.getById=function(t){return"string"==typeof t?S.document.getElementById(t):t},S.util.toArray=o,S.util.addClass=function(t,e){t&&-1===(" "+t.className+" ").indexOf(" "+e+" ")&&(t.className+=(t.className?" ":"")+e)},S.util.makeElement=a,S.util.wrapElement=function(t,e,i){return"string"==typeof e&&(e=a(e,i)),t.parentNode&&t.parentNode.replaceChild(e,t),e.appendChild(t),e},S.util.getScrollLeftTop=s,S.util.getElementOffset=function(t){var e,n,r=t&&t.ownerDocument,o={left:0,top:0},a={left:0,top:0},l={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!r)return a;for(var c in l)a[l[c]]+=parseInt(i(t,c),10)||0;return e=r.documentElement,void 0!==t.getBoundingClientRect&&(o=t.getBoundingClientRect()),n=s(t),{left:o.left+n.left-(e.clientLeft||0)+a.left,top:o.top+n.top-(e.clientTop||0)+a.top}},S.util.getNodeCanvas=function(t){var e=S.jsdomImplForWrapper(t);return e._canvas||e._image},S.util.cleanUpJsdomNode=function(t){if(S.isLikelyNode){var e=S.jsdomImplForWrapper(t);e&&(e._image=null,e._canvas=null,e._currentSrc=null,e._attributes=null,e._classList=null)}}}(),function(){function t(){}S.util.request=function(e,i){i||(i={});var n=i.method?i.method.toUpperCase():"GET",r=i.onComplete||function(){},o=new S.window.XMLHttpRequest,a=i.body||i.parameters;return o.onreadystatechange=function(){4===o.readyState&&(r(o),o.onreadystatechange=t)},"GET"===n&&(a=null,"string"==typeof i.parameters&&(e=function(t,e){return t+(/\?/.test(t)?"&":"?")+e}(e,i.parameters))),o.open(n,e,!0),"POST"!==n&&"PUT"!==n||o.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),o.send(a),o}}(),S.log=console.log,S.warn=console.warn,function(){function t(){return!1}function e(t,e,i,n){return-i*Math.cos(t/n*(Math.PI/2))+i+e}var i=S.window.requestAnimationFrame||S.window.webkitRequestAnimationFrame||S.window.mozRequestAnimationFrame||S.window.oRequestAnimationFrame||S.window.msRequestAnimationFrame||function(t){return S.window.setTimeout(t,1e3/60)},n=S.window.cancelAnimationFrame||S.window.clearTimeout;function r(){return i.apply(S.window,arguments)}S.util.animate=function(i){var n=!1;return r((function(o){i||(i={});var a,s=o||+new Date,l=i.duration||500,c=s+l,h=i.onChange||t,u=i.abort||t,f=i.onComplete||t,d=i.easing||e,v="startValue"in i?i.startValue:0,g="endValue"in i?i.endValue:100,p=i.byValue||g-v;i.onStart&&i.onStart(),function t(e){var i=(a=e||+new Date)>c?l:a-s,o=i/l,m=d(i,v,p,l),y=Math.abs((m-v)/p);if(!n){if(!u(m,y,o))return a>c?(h(g,1,1),void f(g,1,1)):(h(m,y,o),void r(t));f(g,1,1)}}(s)})),function(){n=!0}},S.util.requestAnimFrame=r,S.util.cancelAnimFrame=function(){return n.apply(S.window,arguments)}}(),function(){function t(t,e,i){var n="rgba("+parseInt(t[0]+i*(e[0]-t[0]),10)+","+parseInt(t[1]+i*(e[1]-t[1]),10)+","+parseInt(t[2]+i*(e[2]-t[2]),10);return n+=","+(t&&e?parseFloat(t[3]+i*(e[3]-t[3])):1),n+=")"}S.util.animateColor=function(e,i,n,r){var o=new S.Color(e).getSource(),a=new S.Color(i).getSource(),s=r.onComplete,l=r.onChange;return r=r||{},S.util.animate(S.util.object.extend(r,{duration:n||500,startValue:o,endValue:a,byValue:a,easing:function(e,i,n,o){return t(i,n,r.colorEasing?r.colorEasing(e,o):1-Math.cos(e/o*(Math.PI/2)))},onComplete:function(e,i,n){if(s)return s(t(a,a,0),i,n)},onChange:function(e,i,n){if(l){if(Array.isArray(e))return l(t(e,e,0),i,n);l(e,i,n)}}}))}}(),function(){function t(t,e,i,n){return t<Math.abs(e)?(t=e,n=i/4):n=0===e&&0===t?i/(2*Math.PI)*Math.asin(1):i/(2*Math.PI)*Math.asin(e/t),{a:t,c:e,p:i,s:n}}function e(t,e,i){return t.a*Math.pow(2,10*(e-=1))*Math.sin((e*i-t.s)*(2*Math.PI)/t.p)}function i(t,e,i,r){return i-n(r-t,0,i,r)+e}function n(t,e,i,n){return(t/=n)<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}S.util.ease={easeInQuad:function(t,e,i,n){return i*(t/=n)*t+e},easeOutQuad:function(t,e,i,n){return-i*(t/=n)*(t-2)+e},easeInOutQuad:function(t,e,i,n){return(t/=n/2)<1?i/2*t*t+e:-i/2*(--t*(t-2)-1)+e},easeInCubic:function(t,e,i,n){return i*(t/=n)*t*t+e},easeOutCubic:function(t,e,i,n){return i*((t=t/n-1)*t*t+1)+e},easeInOutCubic:function(t,e,i,n){return(t/=n/2)<1?i/2*t*t*t+e:i/2*((t-=2)*t*t+2)+e},easeInQuart:function(t,e,i,n){return i*(t/=n)*t*t*t+e},easeOutQuart:function(t,e,i,n){return-i*((t=t/n-1)*t*t*t-1)+e},easeInOutQuart:function(t,e,i,n){return(t/=n/2)<1?i/2*t*t*t*t+e:-i/2*((t-=2)*t*t*t-2)+e},easeInQuint:function(t,e,i,n){return i*(t/=n)*t*t*t*t+e},easeOutQuint:function(t,e,i,n){return i*((t=t/n-1)*t*t*t*t+1)+e},easeInOutQuint:function(t,e,i,n){return(t/=n/2)<1?i/2*t*t*t*t*t+e:i/2*((t-=2)*t*t*t*t+2)+e},easeInSine:function(t,e,i,n){return-i*Math.cos(t/n*(Math.PI/2))+i+e},easeOutSine:function(t,e,i,n){return i*Math.sin(t/n*(Math.PI/2))+e},easeInOutSine:function(t,e,i,n){return-i/2*(Math.cos(Math.PI*t/n)-1)+e},easeInExpo:function(t,e,i,n){return 0===t?e:i*Math.pow(2,10*(t/n-1))+e},easeOutExpo:function(t,e,i,n){return t===n?e+i:i*(1-Math.pow(2,-10*t/n))+e},easeInOutExpo:function(t,e,i,n){return 0===t?e:t===n?e+i:(t/=n/2)<1?i/2*Math.pow(2,10*(t-1))+e:i/2*(2-Math.pow(2,-10*--t))+e},easeInCirc:function(t,e,i,n){return-i*(Math.sqrt(1-(t/=n)*t)-1)+e},easeOutCirc:function(t,e,i,n){return i*Math.sqrt(1-(t=t/n-1)*t)+e},easeInOutCirc:function(t,e,i,n){return(t/=n/2)<1?-i/2*(Math.sqrt(1-t*t)-1)+e:i/2*(Math.sqrt(1-(t-=2)*t)+1)+e},easeInElastic:function(i,n,r,o){var a=0;return 0===i?n:1===(i/=o)?n+r:(a||(a=.3*o),-e(t(r,r,a,1.70158),i,o)+n)},easeOutElastic:function(e,i,n,r){var o=0;if(0===e)return i;if(1===(e/=r))return i+n;o||(o=.3*r);var a=t(n,n,o,1.70158);return a.a*Math.pow(2,-10*e)*Math.sin((e*r-a.s)*(2*Math.PI)/a.p)+a.c+i},easeInOutElastic:function(i,n,r,o){var a=0;if(0===i)return n;if(2===(i/=o/2))return n+r;a||(a=o*(.3*1.5));var s=t(r,r,a,1.70158);return i<1?-.5*e(s,i,o)+n:s.a*Math.pow(2,-10*(i-=1))*Math.sin((i*o-s.s)*(2*Math.PI)/s.p)*.5+s.c+n},easeInBack:function(t,e,i,n,r){return void 0===r&&(r=1.70158),i*(t/=n)*t*((r+1)*t-r)+e},easeOutBack:function(t,e,i,n,r){return void 0===r&&(r=1.70158),i*((t=t/n-1)*t*((r+1)*t+r)+1)+e},easeInOutBack:function(t,e,i,n,r){return void 0===r&&(r=1.70158),(t/=n/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},easeInBounce:i,easeOutBounce:n,easeInOutBounce:function(t,e,r,o){return t<o/2?.5*i(2*t,0,r,o)+e:.5*n(2*t-o,0,r,o)+.5*r+e}}}(),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,n=e.util.object.clone,r=e.util.toFixed,o=e.util.parseUnit,a=e.util.multiplyTransformMatrices,s={cx:"left",x:"left",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"},l={stroke:"strokeOpacity",fill:"fillOpacity"};function c(t){return t in s?s[t]:t}function h(t,i,n,r){var s,l="[object Array]"===Object.prototype.toString.call(i);if("fill"!==t&&"stroke"!==t||"none"!==i){if("strokeUniform"===t)return"non-scaling-stroke"===i;if("strokeDashArray"===t)i="none"===i?null:i.replace(/,/g," ").split(/\s+/).map(parseFloat);else if("transformMatrix"===t)i=n&&n.transformMatrix?a(n.transformMatrix,e.parseTransformAttribute(i)):e.parseTransformAttribute(i);else if("visible"===t)i="none"!==i&&"hidden"!==i,n&&!1===n.visible&&(i=!1);else if("opacity"===t)i=parseFloat(i),n&&void 0!==n.opacity&&(i*=n.opacity);else if("textAnchor"===t)i="start"===i?"left":"end"===i?"right":"center";else if("charSpacing"===t)s=o(i,r)/r*1e3;else if("paintFirst"===t){var c=i.indexOf("fill"),h=i.indexOf("stroke");i="fill";(c>-1&&h>-1&&h<c||-1===c&&h>-1)&&(i="stroke")}else{if("href"===t||"xlink:href"===t||"font"===t)return i;if("imageSmoothing"===t)return"optimizeQuality"===i;s=l?i.map(o):o(i,r)}}else i="";return!l&&isNaN(s)?i:s}function u(t){return new RegExp("^("+t.join("|")+")\\b","i")}function f(t,e){var i,n,r,o,a=[];for(r=0,o=e.length;r<o;r++)i=e[r],n=t.getElementsByTagName(i),a=a.concat(Array.prototype.slice.call(n));return a}function d(t,e){var i,n=!0;return(i=v(t,e.pop()))&&e.length&&(n=function(t,e){var i,n=!0;for(;t.parentNode&&1===t.parentNode.nodeType&&e.length;)n&&(i=e.pop()),t=t.parentNode,n=v(t,i);return 0===e.length}(t,e)),i&&n&&0===e.length}function v(t,e){var i,n,r=t.nodeName,o=t.getAttribute("class"),a=t.getAttribute("id");if(i=new RegExp("^"+r,"i"),e=e.replace(i,""),a&&e.length&&(i=new RegExp("#"+a+"(?![a-zA-Z\\-]+)","i"),e=e.replace(i,"")),o&&e.length)for(n=(o=o.split(" ")).length;n--;)i=new RegExp("\\."+o[n]+"(?![a-zA-Z\\-]+)","i"),e=e.replace(i,"");return 0===e.length}function g(t,e){var i;if(t.getElementById&&(i=t.getElementById(e)),i)return i;var n,r,o,a=t.getElementsByTagName("*");for(r=0,o=a.length;r<o;r++)if(e===(n=a[r]).getAttribute("id"))return n}e.svgValidTagNamesRegEx=u(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),e.svgViewBoxElementsRegEx=u(["symbol","image","marker","pattern","view","svg"]),e.svgInvalidAncestorsRegEx=u(["pattern","defs","symbol","metadata","clipPath","mask","desc"]),e.svgValidParentsRegEx=u(["symbol","g","a","svg","clipPath","defs"]),e.cssRules={},e.gradientDefs={},e.clipPaths={},e.parseTransformAttribute=function(){function t(t,i,n){t[n]=Math.tan(e.util.degreesToRadians(i[0]))}var i=e.iMatrix,n=e.reNum,r=e.commaWsp,o="(?:"+("(?:(matrix)\\s*\\(\\s*("+n+")"+r+"("+n+")"+r+"("+n+")"+r+"("+n+")"+r+"("+n+")"+r+"("+n+")\\s*\\))")+"|"+("(?:(translate)\\s*\\(\\s*("+n+")(?:"+r+"("+n+"))?\\s*\\))")+"|"+("(?:(scale)\\s*\\(\\s*("+n+")(?:"+r+"("+n+"))?\\s*\\))")+"|"+("(?:(rotate)\\s*\\(\\s*("+n+")(?:"+r+"("+n+")"+r+"("+n+"))?\\s*\\))")+"|"+("(?:(skewX)\\s*\\(\\s*("+n+")\\s*\\))")+"|"+("(?:(skewY)\\s*\\(\\s*("+n+")\\s*\\))")+")",a=new RegExp("^\\s*(?:"+("(?:"+o+"(?:"+r+"*"+o+")*)")+"?)\\s*$"),s=new RegExp(o,"g");return function(n){var r=i.concat(),l=[];if(!n||n&&!a.test(n))return r;n.replace(s,(function(n){var a=new RegExp(o).exec(n).filter((function(t){return!!t})),s=a[1],c=a.slice(2).map(parseFloat);switch(s){case"translate":!function(t,e){t[4]=e[0],2===e.length&&(t[5]=e[1])}(r,c);break;case"rotate":c[0]=e.util.degreesToRadians(c[0]),function(t,i){var n=e.util.cos(i[0]),r=e.util.sin(i[0]),o=0,a=0;3===i.length&&(o=i[1],a=i[2]),t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t[4]=o-(n*o-r*a),t[5]=a-(r*o+n*a)}(r,c);break;case"scale":!function(t,e){var i=e[0],n=2===e.length?e[1]:e[0];t[0]=i,t[3]=n}(r,c);break;case"skewX":t(r,c,2);break;case"skewY":t(r,c,1);break;case"matrix":r=c}l.push(r.concat()),r=i.concat()}));for(var c=l[0];l.length>1;)l.shift(),c=e.util.multiplyTransformMatrices(c,l[0]);return c}}();var p=new RegExp("^\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*$");function m(t){if(!e.svgViewBoxElementsRegEx.test(t.nodeName))return{};var i,n,r,a,s,l,c=t.getAttribute("viewBox"),h=1,u=1,f=t.getAttribute("width"),d=t.getAttribute("height"),v=t.getAttribute("x")||0,g=t.getAttribute("y")||0,m=t.getAttribute("preserveAspectRatio")||"",y=!c||!(c=c.match(p)),b=!f||!d||"100%"===f||"100%"===d,w=y&&b,x={},C="",k=0,_=0;if(x.width=0,x.height=0,x.toBeParsed=w,y&&(v||g)&&t.parentNode&&"#document"!==t.parentNode.nodeName&&(C=" translate("+o(v)+" "+o(g)+") ",s=(t.getAttribute("transform")||"")+C,t.setAttribute("transform",s),t.removeAttribute("x"),t.removeAttribute("y")),w)return x;if(y)return x.width=o(f),x.height=o(d),x;if(i=-parseFloat(c[1]),n=-parseFloat(c[2]),r=parseFloat(c[3]),a=parseFloat(c[4]),x.minX=i,x.minY=n,x.viewBoxWidth=r,x.viewBoxHeight=a,b?(x.width=r,x.height=a):(x.width=o(f),x.height=o(d),h=x.width/r,u=x.height/a),"none"!==(m=e.util.parsePreserveAspectRatioAttribute(m)).alignX&&("meet"===m.meetOrSlice&&(u=h=h>u?u:h),"slice"===m.meetOrSlice&&(u=h=h>u?h:u),k=x.width-r*h,_=x.height-a*h,"Mid"===m.alignX&&(k/=2),"Mid"===m.alignY&&(_/=2),"Min"===m.alignX&&(k=0),"Min"===m.alignY&&(_=0)),1===h&&1===u&&0===i&&0===n&&0===v&&0===g)return x;if((v||g)&&"#document"!==t.parentNode.nodeName&&(C=" translate("+o(v)+" "+o(g)+") "),s=C+" matrix("+h+" 0 0 "+u+" "+(i*h+k)+" "+(n*u+_)+") ","svg"===t.nodeName){for(l=t.ownerDocument.createElementNS(e.svgNS,"g");t.firstChild;)l.appendChild(t.firstChild);t.appendChild(l)}else(l=t).removeAttribute("x"),l.removeAttribute("y"),s=l.getAttribute("transform")+s;return l.setAttribute("transform",s),x}function y(t,e){var i=g(t,e.getAttribute("xlink:href").substr(1));if(i&&i.getAttribute("xlink:href")&&y(t,i),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(t){i&&!e.hasAttribute(t)&&i.hasAttribute(t)&&e.setAttribute(t,i.getAttribute(t))})),!e.children.length)for(var n=i.cloneNode(!0);n.firstChild;)e.appendChild(n.firstChild);e.removeAttribute("xlink:href")}e.parseSVGDocument=function(t,i,r,o){if(t){!function(t){for(var i=f(t,["use","svg:use"]),n=0;i.length&&n<i.length;){var r=i[n],o=r.getAttribute("xlink:href")||r.getAttribute("href");if(null===o)return;var a,s,l,c,h=o.substr(1),u=r.getAttribute("x")||0,d=r.getAttribute("y")||0,v=g(t,h).cloneNode(!0),p=(v.getAttribute("transform")||"")+" translate("+u+", "+d+")",y=i.length,b=e.svgNS;if(m(v),/^svg$/i.test(v.nodeName)){var w=v.ownerDocument.createElementNS(b,"g");for(s=0,c=(l=v.attributes).length;s<c;s++)a=l.item(s),w.setAttributeNS(b,a.nodeName,a.nodeValue);for(;v.firstChild;)w.appendChild(v.firstChild);v=w}for(s=0,c=(l=r.attributes).length;s<c;s++)"x"!==(a=l.item(s)).nodeName&&"y"!==a.nodeName&&"xlink:href"!==a.nodeName&&"href"!==a.nodeName&&("transform"===a.nodeName?p=a.nodeValue+" "+p:v.setAttribute(a.nodeName,a.nodeValue));v.setAttribute("transform",p),v.setAttribute("instantiated_by_use","1"),v.removeAttribute("id"),r.parentNode.replaceChild(v,r),i.length===y&&n++}}(t);var a,s,l=e.Object.__uid++,c=m(t),h=e.util.toArray(t.getElementsByTagName("*"));if(c.crossOrigin=o&&o.crossOrigin,c.svgUid=l,0===h.length&&e.isLikelyNode){var u=[];for(a=0,s=(h=t.selectNodes('//*[name(.)!="svg"]')).length;a<s;a++)u[a]=h[a];h=u}var d=h.filter((function(t){return m(t),e.svgValidTagNamesRegEx.test(t.nodeName.replace("svg:",""))&&!function(t,e){for(;t&&(t=t.parentNode);)if(t.nodeName&&e.test(t.nodeName.replace("svg:",""))&&!t.getAttribute("instantiated_by_use"))return!0;return!1}(t,e.svgInvalidAncestorsRegEx)}));if(!d||d&&!d.length)i&&i([],{});else{var v={};h.filter((function(t){return"clipPath"===t.nodeName.replace("svg:","")})).forEach((function(t){var i=t.getAttribute("id");v[i]=e.util.toArray(t.getElementsByTagName("*")).filter((function(t){return e.svgValidTagNamesRegEx.test(t.nodeName.replace("svg:",""))}))})),e.gradientDefs[l]=e.getGradientDefs(t),e.cssRules[l]=e.getCSSRules(t),e.clipPaths[l]=v,e.parseElements(d,(function(t,n){i&&(i(t,c,n,h),delete e.gradientDefs[l],delete e.cssRules[l],delete e.clipPaths[l])}),n(c),r,o)}}};var b=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+e.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+e.reNum+"))?\\s+(.*)");i(e,{parseFontDeclaration:function(t,e){var i=t.match(b);if(i){var n=i[1],r=i[3],a=i[4],s=i[5],l=i[6];n&&(e.fontStyle=n),r&&(e.fontWeight=isNaN(parseFloat(r))?r:parseFloat(r)),a&&(e.fontSize=o(a)),l&&(e.fontFamily=l),s&&(e.lineHeight="normal"===s?1:s)}},getGradientDefs:function(t){var e,i=f(t,["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"]),n=0,r={};for(n=i.length;n--;)(e=i[n]).getAttribute("xlink:href")&&y(t,e),r[e.getAttribute("id")]=e;return r},parseAttributes:function(t,n,a){if(t){var s,u,f,v={};void 0===a&&(a=t.getAttribute("svgUid")),t.parentNode&&e.svgValidParentsRegEx.test(t.parentNode.nodeName)&&(v=e.parseAttributes(t.parentNode,n,a));var g=n.reduce((function(e,i){return(s=t.getAttribute(i))&&(e[i]=s),e}),{}),p=i(function(t,i){var n={};for(var r in e.cssRules[i])if(d(t,r.split(" ")))for(var o in e.cssRules[i][r])n[o]=e.cssRules[i][r][o];return n}(t,a),e.parseStyleAttribute(t));g=i(g,p),p["clip-path"]&&t.setAttribute("clip-path",p["clip-path"]),u=f=v.fontSize||e.Text.DEFAULT_SVG_FONT_SIZE,g["font-size"]&&(g["font-size"]=u=o(g["font-size"],f));var m,y,b={};for(var w in g)y=h(m=c(w),g[w],v,u),b[m]=y;b&&b.font&&e.parseFontDeclaration(b.font,b);var x=i(v,b);return e.svgValidParentsRegEx.test(t.nodeName)?x:function(t){for(var i in l)if(void 0!==t[l[i]]&&""!==t[i]){if(void 0===t[i]){if(!e.Object.prototype[i])continue;t[i]=e.Object.prototype[i]}if(0!==t[i].indexOf("url(")){var n=new e.Color(t[i]);t[i]=n.setAlpha(r(n.getAlpha()*t[l[i]],2)).toRgba()}}return t}(x)}},parseElements:function(t,i,n,r,o){new e.ElementsParser(t,i,n,r,o).parse()},parseStyleAttribute:function(t){var e={},i=t.getAttribute("style");return i?("string"==typeof i?function(t,e){var i,n;t.replace(/;\s*$/,"").split(";").forEach((function(t){var r=t.split(":");i=r[0].trim().toLowerCase(),n=r[1].trim(),e[i]=n}))}(i,e):function(t,e){var i,n;for(var r in t)void 0!==t[r]&&(i=r.toLowerCase(),n=t[r],e[i]=n)}(i,e),e):e},parsePointsAttribute:function(t){if(!t)return null;var e,i,n=[];for(e=0,i=(t=(t=t.replace(/,/g," ").trim()).split(/\s+/)).length;e<i;e+=2)n.push({x:parseFloat(t[e]),y:parseFloat(t[e+1])});return n},getCSSRules:function(t){var i,n,r=t.getElementsByTagName("style"),o={};for(i=0,n=r.length;i<n;i++){var a=r[i].textContent;""!==(a=a.replace(/\/\*[\s\S]*?\*\//g,"")).trim()&&a.match(/[^{]*\{[\s\S]*?\}/g).map((function(t){return t.trim()})).forEach((function(t){var r=t.match(/([\s\S]*?)\s*\{([^}]*)\}/),a={},s=r[2].trim().replace(/;$/,"").split(/\s*;\s*/);for(i=0,n=s.length;i<n;i++){var l=s[i].split(/\s*:\s*/),c=l[0],h=l[1];a[c]=h}(t=r[1]).split(",").forEach((function(t){""!==(t=t.replace(/^svg/i,"").trim())&&(o[t]?e.util.object.extend(o[t],a):o[t]=e.util.object.clone(a))}))}))}return o},loadSVGFromURL:function(t,i,n,r){t=t.replace(/^\n\s*/,"").trim(),new e.util.request(t,{method:"get",onComplete:function(t){var o=t.responseXML;if(!o||!o.documentElement)return i&&i(null),!1;e.parseSVGDocument(o.documentElement,(function(t,e,n,r){i&&i(t,e,n,r)}),n,r)}})},loadSVGFromString:function(t,i,n,r){var o=(new e.window.DOMParser).parseFromString(t.trim(),"text/xml");e.parseSVGDocument(o.documentElement,(function(t,e,n,r){i(t,e,n,r)}),n,r)}})}(e),S.ElementsParser=function(t,e,i,n,r,o){this.elements=t,this.callback=e,this.options=i,this.reviver=n,this.svgUid=i&&i.svgUid||0,this.parsingOptions=r,this.regexUrl=/^url\(['"]?#([^'"]+)['"]?\)/g,this.doc=o},(p=S.ElementsParser.prototype).parse=function(){this.instances=new Array(this.elements.length),this.numElements=this.elements.length,this.createObjects()},p.createObjects=function(){var t=this;this.elements.forEach((function(e,i){e.setAttribute("svgUid",t.svgUid),t.createObject(e,i)}))},p.findTag=function(t){return S[S.util.string.capitalize(t.tagName.replace("svg:",""))]},p.createObject=function(t,e){var i=this.findTag(t);if(i&&i.fromElement)try{i.fromElement(t,this.createCallback(e,t),this.options)}catch(t){S.log(t)}else this.checkIfDone()},p.createCallback=function(t,e){var i=this;return function(n){var r;i.resolveGradient(n,e,"fill"),i.resolveGradient(n,e,"stroke"),n instanceof S.Image&&n._originalElement&&(r=n.parsePreserveAspectRatioAttribute(e)),n._removeTransformMatrix(r),i.resolveClipPath(n,e),i.reviver&&i.reviver(e,n),i.instances[t]=n,i.checkIfDone()}},p.extractPropertyDefinition=function(t,e,i){var n=t[e],r=this.regexUrl;if(r.test(n)){r.lastIndex=0;var o=r.exec(n)[1];return r.lastIndex=0,S[i][this.svgUid][o]}},p.resolveGradient=function(t,e,i){var n=this.extractPropertyDefinition(t,i,"gradientDefs");if(n){var r=e.getAttribute(i+"-opacity"),o=S.Gradient.fromElement(n,t,r,this.options);t.set(i,o)}},p.createClipPathCallback=function(t,e){return function(t){t._removeTransformMatrix(),t.fillRule=t.clipRule,e.push(t)}},p.resolveClipPath=function(t,e){var i,n,r,o,a=this.extractPropertyDefinition(t,"clipPath","clipPaths");if(a){r=[],n=S.util.invertTransform(t.calcTransformMatrix());for(var s=a[0].parentNode,l=e;l.parentNode&&l.getAttribute("clip-path")!==t.clipPath;)l=l.parentNode;l.parentNode.appendChild(s);for(var c=0;c<a.length;c++)i=a[c],this.findTag(i).fromElement(i,this.createClipPathCallback(t,r),this.options);a=1===r.length?r[0]:new S.Group(r),o=S.util.multiplyTransformMatrices(n,a.calcTransformMatrix()),a.clipPath&&this.resolveClipPath(a,l);var h=S.util.qrDecompose(o);a.flipX=!1,a.flipY=!1,a.set("scaleX",h.scaleX),a.set("scaleY",h.scaleY),a.angle=h.angle,a.skewX=h.skewX,a.skewY=0,a.setPositionByOrigin({x:h.translateX,y:h.translateY},"center","center"),t.clipPath=a}else delete t.clipPath},p.checkIfDone=function(){0==--this.numElements&&(this.instances=this.instances.filter((function(t){return null!=t})),this.callback(this.instances,this.elements))},function(t){"use strict";var e=t.fabric||(t.fabric={});function i(t,e){this.x=t,this.y=e}e.Point?e.warn("fabric.Point is already defined"):(e.Point=i,i.prototype={type:"point",constructor:i,add:function(t){return new i(this.x+t.x,this.y+t.y)},addEquals:function(t){return this.x+=t.x,this.y+=t.y,this},scalarAdd:function(t){return new i(this.x+t,this.y+t)},scalarAddEquals:function(t){return this.x+=t,this.y+=t,this},subtract:function(t){return new i(this.x-t.x,this.y-t.y)},subtractEquals:function(t){return this.x-=t.x,this.y-=t.y,this},scalarSubtract:function(t){return new i(this.x-t,this.y-t)},scalarSubtractEquals:function(t){return this.x-=t,this.y-=t,this},multiply:function(t){return new i(this.x*t,this.y*t)},multiplyEquals:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return new i(this.x/t,this.y/t)},divideEquals:function(t){return this.x/=t,this.y/=t,this},eq:function(t){return this.x===t.x&&this.y===t.y},lt:function(t){return this.x<t.x&&this.y<t.y},lte:function(t){return this.x<=t.x&&this.y<=t.y},gt:function(t){return this.x>t.x&&this.y>t.y},gte:function(t){return this.x>=t.x&&this.y>=t.y},lerp:function(t,e){return void 0===e&&(e=.5),e=Math.max(Math.min(1,e),0),new i(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)},distanceFrom:function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},midPointFrom:function(t){return this.lerp(t)},min:function(t){return new i(Math.min(this.x,t.x),Math.min(this.y,t.y))},max:function(t){return new i(Math.max(this.x,t.x),Math.max(this.y,t.y))},toString:function(){return this.x+","+this.y},setXY:function(t,e){return this.x=t,this.y=e,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setFromPoint:function(t){return this.x=t.x,this.y=t.y,this},swap:function(t){var e=this.x,i=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=i},clone:function(){return new i(this.x,this.y)}})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});function i(t){this.status=t,this.points=[]}e.Intersection?e.warn("fabric.Intersection is already defined"):(e.Intersection=i,e.Intersection.prototype={constructor:i,appendPoint:function(t){return this.points.push(t),this},appendPoints:function(t){return this.points=this.points.concat(t),this}},e.Intersection.intersectLineLine=function(t,n,r,o){var a,s=(o.x-r.x)*(t.y-r.y)-(o.y-r.y)*(t.x-r.x),l=(n.x-t.x)*(t.y-r.y)-(n.y-t.y)*(t.x-r.x),c=(o.y-r.y)*(n.x-t.x)-(o.x-r.x)*(n.y-t.y);if(0!==c){var h=s/c,u=l/c;0<=h&&h<=1&&0<=u&&u<=1?(a=new i("Intersection")).appendPoint(new e.Point(t.x+h*(n.x-t.x),t.y+h*(n.y-t.y))):a=new i}else a=new i(0===s||0===l?"Coincident":"Parallel");return a},e.Intersection.intersectLinePolygon=function(t,e,n){var r,o,a,s,l=new i,c=n.length;for(s=0;s<c;s++)r=n[s],o=n[(s+1)%c],a=i.intersectLineLine(t,e,r,o),l.appendPoints(a.points);return l.points.length>0&&(l.status="Intersection"),l},e.Intersection.intersectPolygonPolygon=function(t,e){var n,r=new i,o=t.length;for(n=0;n<o;n++){var a=t[n],s=t[(n+1)%o],l=i.intersectLinePolygon(a,s,e);r.appendPoints(l.points)}return r.points.length>0&&(r.status="Intersection"),r},e.Intersection.intersectPolygonRectangle=function(t,n,r){var o=n.min(r),a=n.max(r),s=new e.Point(a.x,o.y),l=new e.Point(o.x,a.y),c=i.intersectLinePolygon(o,s,t),h=i.intersectLinePolygon(s,a,t),u=i.intersectLinePolygon(a,l,t),f=i.intersectLinePolygon(l,o,t),d=new i;return d.appendPoints(c.points),d.appendPoints(h.points),d.appendPoints(u.points),d.appendPoints(f.points),d.points.length>0&&(d.status="Intersection"),d})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});function i(t){t?this._tryParsingColor(t):this.setSource([0,0,0,1])}function n(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}e.Color?e.warn("fabric.Color is already defined."):(e.Color=i,e.Color.prototype={_tryParsingColor:function(t){var e;t in i.colorNameMap&&(t=i.colorNameMap[t]),"transparent"===t&&(e=[255,255,255,0]),e||(e=i.sourceFromHex(t)),e||(e=i.sourceFromRgb(t)),e||(e=i.sourceFromHsl(t)),e||(e=[0,0,0,1]),e&&this.setSource(e)},_rgbToHsl:function(t,i,n){t/=255,i/=255,n/=255;var r,o,a,s=e.util.array.max([t,i,n]),l=e.util.array.min([t,i,n]);if(a=(s+l)/2,s===l)r=o=0;else{var c=s-l;switch(o=a>.5?c/(2-s-l):c/(s+l),s){case t:r=(i-n)/c+(i<n?6:0);break;case i:r=(n-t)/c+2;break;case n:r=(t-i)/c+4}r/=6}return[Math.round(360*r),Math.round(100*o),Math.round(100*a)]},getSource:function(){return this._source},setSource:function(t){this._source=t},toRgb:function(){var t=this.getSource();return"rgb("+t[0]+","+t[1]+","+t[2]+")"},toRgba:function(){var t=this.getSource();return"rgba("+t[0]+","+t[1]+","+t[2]+","+t[3]+")"},toHsl:function(){var t=this.getSource(),e=this._rgbToHsl(t[0],t[1],t[2]);return"hsl("+e[0]+","+e[1]+"%,"+e[2]+"%)"},toHsla:function(){var t=this.getSource(),e=this._rgbToHsl(t[0],t[1],t[2]);return"hsla("+e[0]+","+e[1]+"%,"+e[2]+"%,"+t[3]+")"},toHex:function(){var t,e,i,n=this.getSource();return t=1===(t=n[0].toString(16)).length?"0"+t:t,e=1===(e=n[1].toString(16)).length?"0"+e:e,i=1===(i=n[2].toString(16)).length?"0"+i:i,t.toUpperCase()+e.toUpperCase()+i.toUpperCase()},toHexa:function(){var t,e=this.getSource();return t=1===(t=(t=Math.round(255*e[3])).toString(16)).length?"0"+t:t,this.toHex()+t.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(t){var e=this.getSource();return e[3]=t,this.setSource(e),this},toGrayscale:function(){var t=this.getSource(),e=parseInt((.3*t[0]+.59*t[1]+.11*t[2]).toFixed(0),10),i=t[3];return this.setSource([e,e,e,i]),this},toBlackWhite:function(t){var e=this.getSource(),i=(.3*e[0]+.59*e[1]+.11*e[2]).toFixed(0),n=e[3];return t=t||127,i=Number(i)<Number(t)?0:255,this.setSource([i,i,i,n]),this},overlayWith:function(t){t instanceof i||(t=new i(t));var e,n=[],r=this.getAlpha(),o=this.getSource(),a=t.getSource();for(e=0;e<3;e++)n.push(Math.round(.5*o[e]+.5*a[e]));return n[3]=r,this.setSource(n),this}},e.Color.reRGBa=/^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*((?:\d*\.?\d+)?)\s*)?\)$/i,e.Color.reHSLa=/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/i,e.Color.reHex=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,e.Color.colorNameMap={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",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:"#FF00FF",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:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",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:"#663399",red:"#FF0000",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:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},e.Color.fromRgb=function(t){return i.fromSource(i.sourceFromRgb(t))},e.Color.sourceFromRgb=function(t){var e=t.match(i.reRGBa);if(e){var n=parseInt(e[1],10)/(/%$/.test(e[1])?100:1)*(/%$/.test(e[1])?255:1),r=parseInt(e[2],10)/(/%$/.test(e[2])?100:1)*(/%$/.test(e[2])?255:1),o=parseInt(e[3],10)/(/%$/.test(e[3])?100:1)*(/%$/.test(e[3])?255:1);return[parseInt(n,10),parseInt(r,10),parseInt(o,10),e[4]?parseFloat(e[4]):1]}},e.Color.fromRgba=i.fromRgb,e.Color.fromHsl=function(t){return i.fromSource(i.sourceFromHsl(t))},e.Color.sourceFromHsl=function(t){var e=t.match(i.reHSLa);if(e){var r,o,a,s=(parseFloat(e[1])%360+360)%360/360,l=parseFloat(e[2])/(/%$/.test(e[2])?100:1),c=parseFloat(e[3])/(/%$/.test(e[3])?100:1);if(0===l)r=o=a=c;else{var h=c<=.5?c*(l+1):c+l-c*l,u=2*c-h;r=n(u,h,s+1/3),o=n(u,h,s),a=n(u,h,s-1/3)}return[Math.round(255*r),Math.round(255*o),Math.round(255*a),e[4]?parseFloat(e[4]):1]}},e.Color.fromHsla=i.fromHsl,e.Color.fromHex=function(t){return i.fromSource(i.sourceFromHex(t))},e.Color.sourceFromHex=function(t){if(t.match(i.reHex)){var e=t.slice(t.indexOf("#")+1),n=3===e.length||4===e.length,r=8===e.length||4===e.length,o=n?e.charAt(0)+e.charAt(0):e.substring(0,2),a=n?e.charAt(1)+e.charAt(1):e.substring(2,4),s=n?e.charAt(2)+e.charAt(2):e.substring(4,6),l=r?n?e.charAt(3)+e.charAt(3):e.substring(6,8):"FF";return[parseInt(o,16),parseInt(a,16),parseInt(s,16),parseFloat((parseInt(l,16)/255).toFixed(2))]}},e.Color.fromSource=function(t){var e=new i;return e.setSource(t),e})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=["e","se","s","sw","w","nw","n","ne","e"],n=["ns","nesw","ew","nwse"],r={},o="left",a="top",s={top:"bottom",bottom:a,left:"right",right:o,center:"center"},l=e.util.radiansToDegrees,c=Math.sign||function(t){return(t>0)-(t<0)||+t};function h(t,e){var i=t.angle+l(Math.atan2(e.y,e.x))+360;return Math.round(i%360/45)}function u(t,i){var n=i.transform.target,r=n.canvas,o=e.util.object.clone(i);o.target=n,r&&r.fire("object:"+t,o),n.fire(t,i)}function f(t,e){var i=e.canvas,n=t[i.uniScaleKey];return i.uniformScaling&&!n||!i.uniformScaling&&n}function d(t){return"center"===t.originX&&"center"===t.originY}function v(t,e,i){var n=t.lockScalingX,r=t.lockScalingY;return!(!n||!r)||(!(e||!n&&!r||!i)||(!(!n||"x"!==e)||!(!r||"y"!==e)))}function g(t,e,i,n){return{e:t,transform:e,pointer:{x:i,y:n}}}function p(t){return function(e,i,n,r){var o=i.target,a=o.getCenterPoint(),s=o.translateToOriginPoint(a,i.originX,i.originY),l=t(e,i,n,r);return o.setPositionByOrigin(s,i.originX,i.originY),l}}function m(t,e){return function(i,n,r,o){var a=e(i,n,r,o);return a&&u(t,g(i,n,r,o)),a}}function y(t,i,n,r,o){var a=t.target,s=a.controls[t.corner],l=a.canvas.getZoom(),c=a.padding/l,h=a.toLocalPoint(new e.Point(r,o),i,n);return h.x>=c&&(h.x-=c),h.x<=-c&&(h.x+=c),h.y>=c&&(h.y-=c),h.y<=c&&(h.y+=c),h.x-=s.offsetX,h.y-=s.offsetY,h}function b(t){return t.flipX!==t.flipY}function w(t,e,i,n,r){if(0!==t[e]){var o=r/t._getTransformedDimensions()[n]*t[i];t.set(i,o)}}function x(t,e,i,n){var r,s=e.target,c=s._getTransformedDimensions(0,s.skewY),h=y(e,e.originX,e.originY,i,n),u=Math.abs(2*h.x)-c.x,f=s.skewX;u<2?r=0:(r=l(Math.atan2(u/s.scaleX,c.y/s.scaleY)),e.originX===o&&"bottom"===e.originY&&(r=-r),"right"===e.originX&&e.originY===a&&(r=-r),b(s)&&(r=-r));var d=f!==r;if(d){var v=s._getTransformedDimensions().y;s.set("skewX",r),w(s,"skewY","scaleY","y",v)}return d}function C(t,e,i,n){var r,s=e.target,c=s._getTransformedDimensions(s.skewX,0),h=y(e,e.originX,e.originY,i,n),u=Math.abs(2*h.y)-c.y,f=s.skewY;u<2?r=0:(r=l(Math.atan2(u/s.scaleY,c.x/s.scaleX)),e.originX===o&&"bottom"===e.originY&&(r=-r),"right"===e.originX&&e.originY===a&&(r=-r),b(s)&&(r=-r));var d=f!==r;if(d){var v=s._getTransformedDimensions().x;s.set("skewY",r),w(s,"skewX","scaleX","x",v)}return d}function k(t,e,i,n,r){r=r||{};var o,a,l,h,u,g,p=e.target,m=p.lockScalingX,b=p.lockScalingY,w=r.by,x=f(t,p),C=v(p,w,x),k=e.gestureScale;if(C)return!1;if(k)a=e.scaleX*k,l=e.scaleY*k;else{if(o=y(e,e.originX,e.originY,i,n),u="y"!==w?c(o.x):1,g="x"!==w?c(o.y):1,e.signX||(e.signX=u),e.signY||(e.signY=g),p.lockScalingFlip&&(e.signX!==u||e.signY!==g))return!1;if(h=p._getTransformedDimensions(),x&&!w){var _=Math.abs(o.x)+Math.abs(o.y),S=e.original,T=_/(Math.abs(h.x*S.scaleX/p.scaleX)+Math.abs(h.y*S.scaleY/p.scaleY));a=S.scaleX*T,l=S.scaleY*T}else a=Math.abs(o.x*p.scaleX/h.x),l=Math.abs(o.y*p.scaleY/h.y);d(e)&&(a*=2,l*=2),e.signX!==u&&"y"!==w&&(e.originX=s[e.originX],a*=-1,e.signX=u),e.signY!==g&&"x"!==w&&(e.originY=s[e.originY],l*=-1,e.signY=g)}var O=p.scaleX,E=p.scaleY;return w?("x"===w&&p.set("scaleX",a),"y"===w&&p.set("scaleY",l)):(!m&&p.set("scaleX",a),!b&&p.set("scaleY",l)),O!==p.scaleX||E!==p.scaleY}r.scaleCursorStyleHandler=function(t,e,n){var r=f(t,n),o="";if(0!==e.x&&0===e.y?o="x":0===e.x&&0!==e.y&&(o="y"),v(n,o,r))return"not-allowed";var a=h(n,e);return i[a]+"-resize"},r.skewCursorStyleHandler=function(t,e,i){if(0!==e.x&&i.lockSkewingY)return"not-allowed";if(0!==e.y&&i.lockSkewingX)return"not-allowed";var r=h(i,e)%4;return n[r]+"-resize"},r.scaleSkewCursorStyleHandler=function(t,e,i){return t[i.canvas.altActionKey]?r.skewCursorStyleHandler(t,e,i):r.scaleCursorStyleHandler(t,e,i)},r.rotationWithSnapping=m("rotating",p((function(t,e,i,n){var r=e,o=r.target,a=o.translateToOriginPoint(o.getCenterPoint(),r.originX,r.originY);if(o.lockRotation)return!1;var s,c=Math.atan2(r.ey-a.y,r.ex-a.x),h=Math.atan2(n-a.y,i-a.x),u=l(h-c+r.theta);if(o.snapAngle>0){var f=o.snapAngle,d=o.snapThreshold||f,v=Math.ceil(u/f)*f,g=Math.floor(u/f)*f;Math.abs(u-g)<d?u=g:Math.abs(u-v)<d&&(u=v)}return u<0&&(u=360+u),u%=360,s=o.angle!==u,o.angle=u,s}))),r.scalingEqually=m("scaling",p((function(t,e,i,n){return k(t,e,i,n)}))),r.scalingX=m("scaling",p((function(t,e,i,n){return k(t,e,i,n,{by:"x"})}))),r.scalingY=m("scaling",p((function(t,e,i,n){return k(t,e,i,n,{by:"y"})}))),r.scalingYOrSkewingX=function(t,e,i,n){return t[e.target.canvas.altActionKey]?r.skewHandlerX(t,e,i,n):r.scalingY(t,e,i,n)},r.scalingXOrSkewingY=function(t,e,i,n){return t[e.target.canvas.altActionKey]?r.skewHandlerY(t,e,i,n):r.scalingX(t,e,i,n)},r.changeWidth=m("resizing",p((function(t,e,i,n){var r=e.target,o=y(e,e.originX,e.originY,i,n),a=r.strokeWidth/(r.strokeUniform?r.scaleX:1),s=d(e)?2:1,l=r.width,c=Math.abs(o.x*s/r.scaleX)-a;return r.set("width",Math.max(c,0)),l!==c}))),r.skewHandlerX=function(t,e,i,n){var r,s=e.target,l=s.skewX,c=e.originY;return!s.lockSkewingX&&(0===l?r=y(e,"center","center",i,n).x>0?o:"right":(l>0&&(r=c===a?o:"right"),l<0&&(r=c===a?"right":o),b(s)&&(r=r===o?"right":o)),e.originX=r,m("skewing",p(x))(t,e,i,n))},r.skewHandlerY=function(t,e,i,n){var r,s=e.target,l=s.skewY,c=e.originX;return!s.lockSkewingY&&(0===l?r=y(e,"center","center",i,n).y>0?a:"bottom":(l>0&&(r=c===o?a:"bottom"),l<0&&(r=c===o?"bottom":a),b(s)&&(r=r===a?"bottom":a)),e.originY=r,m("skewing",p(C))(t,e,i,n))},r.dragHandler=function(t,e,i,n){var r=e.target,o=i-e.offsetX,a=n-e.offsetY,s=!r.get("lockMovementX")&&r.left!==o,l=!r.get("lockMovementY")&&r.top!==a;return s&&r.set("left",o),l&&r.set("top",a),(s||l)&&u("moving",g(t,e,i,n)),s||l},r.scaleOrSkewActionName=function(t,e,i){var n=t[i.canvas.altActionKey];return 0===e.x?n?"skewX":"scaleY":0===e.y?n?"skewY":"scaleX":void 0},r.rotationStyleHandler=function(t,e,i){return i.lockRotation?"not-allowed":e.cursorStyle},r.fireEvent=u,r.wrapWithFixedAnchor=p,r.wrapWithFireEvent=m,r.getLocalPoint=y,e.controlsUtils=r}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians,n=e.controlsUtils;n.renderCircleControl=function(t,e,i,n,r){n=n||{};var o,a=this.sizeX||n.cornerSize||r.cornerSize,s=this.sizeY||n.cornerSize||r.cornerSize,l=void 0!==n.transparentCorners?n.transparentCorners:r.transparentCorners,c=l?"stroke":"fill",h=!l&&(n.cornerStrokeColor||r.cornerStrokeColor),u=e,f=i;t.save(),t.fillStyle=n.cornerColor||r.cornerColor,t.strokeStyle=n.cornerStrokeColor||r.cornerStrokeColor,a>s?(o=a,t.scale(1,s/a),f=i*a/s):s>a?(o=s,t.scale(a/s,1),u=e*s/a):o=a,t.lineWidth=1,t.beginPath(),t.arc(u,f,o/2,0,2*Math.PI,!1),t[c](),h&&t.stroke(),t.restore()},n.renderSquareControl=function(t,e,n,r,o){r=r||{};var a=this.sizeX||r.cornerSize||o.cornerSize,s=this.sizeY||r.cornerSize||o.cornerSize,l=void 0!==r.transparentCorners?r.transparentCorners:o.transparentCorners,c=l?"stroke":"fill",h=!l&&(r.cornerStrokeColor||o.cornerStrokeColor),u=a/2,f=s/2;t.save(),t.fillStyle=r.cornerColor||o.cornerColor,t.strokeStyle=r.cornerStrokeColor||o.cornerStrokeColor,t.lineWidth=1,t.translate(e,n),t.rotate(i(o.angle)),t[c+"Rect"](-u,-f,a,s),h&&t.strokeRect(-u,-f,a,s),t.restore()}}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Control=function(t){for(var e in t)this[e]=t[e]},e.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(t,e){return e.cursorStyle},getActionName:function(t,e){return e.actionName},getVisibility:function(t,e){var i=t._controlsVisibility;return i&&void 0!==i[e]?i[e]:this.visible},setVisibility:function(t){this.visible=t},positionHandler:function(t,i){return e.util.transformPoint({x:this.x*t.x+this.offsetX,y:this.y*t.y+this.offsetY},i)},calcCornerCoords:function(t,i,n,r,o){var a,s,l,c,h=o?this.touchSizeX:this.sizeX,u=o?this.touchSizeY:this.sizeY;if(h&&u&&h!==u){var f=Math.atan2(u,h),d=Math.sqrt(h*h+u*u)/2,v=f-e.util.degreesToRadians(t),g=Math.PI/2-f-e.util.degreesToRadians(t);a=d*e.util.cos(v),s=d*e.util.sin(v),l=d*e.util.cos(g),c=d*e.util.sin(g)}else{d=.7071067812*(h&&u?h:i);v=e.util.degreesToRadians(45-t);a=l=d*e.util.cos(v),s=c=d*e.util.sin(v)}return{tl:{x:n-c,y:r-l},tr:{x:n+a,y:r-s},bl:{x:n-a,y:r+s},br:{x:n+c,y:r+l}}},render:function(t,i,n,r,o){switch((r=r||{}).cornerStyle||o.cornerStyle){case"circle":e.controlsUtils.renderCircleControl.call(this,t,i,n,r,o);break;default:e.controlsUtils.renderSquareControl.call(this,t,i,n,r,o)}}}}(e),function(){function t(t,e){var i,n,r,o,a=t.getAttribute("style"),s=t.getAttribute("offset")||0;if(s=(s=parseFloat(s)/(/%$/.test(s)?100:1))<0?0:s>1?1:s,a){var l=a.split(/\s*;\s*/);for(""===l[l.length-1]&&l.pop(),o=l.length;o--;){var c=l[o].split(/\s*:\s*/),h=c[0].trim(),u=c[1].trim();"stop-color"===h?i=u:"stop-opacity"===h&&(r=u)}}return i||(i=t.getAttribute("stop-color")||"rgb(0,0,0)"),r||(r=t.getAttribute("stop-opacity")),n=(i=new S.Color(i)).getAlpha(),r=isNaN(parseFloat(r))?1:parseFloat(r),r*=n*e,{offset:s,color:i.toRgb(),opacity:r}}var e=S.util.object.clone;S.Gradient=S.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(t){t||(t={}),t.coords||(t.coords={});var e,i=this;Object.keys(t).forEach((function(e){i[e]=t[e]})),this.id?this.id+="_"+S.Object.__uid++:this.id=S.Object.__uid++,e={x1:t.coords.x1||0,y1:t.coords.y1||0,x2:t.coords.x2||0,y2:t.coords.y2||0},"radial"===this.type&&(e.r1=t.coords.r1||0,e.r2=t.coords.r2||0),this.coords=e,this.colorStops=t.colorStops.slice()},addColorStop:function(t){for(var e in t){var i=new S.Color(t[e]);this.colorStops.push({offset:parseFloat(e),color:i.toRgb(),opacity:i.getAlpha()})}return this},toObject:function(t){var e={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return S.util.populateWithProperties(this,e,t),e},toSVG:function(t,i){var n,r,o,a,s=e(this.coords,!0),l=(i=i||{},e(this.colorStops,!0)),c=s.r1>s.r2,h=this.gradientTransform?this.gradientTransform.concat():S.iMatrix.concat(),u=-this.offsetX,f=-this.offsetY,d=!!i.additionalTransform,v="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(l.sort((function(t,e){return t.offset-e.offset})),"objectBoundingBox"===v?(u/=t.width,f/=t.height):(u+=t.width/2,f+=t.height/2),"path"===t.type&&"percentage"!==this.gradientUnits&&(u-=t.pathOffset.x,f-=t.pathOffset.y),h[4]-=u,h[5]-=f,a='id="SVGID_'+this.id+'" gradientUnits="'+v+'"',a+=' gradientTransform="'+(d?i.additionalTransform+" ":"")+S.util.matrixToSVG(h)+'" ',"linear"===this.type?o=["<linearGradient ",a,' x1="',s.x1,'" y1="',s.y1,'" x2="',s.x2,'" y2="',s.y2,'">\n']:"radial"===this.type&&(o=["<radialGradient ",a,' cx="',c?s.x1:s.x2,'" cy="',c?s.y1:s.y2,'" r="',c?s.r1:s.r2,'" fx="',c?s.x2:s.x1,'" fy="',c?s.y2:s.y1,'">\n']),"radial"===this.type){if(c)for((l=l.concat()).reverse(),n=0,r=l.length;n<r;n++)l[n].offset=1-l[n].offset;var g=Math.min(s.r1,s.r2);if(g>0){var p=g/Math.max(s.r1,s.r2);for(n=0,r=l.length;n<r;n++)l[n].offset+=p*(1-l[n].offset)}}for(n=0,r=l.length;n<r;n++){var m=l[n];o.push("<stop ",'offset="',100*m.offset+"%",'" style="stop-color:',m.color,void 0!==m.opacity?";stop-opacity: "+m.opacity:";",'"/>\n')}return o.push("linear"===this.type?"</linearGradient>\n":"</radialGradient>\n"),o.join("")},toLive:function(t){var e,i,n,r=S.util.object.clone(this.coords);if(this.type){for("linear"===this.type?e=t.createLinearGradient(r.x1,r.y1,r.x2,r.y2):"radial"===this.type&&(e=t.createRadialGradient(r.x1,r.y1,r.r1,r.x2,r.y2,r.r2)),i=0,n=this.colorStops.length;i<n;i++){var o=this.colorStops[i].color,a=this.colorStops[i].opacity,s=this.colorStops[i].offset;void 0!==a&&(o=new S.Color(o).setAlpha(a).toRgba()),e.addColorStop(s,o)}return e}}}),S.util.object.extend(S.Gradient,{fromElement:function(e,i,n,r){var o=parseFloat(n)/(/%$/.test(n)?100:1);o=o<0?0:o>1?1:o,isNaN(o)&&(o=1);var a,s,l,c,h=e.getElementsByTagName("stop"),u="userSpaceOnUse"===e.getAttribute("gradientUnits")?"pixels":"percentage",f=e.getAttribute("gradientTransform")||"",d=[],v=0,g=0;for("linearGradient"===e.nodeName||"LINEARGRADIENT"===e.nodeName?(a="linear",s=function(t){return{x1:t.getAttribute("x1")||0,y1:t.getAttribute("y1")||0,x2:t.getAttribute("x2")||"100%",y2:t.getAttribute("y2")||0}}(e)):(a="radial",s=function(t){return{x1:t.getAttribute("fx")||t.getAttribute("cx")||"50%",y1:t.getAttribute("fy")||t.getAttribute("cy")||"50%",r1:0,x2:t.getAttribute("cx")||"50%",y2:t.getAttribute("cy")||"50%",r2:t.getAttribute("r")||"50%"}}(e)),l=h.length;l--;)d.push(t(h[l],o));return c=S.parseTransformAttribute(f),function(t,e,i,n){var r,o;Object.keys(e).forEach((function(t){"Infinity"===(r=e[t])?o=1:"-Infinity"===r?o=0:(o=parseFloat(e[t],10),"string"==typeof r&&/^(\d+\.\d+)%|(\d+)%$/.test(r)&&(o*=.01,"pixels"===n&&("x1"!==t&&"x2"!==t&&"r2"!==t||(o*=i.viewBoxWidth||i.width),"y1"!==t&&"y2"!==t||(o*=i.viewBoxHeight||i.height)))),e[t]=o}))}(0,s,r,u),"pixels"===u&&(v=-i.left,g=-i.top),new S.Gradient({id:e.getAttribute("id"),type:a,coords:s,colorStops:d,gradientUnits:u,gradientTransform:c,offsetX:v,offsetY:g})}})}(),function(){"use strict";var t=S.util.toFixed;S.Pattern=S.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(t,e){if(t||(t={}),this.id=S.Object.__uid++,this.setOptions(t),!t.source||t.source&&"string"!=typeof t.source)e&&e(this);else{var i=this;this.source=S.util.createImage(),S.util.loadImage(t.source,(function(t,n){i.source=t,e&&e(i,n)}),null,this.crossOrigin)}},toObject:function(e){var i,n,r=S.Object.NUM_FRACTION_DIGITS;return"string"==typeof this.source.src?i=this.source.src:"object"==typeof this.source&&this.source.toDataURL&&(i=this.source.toDataURL()),n={type:"pattern",source:i,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:t(this.offsetX,r),offsetY:t(this.offsetY,r),patternTransform:this.patternTransform?this.patternTransform.concat():null},S.util.populateWithProperties(this,n,e),n},toSVG:function(t){var e="function"==typeof this.source?this.source():this.source,i=e.width/t.width,n=e.height/t.height,r=this.offsetX/t.width,o=this.offsetY/t.height,a="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(n=1,o&&(n+=Math.abs(o))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(i=1,r&&(i+=Math.abs(r))),e.src?a=e.src:e.toDataURL&&(a=e.toDataURL()),'<pattern id="SVGID_'+this.id+'" x="'+r+'" y="'+o+'" width="'+i+'" height="'+n+'">\n<image x="0" y="0" width="'+e.width+'" height="'+e.height+'" xlink:href="'+a+'"></image>\n</pattern>\n'},setOptions:function(t){for(var e in t)this[e]=t[e]},toLive:function(t){var e=this.source;if(!e)return"";if(void 0!==e.src){if(!e.complete)return"";if(0===e.naturalWidth||0===e.naturalHeight)return""}return t.createPattern(e,this.repeat)}})}(),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.toFixed;e.Shadow?e.warn("fabric.Shadow is already defined."):(e.Shadow=e.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(t){for(var i in"string"==typeof t&&(t=this._parseShadow(t)),t)this[i]=t[i];this.id=e.Object.__uid++},_parseShadow:function(t){var i=t.trim(),n=e.Shadow.reOffsetsAndBlur.exec(i)||[];return{color:(i.replace(e.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseFloat(n[1],10)||0,offsetY:parseFloat(n[2],10)||0,blur:parseFloat(n[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(t){var n=40,r=40,o=e.Object.NUM_FRACTION_DIGITS,a=e.util.rotateVector({x:this.offsetX,y:this.offsetY},e.util.degreesToRadians(-t.angle)),s=new e.Color(this.color);return t.width&&t.height&&(n=100*i((Math.abs(a.x)+this.blur)/t.width,o)+20,r=100*i((Math.abs(a.y)+this.blur)/t.height,o)+20),t.flipX&&(a.x*=-1),t.flipY&&(a.y*=-1),'<filter id="SVGID_'+this.id+'" y="-'+r+'%" height="'+(100+2*r)+'%" x="-'+n+'%" width="'+(100+2*n)+'%" >\n\t<feGaussianBlur in="SourceAlpha" stdDeviation="'+i(this.blur?this.blur/2:0,o)+'"></feGaussianBlur>\n\t<feOffset dx="'+i(a.x,o)+'" dy="'+i(a.y,o)+'" 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:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var t={},i=e.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(e){this[e]!==i[e]&&(t[e]=this[e])}),this),t}}),e.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/)}(e),function(){"use strict";if(S.StaticCanvas)S.warn("fabric.StaticCanvas is already defined.");else{var t=S.util.object.extend,e=S.util.getElementOffset,i=S.util.removeFromArray,n=S.util.toFixed,r=S.util.transformPoint,o=S.util.invertTransform,a=S.util.getNodeCanvas,s=S.util.createCanvasElement,l=new Error("Could not initialize `canvas` element");S.StaticCanvas=S.util.createClass(S.CommonMethods,{initialize:function(t,e){e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:S.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(t,e){var i=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(t),this._initOptions(e),this.interactive||this._initRetinaScaling(),e.overlayImage&&this.setOverlayImage(e.overlayImage,i),e.backgroundImage&&this.setBackgroundImage(e.backgroundImage,i),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor,i),e.overlayColor&&this.setOverlayColor(e.overlayColor,i),this.calcOffset()},_isRetinaScaling:function(){return 1!==S.devicePixelRatio&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?S.devicePixelRatio:1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var t=S.devicePixelRatio;this.__initRetinaScaling(t,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(t,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(t,e,i){e.setAttribute("width",this.width*t),e.setAttribute("height",this.height*t),i.scale(t,t)},calcOffset:function(){return this._offset=e(this.lowerCanvasEl),this},setOverlayImage:function(t,e,i){return this.__setBgOverlayImage("overlayImage",t,e,i)},setBackgroundImage:function(t,e,i){return this.__setBgOverlayImage("backgroundImage",t,e,i)},setOverlayColor:function(t,e){return this.__setBgOverlayColor("overlayColor",t,e)},setBackgroundColor:function(t,e){return this.__setBgOverlayColor("backgroundColor",t,e)},__setBgOverlayImage:function(t,e,i,n){return"string"==typeof e?S.util.loadImage(e,(function(e,r){if(e){var o=new S.Image(e,n);this[t]=o,o.canvas=this}i&&i(e,r)}),this,n&&n.crossOrigin):(n&&e.setOptions(n),this[t]=e,e&&(e.canvas=this),i&&i(e,!1)),this},__setBgOverlayColor:function(t,e,i){return this[t]=e,this._initGradient(e,t),this._initPattern(e,t,i),this},_createCanvasElement:function(){var t=s();if(!t)throw l;if(t.style||(t.style={}),void 0===t.getContext)throw l;return t},_initOptions:function(t){var e=this.lowerCanvasEl;this._setOptions(t),this.width=this.width||parseInt(e.width,10)||0,this.height=this.height||parseInt(e.height,10)||0,this.lowerCanvasEl.style&&(e.width=this.width,e.height=this.height,e.style.width=this.width+"px",e.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(t){t&&t.getContext?this.lowerCanvasEl=t:this.lowerCanvasEl=S.util.getById(t)||this._createCanvasElement(),S.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(t,e){return this.setDimensions({width:t},e)},setHeight:function(t,e){return this.setDimensions({height:t},e)},setDimensions:function(t,e){var i;for(var n in e=e||{},t)i=t[n],e.cssOnly||(this._setBackstoreDimension(n,t[n]),i+="px",this.hasLostContext=!0),e.backstoreOnly||this._setCssDimension(n,i);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(),this._initRetinaScaling(),this.calcOffset(),e.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(t,e){return this.lowerCanvasEl[t]=e,this.upperCanvasEl&&(this.upperCanvasEl[t]=e),this.cacheCanvasEl&&(this.cacheCanvasEl[t]=e),this[t]=e,this},_setCssDimension:function(t,e){return this.lowerCanvasEl.style[t]=e,this.upperCanvasEl&&(this.upperCanvasEl.style[t]=e),this.wrapperEl&&(this.wrapperEl.style[t]=e),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(t){var e,i,n,r=this._activeObject,o=this.backgroundImage,a=this.overlayImage;for(this.viewportTransform=t,i=0,n=this._objects.length;i<n;i++)(e=this._objects[i]).group||e.setCoords(!0);return r&&r.setCoords(),o&&o.setCoords(!0),a&&a.setCoords(!0),this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll(),this},zoomToPoint:function(t,e){var i=t,n=this.viewportTransform.slice(0);t=r(t,o(this.viewportTransform)),n[0]=e,n[3]=e;var a=r(t,n);return n[4]+=i.x-a.x,n[5]+=i.y-a.y,this.setViewportTransform(n)},setZoom:function(t){return this.zoomToPoint(new S.Point(0,0),t),this},absolutePan:function(t){var e=this.viewportTransform.slice(0);return e[4]=-t.x,e[5]=-t.y,this.setViewportTransform(e)},relativePan:function(t){return this.absolutePan(new S.Point(-t.x-this.viewportTransform[4],-t.y-this.viewportTransform[5]))},getElement:function(){return this.lowerCanvasEl},_onObjectAdded:function(t){this.stateful&&t.setupState(),t._set("canvas",this),t.setCoords(),this.fire("object:added",{target:t}),t.fire("added")},_onObjectRemoved:function(t){this.fire("object:removed",{target:t}),t.fire("removed"),delete t.canvas},clearContext:function(t){return t.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this.remove.apply(this,this.getObjects()),this.backgroundImage=null,this.overlayImage=null,this.backgroundColor="",this.overlayColor="",this._hasITextHandlers&&(this.off("mouse:up",this._mouseUpITextHandler),this._iTextInstances=null,this._hasITextHandlers=!1),this.clearContext(this.contextContainer),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll(),this},renderAll:function(){var t=this.contextContainer;return this.renderCanvas(t,this._objects),this},renderAndReset:function(){this.isRendering=0,this.renderAll()},requestRenderAll:function(){return this.isRendering||(this.isRendering=S.util.requestAnimFrame(this.renderAndResetBound)),this},calcViewportBoundaries:function(){var t={},e=this.width,i=this.height,n=o(this.viewportTransform);return t.tl=r({x:0,y:0},n),t.br=r({x:e,y:i},n),t.tr=new S.Point(t.br.x,t.tl.y),t.bl=new S.Point(t.tl.x,t.br.y),this.vptCoords=t,t},cancelRequestedRender:function(){this.isRendering&&(S.util.cancelAnimFrame(this.isRendering),this.isRendering=0)},renderCanvas:function(t,e){var i=this.viewportTransform,n=this.clipPath;this.cancelRequestedRender(),this.calcViewportBoundaries(),this.clearContext(t),S.util.setImageSmoothing(t,this.imageSmoothingEnabled),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.interactive&&this.drawControls(t),n&&(n.canvas=this,n.shouldCache(),n._transformDone=!0,n.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(t)),this._renderOverlay(t),this.controlsAboveOverlay&&this.interactive&&this.drawControls(t),this.fire("after:render",{ctx:t})},drawClipPathOnCanvas:function(t){var e=this.viewportTransform,i=this.clipPath;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t.globalCompositeOperation="destination-in",i.transform(t),t.scale(1/i.zoomX,1/i.zoomY),t.drawImage(i._cacheCanvas,-i.cacheTranslationX,-i.cacheTranslationY),t.restore()},_renderObjects:function(t,e){var i,n;for(i=0,n=e.length;i<n;++i)e[i]&&e[i].render(t)},_renderBackgroundOrOverlay:function(t,e){var i=this[e+"Color"],n=this[e+"Image"],r=this.viewportTransform,o=this[e+"Vpt"];if(i||n){if(i){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=i.toLive?i.toLive(t,this):i,o&&t.transform(r[0],r[1],r[2],r[3],r[4],r[5]),t.transform(1,0,0,1,i.offsetX||0,i.offsetY||0);var a=i.gradientTransform||i.patternTransform;a&&t.transform(a[0],a[1],a[2],a[3],a[4],a[5]),t.fill(),t.restore()}n&&(t.save(),o&&t.transform(r[0],r[1],r[2],r[3],r[4],r[5]),n.render(t),t.restore())}},_renderBackground:function(t){this._renderBackgroundOrOverlay(t,"background")},_renderOverlay:function(t){this._renderBackgroundOrOverlay(t,"overlay")},getCenter:function(){return{top:this.height/2,left:this.width/2}},centerObjectH:function(t){return this._centerObject(t,new S.Point(this.getCenter().left,t.getCenterPoint().y))},centerObjectV:function(t){return this._centerObject(t,new S.Point(t.getCenterPoint().x,this.getCenter().top))},centerObject:function(t){var e=this.getCenter();return this._centerObject(t,new S.Point(e.left,e.top))},viewportCenterObject:function(t){var e=this.getVpCenter();return this._centerObject(t,e)},viewportCenterObjectH:function(t){var e=this.getVpCenter();return this._centerObject(t,new S.Point(e.x,t.getCenterPoint().y)),this},viewportCenterObjectV:function(t){var e=this.getVpCenter();return this._centerObject(t,new S.Point(t.getCenterPoint().x,e.y))},getVpCenter:function(){var t=this.getCenter(),e=o(this.viewportTransform);return r({x:t.left,y:t.top},e)},_centerObject:function(t,e){return t.setPositionByOrigin(e,"center","center"),t.setCoords(),this.renderOnAddRemove&&this.requestRenderAll(),this},toDatalessJSON:function(t){return this.toDatalessObject(t)},toObject:function(t){return this._toObjectMethod("toObject",t)},toDatalessObject:function(t){return this._toObjectMethod("toDatalessObject",t)},_toObjectMethod:function(e,i){var n=this.clipPath,r={version:S.version,objects:this._toObjects(e,i)};return n&&!n.excludeFromExport&&(r.clipPath=this._toObject(this.clipPath,e,i)),t(r,this.__serializeBgOverlay(e,i)),S.util.populateWithProperties(this,r,i),r},_toObjects:function(t,e){return this._objects.filter((function(t){return!t.excludeFromExport})).map((function(i){return this._toObject(i,t,e)}),this)},_toObject:function(t,e,i){var n;this.includeDefaultValues||(n=t.includeDefaultValues,t.includeDefaultValues=!1);var r=t[e](i);return this.includeDefaultValues||(t.includeDefaultValues=n),r},__serializeBgOverlay:function(t,e){var i={},n=this.backgroundImage,r=this.overlayImage,o=this.backgroundColor,a=this.overlayColor;return o&&o.toObject?o.excludeFromExport||(i.background=o.toObject(e)):o&&(i.background=o),a&&a.toObject?a.excludeFromExport||(i.overlay=a.toObject(e)):a&&(i.overlay=a),n&&!n.excludeFromExport&&(i.backgroundImage=this._toObject(n,t,e)),r&&!r.excludeFromExport&&(i.overlayImage=this._toObject(r,t,e)),i},svgViewportTransformation:!0,toSVG:function(t,e){t||(t={}),t.reviver=e;var i=[];return this._setSVGPreamble(i,t),this._setSVGHeader(i,t),this.clipPath&&i.push('<g clip-path="url(#'+this.clipPath.clipPathId+')" >\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:function(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:function(t,e){var i,r=e.width||this.width,o=e.height||this.height,a='viewBox="0 0 '+this.width+" "+this.height+'" ',s=S.Object.NUM_FRACTION_DIGITS;e.viewBox?a='viewBox="'+e.viewBox.x+" "+e.viewBox.y+" "+e.viewBox.width+" "+e.viewBox.height+'" ':this.svgViewportTransformation&&(i=this.viewportTransform,a='viewBox="'+n(-i[4]/i[0],s)+" "+n(-i[5]/i[3],s)+" "+n(this.width/i[0],s)+" "+n(this.height/i[3],s)+'" '),t.push("<svg ",'xmlns="http://www.w3.org/2000/svg" ','xmlns:xlink="http://www.w3.org/1999/xlink" ','version="1.1" ','width="',r,'" ','height="',o,'" ',a,'xml:space="preserve">\n',"<desc>Created with Fabric.js ",S.version,"</desc>\n","<defs>\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),"</defs>\n")},createSVGClipPathMarkup:function(t){var e=this.clipPath;return e?(e.clipPathId="CLIPPATH_"+S.Object.__uid++,'<clipPath id="'+e.clipPathId+'" >\n'+this.clipPath.toClipPathSVG(t.reviver)+"</clipPath>\n"):""},createSVGRefElementsMarkup:function(){var t=this;return["background","overlay"].map((function(e){var i=t[e+"Color"];if(i&&i.toLive){var n=t[e+"Vpt"],r=t.viewportTransform,o={width:t.width/(n?r[0]:1),height:t.height/(n?r[3]:1)};return i.toSVG(o,{additionalTransform:n?S.util.matrixToSVG(r):""})}})).join("")},createSVGFontFacesMarkup:function(){var t,e,i,n,r,o,a,s,l="",c={},h=S.fontPaths,u=[];for(this._objects.forEach((function t(e){u.push(e),e._objects&&e._objects.forEach(t)})),a=0,s=u.length;a<s;a++)if(e=(t=u[a]).fontFamily,-1!==t.type.indexOf("text")&&!c[e]&&h[e]&&(c[e]=!0,t.styles))for(r in i=t.styles)for(o in n=i[r])!c[e=n[o].fontFamily]&&h[e]&&(c[e]=!0);for(var f in c)l+=["\t\t@font-face {\n","\t\t\tfont-family: '",f,"';\n","\t\t\tsrc: url('",h[f],"');\n","\t\t}\n"].join("");return l&&(l=['\t<style type="text/css">',"<![CDATA[\n",l,"]]>","</style>\n"].join("")),l},_setSVGObjects:function(t,e){var i,n,r,o=this._objects;for(n=0,r=o.length;n<r;n++)(i=o[n]).excludeFromExport||this._setSVGObject(t,i,e)},_setSVGObject:function(t,e,i){t.push(e.toSVG(i))},_setSVGBgOverlayImage:function(t,e,i){this[e]&&!this[e].excludeFromExport&&this[e].toSVG&&t.push(this[e].toSVG(i))},_setSVGBgOverlayColor:function(t,e){var i=this[e+"Color"],n=this.viewportTransform,r=this.width,o=this.height;if(i)if(i.toLive){var a=i.repeat,s=S.util.invertTransform(n),l=this[e+"Vpt"]?S.util.matrixToSVG(s):"";t.push('<rect transform="'+l+" translate(",r/2,",",o/2,')"',' x="',i.offsetX-r/2,'" y="',i.offsetY-o/2,'" ','width="',"repeat-y"===a||"no-repeat"===a?i.source.width:r,'" height="',"repeat-x"===a||"no-repeat"===a?i.source.height:o,'" fill="url(#SVGID_'+i.id+')"',"></rect>\n")}else t.push('<rect x="0" y="0" width="100%" height="100%" ','fill="',i,'"',"></rect>\n")},sendToBack:function(t){if(!t)return this;var e,n,r,o=this._activeObject;if(t===o&&"activeSelection"===t.type)for(e=(r=o._objects).length;e--;)n=r[e],i(this._objects,n),this._objects.unshift(n);else i(this._objects,t),this._objects.unshift(t);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(t){if(!t)return this;var e,n,r,o=this._activeObject;if(t===o&&"activeSelection"===t.type)for(r=o._objects,e=0;e<r.length;e++)n=r[e],i(this._objects,n),this._objects.push(n);else i(this._objects,t),this._objects.push(t);return this.renderOnAddRemove&&this.requestRenderAll(),this},sendBackwards:function(t,e){if(!t)return this;var n,r,o,a,s,l=this._activeObject,c=0;if(t===l&&"activeSelection"===t.type)for(s=l._objects,n=0;n<s.length;n++)r=s[n],(o=this._objects.indexOf(r))>0+c&&(a=o-1,i(this._objects,r),this._objects.splice(a,0,r)),c++;else 0!==(o=this._objects.indexOf(t))&&(a=this._findNewLowerIndex(t,o,e),i(this._objects,t),this._objects.splice(a,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(t,e,i){var n,r;if(i)for(n=e,r=e-1;r>=0;--r){if(t.intersectsWithObject(this._objects[r])||t.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(t)){n=r;break}}else n=e-1;return n},bringForward:function(t,e){if(!t)return this;var n,r,o,a,s,l=this._activeObject,c=0;if(t===l&&"activeSelection"===t.type)for(n=(s=l._objects).length;n--;)r=s[n],(o=this._objects.indexOf(r))<this._objects.length-1-c&&(a=o+1,i(this._objects,r),this._objects.splice(a,0,r)),c++;else(o=this._objects.indexOf(t))!==this._objects.length-1&&(a=this._findNewUpperIndex(t,o,e),i(this._objects,t),this._objects.splice(a,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewUpperIndex:function(t,e,i){var n,r,o;if(i)for(n=e,r=e+1,o=this._objects.length;r<o;++r){if(t.intersectsWithObject(this._objects[r])||t.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(t)){n=r;break}}else n=e+1;return n},moveTo:function(t,e){return i(this._objects,t),this._objects.splice(e,0,t),this.renderOnAddRemove&&this.requestRenderAll()},dispose:function(){return this.isRendering&&(S.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject((function(t){t.dispose&&t.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,this.lowerCanvasEl.classList.remove("lower-canvas"),this.lowerCanvasEl.style=this._originalCanvasStyle,delete this._originalCanvasStyle,this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),S.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},toString:function(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this._objects.length+" }>"}}),t(S.StaticCanvas.prototype,S.Observable),t(S.StaticCanvas.prototype,S.Collection),t(S.StaticCanvas.prototype,S.DataURLExporter),t(S.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(t){var e=s();if(!e||!e.getContext)return null;var i=e.getContext("2d");if(!i)return null;switch(t){case"setLineDash":return void 0!==i.setLineDash;default:return null}}}),S.StaticCanvas.prototype.toJSON=S.StaticCanvas.prototype.toObject,S.isLikelyNode&&(S.StaticCanvas.prototype.createPNGStream=function(){var t=a(this.lowerCanvasEl);return t&&t.createPNGStream()},S.StaticCanvas.prototype.createJPEGStream=function(t){var e=a(this.lowerCanvasEl);return e&&e.createJPEGStream(t)})}}(),S.BaseBrush=S.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(){var t=this.canvas.contextTop;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:function(t){var e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])},_setShadow:function(){if(this.shadow){var t=this.canvas,e=this.shadow,i=t.contextTop,n=t.getZoom();t&&t._isRetinaScaling()&&(n*=S.devicePixelRatio),i.shadowColor=e.color,i.shadowBlur=e.blur*n,i.shadowOffsetX=e.offsetX*n,i.shadowOffsetY=e.offsetY*n}},needsFullRender:function(){return new S.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var t=this.canvas.contextTop;t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0},_isOutSideCanvas:function(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}}),S.PencilBrush=S.util.createClass(S.BaseBrush,{decimate:.4,initialize:function(t){this.canvas=t,this._points=[]},_drawSegment:function(t,e,i){var n=e.midPointFrom(i);return t.quadraticCurveTo(e.x,e.y,n.x,n.y),n},onMouseDown:function(t,e){this.canvas._isMainEvent(e.e)&&(this._prepareForDrawing(t),this._captureDrawingPath(t),this._render())},onMouseMove:function(t,e){if(this.canvas._isMainEvent(e.e)&&(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(t))&&this._captureDrawingPath(t)&&this._points.length>1)if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var i=this._points,n=i.length,r=this.canvas.contextTop;this._saveAndTransform(r),this.oldEnd&&(r.beginPath(),r.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(r,i[n-2],i[n-1],!0),r.stroke(),r.restore()}},onMouseUp:function(t){return!this.canvas._isMainEvent(t.e)||(this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(t){var e=new S.Point(t.x,t.y);this._reset(),this._addPoint(e),this.canvas.contextTop.moveTo(e.x,e.y)},_addPoint:function(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1])||(this._points.push(t),0))},_reset:function(){this._points=[],this._setBrushStyles(),this._setShadow()},_captureDrawingPath:function(t){var e=new S.Point(t.x,t.y);return this._addPoint(e)},_render:function(){var t,e,i=this.canvas.contextTop,n=this._points[0],r=this._points[1];if(this._saveAndTransform(i),i.beginPath(),2===this._points.length&&n.x===r.x&&n.y===r.y){var o=this.width/1e3;n=new S.Point(n.x,n.y),r=new S.Point(r.x,r.y),n.x-=o,r.x+=o}for(i.moveTo(n.x,n.y),t=1,e=this._points.length;t<e;t++)this._drawSegment(i,n,r),n=this._points[t],r=this._points[t+1];i.lineTo(n.x,n.y),i.stroke(),i.restore()},convertPointsToSVGPath:function(t){var e=this.width/1e3;return S.util.getSmoothPathFromPoints(t,e)},_isEmptySVGPath:function(t){return"M 0 0 Q 0 0 0 0 L 0 0"===S.util.joinPath(t)},createPath:function(t){var e=new S.Path(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 S.Shadow(this.shadow)),e},decimatePoints:function(t,e){if(t.length<=2)return t;var i,n=this.canvas.getZoom(),r=Math.pow(e/n,2),o=t.length-1,a=t[0],s=[a];for(i=1;i<o-1;i++)Math.pow(a.x-t[i].x,2)+Math.pow(a.y-t[i].y,2)>=r&&(a=t[i],s.push(a));return s.push(t[o]),s},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var t=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(t))this.canvas.requestRenderAll();else{var 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})}}}),S.CircleBrush=S.util.createClass(S.BaseBrush,{width:10,initialize:function(t){this.canvas=t,this.points=[]},drawDot:function(t){var e=this.addPoint(t),i=this.canvas.contextTop;this._saveAndTransform(i),this.dot(i,e),i.restore()},dot:function(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:function(t){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)},_render:function(){var t,e,i=this.canvas.contextTop,n=this.points;for(this._saveAndTransform(i),t=0,e=n.length;t<e;t++)this.dot(i,n[t]);i.restore()},onMouseMove:function(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(t),this._render()):this.drawDot(t))},onMouseUp:function(){var t,e,i=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;var n=[];for(t=0,e=this.points.length;t<e;t++){var r=this.points[t],o=new S.Circle({radius:r.radius,left:r.x,top:r.y,originX:"center",originY:"center",fill:r.fill});this.shadow&&(o.shadow=new S.Shadow(this.shadow)),n.push(o)}var a=new S.Group(n);a.canvas=this.canvas,this.canvas.fire("before:path:created",{path:a}),this.canvas.add(a),this.canvas.fire("path:created",{path:a}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=i,this.canvas.requestRenderAll()},addPoint:function(t){var e=new S.Point(t.x,t.y),i=S.util.getRandomInt(Math.max(0,this.width-20),this.width+20)/2,n=new S.Color(this.color).setAlpha(S.util.getRandomInt(0,100)/100).toRgba();return e.radius=i,e.fill=n,this.points.push(e),e}}),S.SprayBrush=S.util.createClass(S.BaseBrush,{width:10,density:20,dotWidth:1,dotWidthVariance:1,randomOpacity:!1,optimizeOverlapping:!0,initialize:function(t){this.canvas=t,this.sprayChunks=[]},onMouseDown:function(t){this.sprayChunks.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(t),this.render(this.sprayChunkPoints)},onMouseMove:function(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.addSprayChunk(t),this.render(this.sprayChunkPoints))},onMouseUp:function(){var t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;for(var e=[],i=0,n=this.sprayChunks.length;i<n;i++)for(var r=this.sprayChunks[i],o=0,a=r.length;o<a;o++){var s=new S.Rect({width:r[o].width,height:r[o].width,left:r[o].x+1,top:r[o].y+1,originX:"center",originY:"center",fill:this.color});e.push(s)}this.optimizeOverlapping&&(e=this._getOptimizedRects(e));var l=new S.Group(e);this.shadow&&l.set("shadow",new S.Shadow(this.shadow)),this.canvas.fire("before:path:created",{path:l}),this.canvas.add(l),this.canvas.fire("path:created",{path:l}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()},_getOptimizedRects:function(t){var e,i,n,r={};for(i=0,n=t.length;i<n;i++)r[e=t[i].left+""+t[i].top]||(r[e]=t[i]);var o=[];for(e in r)o.push(r[e]);return o},render:function(t){var e,i,n=this.canvas.contextTop;for(n.fillStyle=this.color,this._saveAndTransform(n),e=0,i=t.length;e<i;e++){var r=t[e];void 0!==r.opacity&&(n.globalAlpha=r.opacity),n.fillRect(r.x,r.y,r.width,r.width)}n.restore()},_render:function(){var t,e,i=this.canvas.contextTop;for(i.fillStyle=this.color,this._saveAndTransform(i),t=0,e=this.sprayChunks.length;t<e;t++)this.render(this.sprayChunks[t]);i.restore()},addSprayChunk:function(t){this.sprayChunkPoints=[];var e,i,n,r,o=this.width/2;for(r=0;r<this.density;r++){e=S.util.getRandomInt(t.x-o,t.x+o),i=S.util.getRandomInt(t.y-o,t.y+o),n=this.dotWidthVariance?S.util.getRandomInt(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth;var a=new S.Point(e,i);a.width=n,this.randomOpacity&&(a.opacity=S.util.getRandomInt(0,100)/100),this.sprayChunkPoints.push(a)}this.sprayChunks.push(this.sprayChunkPoints)}}),S.PatternBrush=S.util.createClass(S.PencilBrush,{getPatternSrc:function(){var t=S.util.createCanvasElement(),e=t.getContext("2d");return t.width=t.height=25,e.fillStyle=this.color,e.beginPath(),e.arc(10,10,10,0,2*Math.PI,!1),e.closePath(),e.fill(),t},getPatternSrcFunction:function(){return String(this.getPatternSrc).replace("this.color",'"'+this.color+'"')},getPattern:function(){return this.canvas.contextTop.createPattern(this.source||this.getPatternSrc(),"repeat")},_setBrushStyles:function(){this.callSuper("_setBrushStyles"),this.canvas.contextTop.strokeStyle=this.getPattern()},createPath:function(t){var e=this.callSuper("createPath",t),i=e._getLeftTopCoords().scalarAdd(e.strokeWidth/2);return e.stroke=new S.Pattern({source:this.source||this.getPatternSrcFunction(),offsetX:-i.x,offsetY:-i.y}),e}}),function(){var t=S.util.getPointer,e=S.util.degreesToRadians,i=S.util.isTouchEvent;for(var n in S.Canvas=S.util.createClass(S.StaticCanvas,{initialize:function(t,e){e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e),this._initInteractive(),this._createCacheCanvas()},uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",interactive:!0,selection:!0,selectionKey:"shiftKey",altSelectionKey:null,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",rotationCursor:"crosshair",notAllowedCursor:"not-allowed",containerClass:"canvas-container",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,isDrawingMode:!1,preserveObjectStacking:!1,snapAngle:0,snapThreshold:null,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,targets:[],_hoveredTarget:null,_hoveredTargets:[],_initInteractive:function(){this._currentTransform=null,this._groupSelector=null,this._initWrapperElement(),this._createUpperCanvas(),this._initEventListeners(),this._initRetinaScaling(),this.freeDrawingBrush=S.PencilBrush&&new S.PencilBrush(this),this.calcOffset()},_chooseObjectsToRender:function(){var t,e,i,n=this.getActiveObjects();if(n.length>0&&!this.preserveObjectStacking){e=[],i=[];for(var r=0,o=this._objects.length;r<o;r++)t=this._objects[r],-1===n.indexOf(t)?e.push(t):i.push(t);n.length>1&&(this._activeObject._objects=i),e.push.apply(e,i)}else e=this._objects;return e},renderAll:function(){!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&this.renderTopLayer(this.contextTop);var t=this.contextContainer;return this.renderCanvas(t,this._chooseObjectsToRender()),this},renderTopLayer:function(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:function(){var t=this.contextTop;return this.clearContext(t),this.renderTopLayer(t),this.fire("after:render"),this},_normalizePointer:function(t,e){var i=t.calcTransformMatrix(),n=S.util.invertTransform(i),r=this.restorePointerVpt(e);return S.util.transformPoint(r,n)},isTargetTransparent:function(t,e,i){if(t.shouldCache()&&t._cacheCanvas&&t!==this._activeObject){var n=this._normalizePointer(t,{x:e,y:i}),r=Math.max(t.cacheTranslationX+n.x*t.zoomX,0),o=Math.max(t.cacheTranslationY+n.y*t.zoomY,0);return S.util.isTransparent(t._cacheContext,Math.round(r),Math.round(o),this.targetFindTolerance)}var a=this.contextCache,s=t.selectionBackgroundColor,l=this.viewportTransform;return t.selectionBackgroundColor="",this.clearContext(a),a.save(),a.transform(l[0],l[1],l[2],l[3],l[4],l[5]),t.render(a),a.restore(),t.selectionBackgroundColor=s,S.util.isTransparent(a,e,i,this.targetFindTolerance)},_isSelectionKeyPressed:function(t){return"[object Array]"===Object.prototype.toString.call(this.selectionKey)?!!this.selectionKey.find((function(e){return!0===t[e]})):t[this.selectionKey]},_shouldClearSelection:function(t,e){var i=this.getActiveObjects(),n=this._activeObject;return!e||e&&n&&i.length>1&&-1===i.indexOf(e)&&n!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&n&&n!==e},_shouldCenterTransform:function(t,e,i){var n;if(t)return"scale"===e||"scaleX"===e||"scaleY"===e||"resizing"===e?n=this.centeredScaling||t.centeredScaling:"rotate"===e&&(n=this.centeredRotation||t.centeredRotation),n?!i:i},_getOriginFromCorner:function(t,e){var i={x:t.originX,y:t.originY};return"ml"===e||"tl"===e||"bl"===e?i.x="right":"mr"!==e&&"tr"!==e&&"br"!==e||(i.x="left"),"tl"===e||"mt"===e||"tr"===e?i.y="bottom":"bl"!==e&&"mb"!==e&&"br"!==e||(i.y="top"),i},_getActionFromCorner:function(t,e,i,n){if(!e||!t)return"drag";var r=n.controls[e];return r.getActionName(i,r,n)},_setupCurrentTransform:function(t,i,n){if(i){var r=this.getPointer(t),o=i.__corner,a=i.controls[o],s=n&&o?a.getActionHandler(t,i,a):S.controlsUtils.dragHandler,l=this._getActionFromCorner(n,o,t,i),c=this._getOriginFromCorner(i,o),h=t[this.centeredKey],u={target:i,action:l,actionHandler:s,corner:o,scaleX:i.scaleX,scaleY:i.scaleY,skewX:i.skewX,skewY:i.skewY,offsetX:r.x-i.left,offsetY:r.y-i.top,originX:c.x,originY:c.y,ex:r.x,ey:r.y,lastX:r.x,lastY:r.y,theta:e(i.angle),width:i.width*i.scaleX,shiftKey:t.shiftKey,altKey:h,original:S.util.saveObjectTransform(i)};this._shouldCenterTransform(i,l,h)&&(u.originX="center",u.originY="center"),u.original.originX=c.x,u.original.originY=c.y,this._currentTransform=u,this._beforeTransform(t)}},setCursor:function(t){this.upperCanvasEl.style.cursor=t},_drawSelection:function(t){var e=this._groupSelector,i=new S.Point(e.ex,e.ey),n=S.util.transformPoint(i,this.viewportTransform),r=new S.Point(e.ex+e.left,e.ey+e.top),o=S.util.transformPoint(r,this.viewportTransform),a=Math.min(n.x,o.x),s=Math.min(n.y,o.y),l=Math.max(n.x,o.x),c=Math.max(n.y,o.y),h=this.selectionLineWidth/2;this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(a,s,l-a,c-s)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,a+=h,s+=h,l-=h,c-=h,S.Object.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(a,s,l-a,c-s))},findTarget:function(t,e){if(!this.skipTargetFind){var n,r,o=this.getPointer(t,!0),a=this._activeObject,s=this.getActiveObjects(),l=i(t),c=s.length>1&&!e||1===s.length;if(this.targets=[],c&&a._findTargetCorner(o,l))return a;if(s.length>1&&!e&&a===this._searchPossibleTargets([a],o))return a;if(1===s.length&&a===this._searchPossibleTargets([a],o)){if(!this.preserveObjectStacking)return a;n=a,r=this.targets,this.targets=[]}var h=this._searchPossibleTargets(this._objects,o);return t[this.altSelectionKey]&&h&&n&&h!==n&&(h=n,this.targets=r),h}},_checkTarget:function(t,e,i){if(e&&e.visible&&e.evented&&e.containsPoint(t)){if(!this.perPixelTargetFind&&!e.perPixelTargetFind||e.isEditing)return!0;if(!this.isTargetTransparent(e,i.x,i.y))return!0}},_searchPossibleTargets:function(t,e){for(var i,n,r=t.length;r--;){var o=t[r],a=o.group?this._normalizePointer(o.group,e):e;if(this._checkTarget(a,o,e)){(i=t[r]).subTargetCheck&&i instanceof S.Group&&(n=this._searchPossibleTargets(i._objects,e))&&this.targets.push(n);break}}return i},restorePointerVpt:function(t){return S.util.transformPoint(t,S.util.invertTransform(this.viewportTransform))},getPointer:function(e,i){if(this._absolutePointer&&!i)return this._absolutePointer;if(this._pointer&&i)return this._pointer;var n,r=t(e),o=this.upperCanvasEl,a=o.getBoundingClientRect(),s=a.width||0,l=a.height||0;s&&l||("top"in a&&"bottom"in a&&(l=Math.abs(a.top-a.bottom)),"right"in a&&"left"in a&&(s=Math.abs(a.right-a.left))),this.calcOffset(),r.x=r.x-this._offset.left,r.y=r.y-this._offset.top,i||(r=this.restorePointerVpt(r));var c=this.getRetinaScaling();return 1!==c&&(r.x/=c,r.y/=c),n=0===s||0===l?{width:1,height:1}:{width:o.width/s,height:o.height/l},{x:r.x*n.width,y:r.y*n.height}},_createUpperCanvas:function(){var t=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),e=this.lowerCanvasEl,i=this.upperCanvasEl;i?i.className="":(i=this._createCanvasElement(),this.upperCanvasEl=i),S.util.addClass(i,"upper-canvas "+t),this.wrapperEl.appendChild(i),this._copyCanvasStyle(e,i),this._applyCanvasStyle(i),this.contextTop=i.getContext("2d")},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=S.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),S.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),S.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(t){var e=this.width||t.width,i=this.height||t.height;S.util.setStyle(t,{position:"absolute",width:e+"px",height:i+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),t.width=e,t.height=i,S.util.makeElementUnselectable(t)},_copyCanvasStyle:function(t,e){e.style.cssText=t.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var t=this._activeObject;return t?"activeSelection"===t.type&&t._objects?t._objects.slice(0):[t]:[]},_onObjectRemoved:function(t){t===this._activeObject&&(this.fire("before:selection:cleared",{target:t}),this._discardActiveObject(),this.fire("selection:cleared",{target:t}),t.fire("deselected")),t===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",t)},_fireSelectionEvents:function(t,e){var i=!1,n=this.getActiveObjects(),r=[],o=[];t.forEach((function(t){-1===n.indexOf(t)&&(i=!0,t.fire("deselected",{e:e,target:t}),o.push(t))})),n.forEach((function(n){-1===t.indexOf(n)&&(i=!0,n.fire("selected",{e:e,target:n}),r.push(n))})),t.length>0&&n.length>0?i&&this.fire("selection:updated",{e:e,selected:r,deselected:o,updated:r[0]||o[0],target:this._activeObject}):n.length>0?this.fire("selection:created",{e:e,selected:r,target:this._activeObject}):t.length>0&&this.fire("selection:cleared",{e:e,deselected:o})},setActiveObject:function(t,e){var i=this.getActiveObjects();return this._setActiveObject(t,e),this._fireSelectionEvents(i,e),this},_setActiveObject:function(t,e){return this._activeObject!==t&&(!!this._discardActiveObject(e,t)&&(!t.onSelect({e:e})&&(this._activeObject=t,!0)))},_discardActiveObject:function(t,e){var i=this._activeObject;if(i){if(i.onDeselect({e:t,object:e}))return!1;this._activeObject=null}return!0},discardActiveObject:function(t){var e=this.getActiveObjects(),i=this.getActiveObject();return e.length&&this.fire("before:selection:cleared",{target:i,e:t}),this._discardActiveObject(t),this._fireSelectionEvents(e,t),this},dispose:function(){var t=this.wrapperEl;return this.removeListeners(),t.removeChild(this.upperCanvasEl),t.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(t){S.util.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this)),t.parentNode&&t.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,S.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(t){var e=this._activeObject;e&&e._renderControls(t)},_toObject:function(t,e,i){var n=this._realizeGroupTransformOnObject(t),r=this.callSuper("_toObject",t,e,i);return this._unwindGroupTransformOnObject(t,n),r},_realizeGroupTransformOnObject:function(t){if(t.group&&"activeSelection"===t.group.type&&this._activeObject===t.group){var e={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(i){e[i]=t[i]})),S.util.addTransformToObject(t,this._activeObject.calcOwnMatrix()),e}return null},_unwindGroupTransformOnObject:function(t,e){e&&t.set(e)},_setSVGObject:function(t,e,i){var n=this._realizeGroupTransformOnObject(e);this.callSuper("_setSVGObject",t,e,i),this._unwindGroupTransformOnObject(e,n)},setViewportTransform:function(t){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),S.StaticCanvas.prototype.setViewportTransform.call(this,t)}}),S.StaticCanvas)"prototype"!==n&&(S.Canvas[n]=S.StaticCanvas[n])}(),function(){var t=S.util.addListener,e=S.util.removeListener,i={passive:!1};function n(t,e){return t.button&&t.button===e-1}S.util.object.extend(S.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(t,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(t,e){var n=this.upperCanvasEl,r=this._getEventPrefix();t(S.window,"resize",this._onResize),t(n,r+"down",this._onMouseDown),t(n,r+"move",this._onMouseMove,i),t(n,r+"out",this._onMouseOut),t(n,r+"enter",this._onMouseEnter),t(n,"wheel",this._onMouseWheel),t(n,"contextmenu",this._onContextMenu),t(n,"dblclick",this._onDoubleClick),t(n,"dragover",this._onDragOver),t(n,"dragenter",this._onDragEnter),t(n,"dragleave",this._onDragLeave),t(n,"drop",this._onDrop),this.enablePointerEvents||t(n,"touchstart",this._onTouchStart,i),"undefined"!=typeof eventjs&&e in eventjs&&(eventjs[e](n,"gesture",this._onGesture),eventjs[e](n,"drag",this._onDrag),eventjs[e](n,"orientation",this._onOrientationChange),eventjs[e](n,"shake",this._onShake),eventjs[e](n,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(e,"remove");var t=this._getEventPrefix();e(S.document,t+"up",this._onMouseUp),e(S.document,"touchend",this._onTouchEnd,i),e(S.document,t+"move",this._onMouseMove,i),e(S.document,"touchmove",this._onMouseMove,i)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._simpleEventHandler.bind(this,"drop"),this.eventsBound=!0)},_onGesture:function(t,e){this.__onTransformGesture&&this.__onTransformGesture(t,e)},_onDrag:function(t,e){this.__onDrag&&this.__onDrag(t,e)},_onMouseWheel:function(t){this.__onMouseWheel(t)},_onMouseOut:function(t){var e=this._hoveredTarget;this.fire("mouse:out",{target:e,e:t}),this._hoveredTarget=null,e&&e.fire("mouseout",{e:t});var i=this;this._hoveredTargets.forEach((function(n){i.fire("mouse:out",{target:e,e:t}),n&&e.fire("mouseout",{e:t})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(t){t.isEditing&&t.hiddenTextarea.focus()}))},_onMouseEnter:function(t){this._currentTransform||this.findTarget(t)||(this.fire("mouse:over",{target:null,e:t}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(t,e){this.__onOrientationChange&&this.__onOrientationChange(t,e)},_onShake:function(t,e){this.__onShake&&this.__onShake(t,e)},_onLongPress:function(t,e){this.__onLongPress&&this.__onLongPress(t,e)},_onDragOver:function(t){t.preventDefault();var e=this._simpleEventHandler("dragover",t);this._fireEnterLeaveEvents(e,t)},_onContextMenu:function(t){return this.stopContextMenu&&(t.stopPropagation(),t.preventDefault()),!1},_onDoubleClick:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"dblclick"),this._resetTransformEventData(t)},getPointerId:function(t){var e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1},_isMainEvent:function(t){return!0===t.isPrimary||!1!==t.isPrimary&&("touchend"===t.type&&0===t.touches.length||(!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId))},_onTouchStart:function(n){n.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(n)),this.__onMouseDown(n),this._resetTransformEventData();var r=this.upperCanvasEl,o=this._getEventPrefix();t(S.document,"touchend",this._onTouchEnd,i),t(S.document,"touchmove",this._onMouseMove,i),e(r,o+"down",this._onMouseDown)},_onMouseDown:function(n){this.__onMouseDown(n),this._resetTransformEventData();var r=this.upperCanvasEl,o=this._getEventPrefix();e(r,o+"move",this._onMouseMove,i),t(S.document,o+"up",this._onMouseUp),t(S.document,o+"move",this._onMouseMove,i)},_onTouchEnd:function(n){if(!(n.touches.length>0)){this.__onMouseUp(n),this._resetTransformEventData(),this.mainTouchId=null;var r=this._getEventPrefix();e(S.document,"touchend",this._onTouchEnd,i),e(S.document,"touchmove",this._onMouseMove,i);var o=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){t(o.upperCanvasEl,r+"down",o._onMouseDown),o._willAddMouseDown=0}),400)}},_onMouseUp:function(n){this.__onMouseUp(n),this._resetTransformEventData();var r=this.upperCanvasEl,o=this._getEventPrefix();this._isMainEvent(n)&&(e(S.document,o+"up",this._onMouseUp),e(S.document,o+"move",this._onMouseMove,i),t(r,o+"move",this._onMouseMove,i))},_onMouseMove:function(t){!this.allowTouchScrolling&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t)},_onResize:function(){this.calcOffset()},_shouldRender:function(t){var e=this._activeObject;return!!(!!e!=!!t||e&&t&&e!==t)||(e&&e.isEditing,!1)},__onMouseUp:function(t){var e,i=this._currentTransform,r=this._groupSelector,o=!1,a=!r||0===r.left&&0===r.top;if(this._cacheTransformEventData(t),e=this._target,this._handleEvent(t,"up:before"),n(t,3))this.fireRightClick&&this._handleEvent(t,"up",3,a);else{if(n(t,2))return this.fireMiddleClick&&this._handleEvent(t,"up",2,a),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(t);else if(this._isMainEvent(t)){if(i&&(this._finalizeCurrentTransform(t),o=i.actionPerformed),!a){var s=e===this._activeObject;this._maybeGroupObjects(t),o||(o=this._shouldRender(e)||!s&&e===this._activeObject)}if(e){if(e.selectable&&e!==this._activeObject&&"up"===e.activeOn)this.setActiveObject(e,t),o=!0;else{var l=e._findTargetCorner(this.getPointer(t,!0),S.util.isTouchEvent(t)),c=e.controls[l],h=c&&c.getMouseUpHandler(t,e,c);if(h){var u=this.getPointer(t);h(t,i,u.x,u.y)}}e.isMoving=!1}this._setCursorFromEvent(t,e),this._handleEvent(t,"up",1,a),this._groupSelector=null,this._currentTransform=null,e&&(e.__corner=0),o?this.requestRenderAll():a||this.renderTop()}}},_simpleEventHandler:function(t,e){var i=this.findTarget(e),n=this.targets,r={e:e,target:i,subTargets:n};if(this.fire(t,r),i&&i.fire(t,r),!n)return i;for(var o=0;o<n.length;o++)n[o].fire(t,r);return i},_handleEvent:function(t,e,i,n){var r=this._target,o=this.targets||[],a={e:t,target:r,subTargets:o,button:i||1,isClick:n||!1,pointer:this._pointer,absolutePointer:this._absolutePointer,transform:this._currentTransform};"up"===e&&(a.currentTarget=this.findTarget(t),a.currentSubTargets=this.targets),this.fire("mouse:"+e,a),r&&r.fire("mouse"+e,a);for(var s=0;s<o.length;s++)o[s].fire("mouse"+e,a)},_finalizeCurrentTransform:function(t){var e,i=this._currentTransform,n=i.target,r={e:t,target:n,transform:i,action:i.action};n._scaling&&(n._scaling=!1),n.setCoords(),(i.actionPerformed||this.stateful&&n.hasStateChanged())&&(i.actionPerformed&&(e=this._addEventOptions(r,i),this._fire(e,r)),this._fire("modified",r))},_addEventOptions:function(t,e){var i,n;switch(e.action){case"scaleX":i="scaled",n="x";break;case"scaleY":i="scaled",n="y";break;case"skewX":i="skewed",n="x";break;case"skewY":i="skewed",n="y";break;case"scale":i="scaled",n="equally";break;case"rotate":i="rotated";break;case"drag":i="moved"}return t.by=n,i},_onMouseDownInDrawingMode:function(t){this._isCurrentlyDrawing=!0,this.getActiveObject()&&this.discardActiveObject(t).requestRenderAll();var e=this.getPointer(t);this.freeDrawingBrush.onMouseDown(e,{e:t,pointer:e}),this._handleEvent(t,"down")},_onMouseMoveInDrawingMode:function(t){if(this._isCurrentlyDrawing){var e=this.getPointer(t);this.freeDrawingBrush.onMouseMove(e,{e:t,pointer:e})}this.setCursor(this.freeDrawingCursor),this._handleEvent(t,"move")},_onMouseUpInDrawingMode:function(t){var e=this.getPointer(t);this._isCurrentlyDrawing=this.freeDrawingBrush.onMouseUp({e:t,pointer:e}),this._handleEvent(t,"up")},__onMouseDown:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"down:before");var e=this._target;if(n(t,3))this.fireRightClick&&this._handleEvent(t,"down",3);else if(n(t,2))this.fireMiddleClick&&this._handleEvent(t,"down",2);else if(this.isDrawingMode)this._onMouseDownInDrawingMode(t);else if(this._isMainEvent(t)&&!this._currentTransform){var i=this._pointer;this._previousPointer=i;var r=this._shouldRender(e),o=this._shouldGroup(t,e);if(this._shouldClearSelection(t,e)?this.discardActiveObject(t):o&&(this._handleGrouping(t,e),e=this._activeObject),!this.selection||e&&(e.selectable||e.isEditing||e===this._activeObject)||(this._groupSelector={ex:this._absolutePointer.x,ey:this._absolutePointer.y,top:0,left:0}),e){var a=e===this._activeObject;e.selectable&&"down"===e.activeOn&&this.setActiveObject(e,t);var s=e._findTargetCorner(this.getPointer(t,!0),S.util.isTouchEvent(t));if(e.__corner=s,e===this._activeObject&&(s||!o)){this._setupCurrentTransform(t,e,a);var l=e.controls[s],c=(i=this.getPointer(t),l&&l.getMouseDownHandler(t,e,l));c&&c(t,this._currentTransform,i.x,i.y)}}this._handleEvent(t,"down"),(r||o)&&this.requestRenderAll()}},_resetTransformEventData:function(){this._target=null,this._pointer=null,this._absolutePointer=null},_cacheTransformEventData:function(t){this._resetTransformEventData(),this._pointer=this.getPointer(t,!0),this._absolutePointer=this.restorePointerVpt(this._pointer),this._target=this._currentTransform?this._currentTransform.target:this.findTarget(t)||null},_beforeTransform:function(t){var e=this._currentTransform;this.stateful&&e.target.saveState(),this.fire("before:transform",{e:t,transform:e})},__onMouseMove:function(t){var e,i;if(this._handleEvent(t,"move:before"),this._cacheTransformEventData(t),this.isDrawingMode)this._onMouseMoveInDrawingMode(t);else if(this._isMainEvent(t)){var n=this._groupSelector;n?(i=this._absolutePointer,n.left=i.x-n.ex,n.top=i.y-n.ey,this.renderTop()):this._currentTransform?this._transformObject(t):(e=this.findTarget(t)||null,this._setCursorFromEvent(t,e),this._fireOverOutEvents(e,t)),this._handleEvent(t,"move"),this._resetTransformEventData()}},_fireOverOutEvents:function(t,e){var i=this._hoveredTarget,n=this._hoveredTargets,r=this.targets,o=Math.max(n.length,r.length);this.fireSyntheticInOutEvents(t,e,{oldTarget:i,evtOut:"mouseout",canvasEvtOut:"mouse:out",evtIn:"mouseover",canvasEvtIn:"mouse:over"});for(var a=0;a<o;a++)this.fireSyntheticInOutEvents(r[a],e,{oldTarget:n[a],evtOut:"mouseout",evtIn:"mouseover"});this._hoveredTarget=t,this._hoveredTargets=this.targets.concat()},_fireEnterLeaveEvents:function(t,e){var i=this._draggedoverTarget,n=this._hoveredTargets,r=this.targets,o=Math.max(n.length,r.length);this.fireSyntheticInOutEvents(t,e,{oldTarget:i,evtOut:"dragleave",evtIn:"dragenter"});for(var a=0;a<o;a++)this.fireSyntheticInOutEvents(r[a],e,{oldTarget:n[a],evtOut:"dragleave",evtIn:"dragenter"});this._draggedoverTarget=t},fireSyntheticInOutEvents:function(t,e,i){var n,r,o,a=i.oldTarget,s=a!==t,l=i.canvasEvtIn,c=i.canvasEvtOut;s&&(n={e:e,target:t,previousTarget:a},r={e:e,target:a,nextTarget:t}),o=t&&s,a&&s&&(c&&this.fire(c,r),a.fire(i.evtOut,r)),o&&(l&&this.fire(l,n),t.fire(i.evtIn,n))},__onMouseWheel:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"wheel"),this._resetTransformEventData()},_transformObject:function(t){var e=this.getPointer(t),i=this._currentTransform;i.reset=!1,i.shiftKey=t.shiftKey,i.altKey=t[this.centeredKey],this._performTransformAction(t,i,e),i.actionPerformed&&this.requestRenderAll()},_performTransformAction:function(t,e,i){var n=i.x,r=i.y,o=e.action,a=!1,s=e.actionHandler;s&&(a=s(t,e,n,r)),"drag"===o&&a&&(e.target.isMoving=!0,this.setCursor(e.target.moveCursor||this.moveCursor)),e.actionPerformed=e.actionPerformed||a},_fire:S.controlsUtils.fireEvent,_setCursorFromEvent:function(t,e){if(!e)return this.setCursor(this.defaultCursor),!1;var i=e.hoverCursor||this.hoverCursor,n=this._activeObject&&"activeSelection"===this._activeObject.type?this._activeObject:null,r=(!n||!n.contains(e))&&e._findTargetCorner(this.getPointer(t,!0));r?this.setCursor(this.getCornerCursor(r,e,t)):(e.subTargetCheck&&this.targets.concat().reverse().map((function(t){i=t.hoverCursor||i})),this.setCursor(i))},getCornerCursor:function(t,e,i){var n=e.controls[t];return n.cursorStyleHandler(i,n,e)}})}(),m=Math.min,y=Math.max,S.util.object.extend(S.Canvas.prototype,{_shouldGroup:function(t,e){var i=this._activeObject;return i&&this._isSelectionKeyPressed(t)&&e&&e.selectable&&this.selection&&(i!==e||"activeSelection"===i.type)&&!e.onSelect({e:t})},_handleGrouping:function(t,e){var i=this._activeObject;i.__corner||(e!==i||(e=this.findTarget(t,!0))&&e.selectable)&&(i&&"activeSelection"===i.type?this._updateActiveSelection(e,t):this._createActiveSelection(e,t))},_updateActiveSelection:function(t,e){var i=this._activeObject,n=i._objects.slice(0);i.contains(t)?(i.removeWithUpdate(t),this._hoveredTarget=t,this._hoveredTargets=this.targets.concat(),1===i.size()&&this._setActiveObject(i.item(0),e)):(i.addWithUpdate(t),this._hoveredTarget=i,this._hoveredTargets=this.targets.concat()),this._fireSelectionEvents(n,e)},_createActiveSelection:function(t,e){var i=this.getActiveObjects(),n=this._createGroup(t);this._hoveredTarget=n,this._setActiveObject(n,e),this._fireSelectionEvents(i,e)},_createGroup:function(t){var e=this._objects,i=e.indexOf(this._activeObject)<e.indexOf(t)?[this._activeObject,t]:[t,this._activeObject];return this._activeObject.isEditing&&this._activeObject.exitEditing(),new S.ActiveSelection(i,{canvas:this})},_groupSelectedObjects:function(t){var e,i=this._collectObjects(t);1===i.length?this.setActiveObject(i[0],t):i.length>1&&(e=new S.ActiveSelection(i.reverse(),{canvas:this}),this.setActiveObject(e,t))},_collectObjects:function(t){for(var e,i=[],n=this._groupSelector.ex,r=this._groupSelector.ey,o=n+this._groupSelector.left,a=r+this._groupSelector.top,s=new S.Point(m(n,o),m(r,a)),l=new S.Point(y(n,o),y(r,a)),c=!this.selectionFullyContained,h=n===o&&r===a,u=this._objects.length;u--&&!((e=this._objects[u])&&e.selectable&&e.visible&&(c&&e.intersectsWithRect(s,l,!0)||e.isContainedWithinRect(s,l,!0)||c&&e.containsPoint(s,null,!0)||c&&e.containsPoint(l,null,!0))&&(i.push(e),h)););return i.length>1&&(i=i.filter((function(e){return!e.onSelect({e:t})}))),i},_maybeGroupObjects:function(t){this.selection&&this._groupSelector&&this._groupSelectedObjects(t),this.setCursor(this.defaultCursor),this._groupSelector=null}}),S.util.object.extend(S.StaticCanvas.prototype,{toDataURL:function(t){t||(t={});var e=t.format||"png",i=t.quality||1,n=(t.multiplier||1)*(t.enableRetinaScaling?this.getRetinaScaling():1),r=this.toCanvasElement(n,t);return S.util.toDataURL(r,e,i)},toCanvasElement:function(t,e){t=t||1;var i=((e=e||{}).width||this.width)*t,n=(e.height||this.height)*t,r=this.getZoom(),o=this.width,a=this.height,s=r*t,l=this.viewportTransform,c=(l[4]-(e.left||0))*t,h=(l[5]-(e.top||0))*t,u=this.interactive,f=[s,0,0,s,c,h],d=this.enableRetinaScaling,v=S.util.createCanvasElement(),g=this.contextTop;return v.width=i,v.height=n,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=f,this.width=i,this.height=n,this.calcViewportBoundaries(),this.renderCanvas(v.getContext("2d"),this._objects),this.viewportTransform=l,this.width=o,this.height=a,this.calcViewportBoundaries(),this.interactive=u,this.enableRetinaScaling=d,this.contextTop=g,v}}),S.util.object.extend(S.StaticCanvas.prototype,{loadFromJSON:function(t,e,i){if(t){var n="string"==typeof t?JSON.parse(t):S.util.object.clone(t),r=this,o=n.clipPath,a=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete n.clipPath,this._enlivenObjects(n.objects,(function(t){r.clear(),r._setBgOverlay(n,(function(){o?r._enlivenObjects([o],(function(i){r.clipPath=i[0],r.__setupCanvas.call(r,n,t,a,e)})):r.__setupCanvas.call(r,n,t,a,e)}))}),i),this}},__setupCanvas:function(t,e,i,n){var r=this;e.forEach((function(t,e){r.insertAt(t,e)})),this.renderOnAddRemove=i,delete t.objects,delete t.backgroundImage,delete t.overlayImage,delete t.background,delete t.overlay,this._setOptions(t),this.renderAll(),n&&n()},_setBgOverlay:function(t,e){var i={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(t.backgroundImage||t.overlayImage||t.background||t.overlay){var n=function(){i.backgroundImage&&i.overlayImage&&i.backgroundColor&&i.overlayColor&&e&&e()};this.__setBgOverlay("backgroundImage",t.backgroundImage,i,n),this.__setBgOverlay("overlayImage",t.overlayImage,i,n),this.__setBgOverlay("backgroundColor",t.background,i,n),this.__setBgOverlay("overlayColor",t.overlay,i,n)}else e&&e()},__setBgOverlay:function(t,e,i,n){var r=this;if(!e)return i[t]=!0,void(n&&n());"backgroundImage"===t||"overlayImage"===t?S.util.enlivenObjects([e],(function(e){r[t]=e[0],i[t]=!0,n&&n()})):this["set"+S.util.string.capitalize(t,!0)](e,(function(){i[t]=!0,n&&n()}))},_enlivenObjects:function(t,e,i){t&&0!==t.length?S.util.enlivenObjects(t,(function(t){e&&e(t)}),null,i):e&&e([])},_toDataURL:function(t,e){this.clone((function(i){e(i.toDataURL(t))}))},_toDataURLWithMultiplier:function(t,e,i){this.clone((function(n){i(n.toDataURLWithMultiplier(t,e))}))},clone:function(t,e){var i=JSON.stringify(this.toJSON(e));this.cloneWithoutData((function(e){e.loadFromJSON(i,(function(){t&&t(e)}))}))},cloneWithoutData:function(t){var e=S.util.createCanvasElement();e.width=this.width,e.height=this.height;var i=new S.Canvas(e);this.backgroundImage?(i.setBackgroundImage(this.backgroundImage.src,(function(){i.renderAll(),t&&t(i)})),i.backgroundImageOpacity=this.backgroundImageOpacity,i.backgroundImageStretch=this.backgroundImageStretch):t&&t(i)}}),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,n=e.util.object.clone,r=e.util.toFixed,o=e.util.string.capitalize,a=e.util.degreesToRadians,s=!e.isLikelyNode;e.Object||(e.Object=e.util.createClass(e.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:s,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(t){t&&this.setOptions(t)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=e.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(t){var i=e.perfLimitSizeTotal,n=t.width,r=t.height,o=e.maxCacheSideLimit,a=e.minCacheSideLimit;if(n<=o&&r<=o&&n*r<=i)return n<a&&(t.width=a),r<a&&(t.height=a),t;var s=n/r,l=e.util.limitDimsByArea(s,i),c=e.util.capValue,h=c(a,l.x,o),u=c(a,l.y,o);return n>h&&(t.zoomX/=n/h,t.width=h,t.capped=!0),r>u&&(t.zoomY/=r/u,t.height=u,t.capped=!0),t},_getCacheCanvasDimensions:function(){var t=this.getTotalObjectScaling(),e=this._getTransformedDimensions(0,0),i=e.x*t.scaleX/this.scaleX,n=e.y*t.scaleY/this.scaleY;return{width:i+2,height:n+2,zoomX:t.scaleX,zoomY:t.scaleY,x:i,y:n}},_updateCacheCanvas:function(){var t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){var i=t._currentTransform.target,n=t._currentTransform.action;if(this===i&&n.slice&&"scale"===n.slice(0,5))return!1}var r,o,a=this._cacheCanvas,s=this._limitCacheSize(this._getCacheCanvasDimensions()),l=e.minCacheSideLimit,c=s.width,h=s.height,u=s.zoomX,f=s.zoomY,d=c!==this.cacheWidth||h!==this.cacheHeight,v=this.zoomX!==u||this.zoomY!==f,g=d||v,p=0,m=0,y=!1;if(d){var b=this._cacheCanvas.width,w=this._cacheCanvas.height,x=c>b||h>w;y=x||(c<.9*b||h<.9*w)&&b>l&&w>l,x&&!s.capped&&(c>l||h>l)&&(p=.1*c,m=.1*h)}return this instanceof e.Text&&this.path&&(g=!0,y=!0,p+=this.getHeightOfLine(0)*this.zoomX,m+=this.getHeightOfLine(0)*this.zoomY),!!g&&(y?(a.width=Math.ceil(c+p),a.height=Math.ceil(h+m)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,a.width,a.height)),r=s.x/2,o=s.y/2,this.cacheTranslationX=Math.round(a.width/2-r)+r,this.cacheTranslationY=Math.round(a.height/2-o)+o,this.cacheWidth=c,this.cacheHeight=h,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(u,f),this.zoomX=u,this.zoomY=f,!0)},setOptions:function(t){this._setOptions(t),this._initGradient(t.fill,"fill"),this._initGradient(t.stroke,"stroke"),this._initPattern(t.fill,"fill"),this._initPattern(t.stroke,"stroke")},transform:function(t){var 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])},toObject:function(t){var i=e.Object.NUM_FRACTION_DIGITS,n={type:this.type,version:e.version,originX:this.originX,originY:this.originY,left:r(this.left,i),top:r(this.top,i),width:r(this.width,i),height:r(this.height,i),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:r(this.strokeWidth,i),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:r(this.strokeMiterLimit,i),scaleX:r(this.scaleX,i),scaleY:r(this.scaleY,i),angle:r(this.angle,i),flipX:this.flipX,flipY:this.flipY,opacity:r(this.opacity,i),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:r(this.skewX,i),skewY:r(this.skewY,i)};return this.clipPath&&!this.clipPath.excludeFromExport&&(n.clipPath=this.clipPath.toObject(t),n.clipPath.inverted=this.clipPath.inverted,n.clipPath.absolutePositioned=this.clipPath.absolutePositioned),e.util.populateWithProperties(this,n,t),this.includeDefaultValues||(n=this._removeDefaultValues(n)),n},toDatalessObject:function(t){return this.toObject(t)},_removeDefaultValues:function(t){var i=e.util.getKlass(t.type).prototype;return i.stateProperties.forEach((function(e){"left"!==e&&"top"!==e&&(t[e]===i[e]&&delete t[e],"[object Array]"===Object.prototype.toString.call(t[e])&&"[object Array]"===Object.prototype.toString.call(i[e])&&0===t[e].length&&0===i[e].length&&delete t[e])})),t},toString:function(){return"#<fabric."+o(this.type)+">"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var t=e.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(t.scaleX),scaleY:Math.abs(t.scaleY)}},getTotalObjectScaling:function(){var t=this.getObjectScaling(),e=t.scaleX,i=t.scaleY;if(this.canvas){var n=this.canvas.getZoom(),r=this.canvas.getRetinaScaling();e*=n*r,i*=n*r}return{scaleX:e,scaleY:i}},getObjectOpacity:function(){var t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t},_set:function(t,i){var n="scaleX"===t||"scaleY"===t,r=this[t]!==i,o=!1;return n&&(i=this._constrainScale(i)),"scaleX"===t&&i<0?(this.flipX=!this.flipX,i*=-1):"scaleY"===t&&i<0?(this.flipY=!this.flipY,i*=-1):"shadow"!==t||!i||i instanceof e.Shadow?"dirty"===t&&this.group&&this.group.set("dirty",i):i=new e.Shadow(i),this[t]=i,r&&(o=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(t)>-1?(this.dirty=!0,o&&this.group.set("dirty",!0)):o&&this.stateProperties.indexOf(t)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:e.iMatrix.concat()},isNotVisible:function(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible},render:function(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),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(t),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),t.restore())},renderCache:function(t){t=t||{},this._cacheCanvas||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,t.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth},hasFill:function(){return this.fill&&"transparent"!==this.fill},needsItsOwnCache:function(){return!("stroke"!==this.paintFirst||!this.hasFill()||!this.hasStroke()||"object"!=typeof this.shadow)||!!this.clipPath},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)},drawClipPathOnCache:function(t){var i=this.clipPath;if(t.save(),i.inverted?t.globalCompositeOperation="destination-out":t.globalCompositeOperation="destination-in",i.absolutePositioned){var n=e.util.invertTransform(this.calcTransformMatrix());t.transform(n[0],n[1],n[2],n[3],n[4],n[5])}i.transform(t),t.scale(1/i.zoomX,1/i.zoomY),t.drawImage(i._cacheCanvas,-i.cacheTranslationX,-i.cacheTranslationY),t.restore()},drawObject:function(t,e){var i=this.fill,n=this.stroke;e?(this.fill="black",this.stroke="",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t),this.fill=i,this.stroke=n},_drawClipPath:function(t){var e=this.clipPath;e&&(e.canvas=this.canvas,e.shouldCache(),e._transformDone=!0,e.renderCache({forClipping:!0}),this.drawClipPathOnCache(t))},drawCacheOnCanvas:function(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(t){if(this.isNotVisible())return!1;if(this._cacheCanvas&&!t&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&!t){var e=this.cacheWidth/this.zoomX,i=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-e/2,-i/2,e,i)}return!0}return!1},_renderBackground:function(t){if(this.backgroundColor){var e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}},_setOpacity:function(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity},_setStrokeStyles:function(t,e){var i=e.stroke;i&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,i.toLive?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?this._applyPatternForTransformedGradient(t,i):(t.strokeStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,i)):t.strokeStyle=e.stroke)},_setFillStyles:function(t,e){var i=e.fill;i&&(i.toLive?(t.fillStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,e.fill)):t.fillStyle=i)},_setClippingProperties:function(t){t.globalAlpha=1,t.strokeStyle="transparent",t.fillStyle="#000000"},_setLineDash:function(t,e){e&&0!==e.length&&(1&e.length&&e.push.apply(e,e),t.setLineDash(e))},_renderControls:function(t,i){var n,r,o,s=this.getViewportTransform(),l=this.calcTransformMatrix();r=void 0!==(i=i||{}).hasBorders?i.hasBorders:this.hasBorders,o=void 0!==i.hasControls?i.hasControls:this.hasControls,l=e.util.multiplyTransformMatrices(s,l),n=e.util.qrDecompose(l),t.save(),t.translate(n.translateX,n.translateY),t.lineWidth=1*this.borderScaleFactor,this.group||(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),t.rotate(a(n.angle)),i.forActiveSelection||this.group?r&&this.drawBordersInGroup(t,n,i):r&&this.drawBorders(t,i),o&&this.drawControls(t,i),t.restore()},_setShadow:function(t){if(this.shadow){var i,n=this.shadow,r=this.canvas,o=r&&r.viewportTransform[0]||1,a=r&&r.viewportTransform[3]||1;i=n.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),r&&r._isRetinaScaling()&&(o*=e.devicePixelRatio,a*=e.devicePixelRatio),t.shadowColor=n.color,t.shadowBlur=n.blur*e.browserShadowBlurConstant*(o+a)*(i.scaleX+i.scaleY)/4,t.shadowOffsetX=n.offsetX*o*i.scaleX,t.shadowOffsetY=n.offsetY*a*i.scaleY}},_removeShadow:function(t){this.shadow&&(t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)},_applyPatternGradientTransform:function(t,e){if(!e||!e.toLive)return{offsetX:0,offsetY:0};var i=e.gradientTransform||e.patternTransform,n=-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,n,r):t.transform(1,0,0,1,n,r),i&&t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),{offsetX:n,offsetY:r}},_renderPaintInOrder:function(t){"stroke"===this.paintFirst?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))},_render:function(){},_renderFill:function(t){this.fill&&(t.save(),this._setFillStyles(t,this),"evenodd"===this.fillRule?t.fill("evenodd"):t.fill(),t.restore())},_renderStroke:function(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform&&this.group){var e=this.getObjectScaling();t.scale(1/e.scaleX,1/e.scaleY)}else this.strokeUniform&&t.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}},_applyPatternForTransformedGradient:function(t,i){var n,r=this._limitCacheSize(this._getCacheCanvasDimensions()),o=e.util.createCanvasElement(),a=this.canvas.getRetinaScaling(),s=r.x/this.scaleX/a,l=r.y/this.scaleY/a;o.width=s,o.height=l,(n=o.getContext("2d")).beginPath(),n.moveTo(0,0),n.lineTo(s,0),n.lineTo(s,l),n.lineTo(0,l),n.closePath(),n.translate(s/2,l/2),n.scale(r.zoomX/this.scaleX/a,r.zoomY/this.scaleY/a),this._applyPatternGradientTransform(n,i),n.fillStyle=i.toLive(t),n.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(a*this.scaleX/r.zoomX,a*this.scaleY/r.zoomY),t.strokeStyle=n.createPattern(o,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var t=e.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",t.scaleX),this.set("scaleY",t.scaleY),this.angle=t.angle,this.skewX=t.skewX,this.skewY=0}},_removeTransformMatrix:function(t){var i=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),i=e.util.transformPoint(i,this.transformMatrix)),this.transformMatrix=null,t&&(this.scaleX*=t.scaleX,this.scaleY*=t.scaleY,this.cropX=t.cropX,this.cropY=t.cropY,i.x+=t.offsetLeft,i.y+=t.offsetTop,this.width=t.width,this.height=t.height),this.setPositionByOrigin(i,"center","center")},clone:function(t,i){var n=this.toObject(i);this.constructor.fromObject?this.constructor.fromObject(n,t):e.Object._fromObject("Object",n,t)},cloneAsImage:function(t,i){var n=this.toCanvasElement(i);return t&&t(new e.Image(n)),this},toCanvasElement:function(t){t||(t={});var i=e.util,n=i.saveObjectTransform(this),r=this.group,o=this.shadow,a=Math.abs,s=(t.multiplier||1)*(t.enableRetinaScaling?e.devicePixelRatio:1);delete this.group,t.withoutTransform&&i.resetObjectTransform(this),t.withoutShadow&&(this.shadow=null);var l,c,h,u,f=e.util.createCanvasElement(),d=this.getBoundingRect(!0,!0),v=this.shadow,g={x:0,y:0};v&&(c=v.blur,l=v.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),g.x=2*Math.round(a(v.offsetX)+c)*a(l.scaleX),g.y=2*Math.round(a(v.offsetY)+c)*a(l.scaleY)),h=d.width+g.x,u=d.height+g.y,f.width=Math.ceil(h),f.height=Math.ceil(u);var p=new e.StaticCanvas(f,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===t.format&&(p.backgroundColor="#fff"),this.setPositionByOrigin(new e.Point(p.width/2,p.height/2),"center","center");var m=this.canvas;p.add(this);var y=p.toCanvasElement(s||1,t);return this.shadow=o,this.set("canvas",m),r&&(this.group=r),this.set(n).setCoords(),p._objects=[],p.dispose(),p=null,y},toDataURL:function(t){return t||(t={}),e.util.toDataURL(this.toCanvasElement(t),t.format||"png",t.quality||1)},isType:function(t){return this.type===t},complexity:function(){return 1},toJSON:function(t){return this.toObject(t)},rotate:function(t){var e=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return e&&this._setOriginToCenter(),this.set("angle",t),e&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(t,i){i=i||this.canvas.getPointer(t);var n=new e.Point(i.x,i.y),r=this._getLeftTopCoords();return this.angle&&(n=e.util.rotatePoint(n,r,a(-this.angle))),{x:n.x-r.x,y:n.y-r.y}},_setupCompositeOperation:function(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)}}),e.util.createAccessors&&e.util.createAccessors(e.Object),i(e.Object.prototype,e.Observable),e.Object.NUM_FRACTION_DIGITS=2,e.Object._fromObject=function(t,i,r,o){var a=e[t];i=n(i,!0),e.util.enlivenPatterns([i.fill,i.stroke],(function(t){void 0!==t[0]&&(i.fill=t[0]),void 0!==t[1]&&(i.stroke=t[1]),e.util.enlivenObjects([i.clipPath],(function(t){i.clipPath=t[0];var e=o?new a(i[o],i):new a(i);r&&r(e)}))}))},e.Object.__uid=0)}(e),b=S.util.degreesToRadians,w={left:-.5,center:0,right:.5},x={top:-.5,center:0,bottom:.5},S.util.object.extend(S.Object.prototype,{translateToGivenOrigin:function(t,e,i,n,r){var o,a,s,l=t.x,c=t.y;return"string"==typeof e?e=w[e]:e-=.5,"string"==typeof n?n=w[n]:n-=.5,"string"==typeof i?i=x[i]:i-=.5,"string"==typeof r?r=x[r]:r-=.5,a=r-i,((o=n-e)||a)&&(s=this._getTransformedDimensions(),l=t.x+o*s.x,c=t.y+a*s.y),new S.Point(l,c)},translateToCenterPoint:function(t,e,i){var n=this.translateToGivenOrigin(t,e,i,"center","center");return this.angle?S.util.rotatePoint(n,t,b(this.angle)):n},translateToOriginPoint:function(t,e,i){var n=this.translateToGivenOrigin(t,"center","center",e,i);return this.angle?S.util.rotatePoint(n,t,b(this.angle)):n},getCenterPoint:function(){var t=new S.Point(this.left,this.top);return this.translateToCenterPoint(t,this.originX,this.originY)},getPointByOrigin:function(t,e){var i=this.getCenterPoint();return this.translateToOriginPoint(i,t,e)},toLocalPoint:function(t,e,i){var n,r,o=this.getCenterPoint();return n=void 0!==e&&void 0!==i?this.translateToGivenOrigin(o,"center","center",e,i):new S.Point(this.left,this.top),r=new S.Point(t.x,t.y),this.angle&&(r=S.util.rotatePoint(r,o,-b(this.angle))),r.subtractEquals(n)},setPositionByOrigin:function(t,e,i){var n=this.translateToCenterPoint(t,e,i),r=this.translateToOriginPoint(n,this.originX,this.originY);this.set("left",r.x),this.set("top",r.y)},adjustPosition:function(t){var e,i,n=b(this.angle),r=this.getScaledWidth(),o=S.util.cos(n)*r,a=S.util.sin(n)*r;e="string"==typeof this.originX?w[this.originX]:this.originX-.5,i="string"==typeof t?w[t]:t-.5,this.left+=o*(i-e),this.top+=a*(i-e),this.setCoords(),this.originX=t},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var t=this.getCenterPoint();this.originX="center",this.originY="center",this.left=t.x,this.top=t.y},_resetOrigin:function(){var t=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=t.x,this.top=t.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}}),function(){var t=S.util,e=t.degreesToRadians,i=t.multiplyTransformMatrices,n=t.transformPoint;t.object.extend(S.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(t,e){return e?t?this.calcACoords():this.calcLineCoords():(this.aCoords&&this.lineCoords||this.setCoords(!0),t?this.aCoords:this.lineCoords)},getCoords:function(t,e){return i=this._getCoords(t,e),[new S.Point(i.tl.x,i.tl.y),new S.Point(i.tr.x,i.tr.y),new S.Point(i.br.x,i.br.y),new S.Point(i.bl.x,i.bl.y)];var i},intersectsWithRect:function(t,e,i,n){var r=this.getCoords(i,n);return"Intersection"===S.Intersection.intersectPolygonRectangle(r,t,e).status},intersectsWithObject:function(t,e,i){return"Intersection"===S.Intersection.intersectPolygonPolygon(this.getCoords(e,i),t.getCoords(e,i)).status||t.isContainedWithinObject(this,e,i)||this.isContainedWithinObject(t,e,i)},isContainedWithinObject:function(t,e,i){for(var n=this.getCoords(e,i),r=e?t.aCoords:t.lineCoords,o=0,a=t._getImageLines(r);o<4;o++)if(!t.containsPoint(n[o],a))return!1;return!0},isContainedWithinRect:function(t,e,i,n){var r=this.getBoundingRect(i,n);return r.left>=t.x&&r.left+r.width<=e.x&&r.top>=t.y&&r.top+r.height<=e.y},containsPoint:function(t,e,i,n){var r=this._getCoords(i,n),o=(e=e||this._getImageLines(r),this._findCrossPoints(t,e));return 0!==o&&o%2==1},isOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.getCoords(!0,t).some((function(t){return t.x<=i.x&&t.x>=e.x&&t.y<=i.y&&t.y>=e.y}))||(!!this.intersectsWithRect(e,i,!0,t)||this._containsCenterOfCanvas(e,i,t))},_containsCenterOfCanvas:function(t,e,i){var n={x:(t.x+e.x)/2,y:(t.y+e.y)/2};return!!this.containsPoint(n,null,!0,i)},isPartiallyOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.intersectsWithRect(e,i,!0,t)||this.getCoords(!0,t).every((function(t){return(t.x>=i.x||t.x<=e.x)&&(t.y>=i.y||t.y<=e.y)}))&&this._containsCenterOfCanvas(e,i,t)},_getImageLines:function(t){return{topline:{o:t.tl,d:t.tr},rightline:{o:t.tr,d:t.br},bottomline:{o:t.br,d:t.bl},leftline:{o:t.bl,d:t.tl}}},_findCrossPoints:function(t,e){var i,n,r,o=0;for(var a in e)if(!((r=e[a]).o.y<t.y&&r.d.y<t.y||r.o.y>=t.y&&r.d.y>=t.y||(r.o.x===r.d.x&&r.o.x>=t.x?n=r.o.x:(0,i=(r.d.y-r.o.y)/(r.d.x-r.o.x),n=-(t.y-0*t.x-(r.o.y-i*r.o.x))/(0-i)),n>=t.x&&(o+=1),2!==o)))break;return o},getBoundingRect:function(e,i){var n=this.getCoords(e,i);return t.makeBoundingBoxFromPoints(n)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(t){return Math.abs(t)<this.minScaleLimit?t<0?-this.minScaleLimit:this.minScaleLimit:0===t?1e-4:t},scale:function(t){return this._set("scaleX",t),this._set("scaleY",t),this.setCoords()},scaleToWidth:function(t,e){var i=this.getBoundingRect(e).width/this.getScaledWidth();return this.scale(t/this.width/i)},scaleToHeight:function(t,e){var i=this.getBoundingRect(e).height/this.getScaledHeight();return this.scale(t/this.height/i)},calcCoords:function(t){return t?this.calcACoords():this.calcOCoords()},calcLineCoords:function(){var i=this.getViewportTransform(),r=this.padding,o=e(this.angle),a=t.cos(o)*r,s=t.sin(o)*r,l=a+s,c=a-s,h=this.calcACoords(),u={tl:n(h.tl,i),tr:n(h.tr,i),bl:n(h.bl,i),br:n(h.br,i)};return r&&(u.tl.x-=c,u.tl.y-=l,u.tr.x+=l,u.tr.y-=c,u.bl.x-=l,u.bl.y+=c,u.br.x+=c,u.br.y+=l),u},calcOCoords:function(){var t=this._calcRotateMatrix(),e=this._calcTranslateMatrix(),n=this.getViewportTransform(),r=i(n,e),o=i(r,t),a=(o=i(o,[1/n[0],0,0,1/n[3],0,0]),this._calculateCurrentDimensions()),s={};return this.forEachControl((function(t,e,i){s[e]=t.positionHandler(a,o,i)})),s},calcACoords:function(){var t=this._calcRotateMatrix(),e=this._calcTranslateMatrix(),r=i(e,t),o=this._getTransformedDimensions(),a=o.x/2,s=o.y/2;return{tl:n({x:-a,y:-s},r),tr:n({x:a,y:-s},r),bl:n({x:-a,y:s},r),br:n({x:a,y:s},r)}},setCoords:function(t){return this.aCoords=this.calcACoords(),this.lineCoords=this.group?this.aCoords:this.calcLineCoords(),t||(this.oCoords=this.calcOCoords(),this._setCornerCoords&&this._setCornerCoords()),this},_calcRotateMatrix:function(){return t.calcRotateMatrix(this)},_calcTranslateMatrix:function(){var t=this.getCenterPoint();return[1,0,0,1,t.x,t.y]},transformMatrixKey:function(t){var e="";return!t&&this.group&&(e=this.group.transformMatrixKey(t)+"_"),e+this.top+"_"+this.left+"_"+this.scaleX+"_"+this.scaleY+"_"+this.skewX+"_"+this.skewY+"_"+this.angle+"_"+this.originX+"_"+this.originY+"_"+this.width+"_"+this.height+"_"+this.strokeWidth+this.flipX+this.flipY},calcTransformMatrix:function(t){var e=this.calcOwnMatrix();if(t||!this.group)return e;var n=this.transformMatrixKey(t),r=this.matrixCache||(this.matrixCache={});return r.key===n?r.value:(this.group&&(e=i(this.group.calcTransformMatrix(!1),e)),r.key=n,r.value=e,e)},calcOwnMatrix:function(){var e=this.transformMatrixKey(!0),i=this.ownMatrixCache||(this.ownMatrixCache={});if(i.key===e)return i.value;var n=this._calcTranslateMatrix(),r={angle:this.angle,translateX:n[4],translateY:n[5],scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY};return i.key=e,i.value=t.composeMatrix(r),i.value},_calcDimensionsTransformMatrix:function(e,i,n){return t.calcDimensionsMatrix({skewX:e,skewY:i,scaleX:this.scaleX*(n&&this.flipX?-1:1),scaleY:this.scaleY*(n&&this.flipY?-1:1)})},_getNonTransformedDimensions:function(){var t=this.strokeWidth;return{x:this.width+t,y:this.height+t}},_getTransformedDimensions:function(e,i){void 0===e&&(e=this.skewX),void 0===i&&(i=this.skewY);var n,r,o,a=0===e&&0===i;if(this.strokeUniform?(r=this.width,o=this.height):(r=(n=this._getNonTransformedDimensions()).x,o=n.y),a)return this._finalizeDimensions(r*this.scaleX,o*this.scaleY);var s=t.sizeAfterTransform(r,o,{scaleX:this.scaleX,scaleY:this.scaleY,skewX:e,skewY:i});return this._finalizeDimensions(s.x,s.y)},_finalizeDimensions:function(t,e){return this.strokeUniform?{x:t+this.strokeWidth,y:e+this.strokeWidth}:{x:t,y:e}},_calculateCurrentDimensions:function(){var t=this.getViewportTransform(),e=this._getTransformedDimensions();return n(e,t,!0).scalarAdd(2*this.padding)}})}(),S.util.object.extend(S.Object.prototype,{sendToBack:function(){return this.group?S.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?S.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this},sendBackwards:function(t){return this.group?S.StaticCanvas.prototype.sendBackwards.call(this.group,this,t):this.canvas&&this.canvas.sendBackwards(this,t),this},bringForward:function(t){return this.group?S.StaticCanvas.prototype.bringForward.call(this.group,this,t):this.canvas&&this.canvas.bringForward(this,t),this},moveTo:function(t){return this.group&&"activeSelection"!==this.group.type?S.StaticCanvas.prototype.moveTo.call(this.group,this,t):this.canvas&&this.canvas.moveTo(this,t),this}}),function(){function t(t,e){if(e){if(e.toLive)return t+": url(#SVGID_"+e.id+"); ";var i=new S.Color(e),n=t+": "+i.toRgb()+"; ",r=i.getAlpha();return 1!==r&&(n+=t+"-opacity: "+r.toString()+"; "),n}return t+": none; "}var e=S.util.toFixed;S.util.object.extend(S.Object.prototype,{getSvgStyles:function(e){var i=this.fillRule?this.fillRule:"nonzero",n=this.strokeWidth?this.strokeWidth:"0",r=this.strokeDashArray?this.strokeDashArray.join(" "):"none",o=this.strokeDashOffset?this.strokeDashOffset:"0",a=this.strokeLineCap?this.strokeLineCap:"butt",s=this.strokeLineJoin?this.strokeLineJoin:"miter",l=this.strokeMiterLimit?this.strokeMiterLimit:"4",c=void 0!==this.opacity?this.opacity:"1",h=this.visible?"":" visibility: hidden;",u=e?"":this.getSvgFilter(),f=t("fill",this.fill);return[t("stroke",this.stroke),"stroke-width: ",n,"; ","stroke-dasharray: ",r,"; ","stroke-linecap: ",a,"; ","stroke-dashoffset: ",o,"; ","stroke-linejoin: ",s,"; ","stroke-miterlimit: ",l,"; ",f,"fill-rule: ",i,"; ","opacity: ",c,";",u,h].join("")},getSvgSpanStyles:function(e,i){var n=e.fontFamily?"font-family: "+(-1===e.fontFamily.indexOf("'")&&-1===e.fontFamily.indexOf('"')?"'"+e.fontFamily+"'":e.fontFamily)+"; ":"",r=e.strokeWidth?"stroke-width: "+e.strokeWidth+"; ":"",o=(n=n,e.fontSize?"font-size: "+e.fontSize+"px; ":""),a=e.fontStyle?"font-style: "+e.fontStyle+"; ":"",s=e.fontWeight?"font-weight: "+e.fontWeight+"; ":"",l=e.fill?t("fill",e.fill):"",c=e.stroke?t("stroke",e.stroke):"",h=this.getSvgTextDecoration(e);return h&&(h="text-decoration: "+h+"; "),[c,r,n,o,a,s,h,l,e.deltaY?"baseline-shift: "+-e.deltaY+"; ":"",i?"white-space: pre; ":""].join("")},getSvgTextDecoration:function(t){return["overline","underline","line-through"].filter((function(e){return t[e.replace("-","")]})).join(" ")},getSvgFilter:function(){return this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":""},getSvgCommons:function(){return[this.id?'id="'+this.id+'" ':"",this.clipPath?'clip-path="url(#'+this.clipPath.clipPathId+')" ':""].join("")},getSvgTransform:function(t,e){var i=t?this.calcTransformMatrix():this.calcOwnMatrix();return'transform="'+S.util.matrixToSVG(i)+(e||"")+'" '},_setSVGBg:function(t){if(this.backgroundColor){var i=S.Object.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(this.backgroundColor),' x="',e(-this.width/2,i),'" y="',e(-this.height/2,i),'" width="',e(this.width,i),'" height="',e(this.height,i),'"></rect>\n')}},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})},toClipPathSVG:function(t){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})},_createBaseClipPathSVGMarkup:function(t,e){var i=(e=e||{}).reviver,n=e.additionalTransform||"",r=[this.getSvgTransform(!0,n),this.getSvgCommons()].join(""),o=t.indexOf("COMMON_PARTS");return t[o]=r,i?i(t.join("")):t.join("")},_createBaseSVGMarkup:function(t,e){var i,n,r=(e=e||{}).noStyle,o=e.reviver,a=r?"":'style="'+this.getSvgStyles()+'" ',s=e.withShadow?'style="'+this.getSvgFilter()+'" ':"",l=this.clipPath,c=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",h=l&&l.absolutePositioned,u=this.stroke,f=this.fill,d=this.shadow,v=[],g=t.indexOf("COMMON_PARTS"),p=e.additionalTransform;return l&&(l.clipPathId="CLIPPATH_"+S.Object.__uid++,n='<clipPath id="'+l.clipPathId+'" >\n'+l.toClipPathSVG(o)+"</clipPath>\n"),h&&v.push("<g ",s,this.getSvgCommons()," >\n"),v.push("<g ",this.getSvgTransform(!1),h?"":s+this.getSvgCommons()," >\n"),i=[a,c,r?"":this.addPaintOrder()," ",p?'transform="'+p+'" ':""].join(""),t[g]=i,f&&f.toLive&&v.push(f.toSVG(this)),u&&u.toLive&&v.push(u.toSVG(this)),d&&v.push(d.toSVG(this)),l&&v.push(n),v.push(t.join("")),v.push("</g>\n"),h&&v.push("</g>\n"),o?o(v.join("")):v.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var t=S.util.object.extend;function e(e,i,n){var r={};n.forEach((function(t){r[t]=e[t]})),t(e[i],r,!0)}S.util.object.extend(S.Object.prototype,{hasStateChanged:function(t){var e="_"+(t=t||"stateProperties");return Object.keys(this[e]).length<this[t].length||!function t(e,i,n){if(e===i)return!0;if(Array.isArray(e)){if(!Array.isArray(i)||e.length!==i.length)return!1;for(var r=0,o=e.length;r<o;r++)if(!t(e[r],i[r]))return!1;return!0}if(e&&"object"==typeof e){var a,s=Object.keys(e);if(!i||"object"!=typeof i||!n&&s.length!==Object.keys(i).length)return!1;for(r=0,o=s.length;r<o;r++)if("canvas"!==(a=s[r])&&"group"!==a&&!t(e[a],i[a]))return!1;return!0}}(this[e],this,!0)},saveState:function(t){var i=t&&t.propertySet||"stateProperties",n="_"+i;return this[n]?(e(this,n,this[i]),t&&t.stateProperties&&e(this,n,t.stateProperties),this):this.setupState(t)},setupState:function(t){var e=(t=t||{}).propertySet||"stateProperties";return t.propertySet=e,this["_"+e]={},this.saveState(t),this}})}(),function(){var t=S.util.degreesToRadians;S.util.object.extend(S.Object.prototype,{_findTargetCorner:function(t,e){if(!this.hasControls||this.group||!this.canvas||this.canvas._activeObject!==this)return!1;var i,n,r,o=t.x,a=t.y,s=Object.keys(this.oCoords),l=s.length-1;for(this.__corner=0;l>=0;l--)if(r=s[l],this.isControlVisible(r)&&(n=this._getImageLines(e?this.oCoords[r].touchCorner:this.oCoords[r].corner),0!==(i=this._findCrossPoints({x:o,y:a},n))&&i%2==1))return this.__corner=r,r;return!1},forEachControl:function(t){for(var e in this.controls)t(this.controls[e],e,this)},_setCornerCoords:function(){var t=this.oCoords;for(var e in t){var i=this.controls[e];t[e].corner=i.calcCornerCoords(this.angle,this.cornerSize,t[e].x,t[e].y,!1),t[e].touchCorner=i.calcCornerCoords(this.angle,this.touchCornerSize,t[e].x,t[e].y,!0)}},drawSelectionBackground:function(e){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;e.save();var i=this.getCenterPoint(),n=this._calculateCurrentDimensions(),r=this.canvas.viewportTransform;return e.translate(i.x,i.y),e.scale(1/r[0],1/r[3]),e.rotate(t(this.angle)),e.fillStyle=this.selectionBackgroundColor,e.fillRect(-n.x/2,-n.y/2,n.x,n.y),e.restore(),this},drawBorders:function(t,e){e=e||{};var i=this._calculateCurrentDimensions(),n=this.borderScaleFactor,r=i.x+n,o=i.y+n,a=void 0!==e.hasControls?e.hasControls:this.hasControls,s=!1;return t.save(),t.strokeStyle=e.borderColor||this.borderColor,this._setLineDash(t,e.borderDashArray||this.borderDashArray),t.strokeRect(-r/2,-o/2,r,o),a&&(t.beginPath(),this.forEachControl((function(e,i,n){e.withConnection&&e.getVisibility(n,i)&&(s=!0,t.moveTo(e.x*r,e.y*o),t.lineTo(e.x*r+e.offsetX,e.y*o+e.offsetY))})),s&&t.stroke()),t.restore(),this},drawBordersInGroup:function(t,e,i){i=i||{};var n=S.util.sizeAfterTransform(this.width,this.height,e),r=this.strokeWidth,o=this.strokeUniform,a=this.borderScaleFactor,s=n.x+r*(o?this.canvas.getZoom():e.scaleX)+a,l=n.y+r*(o?this.canvas.getZoom():e.scaleY)+a;return t.save(),this._setLineDash(t,i.borderDashArray||this.borderDashArray),t.strokeStyle=i.borderColor||this.borderColor,t.strokeRect(-s/2,-l/2,s,l),t.restore(),this},drawControls:function(t,e){e=e||{},t.save();var i,n,r=this.canvas.getRetinaScaling();return t.setTransform(r,0,0,r,0,0),t.strokeStyle=t.fillStyle=e.cornerColor||this.cornerColor,this.transparentCorners||(t.strokeStyle=e.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(t,e.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(i=this.group.calcTransformMatrix()),this.forEachControl((function(r,o,a){n=a.oCoords[o],r.getVisibility(a,o)&&(i&&(n=S.util.transformPoint(n,i)),r.render(t,n.x,n.y,e,a))})),t.restore(),this},isControlVisible:function(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)},setControlVisible:function(t,e){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e,this},setControlsVisibility:function(t){for(var e in t||(t={}),t)this.setControlVisible(e,t[e]);return this},onDeselect:function(){},onSelect:function(){}})}(),S.util.object.extend(S.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(t,e){var i=function(){},n=(e=e||{}).onComplete||i,r=e.onChange||i,o=this;return S.util.animate({startValue:t.left,endValue:this.getCenter().left,duration:this.FX_DURATION,onChange:function(e){t.set("left",e),o.requestRenderAll(),r()},onComplete:function(){t.setCoords(),n()}}),this},fxCenterObjectV:function(t,e){var i=function(){},n=(e=e||{}).onComplete||i,r=e.onChange||i,o=this;return S.util.animate({startValue:t.top,endValue:this.getCenter().top,duration:this.FX_DURATION,onChange:function(e){t.set("top",e),o.requestRenderAll(),r()},onComplete:function(){t.setCoords(),n()}}),this},fxRemove:function(t,e){var i=function(){},n=(e=e||{}).onComplete||i,r=e.onChange||i,o=this;return S.util.animate({startValue:t.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(e){t.set("opacity",e),o.requestRenderAll(),r()},onComplete:function(){o.remove(t),n()}}),this}}),S.util.object.extend(S.Object.prototype,{animate:function(){if(arguments[0]&&"object"==typeof arguments[0]){var t,e,i=[];for(t in arguments[0])i.push(t);for(var n=0,r=i.length;n<r;n++)t=i[n],e=n!==r-1,this._animate(t,arguments[0][t],arguments[1],e)}else this._animate.apply(this,arguments);return this},_animate:function(t,e,i,n){var r,o=this;e=e.toString(),i=i?S.util.object.clone(i):{},~t.indexOf(".")&&(r=t.split("."));var a=o.colorProperties.indexOf(t)>-1||r&&o.colorProperties.indexOf(r[1])>-1,s=r?this.get(r[0])[r[1]]:this.get(t);"from"in i||(i.from=s),a||(e=~e.indexOf("=")?s+parseFloat(e.replace("=","")):parseFloat(e));var l={startValue:i.from,endValue:e,byValue:i.by,easing:i.easing,duration:i.duration,abort:i.abort&&function(t,e,n){return i.abort.call(o,t,e,n)},onChange:function(e,a,s){r?o[r[0]][r[1]]=e:o.set(t,e),n||i.onChange&&i.onChange(e,a,s)},onComplete:function(t,e,r){n||(o.setCoords(),i.onComplete&&i.onComplete(t,e,r))}};return a?S.util.animateColor(l.startValue,l.endValue,l.duration,l):S.util.animate(l)}}),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,n=e.util.object.clone,r={x1:1,x2:1,y1:1,y2:1};function o(t,e){var i=t.origin,n=t.axis1,r=t.axis2,o=t.dimension,a=e.nearest,s=e.center,l=e.farthest;return function(){switch(this.get(i)){case a:return Math.min(this.get(n),this.get(r));case s:return Math.min(this.get(n),this.get(r))+.5*this.get(o);case l:return Math.max(this.get(n),this.get(r))}}}e.Line?e.warn("fabric.Line is already defined"):(e.Line=e.util.createClass(e.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:e.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(t,e){t||(t=[0,0,0,0]),this.callSuper("initialize",e),this.set("x1",t[0]),this.set("y1",t[1]),this.set("x2",t[2]),this.set("y2",t[3]),this._setWidthHeight(e)},_setWidthHeight:function(t){t||(t={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in t?t.left:this._getLeftToOriginX(),this.top="top"in t?t.top:this._getTopToOriginY()},_set:function(t,e){return this.callSuper("_set",t,e),void 0!==r[t]&&this._setWidthHeight(),this},_getLeftToOriginX:o({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:o({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(t){t.beginPath();var e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;var i=t.strokeStyle;t.strokeStyle=this.stroke||t.fillStyle,this.stroke&&this._renderStroke(t),t.strokeStyle=i},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(t){return i(this.callSuper("toObject",t),this.calcLinePoints())},_getNonTransformedDimensions:function(){var t=this.callSuper("_getNonTransformedDimensions");return"butt"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t},calcLinePoints:function(){var t=this.x1<=this.x2?-1:1,e=this.y1<=this.y2?-1:1,i=t*this.width*.5,n=e*this.height*.5;return{x1:i,x2:t*this.width*-.5,y1:n,y2:e*this.height*-.5}},_toSVG:function(){var t=this.calcLinePoints();return["<line ","COMMON_PARTS",'x1="',t.x1,'" y1="',t.y1,'" x2="',t.x2,'" y2="',t.y2,'" />\n']}}),e.Line.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),e.Line.fromElement=function(t,n,r){r=r||{};var o=e.parseAttributes(t,e.Line.ATTRIBUTE_NAMES),a=[o.x1||0,o.y1||0,o.x2||0,o.y2||0];n(new e.Line(a,i(o,r)))},e.Line.fromObject=function(t,i){var r=n(t,!0);r.points=[t.x1,t.y1,t.x2,t.y2],e.Object._fromObject("Line",r,(function(t){delete t.points,i&&i(t)}),"points")})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=Math.PI;e.Circle?e.warn("fabric.Circle is already defined."):(e.Circle=e.util.createClass(e.Object,{type:"circle",radius:0,startAngle:0,endAngle:2*i,cacheProperties:e.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(t,e){return this.callSuper("_set",t,e),"radius"===t&&this.setRadius(e),this},toObject:function(t){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(t))},_toSVG:function(){var t,n=(this.endAngle-this.startAngle)%(2*i);if(0===n)t=["<circle ","COMMON_PARTS",'cx="0" cy="0" ','r="',this.radius,'" />\n'];else{var r=e.util.cos(this.startAngle)*this.radius,o=e.util.sin(this.startAngle)*this.radius,a=e.util.cos(this.endAngle)*this.radius,s=e.util.sin(this.endAngle)*this.radius,l=n>i?"1":"0";t=['<path d="M '+r+" "+o," A "+this.radius+" "+this.radius," 0 ",+l+" 1"," "+a+" "+s,'" ',"COMMON_PARTS"," />\n"]}return t},_render:function(t){t.beginPath(),t.arc(0,0,this.radius,this.startAngle,this.endAngle,!1),this._renderPaintInOrder(t)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(t){return this.radius=t,this.set("width",2*t).set("height",2*t)}}),e.Circle.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),e.Circle.fromElement=function(t,i){var n,r=e.parseAttributes(t,e.Circle.ATTRIBUTE_NAMES);if(!("radius"in(n=r)&&n.radius>=0))throw new Error("value of `r` attribute is required and can not be negative");r.left=(r.left||0)-r.radius,r.top=(r.top||0)-r.radius,i(new e.Circle(r))},e.Circle.fromObject=function(t,i){e.Object._fromObject("Circle",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Triangle?e.warn("fabric.Triangle is already defined"):(e.Triangle=e.util.createClass(e.Object,{type:"triangle",width:100,height:100,_render:function(t){var 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:function(){var t=this.width/2,e=this.height/2;return["<polygon ","COMMON_PARTS",'points="',[-t+" "+e,"0 "+-e,t+" "+e].join(","),'" />']}}),e.Triangle.fromObject=function(t,i){return e.Object._fromObject("Triangle",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=2*Math.PI;e.Ellipse?e.warn("fabric.Ellipse is already defined."):(e.Ellipse=e.util.createClass(e.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this.set("rx",t&&t.rx||0),this.set("ry",t&&t.ry||0)},_set:function(t,e){switch(this.callSuper("_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:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["<ellipse ","COMMON_PARTS",'cx="0" cy="0" ','rx="',this.rx,'" ry="',this.ry,'" />\n']},_render:function(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,i,!1),t.restore(),this._renderPaintInOrder(t)}}),e.Ellipse.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),e.Ellipse.fromElement=function(t,i){var n=e.parseAttributes(t,e.Ellipse.ATTRIBUTE_NAMES);n.left=(n.left||0)-n.rx,n.top=(n.top||0)-n.ry,i(new e.Ellipse(n))},e.Ellipse.fromObject=function(t,i){e.Object._fromObject("Ellipse",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend;e.Rect?e.warn("fabric.Rect is already defined"):(e.Rect=e.util.createClass(e.Object,{stateProperties:e.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(t){var e=this.rx?Math.min(this.rx,this.width/2):0,i=this.ry?Math.min(this.ry,this.height/2):0,n=this.width,r=this.height,o=-this.width/2,a=-this.height/2,s=0!==e||0!==i,l=.4477152502;t.beginPath(),t.moveTo(o+e,a),t.lineTo(o+n-e,a),s&&t.bezierCurveTo(o+n-l*e,a,o+n,a+l*i,o+n,a+i),t.lineTo(o+n,a+r-i),s&&t.bezierCurveTo(o+n,a+r-l*i,o+n-l*e,a+r,o+n-e,a+r),t.lineTo(o+e,a+r),s&&t.bezierCurveTo(o+l*e,a+r,o,a+r-l*i,o,a+r-i),t.lineTo(o,a+i),s&&t.bezierCurveTo(o,a+l*i,o+l*e,a,o+e,a),t.closePath(),this._renderPaintInOrder(t)},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["<rect ","COMMON_PARTS",'x="',-this.width/2,'" y="',-this.height/2,'" rx="',this.rx,'" ry="',this.ry,'" width="',this.width,'" height="',this.height,'" />\n']}}),e.Rect.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),e.Rect.fromElement=function(t,n,r){if(!t)return n(null);r=r||{};var o=e.parseAttributes(t,e.Rect.ATTRIBUTE_NAMES);o.left=o.left||0,o.top=o.top||0,o.height=o.height||0,o.width=o.width||0;var a=new e.Rect(i(r?e.util.object.clone(r):{},o));a.visible=a.visible&&a.width>0&&a.height>0,n(a)},e.Rect.fromObject=function(t,i){return e.Object._fromObject("Rect",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,n=e.util.array.min,r=e.util.array.max,o=e.util.toFixed;e.Polyline?e.warn("fabric.Polyline is already defined"):(e.Polyline=e.util.createClass(e.Object,{type:"polyline",points:null,cacheProperties:e.Object.prototype.cacheProperties.concat("points"),initialize:function(t,e){e=e||{},this.points=t||[],this.callSuper("initialize",e),this._setPositionDimensions(e)},_setPositionDimensions:function(t){var e,i=this._calcDimensions(t);this.width=i.width,this.height=i.height,t.fromSVG||(e=this.translateToGivenOrigin({x:i.left-this.strokeWidth/2,y:i.top-this.strokeWidth/2},"left","top",this.originX,this.originY)),void 0===t.left&&(this.left=t.fromSVG?i.left:e.x),void 0===t.top&&(this.top=t.fromSVG?i.top:e.y),this.pathOffset={x:i.left+this.width/2,y:i.top+this.height/2}},_calcDimensions:function(){var t=this.points,e=n(t,"x")||0,i=n(t,"y")||0;return{left:e,top:i,width:(r(t,"x")||0)-e,height:(r(t,"y")||0)-i}},toObject:function(t){return i(this.callSuper("toObject",t),{points:this.points.concat()})},_toSVG:function(){for(var t=[],i=this.pathOffset.x,n=this.pathOffset.y,r=e.Object.NUM_FRACTION_DIGITS,a=0,s=this.points.length;a<s;a++)t.push(o(this.points[a].x-i,r),",",o(this.points[a].y-n,r)," ");return["<"+this.type+" ","COMMON_PARTS",'points="',t.join(""),'" />\n']},commonRender:function(t){var e,i=this.points.length,n=this.pathOffset.x,r=this.pathOffset.y;if(!i||isNaN(this.points[i-1].y))return!1;t.beginPath(),t.moveTo(this.points[0].x-n,this.points[0].y-r);for(var o=0;o<i;o++)e=this.points[o],t.lineTo(e.x-n,e.y-r);return!0},_render:function(t){this.commonRender(t)&&this._renderPaintInOrder(t)},complexity:function(){return this.get("points").length}}),e.Polyline.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat(),e.Polyline.fromElementGenerator=function(t){return function(n,r,o){if(!n)return r(null);o||(o={});var a=e.parsePointsAttribute(n.getAttribute("points")),s=e.parseAttributes(n,e[t].ATTRIBUTE_NAMES);s.fromSVG=!0,r(new e[t](a,i(s,o)))}},e.Polyline.fromElement=e.Polyline.fromElementGenerator("Polyline"),e.Polyline.fromObject=function(t,i){return e.Object._fromObject("Polyline",t,i,"points")})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Polygon?e.warn("fabric.Polygon is already defined"):(e.Polygon=e.util.createClass(e.Polyline,{type:"polygon",_render:function(t){this.commonRender(t)&&(t.closePath(),this._renderPaintInOrder(t))}}),e.Polygon.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat(),e.Polygon.fromElement=e.Polyline.fromElementGenerator("Polygon"),e.Polygon.fromObject=function(t,i){e.Object._fromObject("Polygon",t,i,"points")})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.array.min,n=e.util.array.max,r=e.util.object.extend,o=Object.prototype.toString,a=e.util.toFixed;e.Path?e.warn("fabric.Path is already defined"):(e.Path=e.util.createClass(e.Object,{type:"path",path:null,cacheProperties:e.Object.prototype.cacheProperties.concat("path","fillRule"),stateProperties:e.Object.prototype.stateProperties.concat("path"),initialize:function(t,i){i=i||{},this.callSuper("initialize",i),t||(t=[]);var n="[object Array]"===o.call(t);this.path=e.util.makePathSimpler(n?t:e.util.parsePath(t)),this.path&&e.Polyline.prototype._setPositionDimensions.call(this,i)},_renderPathCommands:function(t){var e,i=0,n=0,r=0,o=0,a=0,s=0,l=-this.pathOffset.x,c=-this.pathOffset.y;t.beginPath();for(var h=0,u=this.path.length;h<u;++h)switch((e=this.path[h])[0]){case"L":r=e[1],o=e[2],t.lineTo(r+l,o+c);break;case"M":i=r=e[1],n=o=e[2],t.moveTo(r+l,o+c);break;case"C":r=e[5],o=e[6],a=e[3],s=e[4],t.bezierCurveTo(e[1]+l,e[2]+c,a+l,s+c,r+l,o+c);break;case"Q":t.quadraticCurveTo(e[1]+l,e[2]+c,e[3]+l,e[4]+c),r=e[3],o=e[4],a=e[1],s=e[2];break;case"z":case"Z":r=i,o=n,t.closePath()}},_render:function(t){this._renderPathCommands(t),this._renderPaintInOrder(t)},toString:function(){return"#<fabric.Path ("+this.complexity()+'): { "top": '+this.top+', "left": '+this.left+" }>"},toObject:function(t){return r(this.callSuper("toObject",t),{path:this.path.map((function(t){return t.slice()}))})},toDatalessObject:function(t){var e=this.toObject(["sourcePath"].concat(t));return e.sourcePath&&delete e.path,e},_toSVG:function(){return["<path ","COMMON_PARTS",'d="',e.util.joinPath(this.path),'" stroke-linecap="round" ',"/>\n"]},_getOffsetTransform:function(){var t=e.Object.NUM_FRACTION_DIGITS;return" translate("+a(-this.pathOffset.x,t)+", "+a(-this.pathOffset.y,t)+")"},toClipPathSVG:function(t){var e=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},toSVG:function(t){var e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var t,r,o=[],a=[],s=0,l=0,c=0,h=0,u=0,f=this.path.length;u<f;++u){switch((t=this.path[u])[0]){case"L":c=t[1],h=t[2],r=[];break;case"M":s=c=t[1],l=h=t[2],r=[];break;case"C":r=e.util.getBoundsOfCurve(c,h,t[1],t[2],t[3],t[4],t[5],t[6]),c=t[5],h=t[6];break;case"Q":r=e.util.getBoundsOfCurve(c,h,t[1],t[2],t[1],t[2],t[3],t[4]),c=t[3],h=t[4];break;case"z":case"Z":c=s,h=l}r.forEach((function(t){o.push(t.x),a.push(t.y)})),o.push(c),a.push(h)}var d=i(o)||0,v=i(a)||0;return{left:d,top:v,width:(n(o)||0)-d,height:(n(a)||0)-v}}}),e.Path.fromObject=function(t,i){if("string"==typeof t.sourcePath){var n=t.sourcePath;e.loadSVGFromURL(n,(function(e){var n=e[0];n.setOptions(t),i&&i(n)}))}else e.Object._fromObject("Path",t,i,"path")},e.Path.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat(["d"]),e.Path.fromElement=function(t,i,n){var o=e.parseAttributes(t,e.Path.ATTRIBUTE_NAMES);o.fromSVG=!0,i(new e.Path(o.d,r(o,n)))})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.array.min,n=e.util.array.max;e.Group||(e.Group=e.util.createClass(e.Object,e.Collection,{type:"group",strokeWidth:0,subTargetCheck:!1,cacheProperties:[],useSetOnGroup:!1,initialize:function(t,e,i){e=e||{},this._objects=[],i&&this.callSuper("initialize",e),this._objects=t||[];for(var n=this._objects.length;n--;)this._objects[n].group=this;if(i)this._updateObjectsACoords();else{var r=e&&e.centerPoint;void 0!==e.originX&&(this.originX=e.originX),void 0!==e.originY&&(this.originY=e.originY),r||this._calcBounds(),this._updateObjectsCoords(r),delete e.centerPoint,this.callSuper("initialize",e)}this.setCoords()},_updateObjectsACoords:function(){for(var t=this._objects.length;t--;)this._objects[t].setCoords(!0)},_updateObjectsCoords:function(t){t=t||this.getCenterPoint();for(var e=this._objects.length;e--;)this._updateObjectCoords(this._objects[e],t)},_updateObjectCoords:function(t,e){var i=t.left,n=t.top;t.set({left:i-e.x,top:n-e.y}),t.group=this,t.setCoords(!0)},toString:function(){return"#<fabric.Group: ("+this.complexity()+")>"},addWithUpdate:function(t){var i=!!this.group;return this._restoreObjectsState(),e.util.resetObjectTransform(this),t&&(i&&e.util.removeTransformFromObject(t,this.group.calcTransformMatrix()),this._objects.push(t),t.group=this,t._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,i?this.group.addWithUpdate():this.setCoords(),this},removeWithUpdate:function(t){return this._restoreObjectsState(),e.util.resetObjectTransform(this),this.remove(t),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(t){this.dirty=!0,t.group=this,t._set("canvas",this.canvas)},_onObjectRemoved:function(t){this.dirty=!0,delete t.group},_set:function(t,i){var n=this._objects.length;if(this.useSetOnGroup)for(;n--;)this._objects[n].setOnGroup(t,i);if("canvas"===t)for(;n--;)this._objects[n]._set(t,i);e.Object.prototype._set.call(this,t,i)},toObject:function(t){var i=this.includeDefaultValues,n=this._objects.filter((function(t){return!t.excludeFromExport})).map((function(e){var n=e.includeDefaultValues;e.includeDefaultValues=i;var r=e.toObject(t);return e.includeDefaultValues=n,r})),r=e.Object.prototype.toObject.call(this,t);return r.objects=n,r},toDatalessObject:function(t){var i,n=this.sourcePath;if(n)i=n;else{var r=this.includeDefaultValues;i=this._objects.map((function(e){var i=e.includeDefaultValues;e.includeDefaultValues=r;var n=e.toDatalessObject(t);return e.includeDefaultValues=i,n}))}var o=e.Object.prototype.toDatalessObject.call(this,t);return o.objects=i,o},render:function(t){this._transformDone=!0,this.callSuper("render",t),this._transformDone=!1},shouldCache:function(){var t=e.Object.prototype.shouldCache.call(this);if(t)for(var i=0,n=this._objects.length;i<n;i++)if(this._objects[i].willDrawShadow())return this.ownCaching=!1,!1;return t},willDrawShadow:function(){if(e.Object.prototype.willDrawShadow.call(this))return!0;for(var t=0,i=this._objects.length;t<i;t++)if(this._objects[t].willDrawShadow())return!0;return!1},isOnACache:function(){return this.ownCaching||this.group&&this.group.isOnACache()},drawObject:function(t){for(var e=0,i=this._objects.length;e<i;e++)this._objects[e].render(t);this._drawClipPath(t)},isCacheDirty:function(t){if(this.callSuper("isCacheDirty",t))return!0;if(!this.statefullCache)return!1;for(var e=0,i=this._objects.length;e<i;e++)if(this._objects[e].isCacheDirty(!0)){if(this._cacheCanvas){var n=this.cacheWidth/this.zoomX,r=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-n/2,-r/2,n,r)}return!0}return!1},_restoreObjectsState:function(){var t=this.calcOwnMatrix();return this._objects.forEach((function(i){e.util.addTransformToObject(i,t),delete i.group,i.setCoords()})),this},realizeTransform:function(t,i){return e.util.addTransformToObject(t,i),t},destroy:function(){return this._objects.forEach((function(t){t.set("dirty",!0)})),this._restoreObjectsState()},toActiveSelection:function(){if(this.canvas){var t=this._objects,i=this.canvas;this._objects=[];var n=this.toObject();delete n.objects;var r=new e.ActiveSelection([]);return r.set(n),r.type="activeSelection",i.remove(this),t.forEach((function(t){t.group=r,t.dirty=!0,i.add(t)})),r.canvas=i,r._objects=t,i._activeObject=r,r.setCoords(),r}},ungroupOnCanvas:function(){return this._restoreObjectsState()},setObjectsCoords:function(){return this.forEachObject((function(t){t.setCoords(!0)})),this},_calcBounds:function(t){for(var e,i,n,r,o=[],a=[],s=["tr","br","bl","tl"],l=0,c=this._objects.length,h=s.length;l<c;++l){for(n=(e=this._objects[l]).calcACoords(),r=0;r<h;r++)i=s[r],o.push(n[i].x),a.push(n[i].y);e.aCoords=n}this._getBounds(o,a,t)},_getBounds:function(t,r,o){var a=new e.Point(i(t),i(r)),s=new e.Point(n(t),n(r)),l=a.y||0,c=a.x||0,h=s.x-a.x||0,u=s.y-a.y||0;this.width=h,this.height=u,o||this.setPositionByOrigin({x:c,y:l},"left","top")},_toSVG:function(t){for(var e=["<g ","COMMON_PARTS"," >\n"],i=0,n=this._objects.length;i<n;i++)e.push("\t\t",this._objects[i].toSVG(t));return e.push("</g>\n"),e},getSvgStyles:function(){var t=void 0!==this.opacity&&1!==this.opacity?"opacity: "+this.opacity+";":"",e=this.visible?"":" visibility: hidden;";return[t,this.getSvgFilter(),e].join("")},toClipPathSVG:function(t){for(var e=[],i=0,n=this._objects.length;i<n;i++)e.push("\t",this._objects[i].toClipPathSVG(t));return this._createBaseClipPathSVGMarkup(e,{reviver:t})}}),e.Group.fromObject=function(t,i){var n=t.objects,r=e.util.object.clone(t,!0);delete r.objects,"string"!=typeof n?e.util.enlivenObjects(n,(function(n){e.util.enlivenObjects([t.clipPath],(function(r){var o=e.util.object.clone(t,!0);o.clipPath=r[0],delete o.objects,i&&i(new e.Group(n,o,!0))}))})):e.loadSVGFromURL(n,(function(o){var a=e.util.groupSVGElements(o,t,n);a.set(r),i&&i(a)}))})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.ActiveSelection||(e.ActiveSelection=e.util.createClass(e.Group,{type:"activeSelection",initialize:function(t,i){i=i||{},this._objects=t||[];for(var n=this._objects.length;n--;)this._objects[n].group=this;i.originX&&(this.originX=i.originX),i.originY&&(this.originY=i.originY),this._calcBounds(),this._updateObjectsCoords(),e.Object.prototype.initialize.call(this,i),this.setCoords()},toGroup:function(){var t=this._objects.concat();this._objects=[];var i=e.Object.prototype.toObject.call(this),n=new e.Group([]);if(delete i.type,n.set(i),t.forEach((function(t){t.canvas.remove(t),t.group=n})),n._objects=t,!this.canvas)return n;var r=this.canvas;return r.add(n),r._activeObject=n,n.setCoords(),n},onDeselect:function(){return this.destroy(),!1},toString:function(){return"#<fabric.ActiveSelection: ("+this.complexity()+")>"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(t,e,i){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",t,e),void 0===(i=i||{}).hasControls&&(i.hasControls=!1),i.forActiveSelection=!0;for(var n=0,r=this._objects.length;n<r;n++)this._objects[n]._renderControls(t,i);t.restore()}}),e.ActiveSelection.fromObject=function(t,i){e.util.enlivenObjects(t.objects,(function(n){delete t.objects,i&&i(new e.ActiveSelection(n,t,!0))}))})}(e),function(t){"use strict";var e=S.util.object.extend;t.fabric||(t.fabric={}),t.fabric.Image?S.warn("fabric.Image is already defined."):(S.Image=S.util.createClass(S.Object,{type:"image",strokeWidth:0,srcFromAttribute:!1,_lastScaleX:1,_lastScaleY:1,_filterScalingX:1,_filterScalingY:1,minimumScaleTrigger:.5,stateProperties:S.Object.prototype.stateProperties.concat("cropX","cropY"),cacheProperties:S.Object.prototype.cacheProperties.concat("cropX","cropY"),cacheKey:"",cropX:0,cropY:0,imageSmoothing:!0,initialize:function(t,e){e||(e={}),this.filters=[],this.cacheKey="texture"+S.Object.__uid++,this.callSuper("initialize",e),this._initElement(t,e)},getElement:function(){return this._element||{}},setElement:function(t,e){return this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._element=t,this._originalElement=t,this._initConfig(e),0!==this.filters.length&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters(),this},removeTexture:function(t){var e=S.filterBackend;e&&e.evictCachesForKey&&e.evictCachesForKey(t)},dispose:function(){this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._cacheContext=void 0,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach(function(t){S.util.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this))},getCrossOrigin:function(){return this._originalElement&&(this._originalElement.crossOrigin||null)},getOriginalSize:function(){var t=this.getElement();return{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}},_stroke:function(t){if(this.stroke&&0!==this.strokeWidth){var 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:function(t){var i=[];this.filters.forEach((function(t){t&&i.push(t.toObject())}));var n=e(this.callSuper("toObject",["cropX","cropY"].concat(t)),{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:i});return this.resizeFilter&&(n.resizeFilter=this.resizeFilter.toObject()),n},hasCrop:function(){return this.cropX||this.cropY||this.width<this._element.width||this.height<this._element.height},_toSVG:function(){var t,e=[],i=[],n=this._element,r=-this.width/2,o=-this.height/2,a="",s="";if(!n)return[];if(this.hasCrop()){var l=S.Object.__uid++;e.push('<clipPath id="imageCrop_'+l+'">\n','\t<rect x="'+r+'" y="'+o+'" width="'+this.width+'" height="'+this.height+'" />\n',"</clipPath>\n"),a=' clip-path="url(#imageCrop_'+l+')" '}if(this.imageSmoothing||(s='" image-rendering="optimizeSpeed'),i.push("\t<image ","COMMON_PARTS",'xlink:href="',this.getSvgSrc(!0),'" x="',r-this.cropX,'" y="',o-this.cropY,'" width="',n.width||n.naturalWidth,'" height="',n.height||n.height,s,'"',a,"></image>\n"),this.stroke||this.strokeDashArray){var c=this.fill;this.fill=null,t=["\t<rect ",'x="',r,'" y="',o,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'"/>\n'],this.fill=c}return e="fill"!==this.paintFirst?e.concat(t,i):e.concat(i,t)},getSrc:function(t){var e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src"):e.src:this.src||""},setSrc:function(t,e,i){return S.util.loadImage(t,(function(t,n){this.setElement(t,i),this._setWidthHeight(),e&&e(this,n)}),this,i&&i.crossOrigin),this},toString:function(){return'#<fabric.Image: { src: "'+this.getSrc()+'" }>'},applyResizeFilters:function(){var t=this.resizeFilter,e=this.minimumScaleTrigger,i=this.getTotalObjectScaling(),n=i.scaleX,r=i.scaleY,o=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!t||n>e&&r>e)return this._element=o,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=n,void(this._lastScaleY=r);S.filterBackend||(S.filterBackend=S.initFilterBackend());var a=S.util.createCanvasElement(),s=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,l=o.width,c=o.height;a.width=l,a.height=c,this._element=a,this._lastScaleX=t.scaleX=n,this._lastScaleY=t.scaleY=r,S.filterBackend.applyFilters([t],o,l,c,this._element,s),this._filterScalingX=a.width/this._originalElement.width,this._filterScalingY=a.height/this._originalElement.height},applyFilters:function(t){if(t=(t=t||this.filters||[]).filter((function(t){return t&&!t.isNeutralState()})),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),0===t.length)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var e=this._originalElement,i=e.naturalWidth||e.width,n=e.naturalHeight||e.height;if(this._element===this._originalElement){var r=S.util.createCanvasElement();r.width=i,r.height=n,this._element=r,this._filteredEl=r}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,i,n),this._lastScaleX=1,this._lastScaleY=1;return S.filterBackend||(S.filterBackend=S.initFilterBackend()),S.filterBackend.applyFilters(t,this._originalElement,i,n,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),this},_render:function(t){S.util.setImageSmoothing(t,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)},drawCacheOnCanvas:function(t){S.util.setImageSmoothing(t,this.imageSmoothing),S.Object.prototype.drawCacheOnCanvas.call(this,t)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(t){var e=this._element;if(e){var i=this._filterScalingX,n=this._filterScalingY,r=this.width,o=this.height,a=Math.min,s=Math.max,l=s(this.cropX,0),c=s(this.cropY,0),h=e.naturalWidth||e.width,u=e.naturalHeight||e.height,f=l*i,d=c*n,v=a(r*i,h-f),g=a(o*n,u-d),p=-r/2,m=-o/2,y=a(r,h/i-l),b=a(o,u/n-c);e&&t.drawImage(e,f,d,v,g,p,m,y,b)}},_needsResize:function(){var t=this.getTotalObjectScaling();return t.scaleX!==this._lastScaleX||t.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(t,e){this.setElement(S.util.getById(t),e),S.util.addClass(this.getElement(),S.Image.CSS_CANVAS)},_initConfig:function(t){t||(t={}),this.setOptions(t),this._setWidthHeight(t)},_initFilters:function(t,e){t&&t.length?S.util.enlivenObjects(t,(function(t){e&&e(t)}),"fabric.Image.filters"):e&&e()},_setWidthHeight:function(t){t||(t={});var e=this.getElement();this.width=t.width||e.naturalWidth||e.width||0,this.height=t.height||e.naturalHeight||e.height||0},parsePreserveAspectRatioAttribute:function(){var t,e=S.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),i=this._element.width,n=this._element.height,r=1,o=1,a=0,s=0,l=0,c=0,h=this.width,u=this.height,f={width:h,height:u};return!e||"none"===e.alignX&&"none"===e.alignY?(r=h/i,o=u/n):("meet"===e.meetOrSlice&&(t=(h-i*(r=o=S.util.findScaleToFit(this._element,f)))/2,"Min"===e.alignX&&(a=-t),"Max"===e.alignX&&(a=t),t=(u-n*o)/2,"Min"===e.alignY&&(s=-t),"Max"===e.alignY&&(s=t)),"slice"===e.meetOrSlice&&(t=i-h/(r=o=S.util.findScaleToCover(this._element,f)),"Mid"===e.alignX&&(l=t/2),"Max"===e.alignX&&(l=t),t=n-u/o,"Mid"===e.alignY&&(c=t/2),"Max"===e.alignY&&(c=t),i=h/r,n=u/o)),{width:i,height:n,scaleX:r,scaleY:o,offsetLeft:a,offsetTop:s,cropX:l,cropY:c}}}),S.Image.CSS_CANVAS="canvas-img",S.Image.prototype.getSvgSrc=S.Image.prototype.getSrc,S.Image.fromObject=function(t,e){var i=S.util.object.clone(t);S.util.loadImage(i.src,(function(t,n){n?e&&e(null,!0):S.Image.prototype._initFilters.call(i,i.filters,(function(n){i.filters=n||[],S.Image.prototype._initFilters.call(i,[i.resizeFilter],(function(n){i.resizeFilter=n[0],S.util.enlivenObjects([i.clipPath],(function(n){i.clipPath=n[0];var r=new S.Image(t,i);e(r,!1)}))}))}))}),null,i.crossOrigin)},S.Image.fromURL=function(t,e,i){S.util.loadImage(t,(function(t,n){e&&e(new S.Image(t,i),n)}),null,i&&i.crossOrigin)},S.Image.ATTRIBUTE_NAMES=S.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),S.Image.fromElement=function(t,i,n){var r=S.parseAttributes(t,S.Image.ATTRIBUTE_NAMES);S.Image.fromURL(r["xlink:href"],i,e(n?S.util.object.clone(n):{},r))})}(e),S.util.object.extend(S.Object.prototype,{_getAngleValueForStraighten:function(){var t=this.angle%360;return t>0?90*Math.round((t-1)/90):90*Math.round(t/90)},straighten:function(){return this.rotate(this._getAngleValueForStraighten()),this},fxStraighten:function(t){var e=function(){},i=(t=t||{}).onComplete||e,n=t.onChange||e,r=this;return S.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(t){r.rotate(t),n()},onComplete:function(){r.setCoords(),i()}}),this}}),S.util.object.extend(S.StaticCanvas.prototype,{straightenObject:function(t){return t.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(t){return t.fxStraighten({onChange:this.requestRenderAllBound}),this}}),function(){"use strict";function t(t,e){var i="precision "+e+" float;\nvoid main(){}",n=t.createShader(t.FRAGMENT_SHADER);return t.shaderSource(n,i),t.compileShader(n),!!t.getShaderParameter(n,t.COMPILE_STATUS)}function e(t){t&&t.tileSize&&(this.tileSize=t.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}S.isWebglSupported=function(e){if(S.isLikelyNode)return!1;e=e||S.WebglFilterBackend.prototype.tileSize;var i=document.createElement("canvas"),n=i.getContext("webgl")||i.getContext("experimental-webgl"),r=!1;if(n){S.maxTextureSize=n.getParameter(n.MAX_TEXTURE_SIZE),r=S.maxTextureSize>=e;for(var o=["highp","mediump","lowp"],a=0;a<3;a++)if(t(n,o[a])){S.webGlPrecision=o[a];break}}return this.isSupported=r,r},S.WebglFilterBackend=e,e.prototype={tileSize:2048,resources:{},setupGLContext:function(t,e){this.dispose(),this.createWebGLCanvas(t,e),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(t,e)},chooseFastestCopyGLTo2DMethod:function(t,e){var i,n=void 0!==window.performance;try{new ImageData(1,1),i=!0}catch(t){i=!1}var r="undefined"!=typeof ArrayBuffer,o="undefined"!=typeof Uint8ClampedArray;if(n&&i&&r&&o){var a=S.util.createCanvasElement(),s=new ArrayBuffer(t*e*4);if(S.forceGLPutImageData)return this.imageBuffer=s,void(this.copyGLTo2D=E);var l,c,h={imageBuffer:s,destinationWidth:t,destinationHeight:e,targetCanvas:a};a.width=t,a.height=e,l=window.performance.now(),O.call(h,this.gl,h),c=window.performance.now()-l,l=window.performance.now(),E.call(h,this.gl,h),c>window.performance.now()-l?(this.imageBuffer=s,this.copyGLTo2D=E):this.copyGLTo2D=O}},createWebGLCanvas:function(t,e){var i=S.util.createCanvasElement();i.width=t,i.height=e;var n={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},r=i.getContext("webgl",n);r||(r=i.getContext("experimental-webgl",n)),r&&(r.clearColor(0,0,0,0),this.canvas=i,this.gl=r)},applyFilters:function(t,e,i,n,r,o){var a,s=this.gl;o&&(a=this.getCachedTexture(o,e));var l={originalWidth:e.width||e.originalWidth,originalHeight:e.height||e.originalHeight,sourceWidth:i,sourceHeight:n,destinationWidth:i,destinationHeight:n,context:s,sourceTexture:this.createTexture(s,i,n,!a&&e),targetTexture:this.createTexture(s,i,n),originalTexture:a||this.createTexture(s,i,n,!a&&e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:r},c=s.createFramebuffer();return s.bindFramebuffer(s.FRAMEBUFFER,c),t.forEach((function(t){t&&t.applyTo(l)})),function(t){var e=t.targetCanvas,i=e.width,n=e.height,r=t.destinationWidth,o=t.destinationHeight;i===r&&n===o||(e.width=r,e.height=o)}(l),this.copyGLTo2D(s,l),s.bindTexture(s.TEXTURE_2D,null),s.deleteTexture(l.sourceTexture),s.deleteTexture(l.targetTexture),s.deleteFramebuffer(c),r.getContext("2d").setTransform(1,0,0,1,0,0),l},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(t,e,i,n){var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),r},getCachedTexture:function(t,e){if(this.textureCache[t])return this.textureCache[t];var i=this.createTexture(this.gl,e.width,e.height,e);return this.textureCache[t]=i,i},evictCachesForKey:function(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])},copyGLTo2D:O,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var t=this.gl,e={renderer:"",vendor:""};if(!t)return e;var i=t.getExtension("WEBGL_debug_renderer_info");if(i){var n=t.getParameter(i.UNMASKED_RENDERER_WEBGL),r=t.getParameter(i.UNMASKED_VENDOR_WEBGL);n&&(e.renderer=n.toLowerCase()),r&&(e.vendor=r.toLowerCase())}return this.gpuInfo=e,e}}}(),function(){"use strict";var t=function(){};function e(){}S.Canvas2dFilterBackend=e,e.prototype={evictCachesForKey:t,dispose:t,clearWebGLCaches:t,resources:{},applyFilters:function(t,e,i,n,r){var o=r.getContext("2d");o.drawImage(e,0,0,i,n);var a={sourceWidth:i,sourceHeight:n,imageData:o.getImageData(0,0,i,n),originalEl:e,originalImageData:o.getImageData(0,0,i,n),canvasEl:r,ctx:o,filterBackend:this};return t.forEach((function(t){t.applyTo(a)})),a.imageData.width===i&&a.imageData.height===n||(r.width=a.imageData.width,r.height=a.imageData.height),o.putImageData(a.imageData,0,0),a}}}(),S.Image=S.Image||{},S.Image.filters=S.Image.filters||{},S.Image.filters.BaseFilter=S.util.createClass({type:"BaseFilter",vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvoid main() {\nvTexCoord = aPosition;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:"precision highp float;\nvarying vec2 vTexCoord;\nuniform sampler2D uTexture;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\n}",initialize:function(t){t&&this.setOptions(t)},setOptions:function(t){for(var e in t)this[e]=t[e]},createProgram:function(t,e,i){e=e||this.fragmentSource,i=i||this.vertexSource,"highp"!==S.webGlPrecision&&(e=e.replace(/precision highp float/g,"precision "+S.webGlPrecision+" float"));var n=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(n,i),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+t.getShaderInfoLog(n));var r=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(r,e),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+t.getShaderInfoLog(r));var o=t.createProgram();if(t.attachShader(o,n),t.attachShader(o,r),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+t.getProgramInfoLog(o));var a=this.getAttributeLocations(t,o),s=this.getUniformLocations(t,o)||{};return s.uStepW=t.getUniformLocation(o,"uStepW"),s.uStepH=t.getUniformLocation(o,"uStepH"),{program:o,attributeLocations:a,uniformLocations:s}},getAttributeLocations:function(t,e){return{aPosition:t.getAttribLocation(e,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(t,e,i){var n=e.aPosition,r=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,r),t.enableVertexAttribArray(n),t.vertexAttribPointer(n,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW)},_setupFrameBuffer:function(t){var e,i,n=t.context;t.passes>1?(e=t.destinationWidth,i=t.destinationHeight,t.sourceWidth===e&&t.sourceHeight===i||(n.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(n,e,i)),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t.targetTexture,0)):(n.bindFramebuffer(n.FRAMEBUFFER,null),n.finish())},_swapTextures:function(t){t.passes--,t.pass++;var e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e},isNeutralState:function(){var t=this.mainParameter,e=S.Image.filters[this.type].prototype;if(t){if(Array.isArray(e[t])){for(var i=e[t].length;i--;)if(this[t][i]!==e[t][i])return!1;return!0}return e[t]===this[t]}return!1},applyTo:function(t){t.webgl?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)},retrieveShader:function(t){return t.programCache.hasOwnProperty(this.type)||(t.programCache[this.type]=this.createProgram(t.context)),t.programCache[this.type]},applyToWebGL:function(t){var 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:function(t,e,i){t.activeTexture(i),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)},unbindAdditionalTexture:function(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(t){this[this.mainParameter]=t},sendUniformData:function(){},createHelpLayer:function(t){if(!t.helpLayer){var e=document.createElement("canvas");e.width=t.sourceWidth,e.height=t.sourceHeight,t.helpLayer=e}},toObject:function(){var t={type:this.type},e=this.mainParameter;return e&&(t[e]=this[e]),t},toJSON:function(){return this.toObject()}}),S.Image.filters.BaseFilter.fromObject=function(t,e){var i=new S.Image.filters[t.type](t);return e&&e(i),i},function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.ColorMatrix=n(i.BaseFilter,{type:"ColorMatrix",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nuniform mat4 uColorMatrix;\nuniform vec4 uConstants;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor *= uColorMatrix;\ncolor += uConstants;\ngl_FragColor = color;\n}",matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(t){this.callSuper("initialize",t),this.matrix=this.matrix.slice(0)},applyTo2d:function(t){var e,i,n,r,o,a=t.imageData.data,s=a.length,l=this.matrix,c=this.colorsOnly;for(o=0;o<s;o+=4)e=a[o],i=a[o+1],n=a[o+2],c?(a[o]=e*l[0]+i*l[1]+n*l[2]+255*l[4],a[o+1]=e*l[5]+i*l[6]+n*l[7]+255*l[9],a[o+2]=e*l[10]+i*l[11]+n*l[12]+255*l[14]):(r=a[o+3],a[o]=e*l[0]+i*l[1]+n*l[2]+r*l[3]+255*l[4],a[o+1]=e*l[5]+i*l[6]+n*l[7]+r*l[8]+255*l[9],a[o+2]=e*l[10]+i*l[11]+n*l[12]+r*l[13]+255*l[14],a[o+3]=e*l[15]+i*l[16]+n*l[17]+r*l[18]+255*l[19])},getUniformLocations:function(t,e){return{uColorMatrix:t.getUniformLocation(e,"uColorMatrix"),uConstants:t.getUniformLocation(e,"uConstants")}},sendUniformData:function(t,e){var i=this.matrix,n=[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,n),t.uniform4fv(e.uConstants,r)}}),e.Image.filters.ColorMatrix.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Brightness=n(i.BaseFilter,{type:"Brightness",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBrightness;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += uBrightness;\ngl_FragColor = color;\n}",brightness:0,mainParameter:"brightness",applyTo2d:function(t){if(0!==this.brightness){var e,i=t.imageData.data,n=i.length,r=Math.round(255*this.brightness);for(e=0;e<n;e+=4)i[e]=i[e]+r,i[e+1]=i[e+1]+r,i[e+2]=i[e+2]+r}},getUniformLocations:function(t,e){return{uBrightness:t.getUniformLocation(e,"uBrightness")}},sendUniformData:function(t,e){t.uniform1f(e.uBrightness,this.brightness)}}),e.Image.filters.Brightness.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,n=e.Image.filters,r=e.util.createClass;n.Convolute=r(n.BaseFilter,{type:"Convolute",opaque:!1,matrix:[0,0,0,0,1,0,0,0,0],fragmentSource:{Convolute_3_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_3_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_5_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_5_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_7_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_7_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_9_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_9_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}"},retrieveShader:function(t){var e=Math.sqrt(this.matrix.length),i=this.type+"_"+e+"_"+(this.opaque?1:0),n=this.fragmentSource[i];return t.programCache.hasOwnProperty(i)||(t.programCache[i]=this.createProgram(t.context,n)),t.programCache[i]},applyTo2d:function(t){var e,i,n,r,o,a,s,l,c,h,u,f,d,v=t.imageData,g=v.data,p=this.matrix,m=Math.round(Math.sqrt(p.length)),y=Math.floor(m/2),b=v.width,w=v.height,x=t.ctx.createImageData(b,w),C=x.data,k=this.opaque?1:0;for(u=0;u<w;u++)for(h=0;h<b;h++){for(o=4*(u*b+h),e=0,i=0,n=0,r=0,d=0;d<m;d++)for(f=0;f<m;f++)a=h+f-y,(s=u+d-y)<0||s>=w||a<0||a>=b||(l=4*(s*b+a),c=p[d*m+f],e+=g[l]*c,i+=g[l+1]*c,n+=g[l+2]*c,k||(r+=g[l+3]*c));C[o]=e,C[o+1]=i,C[o+2]=n,C[o+3]=k?g[o+3]:r}t.imageData=x},getUniformLocations:function(t,e){return{uMatrix:t.getUniformLocation(e,"uMatrix"),uOpaque:t.getUniformLocation(e,"uOpaque"),uHalfSize:t.getUniformLocation(e,"uHalfSize"),uSize:t.getUniformLocation(e,"uSize")}},sendUniformData:function(t,e){t.uniform1fv(e.uMatrix,this.matrix)},toObject:function(){return i(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),e.Image.filters.Convolute.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Grayscale=n(i.BaseFilter,{type:"Grayscale",fragmentSource:{average:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat average = (color.r + color.b + color.g) / 3.0;\ngl_FragColor = vec4(average, average, average, color.a);\n}",lightness:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\ngl_FragColor = vec4(average, average, average, col.a);\n}",luminosity:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\ngl_FragColor = vec4(average, average, average, col.a);\n}"},mode:"average",mainParameter:"mode",applyTo2d:function(t){var e,i,n=t.imageData.data,r=n.length,o=this.mode;for(e=0;e<r;e+=4)"average"===o?i=(n[e]+n[e+1]+n[e+2])/3:"lightness"===o?i=(Math.min(n[e],n[e+1],n[e+2])+Math.max(n[e],n[e+1],n[e+2]))/2:"luminosity"===o&&(i=.21*n[e]+.72*n[e+1]+.07*n[e+2]),n[e]=i,n[e+1]=i,n[e+2]=i},retrieveShader:function(t){var e=this.type+"_"+this.mode;if(!t.programCache.hasOwnProperty(e)){var i=this.fragmentSource[this.mode];t.programCache[e]=this.createProgram(t.context,i)}return t.programCache[e]},getUniformLocations:function(t,e){return{uMode:t.getUniformLocation(e,"uMode")}},sendUniformData:function(t,e){t.uniform1i(e.uMode,1)},isNeutralState:function(){return!1}}),e.Image.filters.Grayscale.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Invert=n(i.BaseFilter,{type:"Invert",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uInvert;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nif (uInvert == 1) {\ngl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\n} else {\ngl_FragColor = color;\n}\n}",invert:!0,mainParameter:"invert",applyTo2d:function(t){var e,i=t.imageData.data,n=i.length;for(e=0;e<n;e+=4)i[e]=255-i[e],i[e+1]=255-i[e+1],i[e+2]=255-i[e+2]},isNeutralState:function(){return!this.invert},getUniformLocations:function(t,e){return{uInvert:t.getUniformLocation(e,"uInvert")}},sendUniformData:function(t,e){t.uniform1i(e.uInvert,this.invert)}}),e.Image.filters.Invert.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,n=e.Image.filters,r=e.util.createClass;n.Noise=r(n.BaseFilter,{type:"Noise",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uStepH;\nuniform float uNoise;\nuniform float uSeed;\nvarying vec2 vTexCoord;\nfloat rand(vec2 co, float seed, float vScale) {\nreturn fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\n}\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\ngl_FragColor = color;\n}",mainParameter:"noise",noise:0,applyTo2d:function(t){if(0!==this.noise){var e,i,n=t.imageData.data,r=n.length,o=this.noise;for(e=0,r=n.length;e<r;e+=4)i=(.5-Math.random())*o,n[e]+=i,n[e+1]+=i,n[e+2]+=i}},getUniformLocations:function(t,e){return{uNoise:t.getUniformLocation(e,"uNoise"),uSeed:t.getUniformLocation(e,"uSeed")}},sendUniformData:function(t,e){t.uniform1f(e.uNoise,this.noise/255),t.uniform1f(e.uSeed,Math.random())},toObject:function(){return i(this.callSuper("toObject"),{noise:this.noise})}}),e.Image.filters.Noise.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Pixelate=n(i.BaseFilter,{type:"Pixelate",blocksize:4,mainParameter:"blocksize",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBlocksize;\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nfloat blockW = uBlocksize * uStepW;\nfloat blockH = uBlocksize * uStepW;\nint posX = int(vTexCoord.x / blockW);\nint posY = int(vTexCoord.y / blockH);\nfloat fposX = float(posX);\nfloat fposY = float(posY);\nvec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\nvec4 color = texture2D(uTexture, squareCoords);\ngl_FragColor = color;\n}",applyTo2d:function(t){var e,i,n,r,o,a,s,l,c,h,u,f=t.imageData,d=f.data,v=f.height,g=f.width;for(i=0;i<v;i+=this.blocksize)for(n=0;n<g;n+=this.blocksize)for(r=d[e=4*i*g+4*n],o=d[e+1],a=d[e+2],s=d[e+3],h=Math.min(i+this.blocksize,v),u=Math.min(n+this.blocksize,g),l=i;l<h;l++)for(c=n;c<u;c++)d[e=4*l*g+4*c]=r,d[e+1]=o,d[e+2]=a,d[e+3]=s},isNeutralState:function(){return 1===this.blocksize},getUniformLocations:function(t,e){return{uBlocksize:t.getUniformLocation(e,"uBlocksize"),uStepW:t.getUniformLocation(e,"uStepW"),uStepH:t.getUniformLocation(e,"uStepH")}},sendUniformData:function(t,e){t.uniform1f(e.uBlocksize,this.blocksize)}}),e.Image.filters.Pixelate.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,n=e.Image.filters,r=e.util.createClass;n.RemoveColor=r(n.BaseFilter,{type:"RemoveColor",color:"#FFFFFF",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uLow;\nuniform vec4 uHigh;\nvarying vec2 vTexCoord;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\nif(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\ngl_FragColor.a = 0.0;\n}\n}",distance:.02,useAlpha:!1,applyTo2d:function(t){var i,n,r,o,a=t.imageData.data,s=255*this.distance,l=new e.Color(this.color).getSource(),c=[l[0]-s,l[1]-s,l[2]-s],h=[l[0]+s,l[1]+s,l[2]+s];for(i=0;i<a.length;i+=4)n=a[i],r=a[i+1],o=a[i+2],n>c[0]&&r>c[1]&&o>c[2]&&n<h[0]&&r<h[1]&&o<h[2]&&(a[i+3]=0)},getUniformLocations:function(t,e){return{uLow:t.getUniformLocation(e,"uLow"),uHigh:t.getUniformLocation(e,"uHigh")}},sendUniformData:function(t,i){var n=new e.Color(this.color).getSource(),r=parseFloat(this.distance),o=[0+n[0]/255-r,0+n[1]/255-r,0+n[2]/255-r,1],a=[n[0]/255+r,n[1]/255+r,n[2]/255+r,1];t.uniform4fv(i.uLow,o),t.uniform4fv(i.uHigh,a)},toObject:function(){return i(this.callSuper("toObject"),{color:this.color,distance:this.distance})}}),e.Image.filters.RemoveColor.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass,r={Brownie:[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0],Vintage:[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0],Kodachrome:[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0],Technicolor:[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0],Polaroid:[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0],Sepia:[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0],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]};for(var o in r)i[o]=n(i.ColorMatrix,{type:o,matrix:r[o],mainParameter:!1,colorsOnly:!0}),e.Image.filters[o].fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric,i=e.Image.filters,n=e.util.createClass;i.BlendColor=n(i.BaseFilter,{type:"BlendColor",color:"#F95C63",mode:"multiply",alpha:1,fragmentSource:{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",diff:"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:"if (uColor.r < 0.5) {\ngl_FragColor.r *= 2.0 * uColor.r;\n} else {\ngl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\n}\nif (uColor.g < 0.5) {\ngl_FragColor.g *= 2.0 * uColor.g;\n} else {\ngl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\n}\nif (uColor.b < 0.5) {\ngl_FragColor.b *= 2.0 * uColor.b;\n} else {\ngl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\n}\n",tint:"gl_FragColor.rgb *= (1.0 - uColor.a);\ngl_FragColor.rgb += uColor.rgb;\n"},buildSource:function(t){return"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ngl_FragColor = color;\nif (color.a > 0.0) {\n"+this.fragmentSource[t]+"}\n}"},retrieveShader:function(t){var e,i=this.type+"_"+this.mode;return t.programCache.hasOwnProperty(i)||(e=this.buildSource(this.mode),t.programCache[i]=this.createProgram(t.context,e)),t.programCache[i]},applyTo2d:function(t){var i,n,r,o,a,s,l,c=t.imageData.data,h=c.length,u=1-this.alpha;i=(l=new e.Color(this.color).getSource())[0]*this.alpha,n=l[1]*this.alpha,r=l[2]*this.alpha;for(var f=0;f<h;f+=4)switch(o=c[f],a=c[f+1],s=c[f+2],this.mode){case"multiply":c[f]=o*i/255,c[f+1]=a*n/255,c[f+2]=s*r/255;break;case"screen":c[f]=255-(255-o)*(255-i)/255,c[f+1]=255-(255-a)*(255-n)/255,c[f+2]=255-(255-s)*(255-r)/255;break;case"add":c[f]=o+i,c[f+1]=a+n,c[f+2]=s+r;break;case"diff":case"difference":c[f]=Math.abs(o-i),c[f+1]=Math.abs(a-n),c[f+2]=Math.abs(s-r);break;case"subtract":c[f]=o-i,c[f+1]=a-n,c[f+2]=s-r;break;case"darken":c[f]=Math.min(o,i),c[f+1]=Math.min(a,n),c[f+2]=Math.min(s,r);break;case"lighten":c[f]=Math.max(o,i),c[f+1]=Math.max(a,n),c[f+2]=Math.max(s,r);break;case"overlay":c[f]=i<128?2*o*i/255:255-2*(255-o)*(255-i)/255,c[f+1]=n<128?2*a*n/255:255-2*(255-a)*(255-n)/255,c[f+2]=r<128?2*s*r/255:255-2*(255-s)*(255-r)/255;break;case"exclusion":c[f]=i+o-2*i*o/255,c[f+1]=n+a-2*n*a/255,c[f+2]=r+s-2*r*s/255;break;case"tint":c[f]=i+o*u,c[f+1]=n+a*u,c[f+2]=r+s*u}},getUniformLocations:function(t,e){return{uColor:t.getUniformLocation(e,"uColor")}},sendUniformData:function(t,i){var n=new e.Color(this.color).getSource();n[0]=this.alpha*n[0]/255,n[1]=this.alpha*n[1]/255,n[2]=this.alpha*n[2]/255,n[3]=this.alpha,t.uniform4fv(i.uColor,n)},toObject:function(){return{type:this.type,color:this.color,mode:this.mode,alpha:this.alpha}}}),e.Image.filters.BlendColor.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric,i=e.Image.filters,n=e.util.createClass;i.BlendImage=n(i.BaseFilter,{type:"BlendImage",image:null,mode:"multiply",alpha:1,vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nuniform mat3 uTransformMatrix;\nvoid main() {\nvTexCoord = aPosition;\nvTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:{multiply:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.rgba *= color2.rgba;\ngl_FragColor = color;\n}",mask:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.a = color2.a;\ngl_FragColor = color;\n}"},retrieveShader:function(t){var e=this.type+"_"+this.mode,i=this.fragmentSource[this.mode];return t.programCache.hasOwnProperty(e)||(t.programCache[e]=this.createProgram(t.context,i)),t.programCache[e]},applyToWebGL:function(t){var e=t.context,i=this.createTexture(t.filterBackend,this.image);this.bindAdditionalTexture(e,i,e.TEXTURE1),this.callSuper("applyToWebGL",t),this.unbindAdditionalTexture(e,e.TEXTURE1)},createTexture:function(t,e){return t.getCachedTexture(e.cacheKey,e._element)},calculateMatrix:function(){var t=this.image,e=t._element.width,i=t._element.height;return[1/t.scaleX,0,0,0,1/t.scaleY,0,-t.left/e,-t.top/i,1]},applyTo2d:function(t){var i,n,r,o,a,s,l,c,h,u,f,d=t.imageData,v=t.filterBackend.resources,g=d.data,p=g.length,m=d.width,y=d.height,b=this.image;v.blendImage||(v.blendImage=e.util.createCanvasElement()),u=(h=v.blendImage).getContext("2d"),h.width!==m||h.height!==y?(h.width=m,h.height=y):u.clearRect(0,0,m,y),u.setTransform(b.scaleX,0,0,b.scaleY,b.left,b.top),u.drawImage(b._element,0,0,m,y),f=u.getImageData(0,0,m,y).data;for(var w=0;w<p;w+=4)switch(a=g[w],s=g[w+1],l=g[w+2],c=g[w+3],i=f[w],n=f[w+1],r=f[w+2],o=f[w+3],this.mode){case"multiply":g[w]=a*i/255,g[w+1]=s*n/255,g[w+2]=l*r/255,g[w+3]=c*o/255;break;case"mask":g[w+3]=o}},getUniformLocations:function(t,e){return{uTransformMatrix:t.getUniformLocation(e,"uTransformMatrix"),uImage:t.getUniformLocation(e,"uImage")}},sendUniformData:function(t,e){var i=this.calculateMatrix();t.uniform1i(e.uImage,1),t.uniformMatrix3fv(e.uTransformMatrix,!1,i)},toObject:function(){return{type:this.type,image:this.image&&this.image.toObject(),mode:this.mode,alpha:this.alpha}}}),e.Image.filters.BlendImage.fromObject=function(t,i){e.Image.fromObject(t.image,(function(n){var r=e.util.object.clone(t);r.image=n,i(new e.Image.filters.BlendImage(r))}))}}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=Math.pow,n=Math.floor,r=Math.sqrt,o=Math.abs,a=Math.round,s=Math.sin,l=Math.ceil,c=e.Image.filters,h=e.util.createClass;c.Resize=h(c.BaseFilter,{type:"Resize",resizeType:"hermite",scaleX:1,scaleY:1,lanczosLobes:3,getUniformLocations:function(t,e){return{uDelta:t.getUniformLocation(e,"uDelta"),uTaps:t.getUniformLocation(e,"uTaps")}},sendUniformData:function(t,e){t.uniform2fv(e.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),t.uniform1fv(e.uTaps,this.taps)},retrieveShader:function(t){var e=this.getFilterWindow(),i=this.type+"_"+e;if(!t.programCache.hasOwnProperty(i)){var n=this.generateShader(e);t.programCache[i]=this.createProgram(t.context,n)}return t.programCache[i]},getFilterWindow:function(){var t=this.tempScale;return Math.ceil(this.lanczosLobes/t)},getTaps:function(){for(var t=this.lanczosCreate(this.lanczosLobes),e=this.tempScale,i=this.getFilterWindow(),n=new Array(i),r=1;r<=i;r++)n[r-1]=t(r*e);return n},generateShader:function(t){for(var e=new Array(t),i=this.fragmentSourceTOP,n=1;n<=t;n++)e[n-1]=n+".0 * uDelta";return i+="uniform float uTaps["+t+"];\n",i+="void main() {\n",i+=" vec4 color = texture2D(uTexture, vTexCoord);\n",i+=" float sum = 1.0;\n",e.forEach((function(t,e){i+=" color += texture2D(uTexture, vTexCoord + "+t+") * uTaps["+e+"];\n",i+=" color += texture2D(uTexture, vTexCoord - "+t+") * uTaps["+e+"];\n",i+=" sum += 2.0 * uTaps["+e+"];\n"})),i+=" gl_FragColor = color / sum;\n",i+="}"},fragmentSourceTOP:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\n",applyTo:function(t){t.webgl?(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,this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(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,this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t),t.sourceHeight=t.destinationHeight):this.applyTo2d(t)},isNeutralState:function(){return 1===this.scaleX&&1===this.scaleY},lanczosCreate:function(t){return function(e){if(e>=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;var i=(e*=Math.PI)/t;return s(e)/e*s(i)/i}},applyTo2d:function(t){var e=t.imageData,i=this.scaleX,n=this.scaleY;this.rcpScaleX=1/i,this.rcpScaleY=1/n;var r,o=e.width,s=e.height,l=a(o*i),c=a(s*n);"sliceHack"===this.resizeType?r=this.sliceByTwo(t,o,s,l,c):"hermite"===this.resizeType?r=this.hermiteFastResize(t,o,s,l,c):"bilinear"===this.resizeType?r=this.bilinearFiltering(t,o,s,l,c):"lanczos"===this.resizeType&&(r=this.lanczosResize(t,o,s,l,c)),t.imageData=r},sliceByTwo:function(t,i,r,o,a){var s,l,c=t.imageData,h=!1,u=!1,f=.5*i,d=.5*r,v=e.filterBackend.resources,g=0,p=0,m=i,y=0;for(v.sliceByTwo||(v.sliceByTwo=document.createElement("canvas")),((s=v.sliceByTwo).width<1.5*i||s.height<r)&&(s.width=1.5*i,s.height=r),(l=s.getContext("2d")).clearRect(0,0,1.5*i,r),l.putImageData(c,0,0),o=n(o),a=n(a);!h||!u;)i=f,r=d,o<n(.5*f)?f=n(.5*f):(f=o,h=!0),a<n(.5*d)?d=n(.5*d):(d=a,u=!0),l.drawImage(s,g,p,i,r,m,y,f,d),g=m,p=y,y+=d;return l.getImageData(g,p,o,a)},lanczosResize:function(t,e,a,s,c){var h=t.imageData.data,u=t.ctx.createImageData(s,c),f=u.data,d=this.lanczosCreate(this.lanczosLobes),v=this.rcpScaleX,g=this.rcpScaleY,p=2/this.rcpScaleX,m=2/this.rcpScaleY,y=l(v*this.lanczosLobes/2),b=l(g*this.lanczosLobes/2),w={},x={},C={};return function t(l){var k,_,S,T,O,E,R,A,I,P,D;for(x.x=(l+.5)*v,C.x=n(x.x),k=0;k<c;k++){for(x.y=(k+.5)*g,C.y=n(x.y),O=0,E=0,R=0,A=0,I=0,_=C.x-y;_<=C.x+y;_++)if(!(_<0||_>=e)){P=n(1e3*o(_-x.x)),w[P]||(w[P]={});for(var F=C.y-b;F<=C.y+b;F++)F<0||F>=a||(D=n(1e3*o(F-x.y)),w[P][D]||(w[P][D]=d(r(i(P*p,2)+i(D*m,2))/1e3)),(S=w[P][D])>0&&(O+=S,E+=S*h[T=4*(F*e+_)],R+=S*h[T+1],A+=S*h[T+2],I+=S*h[T+3]))}f[T=4*(k*s+l)]=E/O,f[T+1]=R/O,f[T+2]=A/O,f[T+3]=I/O}return++l<s?t(l):u}(0)},bilinearFiltering:function(t,e,i,r,o){var a,s,l,c,h,u,f,d,v,g=0,p=this.rcpScaleX,m=this.rcpScaleY,y=4*(e-1),b=t.imageData.data,w=t.ctx.createImageData(r,o),x=w.data;for(l=0;l<o;l++)for(c=0;c<r;c++)for(h=p*c-(a=n(p*c)),u=m*l-(s=n(m*l)),v=4*(s*e+a),f=0;f<4;f++)d=b[v+f]*(1-h)*(1-u)+b[v+4+f]*h*(1-u)+b[v+y+f]*u*(1-h)+b[v+y+4+f]*h*u,x[g++]=d;return w},hermiteFastResize:function(t,e,i,a,s){for(var c=this.rcpScaleX,h=this.rcpScaleY,u=l(c/2),f=l(h/2),d=t.imageData.data,v=t.ctx.createImageData(a,s),g=v.data,p=0;p<s;p++)for(var m=0;m<a;m++){for(var y=4*(m+p*a),b=0,w=0,x=0,C=0,k=0,_=0,S=0,T=(p+.5)*h,O=n(p*h);O<(p+1)*h;O++)for(var E=o(T-(O+.5))/f,R=(m+.5)*c,A=E*E,I=n(m*c);I<(m+1)*c;I++){var P=o(R-(I+.5))/u,D=r(A+P*P);D>1&&D<-1||(b=2*D*D*D-3*D*D+1)>0&&(S+=b*d[(P=4*(I+O*e))+3],x+=b,d[P+3]<255&&(b=b*d[P+3]/250),C+=b*d[P],k+=b*d[P+1],_+=b*d[P+2],w+=b)}g[y]=C/w,g[y+1]=k/w,g[y+2]=_/w,g[y+3]=S/x}return v},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),e.Image.filters.Resize.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Contrast=n(i.BaseFilter,{type:"Contrast",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uContrast;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\ncolor.rgb = contrastF * (color.rgb - 0.5) + 0.5;\ngl_FragColor = color;\n}",contrast:0,mainParameter:"contrast",applyTo2d:function(t){if(0!==this.contrast){var e,i=t.imageData.data,n=i.length,r=Math.floor(255*this.contrast),o=259*(r+255)/(255*(259-r));for(e=0;e<n;e+=4)i[e]=o*(i[e]-128)+128,i[e+1]=o*(i[e+1]-128)+128,i[e+2]=o*(i[e+2]-128)+128}},getUniformLocations:function(t,e){return{uContrast:t.getUniformLocation(e,"uContrast")}},sendUniformData:function(t,e){t.uniform1f(e.uContrast,this.contrast)}}),e.Image.filters.Contrast.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Saturation=n(i.BaseFilter,{type:"Saturation",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uSaturation;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat rgMax = max(color.r, color.g);\nfloat rgbMax = max(rgMax, color.b);\ncolor.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\ncolor.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\ncolor.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\ngl_FragColor = color;\n}",saturation:0,mainParameter:"saturation",applyTo2d:function(t){if(0!==this.saturation){var e,i,n=t.imageData.data,r=n.length,o=-this.saturation;for(e=0;e<r;e+=4)i=Math.max(n[e],n[e+1],n[e+2]),n[e]+=i!==n[e]?(i-n[e])*o:0,n[e+1]+=i!==n[e+1]?(i-n[e+1])*o:0,n[e+2]+=i!==n[e+2]?(i-n[e+2])*o:0}},getUniformLocations:function(t,e){return{uSaturation:t.getUniformLocation(e,"uSaturation")}},sendUniformData:function(t,e){t.uniform1f(e.uSaturation,-this.saturation)}}),e.Image.filters.Saturation.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Vibrance=n(i.BaseFilter,{type:"Vibrance",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uVibrance;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat max = max(color.r, max(color.g, color.b));\nfloat avg = (color.r + color.g + color.b) / 3.0;\nfloat amt = (abs(max - avg) * 2.0) * uVibrance;\ncolor.r += max != color.r ? (max - color.r) * amt : 0.00;\ncolor.g += max != color.g ? (max - color.g) * amt : 0.00;\ncolor.b += max != color.b ? (max - color.b) * amt : 0.00;\ngl_FragColor = color;\n}",vibrance:0,mainParameter:"vibrance",applyTo2d:function(t){if(0!==this.vibrance){var e,i,n,r,o=t.imageData.data,a=o.length,s=-this.vibrance;for(e=0;e<a;e+=4)i=Math.max(o[e],o[e+1],o[e+2]),n=(o[e]+o[e+1]+o[e+2])/3,r=2*Math.abs(i-n)/255*s,o[e]+=i!==o[e]?(i-o[e])*r:0,o[e+1]+=i!==o[e+1]?(i-o[e+1])*r:0,o[e+2]+=i!==o[e+2]?(i-o[e+2])*r:0}},getUniformLocations:function(t,e){return{uVibrance:t.getUniformLocation(e,"uVibrance")}},sendUniformData:function(t,e){t.uniform1f(e.uVibrance,-this.vibrance)}}),e.Image.filters.Vibrance.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Blur=n(i.BaseFilter,{type:"Blur",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\nconst float nSamples = 15.0;\nvec3 v3offset = vec3(12.9898, 78.233, 151.7182);\nfloat random(vec3 scale) {\nreturn fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\n}\nvoid main() {\nvec4 color = vec4(0.0);\nfloat total = 0.0;\nfloat offset = random(v3offset);\nfor (float t = -nSamples; t <= nSamples; t++) {\nfloat percent = (t + offset - 0.5) / nSamples;\nfloat weight = 1.0 - abs(percent);\ncolor += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\ntotal += weight;\n}\ngl_FragColor = color / total;\n}",blur:0,mainParameter:"blur",applyTo:function(t){t.webgl?(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:function(t){t.imageData=this.simpleBlur(t)},simpleBlur:function(t){var i,n,r=t.filterBackend.resources,o=t.imageData.width,a=t.imageData.height;r.blurLayer1||(r.blurLayer1=e.util.createCanvasElement(),r.blurLayer2=e.util.createCanvasElement()),i=r.blurLayer1,n=r.blurLayer2,i.width===o&&i.height===a||(n.width=i.width=o,n.height=i.height=a);var s,l,c,h,u=i.getContext("2d"),f=n.getContext("2d"),d=.06*this.blur*.5;for(u.putImageData(t.imageData,0,0),f.clearRect(0,0,o,a),h=-15;h<=15;h++)c=d*(l=h/15)*o+(s=(Math.random()-.5)/4),f.globalAlpha=1-Math.abs(l),f.drawImage(i,c,s),u.drawImage(n,0,0),f.globalAlpha=1,f.clearRect(0,0,n.width,n.height);for(h=-15;h<=15;h++)c=d*(l=h/15)*a+(s=(Math.random()-.5)/4),f.globalAlpha=1-Math.abs(l),f.drawImage(i,s,c),u.drawImage(n,0,0),f.globalAlpha=1,f.clearRect(0,0,n.width,n.height);t.ctx.drawImage(i,0,0);var v=t.ctx.getImageData(0,0,i.width,i.height);return u.globalAlpha=1,u.clearRect(0,0,i.width,i.height),v},getUniformLocations:function(t,e){return{delta:t.getUniformLocation(e,"uDelta")}},sendUniformData:function(t,e){var i=this.chooseRightDelta();t.uniform2fv(e.delta,i)},chooseRightDelta:function(){var t,e=1,i=[0,0];return this.horizontal?this.aspectRatio>1&&(e=1/this.aspectRatio):this.aspectRatio<1&&(e=this.aspectRatio),t=e*this.blur*.12,this.horizontal?i[0]=t:i[1]=t,i}}),i.Blur.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Gamma=n(i.BaseFilter,{type:"Gamma",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec3 uGamma;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec3 correction = (1.0 / uGamma);\ncolor.r = pow(color.r, correction.r);\ncolor.g = pow(color.g, correction.g);\ncolor.b = pow(color.b, correction.b);\ngl_FragColor = color;\ngl_FragColor.rgb *= color.a;\n}",gamma:[1,1,1],mainParameter:"gamma",initialize:function(t){this.gamma=[1,1,1],i.BaseFilter.prototype.initialize.call(this,t)},applyTo2d:function(t){var e,i=t.imageData.data,n=this.gamma,r=i.length,o=1/n[0],a=1/n[1],s=1/n[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),e=0,r=256;e<r;e++)this.rVals[e]=255*Math.pow(e/255,o),this.gVals[e]=255*Math.pow(e/255,a),this.bVals[e]=255*Math.pow(e/255,s);for(e=0,r=i.length;e<r;e+=4)i[e]=this.rVals[i[e]],i[e+1]=this.gVals[i[e+1]],i[e+2]=this.bVals[i[e+2]]},getUniformLocations:function(t,e){return{uGamma:t.getUniformLocation(e,"uGamma")}},sendUniformData:function(t,e){t.uniform3fv(e.uGamma,this.gamma)}}),e.Image.filters.Gamma.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.Composed=n(i.BaseFilter,{type:"Composed",subFilters:[],initialize:function(t){this.callSuper("initialize",t),this.subFilters=this.subFilters.slice(0)},applyTo:function(t){t.passes+=this.subFilters.length-1,this.subFilters.forEach((function(e){e.applyTo(t)}))},toObject:function(){return e.util.object.extend(this.callSuper("toObject"),{subFilters:this.subFilters.map((function(t){return t.toObject()}))})},isNeutralState:function(){return!this.subFilters.some((function(t){return!t.isNeutralState()}))}}),e.Image.filters.Composed.fromObject=function(t,i){var n=(t.subFilters||[]).map((function(t){return new e.Image.filters[t.type](t)})),r=new e.Image.filters.Composed({subFilters:n});return i&&i(r),r}}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,n=e.util.createClass;i.HueRotation=n(i.ColorMatrix,{type:"HueRotation",rotation:0,mainParameter:"rotation",calculateMatrix:function(){var t=this.rotation*Math.PI,i=e.util.cos(t),n=e.util.sin(t),r=Math.sqrt(1/3)*n,o=1-i;this.matrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],this.matrix[0]=i+o/3,this.matrix[1]=1/3*o-r,this.matrix[2]=1/3*o+r,this.matrix[5]=1/3*o+r,this.matrix[6]=i+1/3*o,this.matrix[7]=1/3*o-r,this.matrix[10]=1/3*o-r,this.matrix[11]=1/3*o+r,this.matrix[12]=i+1/3*o},isNeutralState:function(t){return this.calculateMatrix(),i.BaseFilter.prototype.isNeutralState.call(this,t)},applyTo:function(t){this.calculateMatrix(),i.BaseFilter.prototype.applyTo.call(this,t)}}),e.Image.filters.HueRotation.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.clone;if(e.Text)e.warn("fabric.Text is already defined");else{var n="fontFamily fontWeight fontSize text underline overline linethrough textAlign fontStyle lineHeight textBackgroundColor charSpacing styles direction path pathStartOffset pathSide".split(" ");e.Text=e.util.createClass(e.Object,{_dimensionAffectingProps:["fontSize","fontWeight","fontFamily","fontStyle","lineHeight","text","charSpacing","textAlign","styles","path","pathStartOffset","pathSide"],_reNewline:/\r?\n/,_reSpacesAndTabs:/[ \t\r]/g,_reSpaceAndTab:/[ \t\r]/,_reWords:/\S+/g,type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",underline:!1,overline:!1,linethrough:!1,textAlign:"left",fontStyle:"normal",lineHeight:1.16,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},textBackgroundColor:"",stateProperties:e.Object.prototype.stateProperties.concat(n),cacheProperties:e.Object.prototype.cacheProperties.concat(n),stroke:null,shadow:null,path:null,pathStartOffset:0,pathSide:"left",_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.315,overline:-.88},_fontSizeMult:1.13,charSpacing:0,styles:null,_measuringContext:null,deltaY:0,direction:"ltr",_styleProperties:["stroke","strokeWidth","fill","fontFamily","fontSize","fontWeight","fontStyle","underline","overline","linethrough","deltaY","textBackgroundColor"],__charBounds:[],CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,initialize:function(t,e){this.styles=e&&e.styles||{},this.text=t,this.__skipDimension=!0,this.callSuper("initialize",e),this.path&&this.setPathInfo(),this.__skipDimension=!1,this.initDimensions(),this.setCoords(),this.setupState({propertySet:"_dimensionAffectingProps"})},setPathInfo:function(){var t=this.path;t&&(t.segmentsInfo=e.util.getPathSegmentsInfo(t.path))},getMeasuringContext:function(){return e._measuringContext||(e._measuringContext=this.canvas&&this.canvas.contextCache||e.util.createCanvasElement().getContext("2d")),e._measuringContext},_splitText:function(){var t=this._splitTextIntoLines(this.text);return this.textLines=t.lines,this._textLines=t.graphemeLines,this._unwrappedTextLines=t._unwrappedLines,this._text=t.graphemeText,t},initDimensions:function(){this.__skipDimension||(this._splitText(),this._clearCache(),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()),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.saveState({propertySet:"_dimensionAffectingProps"}))},enlargeSpaces:function(){for(var t,e,i,n,r,o,a,s=0,l=this._textLines.length;s<l;s++)if(("justify"===this.textAlign||s!==l-1&&!this.isEndOfWrapping(s))&&(n=0,r=this._textLines[s],(e=this.getLineWidth(s))<this.width&&(a=this.textLines[s].match(this._reSpacesAndTabs)))){i=a.length,t=(this.width-e)/i;for(var c=0,h=r.length;c<=h;c++)o=this.__charBounds[s][c],this._reSpaceAndTab.test(r[c])?(o.width+=t,o.kernedWidth+=t,o.left+=n,n+=t):o.left+=n}},isEndOfWrapping:function(t){return t===this._textLines.length-1},missingNewlineOffset:function(){return 1},toString:function(){return"#<fabric.Text ("+this.complexity()+'): { "text": "'+this.text+'", "fontFamily": "'+this.fontFamily+'" }>'},_getCacheCanvasDimensions:function(){var t=this.callSuper("_getCacheCanvasDimensions"),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t},_render:function(t){var 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:function(t){"stroke"===this.paintFirst?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))},_setTextStyles:function(t,e,i){t.textBaseline="alphabetic",t.font=this._getFontDeclaration(e,i)},calcTextWidth:function(){for(var t=this.getLineWidth(0),e=1,i=this._textLines.length;e<i;e++){var n=this.getLineWidth(e);n>t&&(t=n)}return t},_renderTextLine:function(t,e,i,n,r,o){this._renderChars(t,e,i,n,r,o)},_renderTextLinesBackground:function(t){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var e,i,n,r,o,a,s,l=t.fillStyle,c=this._getLeftOffset(),h=this._getTopOffset(),u=0,f=0,d=this.path,v=0,g=this._textLines.length;v<g;v++)if(e=this.getHeightOfLine(v),this.textBackgroundColor||this.styleHas("textBackgroundColor",v)){n=this._textLines[v],i=this._getLineLeftOffset(v),f=0,u=0,r=this.getValueOfPropertyAt(v,0,"textBackgroundColor");for(var p=0,m=n.length;p<m;p++)o=this.__charBounds[v][p],a=this.getValueOfPropertyAt(v,p,"textBackgroundColor"),d?(t.save(),t.translate(o.renderLeft,o.renderTop),t.rotate(o.angle),t.fillStyle=a,a&&t.fillRect(-o.width/2,-e/this.lineHeight*(1-this._fontSizeFraction),o.width,e/this.lineHeight),t.restore()):a!==r?(s=c+i+u,"rtl"===this.direction&&(s=this.width-s-f),t.fillStyle=r,r&&t.fillRect(s,h,f,e/this.lineHeight),u=o.left,f=o.width,r=a):f+=o.kernedWidth;a&&!d&&(s=c+i+u,"rtl"===this.direction&&(s=this.width-s-f),t.fillStyle=a,t.fillRect(s,h,f,e/this.lineHeight)),h+=e}else h+=e;t.fillStyle=l,this._removeShadow(t)}},getFontCache:function(t){var i=t.fontFamily.toLowerCase();e.charWidthsCache[i]||(e.charWidthsCache[i]={});var n=e.charWidthsCache[i],r=t.fontStyle.toLowerCase()+"_"+(t.fontWeight+"").toLowerCase();return n[r]||(n[r]={}),n[r]},_measureChar:function(t,e,i,n){var r,o,a,s,l=this.getFontCache(e),c=i+t,h=this._getFontDeclaration(e)===this._getFontDeclaration(n),u=e.fontSize/this.CACHE_FONT_SIZE;if(i&&void 0!==l[i]&&(a=l[i]),void 0!==l[t]&&(s=r=l[t]),h&&void 0!==l[c]&&(s=(o=l[c])-a),void 0===r||void 0===a||void 0===o){var f=this.getMeasuringContext();this._setTextStyles(f,e,!0)}return void 0===r&&(s=r=f.measureText(t).width,l[t]=r),void 0===a&&h&&i&&(a=f.measureText(i).width,l[i]=a),h&&void 0===o&&(o=f.measureText(c).width,l[c]=o,s=o-a),{width:r*u,kernedWidth:s*u}},getHeightOfChar:function(t,e){return this.getValueOfPropertyAt(t,e,"fontSize")},measureLine:function(t){var e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e},_measureLine:function(t){var i,n,r,o,a,s,l=0,c=this._textLines[t],h=new Array(c.length),u=0,f=this.path,d="right"===this.pathSide;for(this.__charBounds[t]=h,i=0;i<c.length;i++)n=c[i],o=this._getGraphemeBox(n,t,i,r),h[i]=o,l+=o.kernedWidth,r=n;if(h[i]={left:o?o.left+o.width:0,width:0,kernedWidth:0,height:this.fontSize},f){switch(s=f.segmentsInfo[f.segmentsInfo.length-1].length,(a=e.util.getPointOnPath(f.path,0,f.segmentsInfo)).x+=f.pathOffset.x,a.y+=f.pathOffset.y,this.textAlign){case"left":u=d?s-l:0;break;case"center":u=(s-l)/2;break;case"right":u=d?0:s-l}for(u+=this.pathStartOffset*(d?-1:1),i=d?c.length-1:0;d?i>=0:i<c.length;d?i--:i++)o=h[i],u>s?u%=s:u<0&&(u+=s),this._setGraphemeOnPath(u,o,a),u+=o.kernedWidth}return{width:l,numOfSpaces:0}},_setGraphemeOnPath:function(t,i,n){var r=t+i.kernedWidth/2,o=this.path,a=e.util.getPointOnPath(o.path,r,o.segmentsInfo);i.renderLeft=a.x-n.x,i.renderTop=a.y-n.y,i.angle=a.angle+("right"===this.pathSide?Math.PI:0)},_getGraphemeBox:function(t,e,i,n,r){var o,a=this.getCompleteStyleDeclaration(e,i),s=n?this.getCompleteStyleDeclaration(e,i-1):{},l=this._measureChar(t,a,n,s),c=l.kernedWidth,h=l.width;0!==this.charSpacing&&(h+=o=this._getWidthOfCharSpacing(),c+=o);var u={width:h,left:0,height:a.fontSize,kernedWidth:c,deltaY:a.deltaY};if(i>0&&!r){var f=this.__charBounds[e][i-1];u.left=f.left+f.width+l.kernedWidth-l.width}return u},getHeightOfLine:function(t){if(this.__lineHeights[t])return this.__lineHeights[t];for(var e=this._textLines[t],i=this.getHeightOfChar(t,0),n=1,r=e.length;n<r;n++)i=Math.max(this.getHeightOfChar(t,n),i);return this.__lineHeights[t]=i*this.lineHeight*this._fontSizeMult},calcTextHeight:function(){for(var t,e=0,i=0,n=this._textLines.length;i<n;i++)t=this.getHeightOfLine(i),e+=i===n-1?t/this.lineHeight:t;return e},_getLeftOffset:function(){return"ltr"===this.direction?-this.width/2:this.width/2},_getTopOffset:function(){return-this.height/2},_renderTextCommon:function(t,e){t.save();for(var i=0,n=this._getLeftOffset(),r=this._getTopOffset(),o=0,a=this._textLines.length;o<a;o++){var s=this.getHeightOfLine(o),l=s/this.lineHeight,c=this._getLineLeftOffset(o);this._renderTextLine(e,t,this._textLines[o],n+c,r+i+l,o),i+=s}t.restore()},_renderTextFill:function(t){(this.fill||this.styleHas("fill"))&&this._renderTextCommon(t,"fillText")},_renderTextStroke:function(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:function(t,e,i,n,r,o){var a,s,l,c,h,u=this.getHeightOfLine(o),f=-1!==this.textAlign.indexOf("justify"),d="",v=0,g=this.path,p=!f&&0===this.charSpacing&&this.isEmptyStyles(o)&&!g,m="ltr"===this.direction,y="ltr"===this.direction?1:-1;if(e.save(),r-=u*this._fontSizeFraction/this.lineHeight,p)return e.canvas.setAttribute("dir",m?"ltr":"rtl"),e.direction=m?"ltr":"rtl",e.textAlign=m?"left":"right",this._renderChar(t,e,o,0,i.join(""),n,r,u),void e.restore();for(var b=0,w=i.length-1;b<=w;b++)c=b===w||this.charSpacing||g,d+=i[b],l=this.__charBounds[o][b],0===v?(n+=y*(l.kernedWidth-l.width),v+=l.width):v+=l.kernedWidth,f&&!c&&this._reSpaceAndTab.test(i[b])&&(c=!0),c||(a=a||this.getCompleteStyleDeclaration(o,b),s=this.getCompleteStyleDeclaration(o,b+1),c=this._hasStyleChanged(a,s)),c&&(g?(e.save(),e.translate(l.renderLeft,l.renderTop),e.rotate(l.angle),this._renderChar(t,e,o,b,d,-v/2,0,u),e.restore()):(h=n,e.canvas.setAttribute("dir",m?"ltr":"rtl"),e.direction=m?"ltr":"rtl",e.textAlign=m?"left":"right",this._renderChar(t,e,o,b,d,h,r,u)),d="",a=s,n+=y*v,v=0);e.restore()},_applyPatternGradientTransformText:function(t){var i,n=e.util.createCanvasElement(),r=this.width+this.strokeWidth,o=this.height+this.strokeWidth;return n.width=r,n.height=o,(i=n.getContext("2d")).beginPath(),i.moveTo(0,0),i.lineTo(r,0),i.lineTo(r,o),i.lineTo(0,o),i.closePath(),i.translate(r/2,o/2),i.fillStyle=t.toLive(i),this._applyPatternGradientTransform(i,t),i.fill(),i.createPattern(n,"no-repeat")},handleFiller:function(t,e,i){var n,r;return i.toLive?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?(n=-this.width/2,r=-this.height/2,t.translate(n,r),t[e]=this._applyPatternGradientTransformText(i),{offsetX:n,offsetY:r}):(t[e]=i.toLive(t,this),this._applyPatternGradientTransform(t,i)):(t[e]=i,{offsetX:0,offsetY:0})},_setStrokeStyles:function(t,e){return t.lineWidth=e.strokeWidth,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,"strokeStyle",e.stroke)},_setFillStyles:function(t,e){return this.handleFiller(t,"fillStyle",e.fill)},_renderChar:function(t,e,i,n,r,o,a){var s,l,c=this._getStyleDeclaration(i,n),h=this.getCompleteStyleDeclaration(i,n),u="fillText"===t&&h.fill,f="strokeText"===t&&h.stroke&&h.strokeWidth;(f||u)&&(e.save(),u&&(s=this._setFillStyles(e,h)),f&&(l=this._setStrokeStyles(e,h)),e.font=this._getFontDeclaration(h),c&&c.textBackgroundColor&&this._removeShadow(e),c&&c.deltaY&&(a+=c.deltaY),u&&e.fillText(r,o-s.offsetX,a-s.offsetY),f&&e.strokeText(r,o-l.offsetX,a-l.offsetY),e.restore())},setSuperscript:function(t,e){return this._setScript(t,e,this.superscript)},setSubscript:function(t,e){return this._setScript(t,e,this.subscript)},_setScript:function(t,e,i){var n=this.get2DCursorLocation(t,!0),r=this.getValueOfPropertyAt(n.lineIndex,n.charIndex,"fontSize"),o=this.getValueOfPropertyAt(n.lineIndex,n.charIndex,"deltaY"),a={fontSize:r*i.size,deltaY:o+r*i.baseline};return this.setSelectionStyles(a,t,e),this},_hasStyleChanged:function(t,e){return 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.deltaY!==e.deltaY},_hasStyleChangedForSvg:function(t,e){return this._hasStyleChanged(t,e)||t.overline!==e.overline||t.underline!==e.underline||t.linethrough!==e.linethrough},_getLineLeftOffset:function(t){var e=this.getLineWidth(t),i=this.width-e,n=this.textAlign,r=this.direction,o=0,a=this.isEndOfWrapping(t);return"justify"===n||"justify-center"===n&&!a||"justify-right"===n&&!a||"justify-left"===n&&!a?0:("center"===n&&(o=i/2),"right"===n&&(o=i),"justify-center"===n&&(o=i/2),"justify-right"===n&&(o=i),"rtl"===r&&(o-=i),o)},_clearCache:function(){this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]},_shouldClearDimensionCache:function(){var t=this._forceClearCache;return t||(t=this.hasStateChanged("_dimensionAffectingProps")),t&&(this.dirty=!0,this._forceClearCache=!1),t},getLineWidth:function(t){return this.__lineWidths[t]?this.__lineWidths[t]:(e=""===this._textLines[t]?0:this.measureLine(t).width,this.__lineWidths[t]=e,e);var e},_getWidthOfCharSpacing:function(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0},getValueOfPropertyAt:function(t,e,i){var n=this._getStyleDeclaration(t,e);return n&&void 0!==n[i]?n[i]:this[i]},_renderTextDecoration:function(t,e){if(this[e]||this.styleHas(e)){for(var i,n,r,o,a,s,l,c,h,u,f,d,v,g,p,m,y=this._getLeftOffset(),b=this._getTopOffset(),w=this.path,x=this._getWidthOfCharSpacing(),C=this.offsets[e],k=0,_=this._textLines.length;k<_;k++)if(i=this.getHeightOfLine(k),this[e]||this.styleHas(e,k)){l=this._textLines[k],g=i/this.lineHeight,o=this._getLineLeftOffset(k),u=0,f=0,c=this.getValueOfPropertyAt(k,0,e),m=this.getValueOfPropertyAt(k,0,"fill"),h=b+g*(1-this._fontSizeFraction),n=this.getHeightOfChar(k,0),a=this.getValueOfPropertyAt(k,0,"deltaY");for(var S=0,T=l.length;S<T;S++)if(d=this.__charBounds[k][S],v=this.getValueOfPropertyAt(k,S,e),p=this.getValueOfPropertyAt(k,S,"fill"),r=this.getHeightOfChar(k,S),s=this.getValueOfPropertyAt(k,S,"deltaY"),w&&v&&p)t.save(),t.fillStyle=m,t.translate(d.renderLeft,d.renderTop),t.rotate(d.angle),t.fillRect(-d.kernedWidth/2,C*r+s,d.kernedWidth,this.fontSize/15),t.restore();else if((v!==c||p!==m||r!==n||s!==a)&&f>0){var O=y+o+u;"rtl"===this.direction&&(O=this.width-O-f),c&&m&&(t.fillStyle=m,t.fillRect(O,h+C*n+a,f,this.fontSize/15)),u=d.left,f=d.width,c=v,m=p,n=r,a=s}else f+=d.kernedWidth;O=y+o+u;"rtl"===this.direction&&(O=this.width-O-f),t.fillStyle=p,v&&p&&t.fillRect(O,h+C*n+a,f-x,this.fontSize/15),b+=i}else b+=i;this._removeShadow(t)}},_getFontDeclaration:function(t,i){var n=t||this,r=this.fontFamily,o=e.Text.genericFonts.indexOf(r.toLowerCase())>-1,a=void 0===r||r.indexOf("'")>-1||r.indexOf(",")>-1||r.indexOf('"')>-1||o?n.fontFamily:'"'+n.fontFamily+'"';return[e.isLikelyNode?n.fontWeight:n.fontStyle,e.isLikelyNode?n.fontStyle:n.fontWeight,i?this.CACHE_FONT_SIZE+"px":n.fontSize+"px",a].join(" ")},render:function(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",t)))},_splitTextIntoLines:function(t){for(var i=t.split(this._reNewline),n=new Array(i.length),r=["\n"],o=[],a=0;a<i.length;a++)n[a]=e.util.string.graphemeSplit(i[a]),o=o.concat(n[a],r);return o.pop(),{_unwrappedLines:n,lines:i,graphemeText:o,graphemeLines:n}},toObject:function(t){var e=n.concat(t),r=this.callSuper("toObject",e);return r.styles=i(this.styles,!0),r.path&&(r.path=this.path.toObject()),r},set:function(t,e){this.callSuper("set",t,e);var i=!1,n=!1;if("object"==typeof t)for(var r in t)"path"===r&&this.setPathInfo(),i=i||-1!==this._dimensionAffectingProps.indexOf(r),n=n||"path"===r;else i=-1!==this._dimensionAffectingProps.indexOf(t),n="path"===t;return n&&this.setPathInfo(),i&&(this.initDimensions(),this.setCoords()),this},complexity:function(){return 1}}),e.Text.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor".split(" ")),e.Text.DEFAULT_SVG_FONT_SIZE=16,e.Text.fromElement=function(t,n,r){if(!t)return n(null);var o=e.parseAttributes(t,e.Text.ATTRIBUTE_NAMES),a=o.textAnchor||"left";if((r=e.util.object.extend(r?i(r):{},o)).top=r.top||0,r.left=r.left||0,o.textDecoration){var s=o.textDecoration;-1!==s.indexOf("underline")&&(r.underline=!0),-1!==s.indexOf("overline")&&(r.overline=!0),-1!==s.indexOf("line-through")&&(r.linethrough=!0),delete r.textDecoration}"dx"in o&&(r.left+=o.dx),"dy"in o&&(r.top+=o.dy),"fontSize"in r||(r.fontSize=e.Text.DEFAULT_SVG_FONT_SIZE);var l="";"textContent"in t?l=t.textContent:"firstChild"in t&&null!==t.firstChild&&"data"in t.firstChild&&null!==t.firstChild.data&&(l=t.firstChild.data),l=l.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," ");var c=r.strokeWidth;r.strokeWidth=0;var h=new e.Text(l,r),u=h.getScaledHeight()/h.height,f=((h.height+h.strokeWidth)*h.lineHeight-h.height)*u,d=h.getScaledHeight()+f,v=0;"center"===a&&(v=h.getScaledWidth()/2),"right"===a&&(v=h.getScaledWidth()),h.set({left:h.left-v,top:h.top-(d-h.fontSize*(.07+h._fontSizeFraction))/h.lineHeight,strokeWidth:void 0!==c?c:1}),n(h)},e.Text.fromObject=function(t,n){var r=i(t),o=t.path;return delete r.path,e.Object._fromObject("Text",r,(function(t){o?e.Object._fromObject("Path",o,(function(e){t.set("path",e),n(t)}),"path"):n(t)}),"text")},e.Text.genericFonts=["sans-serif","serif","cursive","fantasy","monospace"],e.util.createAccessors&&e.util.createAccessors(e.Text)}}(e),S.util.object.extend(S.Text.prototype,{isEmptyStyles:function(t){if(!this.styles)return!0;if(void 0!==t&&!this.styles[t])return!0;var e=void 0===t?this.styles:{line:this.styles[t]};for(var i in e)for(var n in e[i])for(var r in e[i][n])return!1;return!0},styleHas:function(t,e){if(!this.styles||!t||""===t)return!1;if(void 0!==e&&!this.styles[e])return!1;var i=void 0===e?this.styles:{0:this.styles[e]};for(var n in i)for(var r in i[n])if(void 0!==i[n][r][t])return!0;return!1},cleanStyle:function(t){if(!this.styles||!t||""===t)return!1;var e,i,n=this.styles,r=0,o=!0,a=0;for(var s in n){for(var l in e=0,n[s]){var c;r++,(c=n[s][l]).hasOwnProperty(t)?(i?c[t]!==i&&(o=!1):i=c[t],c[t]===this[t]&&delete c[t]):o=!1,0!==Object.keys(c).length?e++:delete n[s][l]}0===e&&delete n[s]}for(var h=0;h<this._textLines.length;h++)a+=this._textLines[h].length;o&&r===a&&(this[t]=i,this.removeStyle(t))},removeStyle:function(t){if(this.styles&&t&&""!==t){var e,i,n,r=this.styles;for(i in r){for(n in e=r[i])delete e[n][t],0===Object.keys(e[n]).length&&delete e[n];0===Object.keys(e).length&&delete r[i]}}},_extendStyles:function(t,e){var i=this.get2DCursorLocation(t);this._getLineStyle(i.lineIndex)||this._setLineStyle(i.lineIndex),this._getStyleDeclaration(i.lineIndex,i.charIndex)||this._setStyleDeclaration(i.lineIndex,i.charIndex,{}),S.util.object.extend(this._getStyleDeclaration(i.lineIndex,i.charIndex),e)},get2DCursorLocation:function(t,e){void 0===t&&(t=this.selectionStart);for(var i=e?this._unwrappedTextLines:this._textLines,n=i.length,r=0;r<n;r++){if(t<=i[r].length)return{lineIndex:r,charIndex:t};t-=i[r].length+this.missingNewlineOffset(r)}return{lineIndex:r-1,charIndex:i[r-1].length<t?i[r-1].length:t}},getSelectionStyles:function(t,e,i){void 0===t&&(t=this.selectionStart||0),void 0===e&&(e=this.selectionEnd||t);for(var n=[],r=t;r<e;r++)n.push(this.getStyleAtPosition(r,i));return n},getStyleAtPosition:function(t,e){var i=this.get2DCursorLocation(t);return(e?this.getCompleteStyleDeclaration(i.lineIndex,i.charIndex):this._getStyleDeclaration(i.lineIndex,i.charIndex))||{}},setSelectionStyles:function(t,e,i){void 0===e&&(e=this.selectionStart||0),void 0===i&&(i=this.selectionEnd||e);for(var n=e;n<i;n++)this._extendStyles(n,t);return this._forceClearCache=!0,this},_getStyleDeclaration:function(t,e){var i=this.styles&&this.styles[t];return i?i[e]:null},getCompleteStyleDeclaration:function(t,e){for(var i,n=this._getStyleDeclaration(t,e)||{},r={},o=0;o<this._styleProperties.length;o++)r[i=this._styleProperties[o]]=void 0===n[i]?this[i]:n[i];return r},_setStyleDeclaration:function(t,e,i){this.styles[t][e]=i},_deleteStyleDeclaration:function(t,e){delete this.styles[t][e]},_getLineStyle:function(t){return!!this.styles[t]},_setLineStyle:function(t){this.styles[t]={}},_deleteLineStyle:function(t){delete this.styles[t]}}),function(){function t(t){t.textDecoration&&(t.textDecoration.indexOf("underline")>-1&&(t.underline=!0),t.textDecoration.indexOf("line-through")>-1&&(t.linethrough=!0),t.textDecoration.indexOf("overline")>-1&&(t.overline=!0),delete t.textDecoration)}S.IText=S.util.createClass(S.Text,S.Observable,{type:"i-text",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,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(t,e){this.callSuper("initialize",t,e),this.initBehavior()},setSelectionStart:function(t){t=Math.max(t,0),this._updateAndFire("selectionStart",t)},setSelectionEnd:function(t){t=Math.min(t,this.text.length),this._updateAndFire("selectionEnd",t)},_updateAndFire:function(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(t){this.clearContextTop(),this.callSuper("render",t),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(t){this.callSuper("_render",t)},clearContextTop:function(t){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var e=this.canvas.contextTop,i=this.canvas.viewportTransform;e.save(),e.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this.transform(e),this._clearTextArea(e),t||e.restore()}},renderCursorOrSelection:function(){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var t=this._getCursorBoundaries(),e=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(t,e):this.renderSelection(t,e),e.restore()}},_clearTextArea:function(t){var e=this.width+4,i=this.height+4;t.clearRect(-e/2,-i/2,e,i)},_getCursorBoundaries:function(t){void 0===t&&(t=this.selectionStart);var e=this._getLeftOffset(),i=this._getTopOffset(),n=this._getCursorBoundariesOffsets(t);return{left:e,top:i,leftOffset:n.left,topOffset:n.top}},_getCursorBoundariesOffsets:function(t){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var e,i,n,r,o=0,a=0,s=this.get2DCursorLocation(t);n=s.charIndex,i=s.lineIndex;for(var l=0;l<i;l++)o+=this.getHeightOfLine(l);e=this._getLineLeftOffset(i);var c=this.__charBounds[i][n];return c&&(a=c.left),0!==this.charSpacing&&n===this._textLines[i].length&&(a-=this._getWidthOfCharSpacing()),r={top:o,left:e+(a>0?a:0)},"rtl"===this.direction&&(r.left*=-1),this.cursorOffsetCache=r,this.cursorOffsetCache},renderCursor:function(t,e){var i=this.get2DCursorLocation(),n=i.lineIndex,r=i.charIndex>0?i.charIndex-1:0,o=this.getValueOfPropertyAt(n,r,"fontSize"),a=this.scaleX*this.canvas.getZoom(),s=this.cursorWidth/a,l=t.topOffset,c=this.getValueOfPropertyAt(n,r,"deltaY");l+=(1-this._fontSizeFraction)*this.getHeightOfLine(n)/this.lineHeight-o*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(t,e),e.fillStyle=this.cursorColor||this.getValueOfPropertyAt(n,r,"fill"),e.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,e.fillRect(t.left+t.leftOffset-s/2,l+t.top+c,s,o)},renderSelection:function(t,e){for(var i=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,n=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,r=-1!==this.textAlign.indexOf("justify"),o=this.get2DCursorLocation(i),a=this.get2DCursorLocation(n),s=o.lineIndex,l=a.lineIndex,c=o.charIndex<0?0:o.charIndex,h=a.charIndex<0?0:a.charIndex,u=s;u<=l;u++){var f,d=this._getLineLeftOffset(u)||0,v=this.getHeightOfLine(u),g=0,p=0;if(u===s&&(g=this.__charBounds[s][c].left),u>=s&&u<l)p=r&&!this.isEndOfWrapping(u)?this.width:this.getLineWidth(u)||5;else if(u===l)if(0===h)p=this.__charBounds[l][h].left;else{var m=this._getWidthOfCharSpacing();p=this.__charBounds[l][h-1].left+this.__charBounds[l][h-1].width-m}f=v,(this.lineHeight<1||u===l&&this.lineHeight>1)&&(v/=this.lineHeight);var y=t.left+d+g,b=p-g,w=v,x=0;this.inCompositionMode?(e.fillStyle=this.compositionColor||"black",w=1,x=v):e.fillStyle=this.selectionColor,"rtl"===this.direction&&(y=this.width-y-b),e.fillRect(y,t.top+t.topOffset+x,b,w),t.topOffset+=f}},getCurrentCharFontSize:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fontSize")},getCurrentCharColor:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fill")},_getCurrentCharIndex:function(){var t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}}),S.IText.fromObject=function(e,i){if(t(e),e.styles)for(var n in e.styles)for(var r in e.styles[n])t(e.styles[n][r]);S.Object._fromObject("IText",e,i,"text")}}(),C=S.util.object.clone,S.util.object.extend(S.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var t=this;this.on("added",(function(){var e=t.canvas;e&&(e._hasITextHandlers||(e._hasITextHandlers=!0,t._initCanvasHandlers(e)),e._iTextInstances=e._iTextInstances||[],e._iTextInstances.push(t))}))},initRemovedHandler:function(){var t=this;this.on("removed",(function(){var e=t.canvas;e&&(e._iTextInstances=e._iTextInstances||[],S.util.removeFromArray(e._iTextInstances,t),0===e._iTextInstances.length&&(e._hasITextHandlers=!1,t._removeCanvasHandlers(e)))}))},_initCanvasHandlers:function(t){t._mouseUpITextHandler=function(){t._iTextInstances&&t._iTextInstances.forEach((function(t){t.__isMousedown=!1}))},t.on("mouse:up",t._mouseUpITextHandler)},_removeCanvasHandlers:function(t){t.off("mouse:up",t._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(t,e,i,n){var r;return r={isAborted:!1,abort:function(){this.isAborted=!0}},t.animate("_currentCursorOpacity",e,{duration:i,onComplete:function(){r.isAborted||t[n]()},onChange:function(){t.canvas&&t.selectionStart===t.selectionEnd&&t.renderCursorOrSelection()},abort:function(){return r.isAborted}}),r},_onTickComplete:function(){var t=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout((function(){t._currentTickCompleteState=t._animateCursor(t,0,this.cursorDuration/2,"_tick")}),100)},initDelayedCursor:function(t){var e=this,i=t?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout((function(){e._tick()}),i)},abortCursorAnimation:function(){var t=this._currentTickState||this._currentTickCompleteState,e=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,t&&e&&e.clearContext(e.contextTop||e.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(t){var 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:function(t){var 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:function(t){for(var e=0,i=t-1;!/\n/.test(this._text[i])&&i>-1;)e++,i--;return t-e},findLineBoundaryRight:function(t){for(var e=0,i=t;!/\n/.test(this._text[i])&&i<this._text.length;)e++,i++;return t+e},searchWordBoundary:function(t,e){for(var i=this._text,n=this._reSpace.test(i[t])?t-1:t,r=i[n],o=S.reNonWord;!o.test(r)&&n>0&&n<i.length;)r=i[n+=e];return o.test(r)&&(n+=1===e?0:1),n},selectWord:function(t){t=t||this.selectionStart;var e=this.searchWordBoundary(t,-1),i=this.searchWordBoundary(t,1);this.selectionStart=e,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()},selectLine:function(t){t=t||this.selectionStart;var e=this.findLineBoundaryLeft(t),i=this.findLineBoundaryRight(t);return this.selectionStart=e,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea(),this},enterEditing:function(t){if(!this.isEditing&&this.editable)return this.canvas&&(this.canvas.calcOffset(),this.exitEditingOnOthers(this.canvas)),this.isEditing=!0,this.initHiddenTextarea(t),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick(),this.fire("editing:entered"),this._fireSelectionChanged(),this.canvas?(this.canvas.fire("text:editing:entered",{target:this}),this.initMouseMoveHandler(),this.canvas.requestRenderAll(),this):this},exitEditingOnOthers:function(t){t._iTextInstances&&t._iTextInstances.forEach((function(t){t.selected=!1,t.isEditing&&t.exitEditing()}))},initMouseMoveHandler:function(){this.canvas.on("mouse:move",this.mouseMoveHandler)},mouseMoveHandler:function(t){if(this.__isMousedown&&this.isEditing){var e=this.getSelectionStartFromPointer(t.e),i=this.selectionStart,n=this.selectionEnd;(e===this.__selectionStartOnMouseDown&&i!==n||i!==e&&n!==e)&&(e>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=e):(this.selectionStart=e,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===i&&this.selectionEnd===n||(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){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:function(t,e,i){var n=i.slice(0,t),r=S.util.string.graphemeSplit(n).length;if(t===e)return{selectionStart:r,selectionEnd:r};var o=i.slice(t,e);return{selectionStart:r,selectionEnd:r+S.util.string.graphemeSplit(o).length}},fromGraphemeToStringSelection:function(t,e,i){var n=i.slice(0,t).join("").length;return t===e?{selectionStart:n,selectionEnd:n}:{selectionStart:n,selectionEnd:n+i.slice(t,e).join("").length}},_updateTextarea:function(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){var t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var t=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=t.selectionEnd,this.inCompositionMode||(this.selectionStart=t.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),i=this.get2DCursorLocation(t),n=i.lineIndex,r=i.charIndex,o=this.getValueOfPropertyAt(n,r,"fontSize")*this.lineHeight,a=e.leftOffset,s=this.calcTransformMatrix(),l={x:e.left+a,y:e.top+e.topOffset+o},c=this.canvas.getRetinaScaling(),h=this.canvas.upperCanvasEl,u=h.width/c,f=h.height/c,d=u-o,v=f-o,g=h.clientWidth/u,p=h.clientHeight/f;return l=S.util.transformPoint(l,s),(l=S.util.transformPoint(l,this.canvas.viewportTransform)).x*=g,l.y*=p,l.x<0&&(l.x=0),l.x>d&&(l.x=d),l.y<0&&(l.y=0),l.y>v&&(l.y=v),l.x+=this.canvas._offset.left,l.y+=this.canvas._offset.top,{left:l.x+"px",top:l.y+"px",fontSize:o+"px",charHeight:o}},_saveEditingProps:function(){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:function(){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.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var t=this._textBeforeEdit!==this.text,e=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,e&&(e.blur&&e.blur(),e.parentNode&&e.parentNode.removeChild(e)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),t&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),t&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var t in this.styles)this._textLines[t]||delete this.styles[t]},removeStyleFromTo:function(t,e){var i,n,r=this.get2DCursorLocation(t,!0),o=this.get2DCursorLocation(e,!0),a=r.lineIndex,s=r.charIndex,l=o.lineIndex,c=o.charIndex;if(a!==l){if(this.styles[a])for(i=s;i<this._unwrappedTextLines[a].length;i++)delete this.styles[a][i];if(this.styles[l])for(i=c;i<this._unwrappedTextLines[l].length;i++)(n=this.styles[l][i])&&(this.styles[a]||(this.styles[a]={}),this.styles[a][s+i-c]=n);for(i=a+1;i<=l;i++)delete this.styles[i];this.shiftLineStyles(l,a-l)}else if(this.styles[a]){n=this.styles[a];var h,u,f=c-s;for(i=s;i<c;i++)delete n[i];for(u in this.styles[a])(h=parseInt(u,10))>=c&&(n[h-f]=n[u],delete n[u])}},shiftLineStyles:function(t,e){var i=C(this.styles);for(var n in this.styles){var r=parseInt(n,10);r>t&&(this.styles[r+e]=i[r],i[r-e]||delete this.styles[r])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,e,i,n){var r,o={},a=!1,s=this._unwrappedTextLines[t].length===e;for(var l in i||(i=1),this.shiftLineStyles(t,i),this.styles[t]&&(r=this.styles[t][0===e?e:e-1]),this.styles[t]){var c=parseInt(l,10);c>=e&&(a=!0,o[c-e]=this.styles[t][l],s&&0===e||delete this.styles[t][l])}var h=!1;for(a&&!s&&(this.styles[t+i]=o,h=!0),h&&i--;i>0;)n&&n[i-1]?this.styles[t+i]={0:C(n[i-1])}:r?this.styles[t+i]={0:C(r)}:delete this.styles[t+i],i--;this._forceClearCache=!0},insertCharStyleObject:function(t,e,i,n){this.styles||(this.styles={});var r=this.styles[t],o=r?C(r):{};for(var a in i||(i=1),o){var s=parseInt(a,10);s>=e&&(r[s+i]=o[s],o[s-i]||delete r[s])}if(this._forceClearCache=!0,n)for(;i--;)Object.keys(n[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]=C(n[i]));else if(r)for(var l=r[e?e-1:1];l&&i--;)this.styles[t][e+i]=C(l)},insertNewStyleBlock:function(t,e,i){for(var n=this.get2DCursorLocation(e,!0),r=[0],o=0,a=0;a<t.length;a++)"\n"===t[a]?r[++o]=0:r[o]++;for(r[0]>0&&(this.insertCharStyleObject(n.lineIndex,n.charIndex,r[0],i),i=i&&i.slice(r[0]+1)),o&&this.insertNewlineStyleObject(n.lineIndex,n.charIndex+r[0],o),a=1;a<o;a++)r[a]>0?this.insertCharStyleObject(n.lineIndex+a,0,r[a],i):i&&(this.styles[n.lineIndex+a][0]=i[0]),i=i&&i.slice(r[a]+1);r[a]>0&&this.insertCharStyleObject(n.lineIndex+a,0,r[a],i)},setSelectionStartEndWithShift:function(t,e,i){i<=t?(e===t?this._selectionDirection="left":"right"===this._selectionDirection&&(this._selectionDirection="left",this.selectionEnd=t),this.selectionStart=i):i>t&&i<e?"right"===this._selectionDirection?this.selectionEnd=i:this.selectionStart=i:(e===t?this._selectionDirection="right":"left"===this._selectionDirection&&(this._selectionDirection="right",this.selectionStart=e),this.selectionEnd=i)},setSelectionInBoundaries:function(){var t=this.text.length;this.selectionStart>t?this.selectionStart=t:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>t?this.selectionEnd=t:this.selectionEnd<0&&(this.selectionEnd=0)}}),S.util.object.extend(S.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(t){if(this.canvas){this.__newClickTime=+new Date;var e=t.pointer;this.isTripleClick(e)&&(this.fire("tripleclick",t),this._stopEvent(t.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=e,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(t){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===t.x&&this.__lastPointer.y===t.y},_stopEvent:function(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(t){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(t.e))},tripleClickHandler:function(t){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(t.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(t.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(t){if(this.__isMousedown=!1,!(!this.editable||this.group||t.transform&&t.transform.actionPerformed||t.e.button&&1!==t.e.button)){if(this.canvas){var e=this.canvas._activeObject;if(e&&e!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(t.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(t){var e=this.getSelectionStartFromPointer(t),i=this.selectionStart,n=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(i,n,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(t){for(var e,i=this.getLocalPointer(t),n=0,r=0,o=0,a=0,s=0,l=0,c=this._textLines.length;l<c&&o<=i.y;l++)o+=this.getHeightOfLine(l)*this.scaleY,s=l,l>0&&(a+=this._textLines[l-1].length+this.missingNewlineOffset(l-1));r=this._getLineLeftOffset(s)*this.scaleX,e=this._textLines[s],"rtl"===this.direction&&(i.x=this.width*this.scaleX-i.x+r);for(var h=0,u=e.length;h<u&&(n=r,(r+=this.__charBounds[s][h].kernedWidth*this.scaleX)<=i.x);h++)a++;return this._getNewSelectionStartFromOffset(i,n,r,a,u)},_getNewSelectionStartFromOffset:function(t,e,i,n,r){var o=t.x-e,a=i-t.x,s=n+(a>o||a<0?0:1);return this.flipX&&(s=r-s),s>this._text.length&&(s=this._text.length),s}}),S.util.object.extend(S.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=S.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var t=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+t.top+"; left: "+t.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; paddingーtop: "+t.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):S.document.body.appendChild(this.hiddenTextarea),S.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),S.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),S.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),S.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),S.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),S.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),S.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),S.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),S.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(S.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(t){if(this.isEditing){var 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:function(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:function(t){var e=this.fromPaste;if(this.fromPaste=!1,t&&t.stopPropagation(),this.isEditing){var i,n,r,o,a,s=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,l=this._text.length,c=s.length,h=c-l,u=this.selectionStart,f=this.selectionEnd,d=u!==f;if(""===this.hiddenTextarea.value)return this.styles={},this.updateFromTextArea(),this.fire("changed"),void(this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll()));var v=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),g=u>v.selectionStart;d?(i=this._text.slice(u,f),h+=f-u):c<l&&(i=g?this._text.slice(f+h,f):this._text.slice(u,u-h)),n=s.slice(v.selectionEnd-h,v.selectionEnd),i&&i.length&&(n.length&&(r=this.getSelectionStyles(u,u+1,!1),r=n.map((function(){return r[0]}))),d?(o=u,a=f):g?(o=f-i.length,a=f):(o=f,a=f+i.length),this.removeStyleFromTo(o,a)),n.length&&(e&&n.join("")===S.copiedText&&!S.disableStyleCopyPaste&&(r=S.copiedTextStyle),this.insertNewStyleBlock(n,u,r)),this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())}},onCompositionStart:function(){this.inCompositionMode=!0},onCompositionEnd:function(){this.inCompositionMode=!1},onCompositionUpdate:function(t){this.compositionStart=t.target.selectionStart,this.compositionEnd=t.target.selectionEnd,this.updateTextareaPosition()},copy:function(){this.selectionStart!==this.selectionEnd&&(S.copiedText=this.getSelectedText(),S.disableStyleCopyPaste?S.copiedTextStyle=null:S.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0)},paste:function(){this.fromPaste=!0},_getClipboardData:function(t){return t&&t.clipboardData||S.window.clipboardData},_getWidthBeforeCursor:function(t,e){var i,n=this._getLineLeftOffset(t);return e>0&&(n+=(i=this.__charBounds[t][e-1]).left+i.width),n},getDownCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),n=this.get2DCursorLocation(i),r=n.lineIndex;if(r===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;var o=n.charIndex,a=this._getWidthBeforeCursor(r,o),s=this._getIndexOnLine(r+1,a);return this._textLines[r].slice(o).length+s+1+this.missingNewlineOffset(r)},_getSelectionForOffset:function(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),n=this.get2DCursorLocation(i),r=n.lineIndex;if(0===r||t.metaKey||33===t.keyCode)return-i;var o=n.charIndex,a=this._getWidthBeforeCursor(r,o),s=this._getIndexOnLine(r-1,a),l=this._textLines[r].slice(0,o),c=this.missingNewlineOffset(r-1);return-this._textLines[r-1].length+s-l.length+(1-c)},_getIndexOnLine:function(t,e){for(var i,n,r=this._textLines[t],o=this._getLineLeftOffset(t),a=0,s=0,l=r.length;s<l;s++)if((o+=i=this.__charBounds[t][s].width)>e){n=!0;var c=o-i,h=o,u=Math.abs(c-e);a=Math.abs(h-e)<u?s:s-1;break}return n||(a=r.length-1),a},moveCursorDown:function(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)},moveCursorUp:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)},_moveCursorUpOrDown:function(t,e){var i=this["get"+t+"CursorOffset"](e,"right"===this._selectionDirection);e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(t){var e="left"===this._selectionDirection?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t},moveCursorWithoutShift:function(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t},moveCursorLeft:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)},_move:function(t,e,i){var n;if(t.altKey)n=this["findWordBoundary"+i](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;n=this["findLineBoundary"+i](this[e])}if(void 0!==typeof n&&this[e]!==n)return this[e]=n,!0},_moveLeft:function(t,e){return this._move(t,e,"Left")},_moveRight:function(t,e){return this._move(t,e,"Right")},moveCursorLeftWithoutShift:function(t){var e=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e},moveCursorLeftWithShift:function(t){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection="left",this._moveLeft(t,"selectionStart")):void 0},moveCursorRight:function(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)},_moveCursorLeftOrRight:function(t,e){var i="moveCursor"+t+"With";this._currentCursorOpacity=1,e.shiftKey?i+="Shift":i+="outShift",this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(t){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection="right",this._moveRight(t,"selectionEnd")):void 0},moveCursorRightWithoutShift:function(t){var e=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e},removeChars:function(t,e){void 0===e&&(e=t+1),this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(t,e,i,n){void 0===n&&(n=i),n>i&&this.removeStyleFromTo(i,n);var r=S.util.string.graphemeSplit(t);this.insertNewStyleBlock(r,i,e),this._text=[].concat(this._text.slice(0,i),r,this._text.slice(n)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),k=S.util.toFixed,_=/ +/g,S.util.object.extend(S.Text.prototype,{_toSVG:function(){var t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(t){var e=this.getSvgTextDecoration(this);return[t.textBgRects.join(""),'\t\t<text xml:space="preserve" ',this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",e?'text-decoration="'+e+'" ':"",'style="',this.getSvgStyles(!0),'"',this.addPaintOrder()," >",t.textSpans.join(""),"</text>\n"]},_getSVGTextAndBg:function(t,e){var i,n=[],r=[],o=t;this._setSVGBg(r);for(var a=0,s=this._textLines.length;a<s;a++)i=this._getLineLeftOffset(a),(this.textBackgroundColor||this.styleHas("textBackgroundColor",a))&&this._setSVGTextLineBg(r,a,e+i,o),this._setSVGTextLineText(n,a,e+i,o),o+=this.getHeightOfLine(a);return{textSpans:n,textBgRects:r}},_createTextCharSpan:function(t,e,i,n){var r=t!==t.trim()||t.match(_),o=this.getSvgSpanStyles(e,r),a=o?'style="'+o+'"':"",s=e.deltaY,l="",c=S.Object.NUM_FRACTION_DIGITS;return s&&(l=' dy="'+k(s,c)+'" '),['<tspan x="',k(i,c),'" y="',k(n,c),'" ',l,a,">",S.util.string.escapeXml(t),"</tspan>"].join("")},_setSVGTextLineText:function(t,e,i,n){var r,o,a,s,l,c=this.getHeightOfLine(e),h=-1!==this.textAlign.indexOf("justify"),u="",f=0,d=this._textLines[e];n+=c*(1-this._fontSizeFraction)/this.lineHeight;for(var v=0,g=d.length-1;v<=g;v++)l=v===g||this.charSpacing,u+=d[v],a=this.__charBounds[e][v],0===f?(i+=a.kernedWidth-a.width,f+=a.width):f+=a.kernedWidth,h&&!l&&this._reSpaceAndTab.test(d[v])&&(l=!0),l||(r=r||this.getCompleteStyleDeclaration(e,v),o=this.getCompleteStyleDeclaration(e,v+1),l=this._hasStyleChangedForSvg(r,o)),l&&(s=this._getStyleDeclaration(e,v)||{},t.push(this._createTextCharSpan(u,s,i,n)),u="",r=o,i+=f,f=0)},_pushTextBgRect:function(t,e,i,n,r,o){var a=S.Object.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(e),' x="',k(i,a),'" y="',k(n,a),'" width="',k(r,a),'" height="',k(o,a),'"></rect>\n')},_setSVGTextLineBg:function(t,e,i,n){for(var r,o,a=this._textLines[e],s=this.getHeightOfLine(e)/this.lineHeight,l=0,c=0,h=this.getValueOfPropertyAt(e,0,"textBackgroundColor"),u=0,f=a.length;u<f;u++)r=this.__charBounds[e][u],(o=this.getValueOfPropertyAt(e,u,"textBackgroundColor"))!==h?(h&&this._pushTextBgRect(t,h,i+c,n,l,s),c=r.left,l=r.width,h=o):l+=r.kernedWidth;o&&this._pushTextBgRect(t,o,i+c,n,l,s)},_getFillAttributes:function(t){var e=t&&"string"==typeof t?new S.Color(t):"";return e&&e.getSource()&&1!==e.getAlpha()?'opacity="'+e.getAlpha()+'" fill="'+e.setAlpha(1).toRgb()+'"':'fill="'+t+'"'},_getSVGLineTopOffset:function(t){for(var e,i=0,n=0;n<t;n++)i+=this.getHeightOfLine(n);return e=this.getHeightOfLine(n),{lineTop:i,offset:(this._fontSizeMult-this._fontSizeFraction)*e/(this.lineHeight*this._fontSizeMult)}},getSvgStyles:function(t){return S.Object.prototype.getSvgStyles.call(this,t)+" white-space: pre;"}}),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Textbox=e.util.createClass(e.IText,e.Observable,{type:"textbox",minWidth:20,dynamicMinWidth:2,__cachedLines:null,lockScalingFlip:!0,noScaleCache:!1,_dimensionAffectingProps:e.Text.prototype._dimensionAffectingProps.concat("width"),_wordJoiners:/[ \t\r]/,splitByGrapheme:!1,initDimensions:function(){this.__skipDimension||(this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(t){for(var e=0,i=0,n=0,r={},o=0;o<t.graphemeLines.length;o++)"\n"===t.graphemeText[n]&&o>0?(i=0,n++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[n])&&o>0&&(i++,n++),r[o]={line:e,offset:i},n+=t.graphemeLines[o].length,i+=t.graphemeLines[o].length;return r},styleHas:function(t,i){if(this._styleMap&&!this.isWrapping){var n=this._styleMap[i];n&&(i=n.line)}return e.Text.prototype.styleHas.call(this,t,i)},isEmptyStyles:function(t){if(!this.styles)return!0;var e,i,n=0,r=!1,o=this._styleMap[t],a=this._styleMap[t+1];for(var s in o&&(t=o.line,n=o.offset),a&&(r=a.line===t,e=a.offset),i=void 0===t?this.styles:{line:this.styles[t]})for(var l in i[s])if(l>=n&&(!r||l<e))for(var c in i[s][l])return!1;return!0},_getStyleDeclaration:function(t,e){if(this._styleMap&&!this.isWrapping){var i=this._styleMap[t];if(!i)return null;t=i.line,e=i.offset+e}return this.callSuper("_getStyleDeclaration",t,e)},_setStyleDeclaration:function(t,e,i){var n=this._styleMap[t];t=n.line,e=n.offset+e,this.styles[t][e]=i},_deleteStyleDeclaration:function(t,e){var i=this._styleMap[t];t=i.line,e=i.offset+e,delete this.styles[t][e]},_getLineStyle:function(t){var e=this._styleMap[t];return!!this.styles[e.line]},_setLineStyle:function(t){var e=this._styleMap[t];this.styles[e.line]={}},_wrapText:function(t,e){var i,n=[];for(this.isWrapping=!0,i=0;i<t.length;i++)n=n.concat(this._wrapLine(t[i],i,e));return this.isWrapping=!1,n},_measureWord:function(t,e,i){var n,r=0;i=i||0;for(var o=0,a=t.length;o<a;o++){r+=this._getGraphemeBox(t[o],e,o+i,n,!0).kernedWidth,n=t[o]}return r},_wrapLine:function(t,i,n,r){var o=0,a=this.splitByGrapheme,s=[],l=[],c=a?e.util.string.graphemeSplit(t):t.split(this._wordJoiners),h="",u=0,f=a?"":" ",d=0,v=0,g=0,p=!0,m=this._getWidthOfCharSpacing();r=r||0;0===c.length&&c.push([]),n-=r;for(var y=0;y<c.length;y++)h=a?c[y]:e.util.string.graphemeSplit(c[y]),d=this._measureWord(h,i,u),u+=h.length,(o+=v+d-m)>n&&!p?(s.push(l),l=[],o=d,p=!0):o+=m,p||a||l.push(f),l=l.concat(h),v=a?0:this._measureWord([f],i,u),u++,p=!1,d>g&&(g=d);return y&&s.push(l),g+r>this.dynamicMinWidth&&(this.dynamicMinWidth=g-m+r),s},isEndOfWrapping:function(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line},missingNewlineOffset:function(t){return this.splitByGrapheme?this.isEndOfWrapping(t)?1:0:1},_splitTextIntoLines:function(t){for(var i=e.Text.prototype._splitTextIntoLines.call(this,t),n=this._wrapText(i.lines,this.width),r=new Array(n.length),o=0;o<n.length;o++)r[o]=n[o].join("");return i.lines=r,i.graphemeLines=n,i},getMinWidth:function(){return Math.max(this.minWidth,this.dynamicMinWidth)},_removeExtraneousStyles:function(){var t={};for(var e in this._styleMap)this._textLines[e]&&(t[this._styleMap[e].line]=1);for(var e in this.styles)t[e]||delete this.styles[e]},toObject:function(t){return this.callSuper("toObject",["minWidth","splitByGrapheme"].concat(t))}}),e.Textbox.fromObject=function(t,i){return e.Object._fromObject("Textbox",t,i,"text")}}(e),function(){var t=S.controlsUtils,e=t.scaleSkewCursorStyleHandler,i=t.scaleCursorStyleHandler,n=t.scalingEqually,r=t.scalingYOrSkewingX,o=t.scalingXOrSkewingY,a=t.scaleOrSkewActionName,s=S.Object.prototype.controls;if(s.ml=new S.Control({x:-.5,y:0,cursorStyleHandler:e,actionHandler:o,getActionName:a}),s.mr=new S.Control({x:.5,y:0,cursorStyleHandler:e,actionHandler:o,getActionName:a}),s.mb=new S.Control({x:0,y:.5,cursorStyleHandler:e,actionHandler:r,getActionName:a}),s.mt=new S.Control({x:0,y:-.5,cursorStyleHandler:e,actionHandler:r,getActionName:a}),s.tl=new S.Control({x:-.5,y:-.5,cursorStyleHandler:i,actionHandler:n}),s.tr=new S.Control({x:.5,y:-.5,cursorStyleHandler:i,actionHandler:n}),s.bl=new S.Control({x:-.5,y:.5,cursorStyleHandler:i,actionHandler:n}),s.br=new S.Control({x:.5,y:.5,cursorStyleHandler:i,actionHandler:n}),s.mtr=new S.Control({x:0,y:-.5,actionHandler:t.rotationWithSnapping,cursorStyleHandler:t.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),S.Textbox){var l=S.Textbox.prototype.controls={};l.mtr=s.mtr,l.tr=s.tr,l.br=s.br,l.tl=s.tl,l.bl=s.bl,l.mt=s.mt,l.mb=s.mb,l.mr=new S.Control({x:.5,y:0,actionHandler:t.changeWidth,cursorStyleHandler:e,actionName:"resizing"}),l.ml=new S.Control({x:-.5,y:0,actionHandler:t.changeWidth,cursorStyleHandler:e,actionName:"resizing"})}}()}).call(this,i(27).Buffer)},function(t,e,i){t.exports=i(25)},function(t,e){function i(t,e,i,n,r,o,a){try{var s=t[o](a),l=s.value}catch(t){return void i(t)}s.done?e(l):Promise.resolve(l).then(n,r)}t.exports=function(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var a=t.apply(e,n);function s(t){i(a,r,o,s,l,"next",t)}function l(t){i(a,r,o,s,l,"throw",t)}s(void 0)}))}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function i(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(t.exports=i=function(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=i=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),i(e)}t.exports=i,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(16),r=i(19),o=i(15),a=i(18);t.exports=function(t){return n(t)||r(t)||o(t)||a()},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(17);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?n(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if(Array.isArray(t))return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){},function(t,e){t.exports=function(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var n,r,o=[],a=!0,s=!1;try{for(i=i.call(t);!(a=(n=i.next()).done)&&(o.push(n.value),!e||o.length!==e);a=!0);}catch(t){s=!0,r=t}finally{try{a||null==i.return||i.return()}finally{if(s)throw r}}return o}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=i(17);t.exports=function(t){if(Array.isArray(t))return n(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function i(e,n){return t.exports=i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},t.exports.default=t.exports,t.exports.__esModule=!0,i(e,n)}t.exports=i,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){var n=function(t){"use strict";var e=Object.prototype,i=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function s(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var r=e&&e.prototype instanceof u?e:u,o=Object.create(r.prototype),a=new k(n||[]);return o._invoke=function(t,e,i){var n="suspendedStart";return function(r,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===r)throw o;return S()}for(i.method=r,i.arg=o;;){var a=i.delegate;if(a){var s=w(a,i);if(s){if(s===h)continue;return s}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var l=c(t,e,i);if("normal"===l.type){if(n=i.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:i.done}}"throw"===l.type&&(n="completed",i.method="throw",i.arg=l.arg)}}}(t,i,a),o}function c(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var h={};function u(){}function f(){}function d(){}var v={};s(v,r,(function(){return this}));var g=Object.getPrototypeOf,p=g&&g(g(_([])));p&&p!==e&&i.call(p,r)&&(v=p);var m=d.prototype=u.prototype=Object.create(v);function y(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var n;this._invoke=function(r,o){function a(){return new e((function(n,a){!function n(r,o,a,s){var l=c(t[r],t,o);if("throw"!==l.type){var h=l.arg,u=h.value;return u&&"object"==typeof u&&i.call(u,"__await")?e.resolve(u.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(u).then((function(t){h.value=t,a(h)}),(function(t){return n("throw",t,a,s)}))}s(l.arg)}(r,o,n,a)}))}return n=n?n.then(a,a):a()}}function w(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return h;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var n=c(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,h;var r=n.arg;return r?r.done?(e[t.resultName]=r.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,h):r:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function _(t){if(t){var e=t[r];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(i.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return f.prototype=d,s(m,"constructor",d),s(d,"constructor",f),f.displayName=s(d,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===f||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,s(t,a,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},y(b.prototype),s(b.prototype,o,(function(){return this})),t.AsyncIterator=b,t.async=function(e,i,n,r,o){void 0===o&&(o=Promise);var a=new b(l(e,i,n,r),o);return t.isGeneratorFunction(i)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},y(m),s(m,a,"Generator"),s(m,r,(function(){return this})),s(m,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var i in t)e.push(i);return e.reverse(),function i(){for(;e.length;){var n=e.pop();if(n in t)return i.value=n,i.done=!1,i}return i.done=!0,i}},t.values=_,k.prototype={constructor:k,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(C),!t)for(var e in this)"t"===e.charAt(0)&&i.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(i,n){return a.type="throw",a.arg=t,e.next=i,n&&(e.method="next",e.arg=void 0),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var s=i.call(o,"catchLoc"),l=i.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),h},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),C(i),h}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var r=n.arg;C(i)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:_(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),h}},t}(t.exports);try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},function(t,e,i){var n=i(1);t.exports=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=n(t)););return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,i){"use strict";(function(t){
|
|
4
|
+
/*!
|
|
5
|
+
* The buffer module from node.js, for the browser.
|
|
6
|
+
*
|
|
7
|
+
* @author Feross Aboukhadijeh <http://feross.org>
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
var n=i(29),r=i(30),o=i(31);function a(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(a()<e)throw new RangeError("Invalid typed array length");return l.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=l.prototype:(null===t&&(t=new l(e)),t.length=e),t}function l(t,e,i){if(!(l.TYPED_ARRAY_SUPPORT||this instanceof l))return new l(t,e,i);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return u(this,t)}return c(this,t,e,i)}function c(t,e,i,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,i,n){if(e.byteLength,i<0||e.byteLength<i)throw new RangeError("'offset' is out of bounds");if(e.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");e=void 0===i&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,i):new Uint8Array(e,i,n);l.TYPED_ARRAY_SUPPORT?(t=e).__proto__=l.prototype:t=f(t,e);return t}(t,e,i,n):"string"==typeof e?function(t,e,i){"string"==typeof i&&""!==i||(i="utf8");if(!l.isEncoding(i))throw new TypeError('"encoding" must be a valid string encoding');var n=0|v(e,i),r=(t=s(t,n)).write(e,i);r!==n&&(t=t.slice(0,r));return t}(t,e,i):function(t,e){if(l.isBuffer(e)){var i=0|d(e.length);return 0===(t=s(t,i)).length||e.copy(t,0,0,i),t}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(n=e.length)!=n?s(t,0):f(t,e);if("Buffer"===e.type&&o(e.data))return f(t,e.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function u(t,e){if(h(e),t=s(t,e<0?0:0|d(e)),!l.TYPED_ARRAY_SUPPORT)for(var i=0;i<e;++i)t[i]=0;return t}function f(t,e){var i=e.length<0?0:0|d(e.length);t=s(t,i);for(var n=0;n<i;n+=1)t[n]=255&e[n];return t}function d(t){if(t>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function v(t,e){if(l.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var i=t.length;if(0===i)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return N(t).length;default:if(n)return H(t).length;e=(""+e).toLowerCase(),n=!0}}function g(t,e,i){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return R(this,e,i);case"utf8":case"utf-8":return T(this,e,i);case"ascii":return O(this,e,i);case"latin1":case"binary":return E(this,e,i);case"base64":return S(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function p(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function m(t,e,i,n,r){if(0===t.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=r?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(r)return-1;i=t.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:y(t,e,i,n,r);if("number"==typeof e)return e&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):y(t,[e],i,n,r);throw new TypeError("val must be string, number or Buffer")}function y(t,e,i,n,r){var o,a=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,l/=2,i/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(r){var h=-1;for(o=i;o<s;o++)if(c(t,o)===c(e,-1===h?0:o-h)){if(-1===h&&(h=o),o-h+1===l)return h*a}else-1!==h&&(o-=o-h),h=-1}else for(i+l>s&&(i=s-l),o=i;o>=0;o--){for(var u=!0,f=0;f<l;f++)if(c(t,o+f)!==c(e,f)){u=!1;break}if(u)return o}return-1}function b(t,e,i,n){i=Number(i)||0;var r=t.length-i;n?(n=Number(n))>r&&(n=r):n=r;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a<n;++a){var s=parseInt(e.substr(2*a,2),16);if(isNaN(s))return a;t[i+a]=s}return a}function w(t,e,i,n){return W(H(e,t.length-i),t,i,n)}function x(t,e,i,n){return W(function(t){for(var e=[],i=0;i<t.length;++i)e.push(255&t.charCodeAt(i));return e}(e),t,i,n)}function C(t,e,i,n){return x(t,e,i,n)}function k(t,e,i,n){return W(N(e),t,i,n)}function _(t,e,i,n){return W(function(t,e){for(var i,n,r,o=[],a=0;a<t.length&&!((e-=2)<0);++a)i=t.charCodeAt(a),n=i>>8,r=i%256,o.push(r),o.push(n);return o}(e,t.length-i),t,i,n)}function S(t,e,i){return 0===e&&i===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,i))}function T(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r<i;){var o,a,s,l,c=t[r],h=null,u=c>239?4:c>223?3:c>191?2:1;if(r+u<=i)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[r+1]))&&(l=(31&c)<<6|63&o)>127&&(h=l);break;case 3:o=t[r+1],a=t[r+2],128==(192&o)&&128==(192&a)&&(l=(15&c)<<12|(63&o)<<6|63&a)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:o=t[r+1],a=t[r+2],s=t[r+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(l=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&l<1114112&&(h=l)}null===h?(h=65533,u=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),r+=u}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var i="",n=0;for(;n<e;)i+=String.fromCharCode.apply(String,t.slice(n,n+=4096));return i}(n)}e.Buffer=l,e.SlowBuffer=function(t){+t!=t&&(t=0);return l.alloc(+t)},e.INSPECT_MAX_BYTES=50,l.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),e.kMaxLength=a(),l.poolSize=8192,l._augment=function(t){return t.__proto__=l.prototype,t},l.from=function(t,e,i){return c(null,t,e,i)},l.TYPED_ARRAY_SUPPORT&&(l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0})),l.alloc=function(t,e,i){return function(t,e,i,n){return h(e),e<=0?s(t,e):void 0!==i?"string"==typeof n?s(t,e).fill(i,n):s(t,e).fill(i):s(t,e)}(null,t,e,i)},l.allocUnsafe=function(t){return u(null,t)},l.allocUnsafeSlow=function(t){return u(null,t)},l.isBuffer=function(t){return!(null==t||!t._isBuffer)},l.compare=function(t,e){if(!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var i=t.length,n=e.length,r=0,o=Math.min(i,n);r<o;++r)if(t[r]!==e[r]){i=t[r],n=e[r];break}return i<n?-1:n<i?1:0},l.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(t,e){if(!o(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return l.alloc(0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var n=l.allocUnsafe(e),r=0;for(i=0;i<t.length;++i){var a=t[i];if(!l.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,r),r+=a.length}return n},l.byteLength=v,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)p(this,e,e+1);return this},l.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)p(this,e,e+3),p(this,e+1,e+2);return this},l.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)p(this,e,e+7),p(this,e+1,e+6),p(this,e+2,e+5),p(this,e+3,e+4);return this},l.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?T(this,0,t):g.apply(this,arguments)},l.prototype.equals=function(t){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===l.compare(this,t)},l.prototype.inspect=function(){var t="",i=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(t+=" ... ")),"<Buffer "+t+">"},l.prototype.compare=function(t,e,i,n,r){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(this===t)return 0;for(var o=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(e>>>=0),s=Math.min(o,a),c=this.slice(n,r),h=t.slice(e,i),u=0;u<s;++u)if(c[u]!==h[u]){o=c[u],a=h[u];break}return o<a?-1:a<o?1:0},l.prototype.includes=function(t,e,i){return-1!==this.indexOf(t,e,i)},l.prototype.indexOf=function(t,e,i){return m(this,t,e,i,!0)},l.prototype.lastIndexOf=function(t,e,i){return m(this,t,e,i,!1)},l.prototype.write=function(t,e,i,n){if(void 0===e)n="utf8",i=this.length,e=0;else if(void 0===i&&"string"==typeof e)n=e,i=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(i)?(i|=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var r=this.length-e;if((void 0===i||i>r)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return b(this,t,e,i);case"utf8":case"utf-8":return w(this,t,e,i);case"ascii":return x(this,t,e,i);case"latin1":case"binary":return C(this,t,e,i);case"base64":return k(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,i);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function O(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(127&t[r]);return n}function E(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(t[r]);return n}function R(t,e,i){var n=t.length;(!e||e<0)&&(e=0),(!i||i<0||i>n)&&(i=n);for(var r="",o=e;o<i;++o)r+=B(t[o]);return r}function A(t,e,i){for(var n=t.slice(e,i),r="",o=0;o<n.length;o+=2)r+=String.fromCharCode(n[o]+256*n[o+1]);return r}function I(t,e,i){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>i)throw new RangeError("Trying to access beyond buffer length")}function P(t,e,i,n,r,o){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||e<o)throw new RangeError('"value" argument is out of bounds');if(i+n>t.length)throw new RangeError("Index out of range")}function D(t,e,i,n){e<0&&(e=65535+e+1);for(var r=0,o=Math.min(t.length-i,2);r<o;++r)t[i+r]=(e&255<<8*(n?r:1-r))>>>8*(n?r:1-r)}function F(t,e,i,n){e<0&&(e=4294967295+e+1);for(var r=0,o=Math.min(t.length-i,4);r<o;++r)t[i+r]=e>>>8*(n?r:3-r)&255}function M(t,e,i,n,r,o){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function j(t,e,i,n,o){return o||M(t,0,i,4),r.write(t,e,i,n,23,4),i+4}function L(t,e,i,n,o){return o||M(t,0,i,8),r.write(t,e,i,n,52,8),i+8}l.prototype.slice=function(t,e){var i,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t),l.TYPED_ARRAY_SUPPORT)(i=this.subarray(t,e)).__proto__=l.prototype;else{var r=e-t;i=new l(r,void 0);for(var o=0;o<r;++o)i[o]=this[o+t]}return i},l.prototype.readUIntLE=function(t,e,i){t|=0,e|=0,i||I(t,e,this.length);for(var n=this[t],r=1,o=0;++o<e&&(r*=256);)n+=this[t+o]*r;return n},l.prototype.readUIntBE=function(t,e,i){t|=0,e|=0,i||I(t,e,this.length);for(var n=this[t+--e],r=1;e>0&&(r*=256);)n+=this[t+--e]*r;return n},l.prototype.readUInt8=function(t,e){return e||I(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return e||I(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return e||I(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return e||I(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return e||I(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,i){t|=0,e|=0,i||I(t,e,this.length);for(var n=this[t],r=1,o=0;++o<e&&(r*=256);)n+=this[t+o]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,i){t|=0,e|=0,i||I(t,e,this.length);for(var n=e,r=1,o=this[t+--n];n>0&&(r*=256);)o+=this[t+--n]*r;return o>=(r*=128)&&(o-=Math.pow(2,8*e)),o},l.prototype.readInt8=function(t,e){return e||I(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){e||I(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt16BE=function(t,e){e||I(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt32LE=function(t,e){return e||I(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return e||I(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return e||I(t,4,this.length),r.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return e||I(t,4,this.length),r.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return e||I(t,8,this.length),r.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return e||I(t,8,this.length),r.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,i,n){(t=+t,e|=0,i|=0,n)||P(this,t,e,i,Math.pow(2,8*i)-1,0);var r=1,o=0;for(this[e]=255&t;++o<i&&(r*=256);)this[e+o]=t/r&255;return e+i},l.prototype.writeUIntBE=function(t,e,i,n){(t=+t,e|=0,i|=0,n)||P(this,t,e,i,Math.pow(2,8*i)-1,0);var r=i-1,o=1;for(this[e+r]=255&t;--r>=0&&(o*=256);)this[e+r]=t/o&255;return e+i},l.prototype.writeUInt8=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,1,255,0),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):D(this,t,e,!0),e+2},l.prototype.writeUInt16BE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):D(this,t,e,!1),e+2},l.prototype.writeUInt32LE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},l.prototype.writeUInt32BE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},l.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e|=0,!n){var r=Math.pow(2,8*i-1);P(this,t,e,i,r-1,-r)}var o=0,a=1,s=0;for(this[e]=255&t;++o<i&&(a*=256);)t<0&&0===s&&0!==this[e+o-1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+i},l.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e|=0,!n){var r=Math.pow(2,8*i-1);P(this,t,e,i,r-1,-r)}var o=i-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+i},l.prototype.writeInt8=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,1,127,-128),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):D(this,t,e,!0),e+2},l.prototype.writeInt16BE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):D(this,t,e,!1),e+2},l.prototype.writeInt32LE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},l.prototype.writeInt32BE=function(t,e,i){return t=+t,e|=0,i||P(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},l.prototype.writeFloatLE=function(t,e,i){return j(this,t,e,!0,i)},l.prototype.writeFloatBE=function(t,e,i){return j(this,t,e,!1,i)},l.prototype.writeDoubleLE=function(t,e,i){return L(this,t,e,!0,i)},l.prototype.writeDoubleBE=function(t,e,i){return L(this,t,e,!1,i)},l.prototype.copy=function(t,e,i,n){if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r,o=n-i;if(this===t&&i<e&&e<n)for(r=o-1;r>=0;--r)t[r+e]=this[r+i];else if(o<1e3||!l.TYPED_ARRAY_SUPPORT)for(r=0;r<o;++r)t[r+e]=this[r+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+o),e);return o},l.prototype.fill=function(t,e,i,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),1===t.length){var r=t.charCodeAt(0);r<256&&(t=r)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var o;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(o=e;o<i;++o)this[o]=t;else{var a=l.isBuffer(t)?t:H(new l(t,n).toString()),s=a.length;for(o=0;o<i-e;++o)this[o+e]=a[o%s]}return this};var z=/[^+\/0-9A-Za-z-_]/g;function B(t){return t<16?"0"+t.toString(16):t.toString(16)}function H(t,e){var i;e=e||1/0;for(var n=t.length,r=null,o=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&o.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&o.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;o.push(i)}else if(i<2048){if((e-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function N(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(z,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function W(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}}).call(this,i(28))},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){"use strict";e.byteLength=function(t){var e=c(t),i=e[0],n=e[1];return 3*(i+n)/4-n},e.toByteArray=function(t){var e,i,n=c(t),a=n[0],s=n[1],l=new o(function(t,e,i){return 3*(e+i)/4-i}(0,a,s)),h=0,u=s>0?a-4:a;for(i=0;i<u;i+=4)e=r[t.charCodeAt(i)]<<18|r[t.charCodeAt(i+1)]<<12|r[t.charCodeAt(i+2)]<<6|r[t.charCodeAt(i+3)],l[h++]=e>>16&255,l[h++]=e>>8&255,l[h++]=255&e;2===s&&(e=r[t.charCodeAt(i)]<<2|r[t.charCodeAt(i+1)]>>4,l[h++]=255&e);1===s&&(e=r[t.charCodeAt(i)]<<10|r[t.charCodeAt(i+1)]<<4|r[t.charCodeAt(i+2)]>>2,l[h++]=e>>8&255,l[h++]=255&e);return l},e.fromByteArray=function(t){for(var e,i=t.length,r=i%3,o=[],a=0,s=i-r;a<s;a+=16383)o.push(h(t,a,a+16383>s?s:a+16383));1===r?(e=t[i-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===r&&(e=(t[i-2]<<8)+t[i-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return o.join("")};for(var n=[],r=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=a.length;s<l;++s)n[s]=a[s],r[a.charCodeAt(s)]=s;function c(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function h(t,e,i){for(var r,o,a=[],s=e;s<i;s+=3)r=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),a.push(n[(o=r)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},function(t,e){
|
|
11
|
+
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
12
|
+
e.read=function(t,e,i,n,r){var o,a,s=8*r-n-1,l=(1<<s)-1,c=l>>1,h=-7,u=i?r-1:0,f=i?-1:1,d=t[e+u];for(u+=f,o=d&(1<<-h)-1,d>>=-h,h+=s;h>0;o=256*o+t[e+u],u+=f,h-=8);for(a=o&(1<<-h)-1,o>>=-h,h+=n;h>0;a=256*a+t[e+u],u+=f,h-=8);if(0===o)o=1-c;else{if(o===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=c}return(d?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,i,n,r,o){var a,s,l,c=8*o-r-1,h=(1<<c)-1,u=h>>1,f=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,v=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+u>=1?f/l:f*Math.pow(2,1-u))*l>=2&&(a++,l/=2),a+u>=h?(s=0,a=h):a+u>=1?(s=(e*l-1)*Math.pow(2,r),a+=u):(s=e*Math.pow(2,u-1)*Math.pow(2,r),a=0));r>=8;t[i+d]=255&s,d+=v,s/=256,r-=8);for(a=a<<r|s,c+=r;c>0;t[i+d]=255&a,d+=v,a/=256,c-=8);t[i+d-v]|=128*g}},function(t,e){var i={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==i.call(t)}},function(t,e){},function(t,e){},function(t,e){},function(t,e,i){},function(t,e,i){"use strict";(function(t){var e=i(13),n=i.n(e);!function(){function e(t){return Math.sqrt(t.x*t.x+t.y*t.y)}function i(t,i){var n=function(t,i){var n=e(t)*e(i);if(0===n)return 0;var r=function(t,e){return t.x*e.x+t.y*e.y}(t,i)/n;return r>1&&(r=1),Math.acos(r)}(t,i);return function(t,e){return t.x*e.y-e.x*t.y}(t,i)>0&&(n*=-1),180*n/Math.PI}var r=function(t){this.handlers=[],this.el=t};function o(t,e){var i=new r(t);return i.add(e),i}r.prototype.add=function(t){this.handlers.push(t)},r.prototype.del=function(t){t||(this.handlers=[]);for(var e=this.handlers.length;e>=0;e--)this.handlers[e]===t&&this.handlers.splice(e,1)},r.prototype.dispatch=function(){for(var t=0,e=this.handlers.length;t<e;t++){var i=this.handlers[t];"function"==typeof i&&i.apply(this.el,arguments)}};var a=function(t,e){this.element="string"==typeof t?document.querySelector(t):t,this.start=this.start.bind(this),this.move=this.move.bind(this),this.end=this.end.bind(this),this.cancel=this.cancel.bind(this),this.element.addEventListener("touchstart",this.start,!1),this.element.addEventListener("touchmove",this.move,!1),this.element.addEventListener("touchend",this.end,!1),this.element.addEventListener("touchcancel",this.cancel,!1),this.preV={x:null,y:null},this.pinchStartLen=null,this.zoom=1,this.isDoubleTap=!1;var i=function(){};this.rotate=o(this.element,e.rotate||i),this.touchStart=o(this.element,e.touchStart||i),this.multipointStart=o(this.element,e.multipointStart||i),this.multipointEnd=o(this.element,e.multipointEnd||i),this.pinch=o(this.element,e.pinch||i),this.swipe=o(this.element,e.swipe||i),this.tap=o(this.element,e.tap||i),this.doubleTap=o(this.element,e.doubleTap||i),this.longTap=o(this.element,e.longTap||i),this.singleTap=o(this.element,e.singleTap||i),this.pressMove=o(this.element,e.pressMove||i),this.twoFingerPressMove=o(this.element,e.twoFingerPressMove||i),this.touchMove=o(this.element,e.touchMove||i),this.touchEnd=o(this.element,e.touchEnd||i),this.touchCancel=o(this.element,e.touchCancel||i),this._cancelAllHandler=this.cancelAll.bind(this),window.addEventListener("scroll",this._cancelAllHandler),this.delta=null,this.last=null,this.now=null,this.tapTimeout=null,this.singleTapTimeout=null,this.longTapTimeout=null,this.swipeTimeout=null,this.x1=this.x2=this.y1=this.y2=null,this.preTapPosition={x:null,y:null}};a.prototype={start:function(t){if(t.touches){this.now=Date.now(),this.x1=t.touches[0].pageX,this.y1=t.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(t,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&this.delta<=250&&Math.abs(this.preTapPosition.x-this.x1)<30&&Math.abs(this.preTapPosition.y-this.y1)<30,this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var i=this.preV;if(t.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var n={x:t.touches[1].pageX-this.x1,y:t.touches[1].pageY-this.y1};i.x=n.x,i.y=n.y,this.pinchStartLen=e(i),this.multipointStart.dispatch(t,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this._inZoom||(this.longTap.dispatch(t,this.element),this._preventTap=!0)}.bind(this),750)}},move:function(t){if(t.touches){var n=this.preV,r=t.touches.length,o=t.touches[0].pageX,a=t.touches[0].pageY;if(this.isDoubleTap=!1,r>1){var s=t.touches[1].pageX,l=t.touches[1].pageY,c={x:t.touches[1].pageX-o,y:t.touches[1].pageY-a};null!==n.x&&(this.pinchStartLen>0&&(t.zoom=e(c)/this.pinchStartLen,this.pinch.dispatch(t,this.element),this._preventTap=!0,this._inZoom=!0),t.angle=i(c,n),this.rotate.dispatch(t,this.element)),n.x=c.x,n.y=c.y,null!==this.x2&&null!==this.sx2?(t.deltaX=(o-this.x2+s-this.sx2)/2,t.deltaY=(a-this.y2+l-this.sy2)/2):(t.deltaX=0,t.deltaY=0),this.twoFingerPressMove.dispatch(t,this.element),this.sx2=s,this.sy2=l}else{if(null!==this.x2){t.deltaX=o-this.x2,t.deltaY=a-this.y2;var h=Math.abs(this.x1-this.x2),u=Math.abs(this.y1-this.y2);(h>10||u>10)&&(this._preventTap=!0)}else t.deltaX=0,t.deltaY=0;this.pressMove.dispatch(t,this.element)}this.touchMove.dispatch(t,this.element),this._cancelLongTap(),this.x2=o,this.y2=a,r>1&&t.preventDefault()}},end:function(t){if(t.changedTouches){this._cancelLongTap();var e=this;t.touches.length<2&&(this.multipointEnd.dispatch(t,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(t.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){e.swipe.dispatch(t,e.element)}),0)):(this.tapTimeout=setTimeout((function(){e._preventTap||e.tap.dispatch(t,e.element),e.isDoubleTap&&(e.doubleTap.dispatch(t,e.element),e.isDoubleTap=!1)}),0),e.isDoubleTap||e._preventTap||(e.singleTapTimeout=setTimeout((function(){e.singleTap.dispatch(t,e.element)}),250))),this.touchEnd.dispatch(t,this.element),this.preV.x=0,this.preV.y=0,this.zoom=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}},cancelAll:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.tapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)},cancel:function(t){this.cancelAll(),this.touchCancel.dispatch(t,this.element)},_cancelLongTap:function(){clearTimeout(this.longTapTimeout)},_cancelSingleTap:function(){clearTimeout(this.singleTapTimeout)},_swipeDirection:function(t,e,i,n){return Math.abs(t-e)>=Math.abs(i-n)?t-e>0?"Left":"Right":i-n>0?"Up":"Down"},on:function(t,e){this[t]&&this[t].add(e)},off:function(t,e){this[t]&&this[t].del(e)},destroy:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.tapTimeout&&clearTimeout(this.tapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener("touchstart",this.start),this.element.removeEventListener("touchmove",this.move),this.element.removeEventListener("touchend",this.end),this.element.removeEventListener("touchcancel",this.cancel),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.tap.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV=this.pinchStartLen=this.zoom=this.isDoubleTap=this.delta=this.last=this.now=this.tapTimeout=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.tap=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener("scroll",this._cancelAllHandler),null}},"object"===("undefined"==typeof exports?"undefined":n()(exports))?t.exports=a:window.AlloyFinger=a}()}).call(this,i(37)(t))},function(t,e){t.exports=function(t){if(!t.webpackPolyfill){var e=Object.create(t);e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(e,"exports",{enumerable:!0}),e.webpackPolyfill=1}return e}},function(t,e,i){"use strict";i.r(e),i.d(e,"spreadsheet",(function(){return qa}));var n=i(5),r=i.n(n),o=i(2),a=i.n(o),s=i(0),l=i.n(s),c=i(14),h=i.n(c),u=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";l()(this,t),"string"==typeof e?(this.el=document.createElement(e),this.el.className=i):this.el=e,this.data={}}return a()(t,[{key:"data",value:function(t,e){return void 0!==e?(this.data[t]=e,this):this.data[t]}},{key:"on",value:function(t,e){var i=t.split("."),n=h()(i),r=n[0],o=n.slice(1),a=r;return"mousewheel"===a&&/Firefox/i.test(window.navigator.userAgent)&&(a="DOMMouseScroll"),this.el.addEventListener(a,(function(t){e(t);for(var i=0;i<o.length;i+=1){var n=o[i];if("left"===n&&0!==t.button)return;if("right"===n&&2!==t.button)return;"stop"===n&&t.stopPropagation()}})),this}},{key:"offset",value:function(t){var e=this;if(void 0!==t)return Object.keys(t).forEach((function(i){e.css(i,"".concat(t[i],"px"))})),this;var i=this.el;return{top:i.offsetTop,left:i.offsetLeft,height:i.offsetHeight,width:i.offsetWidth}}},{key:"scroll",value:function(t){var e=this.el;return void 0!==t&&(void 0!==t.left&&(e.scrollLeft=t.left),void 0!==t.top&&(e.scrollTop=t.top)),{left:e.scrollLeft,top:e.scrollTop}}},{key:"box",value:function(){return this.el.getBoundingClientRect()}},{key:"parent",value:function(){return new t(this.el.parentNode)}},{key:"children",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];return 0===arguments.length?this.el.childNodes:(i.forEach((function(e){return t.child(e)})),this)}},{key:"removeChild",value:function(t){this.el.removeChild(t)}},{key:"empty",value:function(){this.el.innerHTML=""}},{key:"child",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e;return"string"==typeof e?n=document.createTextNode(e):e instanceof t&&(n=e.el),i?this.el.prepend(n):this.el.appendChild(n),this}},{key:"contains",value:function(t){return this.el.contains(t)}},{key:"className",value:function(t){return void 0!==t?(this.el.className=t,this):this.el.className}},{key:"addClass",value:function(t){return this.el.classList.add(t),this}},{key:"hasClass",value:function(t){return this.el.classList.contains(t)}},{key:"removeClass",value:function(t){return this.el&&this.el.classList.remove(t),this}},{key:"toggle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"active";return this.toggleClass(t)}},{key:"toggleClass",value:function(t){return this.el.classList.toggle(t)}},{key:"active",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"active";return t?this.addClass(e):this.removeClass(e),this}},{key:"checked",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.active(t,"checked"),this}},{key:"disabled",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return t?this.addClass("disabled"):this.removeClass("disabled"),this}},{key:"attr",value:function(t,e){var i=this;if(void 0!==e)this.el.setAttribute(t,e);else{if("string"==typeof t)return this.el.getAttribute(t);Object.keys(t).forEach((function(e){i.el.setAttribute(e,t[e])}))}return this}},{key:"removeAttr",value:function(t){return this.el.removeAttribute(t),this}},{key:"sanitizeHTML",value:function(t){var e=document.createElement("div");return e.textContent=t,e.innerHTML}},{key:"html",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return void 0!==t?(this.el.innerHTML=e?i?this.sanitizeHTML(t).replace(/\n/g,"<br>"):this.sanitizeHTML(t):t,this):this.el.innerHTML}},{key:"val",value:function(t){return void 0!==t?(this.el.value=t,this):this.el.value}},{key:"focus",value:function(){this.el.focus()}},{key:"cssRemoveKeys",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];return i.forEach((function(e){return t.el.style.removeProperty(e)})),this}},{key:"css",value:function(t,e){var i=this;return void 0===e&&"string"!=typeof t?(Object.keys(t).forEach((function(e){i.el.style[e]=t[e]})),this):void 0!==e?(this.el.style[t]=e,this):this.el.style[t]}},{key:"computedStyle",value:function(){return window.getComputedStyle(this.el,null)}},{key:"show",value:function(){return this.css("display","block"),this}},{key:"hide",value:function(){return this.css("display","none"),this}}]),t}(),f=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new u(t,e)},d=i(6),v=i.n(d),g=(i(20),["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]);function p(t){for(var e="",i=t;i>=g.length;)i/=g.length,i-=1,e+=g[parseInt(i,10)%g.length];return e+=g[t%g.length]}function m(t){for(var e=0,i=0;i<t.length-1;i+=1){var n=t.charCodeAt(i)-65,r=t.length-1-i;e+=Math.pow(g.length,r)+g.length*n}return e+=t.charCodeAt(t.length-1)-65}function y(t){for(var e="",i="",n=0;n<t.length;n+=1)t.charAt(n)>="0"&&t.charAt(n)<="9"?i+=t.charAt(n):e+=t.charAt(n);return[m(e),parseInt(i,10)-1]}function b(t,e){return"".concat(p(t)).concat(e+1)}function w(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return!0};if(0===e&&0===i)return t;var o=y(t),a=r()(o,2),s=a[0],l=a[1];return n(s,l)?b(s+e,l+i):t}var x=function(){function t(e,i,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;l()(this,t),this.sri=e,this.sci=i,this.eri=n,this.eci=r,this.w=o,this.h=a}return a()(t,[{key:"set",value:function(t,e,i,n){this.sri=t,this.sci=e,this.eri=i,this.eci=n}},{key:"setToOther",value:function(t){this.sri=t.sri,this.sci=t.sci,this.eri=t.eri,this.eci=t.eci}},{key:"multiple",value:function(){return this.eri-this.sri>0||this.eci-this.sci>0}},{key:"includes",value:function(){for(var t=0,e=0,i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];if(1===n.length){var a=y(n[0]),s=r()(a,2);e=s[0],t=s[1]}else 2===n.length&&(t=n[0],e=n[1]);var l=this.sri,c=this.sci,h=this.eri,u=this.eci;return l<=t&&t<=h&&c<=e&&e<=u}},{key:"each",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},i=this.sri,n=this.sci,r=this.eri,o=this.eci,a=i;a<=r;a+=1)if(e(a))for(var s=n;s<=o;s+=1)t(a,s)}},{key:"emptyFirst",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0},n=this.sri,r=this.sci,o=this.eri,a=this.eci,s=n;s<=o;s+=1)if(e(s)){for(var l=[],c=[],h=r;h<=a;h+=1)i(s,h)?l.push(h):c.push(h);for(var u=0;u<l.length;u++)t(s,l[u]);for(var f=0;f<c.length;f++)t(s,c[f])}}},{key:"contains",value:function(t){return this.sri<=t.sri&&this.sci<=t.sci&&this.eri>=t.eri&&this.eci>=t.eci}},{key:"within",value:function(t){return this.sri>=t.sri&&this.sci>=t.sci&&this.eri<=t.eri&&this.eci<=t.eci}},{key:"disjoint",value:function(t){return this.sri>t.eri||this.sci>t.eci||t.sri>this.eri||t.sci>this.eci}},{key:"intersects",value:function(t){return this.sri<=t.eri&&this.sci<=t.eci&&t.sri<=this.eri&&t.sci<=this.eci}},{key:"union",value:function(e){var i=this.sri,n=this.sci,r=this.eri,o=this.eci;return new t(e.sri<i?e.sri:i,e.sci<n?e.sci:n,e.eri>r?e.eri:r,e.eci>o?e.eci:o)}},{key:"extendRange",value:function(e){var i=this.sri,n=this.sci,r=this.eri,o=this.eci,a=e.eri-e.sri+1,s=e.eci-e.sci+1,l=r-i+1,c=o-n+1;return new t(i,n,i+(l<a?a:l-l%a)-1,n+(c<s?s:c-c%s)-1)}},{key:"difference",value:function(e){var i=[],n=function(e,n,r,o){i.push(new t(e,n,r,o))},r=this.sri,o=this.sci,a=this.eri,s=this.eci,l=e.sri-r,c=e.sci-o,h=a-e.eri,u=s-e.eci;return l>0?(n(r,o,e.sri-1,s),h>0?(n(e.eri+1,o,a,s),c>0&&(n(e.sri,o,e.eri,e.sci-1),u>0&&n(e.sri,e.eci+1,e.eri,s))):c>0&&(n(e.sri,o,a,e.sci-1),u>0&&n(e.sri,e.eci+1,a,s))):h>0?(n(e.eri+1,o,a,s),c>0?(n(r,o,e.eri,e.sci-1),u>0&&n(r,e.sci+1,e.eri,s)):u>0&&n(r,e.sci+1,e.eri,s)):c>0?(n(r,o,a,e.sci-1),u>0&&n(r,e.sci+1,a,s)):u>0&&n(r,e.sci+1,a,s),i}},{key:"size",value:function(){return[this.eri-this.sri+1,this.eci-this.sci+1]}},{key:"toString",value:function(){var t=this.sri,e=this.sci,i=this.eri,n=this.eci,r=b(e,t);return this.multiple()&&(r="".concat(r,":").concat(b(n,i))),r}},{key:"clone",value:function(){return new t(this.sri,this.sci,this.eri,this.eci,this.w,this.h)}},{key:"equals",value:function(t){return this.eri===t.eri&&this.eci===t.eci&&this.sri===t.sri&&this.sci===t.sci}}],[{key:"valueOf",value:function(e){var i=e.split(":"),n=y(i[0]),o=r()(n,2),a=o[0],s=o[1],l=s,c=a;if(i.length>1){var h=y(i[1]),u=r()(h,2);c=u[0],l=u[1]}return new t(s,a,l,c)}}]),t}(),C=x,k=function(){function t(){l()(this,t),this.range=new x(0,0,0,0),this.ri=0,this.ci=0}return a()(t,[{key:"multiple",value:function(){return this.range.multiple()}},{key:"setIndexes",value:function(t,e){this.ri=t,this.ci=e}},{key:"size",value:function(){return this.range.size()}}]),t}(),_=function t(){l()(this,t),this.x=0,this.y=0,this.ri=0,this.ci=0,this.riact=0},S=function(){function t(){l()(this,t),this.undoItems=[],this.redoItems=[]}return a()(t,[{key:"add",value:function(t){this.undoItems.push(JSON.stringify(t)),this.redoItems=[]}},{key:"canUndo",value:function(){return this.undoItems.length>0}},{key:"canRedo",value:function(){return this.redoItems.length>0}},{key:"undo",value:function(t,e){var i=this.undoItems,n=this.redoItems;if(this.canUndo()){var r=JSON.parse(i.pop());n.push(JSON.stringify(t(r))),e(r)}}},{key:"redo",value:function(t,e){var i=this.undoItems,n=this.redoItems;if(this.canRedo()){var r=JSON.parse(n.pop());i.push(JSON.stringify(t(r))),e(r)}}}]),t}(),T=function(){function t(){l()(this,t),this.range=null,this.state="clear",this.textdata=null}return a()(t,[{key:"copy",value:function(t,e){this.range=t,this.state="copy";for(var i=t.sri,n=t.sci,r=t.eri,o=t.eci,a="",s=i;s<=r;s+=1){if(e._[s])for(var l=n;l<=o;l+=1){if(e._[s].cells&&e._[s].cells[l]){var c=e._[s].cells[l].text;c&&(c.indexOf("\n")>=0&&(c='"'+c+'"'),a+=c)}a+="\t"}a+="\n"}return this.setData(a),this}},{key:"cut",value:function(t){return this.range=t,this.state="cut",this}},{key:"isCopy",value:function(){return"copy"===this.state}},{key:"isCut",value:function(){return"cut"===this.state}},{key:"isClear",value:function(){return"clear"===this.state}},{key:"clear",value:function(){this.range=null,this.state="clear"}},{key:"setData",value:function(t){this.textdata=t,this.copyTextToClipboard(t)}},{key:"fallbackCopyTextToClipboard",value:function(t){var e=document.createElement("textarea");e.value=t,e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")}catch(t){}document.body.removeChild(e)}},{key:"copyTextToClipboard",value:function(t){navigator.clipboard?navigator.clipboard.writeText(t).then((function(){}),(function(t){})):this.fallbackCopyTextToClipboard(t)}}]),t}(),O=function(){function t(e,i,n){l()(this,t),this.ci=e,this.operator=i,this.value=n}return a()(t,[{key:"set",value:function(t,e){this.operator=t,this.value=e}},{key:"includes",value:function(t){var e=this.operator,i=this.value;return"all"===e||"in"===e&&i.includes(t)}},{key:"vlength",value:function(){var t=this.operator,e=this.value;return"in"===t?e.length:0}},{key:"getData",value:function(){return{ci:this.ci,operator:this.operator,value:this.value}}}]),t}(),E=function(){function t(e,i){l()(this,t),this.ci=e,this.order=i}return a()(t,[{key:"asc",value:function(){return"asc"===this.order}},{key:"desc",value:function(){return"desc"===this.order}}]),t}(),R=function(){function t(){l()(this,t),this.ref=null,this.filters=[],this.sort=null}return a()(t,[{key:"setData",value:function(t){var e=t.ref,i=t.filters,n=t.sort;null!=e&&(this.ref=e,this.filters=i.map((function(t){return new O(t.ci,t.operator,t.value)})),n&&(this.sort=new E(n.ci,n.order)))}},{key:"getData",value:function(){if(this.active()){var t=this.ref,e=this.filters,i=this.sort;return{ref:t,filters:e.map((function(t){return t.getData()})),sort:i}}return{}}},{key:"addFilter",value:function(t,e,i){var n=this.getFilter(t);null==n?this.filters.push(new O(t,e,i)):n.set(e,i)}},{key:"setSort",value:function(t,e){this.sort=e?new E(t,e):null}},{key:"includes",value:function(t,e){return!!this.active()&&this.hrange().includes(t,e)}},{key:"getSort",value:function(t){var e=this.sort;return e&&e.ci===t?e:null}},{key:"getFilter",value:function(t){for(var e=this.filters,i=0;i<e.length;i+=1)if(e[i].ci===t)return e[i];return null}},{key:"filteredRows",value:function(t){var e=new Set,i=new Set;if(this.active())for(var n=this.range(),r=n.sri,o=n.eri,a=this.filters,s=r+1;s<=o;s+=1)for(var l=0;l<a.length;l+=1){var c=a[l],h=t(s,c.ci),u=h&&0!=h.text.trim().length?h.text:"";if(!c.includes(u)){e.add(s);break}i.add(s)}return{rset:e,fset:i}}},{key:"items",value:function(t,e){var i={};if(this.active())for(var n=this.range(),r=n.sri,o=n.eri,a=r+1;a<=o;a+=1){var s=e(a,t);if(null===s||/^\s*$/.test(s.text))i[""]=(i[""]||0)+1;else{var l=s.text,c=(i[l]||0)+1;i[l]=c}}return i}},{key:"range",value:function(){return x.valueOf(this.ref)}},{key:"hrange",value:function(){var t=this.range();return t.eri=t.sri,t}},{key:"clear",value:function(){this.ref=null,this.filters=[],this.sort=null}},{key:"active",value:function(){return null!==this.ref}}]),t}(),A=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];l()(this,t),this._=e}return a()(t,[{key:"forEach",value:function(t){this._.forEach(t)}},{key:"deleteWithin",value:function(t){this._=this._.filter((function(e){return!e.within(t)}))}},{key:"getFirstIncludes",value:function(t,e){for(var i=0;i<this._.length;i+=1){var n=this._[i];if(n.includes(t,e))return n}return null}},{key:"filterIntersects",value:function(e){return new t(this._.filter((function(t){return t.intersects(e)})))}},{key:"intersects",value:function(t){for(var e=0;e<this._.length;e+=1){if(this._[e].intersects(t))return!0}return!1}},{key:"equals",value:function(t){for(var e=0;e<this._.length;e+=1){if(this._[e].equals(t))return!0}return!1}},{key:"union",value:function(t){var e=t;return this._.forEach((function(t){t.intersects(e)&&(e=t.union(e))})),e}},{key:"add",value:function(t){this.deleteWithin(t),this._.push(t)}},{key:"shift",value:function(t,e,i,n){this._.forEach((function(r){var o=r.sri,a=r.sci,s=r.eri,l=r.eci,c=r;"row"===t?o>=e?(c.sri+=i,c.eri+=i):o<e&&e<=s&&(c.eri+=i,n(o,a,i,0)):"column"===t&&(a>=e?(c.sci+=i,c.eci+=i):a<e&&e<=l&&(c.eci+=i,n(o,a,0,i)))}))}},{key:"move",value:function(t,e,i){this._.forEach((function(n){var r=n;r.within(t)&&(r.eri+=e,r.sri+=e,r.sci+=i,r.eci+=i)}))}},{key:"setData",value:function(t){return this._=t.map((function(t){return x.valueOf(t)})),this}},{key:"getData",value:function(){return this._.map((function(t){return t.toString()}))}},{key:"getDataForSave",value:function(){return this._.filter((function(t){return t.multiple()}))}}]),t}();var I=function t(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length,n=new Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return n.forEach((function(i){Object.keys(i).forEach((function(n){var r=i[n];"string"==typeof r||"number"==typeof r||"boolean"==typeof r?e[n]=r:"function"!=typeof r&&!Array.isArray(r)&&r instanceof Object?(e[n]=e[n]||{},t(e[n],r)):e[n]=r}))})),e};function P(t){for(var e="".concat(t),i=0,n=!1,r=0;r<e.length;r+=1)!0===n&&(i+=1),"."===e.charAt(r)&&(n=!0);return i}function D(t,e,i){if(Number.isNaN(e)||Number.isNaN(i))return e+t+i;var n=P(e),r=P(i),o=Number(e),a=Number(i),s=0;return"-"===t?s=o-a:"+"===t?s=o+a:"*"===t?s=o*a:"/"===t&&(s=o/a),s.toFixed(Math.max(n,r))}var F={cloneDeep:function(t){return JSON.parse(JSON.stringify(t))},merge:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return I.apply(void 0,[{}].concat(e))},equals:function t(e,i){var n=Object.keys(e);if(n.length!==Object.keys(i).length)return!1;for(var r=0;r<n.length;r+=1){var o=n[r],a=e[o],s=i[o];if(void 0===s)return!1;if("string"==typeof a||"number"==typeof a||"boolean"==typeof a){if(a!==s)return!1}else if(Array.isArray(a)){if(a.length!==s.length)return!1;for(var l=0;l<a.length;l+=1)if(!t(a[l],s[l]))return!1}else if("function"!=typeof a&&!Array.isArray(a)&&a instanceof Object&&!t(a,s))return!1}return!0},arrayEquals:function(t,e){if(t.length!==e.length)return!1;for(var i=0;i<t.length;i+=1)if(t[i]!==e[i])return!1;return!0},sum:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t){return t},i=0,n=0;return Object.keys(t).forEach((function(r){i+=e(t[r],r),n+=1})),[i,n]},rangeEach:function(t,e,i){for(var n=t;n<e;n+=1)i(n)},rangeSum:function(t,e,i){for(var n=0,r=t;r<e;r+=1)n+=i(r);return n},rangeReduceIf:function(t,e,i,n,r,o){for(var a=i,s=n,l=t;l<e&&!(a>r);l+=1)a+=s=o(l);return[l,a-s,s]},deleteProperty:function(t,e){var i=t["".concat(e)];return delete t["".concat(e)],i},numberCalc:D},M=function(){function t(e){var i=e.len,n=e.height;l()(this,t),this._={},this.len=i,this.height=n}return a()(t,[{key:"getHeight",value:function(t,e){if(this.isHide(t))return 0;if(e&&e.has(t))return 0;var i=this.get(t);return i&&i.height?i.height:this.height}},{key:"setHeight",value:function(t,e){this.getOrNew(t).height=e}},{key:"unhide",value:function(t){for(var e=t;e>0&&(e-=1,this.isHide(e));)this.setHide(e,!1)}},{key:"isHide",value:function(t){var e=this.get(t);return e&&e.hide}},{key:"setHide",value:function(t,e){var i=this.getOrNew(t);!0===e?i.hide=!0:delete i.hide}},{key:"setStyle",value:function(t,e){this.getOrNew(t).style=e}},{key:"sumHeight",value:function(t,e){var i=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;return F.rangeSum(t,e,(function(t){return n&&n.has(t)?0:i.getHeight(t)}))}},{key:"totalHeight",value:function(){return this.sumHeight(0,this.len)}},{key:"get",value:function(t){return this._[t]}},{key:"getOrNew",value:function(t){return this._[t]=this._[t]||{cells:{}},this._[t]}},{key:"getCell",value:function(t,e){var i=this.get(t);return void 0!==i&&void 0!==i.cells&&void 0!==i.cells[e]?i.cells[e]:null}},{key:"getCellMerge",value:function(t,e){var i=this.getCell(t,e);return i&&i.merge?i.merge:[0,0]}},{key:"getCellOrNew",value:function(t,e){var i=this.getOrNew(t);return i.cells[e]=i.cells[e]||{},i.cells[e]}},{key:"setCell",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all",r=this.getOrNew(t);"all"===n?r.cells[e]=i:"text"===n?(r.cells[e]=r.cells[e]||{},r.cells[e].text=i.text):"format"===n&&(r.cells[e]=r.cells[e]||{},r.cells[e].style=i.style,i.merge&&(r.cells[e].merge=i.merge))}},{key:"setCellTextBasicAct",value:function(t,e,i,n){t.text=e,n?t.f=n:delete t.f,i?t.ufv=i:delete t.ufv,t.html&&e.startsWith("<font style=")&&e.endsWith("</font>")&&(t.html=e)}},{key:"setCellText",value:function(t,e,i,n,r){var o=this.getCellOrNew(t,e);this.setCellTextBasicAct(o,i,n,r)}},{key:"setCellTextAndGetRet",value:function(t){var e=this.getCellOrNew(t.ri,t.ci);return this.setCellTextBasicAct(e,t.text,t.ufv,t.f),e.rtxt=t.rtxt,e.html=t.html,delete e.bigfontsize,e}},{key:"updateOneCell",value:function(t){return this.setCellTextAndGetRet(t)}},{key:"copyPaste",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},a=t.sri,s=t.sci,l=t.eri,c=t.eci,h=new Array,u=new Array,f=e.sri>=0?e.sri:0,d=e.sci>=0?e.sci:0,v=e.eri,g=e.eci,p=t.size(),m=r()(p,2),y=m[0],b=m[1],x=e.size(),C=r()(x,2),k=C[0],_=C[1],S=!0,T=0;(v<a||g<s)&&(S=!1,T=v<a?k:_);for(var O=a;O<=l;O+=1)for(var E=s;E<=c;E+=1)for(var R=f;R<=v;R+=y)for(var A=d;A<=g;A+=b){var I=R+(O-a),P=A+(E-s);if(I!==O||P!==E){var D=this._[O]&&this._[O].cells&&this._[O].cells[E],M=D?F.cloneDeep(this._[O].cells[E]):{};if(I!==O||P!==E){n&&M&&M.text&&M.text.length>0&&function(){var t=M.text,e=A-d+(R-f)+2;if(S||(e-=T+1),"="===t[0])M.text=t.replace(/\w{1,3}\d/g,(function(t){var i=0,n=0;return a===f?i=e-1:n=e-1,/^\d+$/.test(t)?t:w(t,i,n)}));else if(y<=1&&b>1&&(f>l||v<a)||b<=1&&y>1&&(d>c||g<s)||y<=1&&b<=1){var i=/[\\.\d]+$/.exec(t);if(null!==i){var n=Number(i[0])+e-1;M.text=t.substring(0,i.index)+n}}}();var j={ri:I,ci:P,text:M.f?M.f:M.text},L={ri:I,ci:P,ncell:M};n&&(M.f||M.ufv)||h.push(j),u.push(L)}}}for(var z=0;z<u.length;z++)this.setCell(u[z].ri,u[z].ci,u[z].ncell,i),o(u[z].ri,u[z].ci,u[z].ncell);return h}},{key:"cutPaste",value:function(t,e){var i=this,n={};this.each((function(r){i.eachCells(r,(function(o){var a=parseInt(r,10),s=parseInt(o,10);t.includes(r,o)&&(a=e.sri+(a-t.sri),s=e.sci+(s-t.sci)),n[a]=n[a]||{cells:{}},n[a].cells[s]=i._[r].cells[o],n[a].height=i._[r].height}))})),this._=n}},{key:"paste",value:function(t,e){var i=this,n=new Array;if(!(t.length<=0)){var r=e.sri,o=e.sci;return t.forEach((function(t,e){var a=r+e;t.forEach((function(t,e){var r=o+e;if(r<=1e3){i.setCellText(a,r,t);var s={ri:a,ci:r,text:t};n.push(s)}}))})),n}}},{key:"insert",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n={};this.each((function(r,o){var a=parseInt(r,10);a>=t&&(a+=i,e.eachCells(r,(function(e,n){n.text&&"="===n.text[0]&&(n.text=n.text.replace(/\w{1,3}\d/g,(function(e){return w(e,0,i,(function(e,i){return i>=t}))})))}))),n[a]=o})),this._=n,this.len+=i,t>=1&&this.copyrow(t-1,i)}},{key:"copyrow",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.copyCellStyle,r=this._[t];if(void 0!==r)for(var o=function(i){var o=e.getOrNew(t+i);o.height=r.height,e.eachCells(t,(function(t,e){o.cells[t]={},n(o.cells[t],e)}))},a=1;a<=i;a++)o(a)}},{key:"copyCellStyle",value:function(t,e){t.style=e.style,e.isautoalign&&(t.isautoalign=e.isautoalign)}},{key:"delete",value:function(t,e){var i=this,n=e-t+1,r={};this.each((function(o,a){var s=parseInt(o,10);s<t?r[s]=a:o>e&&(r[s-n]=a,i.eachCells(o,(function(t,i){i.text&&"="===i.text[0]&&(i.text=i.text.replace(/\w{1,3}\d/g,(function(t){return w(t,0,-n,(function(t,i){return i>e}))})))})))})),this._=r,this.len-=n}},{key:"insertColumn",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.copyCellStyle;this.each((function(r,o){var a={};if(e.eachCells(r,(function(e,n){var r=parseInt(e,10);r>=t&&(r+=i,n.text&&"="===n.text[0]&&(n.text=n.text.replace(/\w{1,3}\d/g,(function(e){return w(e,i,0,(function(e){return e>=t}))})))),a[r]=n})),t>=1)for(var s=1;s<=i;s++)void 0!==a[t-1]&&(a[t-1+s]={},n(a[t-1+s],a[t-1]));o.cells=a}))}},{key:"deleteColumn",value:function(t,e){var i=this,n=e-t+1;this.each((function(r,o){var a={};i.eachCells(r,(function(i,r){var o=parseInt(i,10);o<t?a[o]=r:o>e&&(a[o-n]=r,r.text&&"="===r.text[0]&&(r.text=r.text.replace(/\w{1,3}\d/g,(function(t){return w(t,-n,0,(function(t){return t>e}))}))))})),o.cells=a}))}},{key:"deleteCells",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";t.each((function(t,n){e.deleteCell(t,n,i)}))}},{key:"deleteCell",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"all",n=this.get(t);if(null!==n){var r=this.getCell(t,e);null!==r&&("all"===i?delete n.cells[e]:"text"===i?(r.text&&delete r.text,r.value&&delete r.value):"format"===i?(void 0!==r.style&&delete r.style,r.merge&&delete r.merge):"merge"===i&&r.merge&&delete r.merge)}}},{key:"maxCell",value:function(){var t=Object.keys(this._),e=t[t.length-1],i=this._[e];if(i){var n=i.cells,r=Object.keys(n),o=r[r.length-1];return[parseInt(e,10),parseInt(o,10)]}return[0,0]}},{key:"each",value:function(t){Object.entries(this._).forEach((function(e){var i=r()(e,2),n=i[0],o=i[1];t(n,o)}))}},{key:"eachCells",value:function(t,e){this._[t]&&this._[t].cells&&Object.entries(this._[t].cells).forEach((function(t){var i=r()(t,2),n=i[0],o=i[1];e(n,o)}))}},{key:"setData",value:function(t){t.len&&(this.len=t.len,delete t.len),void 0!==t.height&&(this.height=t.height,delete t.height),this._=t}},{key:"setRangeData",value:function(t,e){for(var i=e.sri;i<=e.eri;i++)void 0!==t[i]&&(this._[i]=t[i]),null===t[i]&&delete this._[i]}},{key:"getData",value:function(){var t=this.len,e=this.height;return Object.assign({len:t,height:e},this._)}},{key:"getRangeData",value:function(t){for(var e={},i=t.sri;i<=t.eri;i++)void 0!==this._[i]?e[i]=this._[i]:e[i]=null;return e}},{key:"getDataForRowsSet",value:function(t){var e=this,i=this.len,n=this.height,r={};return r.height=n,r.len=i,t.forEach((function(t){void 0!==e._[t]&&(r[t]=e._[t])})),r}},{key:"getHeightForSave",value:function(t){var e=this,i={};return t.forEach((function(t){void 0!==e._[t]&&(i[t]=e.getHeight(t))})),i}}]),t}(),j=function(){function t(e){var i=e.len,n=e.width,r=e.indexWidth,o=e.minWidth;l()(this,t),this._={},this.len=i,this.width=n,this.indexWidth=r,this.minWidth=o}return a()(t,[{key:"setData",value:function(t){t.len&&(this.len=t.len,delete t.len),this._=t}},{key:"getData",value:function(){var t=this.len;return Object.assign({len:t},this._)}},{key:"getDataForSave",value:function(t){var e=this,i={};return t.forEach((function(t){void 0!==e._[t]&&(i[t]=e._[t])})),i}},{key:"getWidth",value:function(t){if(this.isHide(t))return 0;var e=this._[t];return e&&e.width?e.width:this.width}},{key:"getOrNew",value:function(t){return this._[t]=this._[t]||{},this._[t]}},{key:"setWidth",value:function(t,e){this.getOrNew(t).width=e}},{key:"unhide",value:function(t){for(var e=t;e>0&&(e-=1,this.isHide(e));)this.setHide(e,!1)}},{key:"isHide",value:function(t){var e=this._[t];return e&&e.hide}},{key:"setHide",value:function(t,e){var i=this.getOrNew(t);!0===e?i.hide=!0:delete i.hide}},{key:"setStyle",value:function(t,e){this.getOrNew(t).style=e}},{key:"sumWidth",value:function(t,e){var i=this;return F.rangeSum(t,e,(function(t){return i.getWidth(t)}))}},{key:"totalWidth",value:function(){return this.sumWidth(0,this.len)}}]),t}();function L(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=function(t,e){if(!t)return;if("string"==typeof t)return z(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return z(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function z(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var B=["zh","en"],H={en:{toolbar:{undo:"Undo",redo:"Redo",print:"Print",paintformat:"Paint format",clearformat:"Clear format",format:"Format",fontName:"Font",fontSize:"Font size",fontBold:"Font bold",fontItalic:"Font italic",underline:"Underline",strike:"Strike",color:"Text color",bgcolor:"Fill color",border:"Borders",merge:"Merge cells",unmerge:"Unmerge cells",align:"Horizontal align",valign:"Vertical align",textwrap:"Text wrapping",freeze:"Freeze cell",autofilter:"Filter",formula:"Functions",more:"More",sort:"Sort",download:"Download",pagination:"Pagination",search:"Search",commentDefault:"Please enter text",commentEdit:"Edit comment",commentRemove:"Remove comment",commentPrevious:"Previous comment",commentNext:"Next comment",insertImage:"Insert image"},menubar:{undo:"Undo",redo:"Redo",print:"Print",paintformat:"Paint format",clearformat:"Clear format",format:"Format",fontName:"Font name:",fontSize:"Font size:",fontBold:"Font bold",fontItalic:"Font italic",underline:"Underline",strike:"Strike",color:"Text color",bgcolor:"Fill color",border:"Borders",merge:"Merge cells",unmerge:"Unmerge cells",align:"Horizontal align",valign:"Vertical align",textwrap:"Text wrapping",freeze:"Freeze cell",autofilter:"Filter",formula:"Functions",more:"More",sort:"Sort",download:"Download",download_HTML:"Download As HTML",download_PDF:"Download As PDF",download_Original:"Download Original",download_XLSX:"Download As XLSX",download_GOOGLE:"Save To Google Drive",download_DROPBOX:"Save To Dropbox",pagination:"Pagination",search:"Search",commentDefault:"Please enter text",insertSheet:"Sheet",insertRow:"Row",insertColumn:"Column",link:"Link",insertComment:"Comment",commentEdit:"Edit comment",commentRemove:"Remove comment",commentPrevious:"Previous comment",commentNext:"Next comment",insertImage:"Image",fromURL:"From URL",fromLocal:"From Local",menuInsert:"Insert",menuComment:"Review",menuText:"Format",menuFont:"Font",menuEdit:"Home",menuFile:"File"},contextmenu:{copy:"Copy",cut:"Cut",paste:"Paste",pasteValue:"Paste values only",pasteFormat:"Paste format only",hide:"Hide",insertRow:"Insert row",insertColumn:"Insert column",deleteSheet:"Delete",deleteRow:"Delete row",deleteColumn:"Delete column",deleteCell:"Delete cell",deleteCellText:"Delete cell text",validation:"Data validations",sort:"Sort",link:"Link",removeLink:"Remove Link",editLink:"Edit Link",openLink:"Open Link",download:"Download",cellprintable:"Enable export",cellnonprintable:"Disable export",celleditable:"Enable editing",cellnoneditable:"Disable editing",insertURL:"Enter the image address",deleteImage:"Delete image",copyImage:"Copy image",pasteImage:"Paste image",merge:"Merge",unmerge:"Unmerge",edit:"Edit",clear:"Clear"},link:{emailAddress:"E-mail Address",emailSubject:"Subject",sheetPage:"Document Place",sheetCell:"Cell Reference",linkTypes:{web:"Web Page",sheet:"This Document",email:"E-mail Address"},webUrl:"Address",linkType:"Link To"},download:{fileName:"File Name",saveType:"Save As",saveTypes:{Original:"Original",XLSX:"XLSX",PDF:"PDF",HTML:"HTML"}},print:{size:"Paper size",orientation:"Page orientation",orientations:["Landscape","Portrait"]},format:{normal:"Normal",text:"Plain Text",number:"Number",percent:"Percent",rmb:"RMB",usd:"USD",eur:"EUR",date:"Date",time:"Time",datetime:"Date time",duration:"Duration"},formula:{sum:"Calculate the sum of a set of values",average:"Calculate the arithmetic mean of all parameters",max:"Calculate the maximum value in a set of numbers",min:"Calculate the smallest value in a set of numbers",_if:"According to the true or false result of the logical judgment of the specified condition, the calculation result triggered by the corresponding condition is returned",and:'Only when the results of the parameters are all logical "true", it returns logical "true", otherwise it returns logical "false"',or:'Only when all parameter values are logically "false", the result is returned as logical "false", otherwise it is returned as logical "true"',concat:"Connect multiple character text or data in cells together"},validation:{required:"it must be required",notMatch:"it not match its validation rule",between:"it is between {} and {}",notBetween:"it is not between {} and {}",notIn:"it is not in list",equal:"it equal to {}",notEqual:"it not equal to {}",lessThan:"it less than {}",lessThanEqual:"it less than or equal to {}",greaterThan:"it greater than {}",greaterThanEqual:"it greater than or equal to {}",downloadImageFail:"download image fail"},error:{pasteForMergedCell:"Unable to do this for merged cells"},calendar:{weeks:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"]},button:{add:"Add",del:"Delete",next:"Next",cancel:"Cancel",remove:"Remove",save:"Save",ok:"OK",previous:"Previous",close:"Close"},sort:{desc:"Sort Z -> A",asc:"Sort A -> Z"},filter:{empty:"empty"},dataValidation:{mode:"Mode",range:"Cell Range",criteria:"Criteria",modeType:{cell:"Cell",column:"Column",row:"Row"},type:{list:"List",number:"Number",date:"Date",phone:"Phone",email:"Email"},operator:{be:"between",nbe:"not between",lt:"less than",lte:"less than or equal to",gt:"greater than",gte:"greater than or equal to",eq:"equal to",neq:"not equal to"}},dataSort:{ci:"Range",criteria:"Order",casesense:"Case Sensitive",sortby:"Sort by",header:"My data has headers",msg:"Please select diffrent columns for sort by fields",msg2:"The select range has merge areas,we do not support sort on merge areas ",order:{asc:"ASC",desc:"DESC"}},dataSearch:{label:"Find what",lkinlb:"Look in",matchwhole:"Match entire contents",lookin:{values:"Values",formulas:"Formulas",comments:"Comments"}},dataComment:{label:"Comment"}},de:{toolbar:{undo:"Rückgängig machen",redo:"Wiederherstellen",paintformat:"Format kopieren/einfügen",clearformat:"Format löschen",format:"Format",font:"Schriftart",fontSize:"Schriftgrad",fontBold:"Fett",fontItalic:"Kursiv",underline:"Betonen",strike:"Streichen",textColor:"Text Farbe",fillColor:"Füllung Farbe",border:"Umrandung",merge:"Zellen verbinden",align:"Waagrechte Ausrichtung",valign:"Vertikale uitlijning",textwrap:"Textumbruch",freeze:"Zelle sperren",formula:"Funktionen",more:"Mehr",commentDefault:"Bitte Text eingeben",commentEdit:"Kommentar bearbeiten",commentRemove:"Kommentar entfernen",commentPrevious:"Vorheriger Kommentar",commentNext:"Nächster Kommentar",insertImage:"Bild einfügen"},menubar:{undo:"Rückgängig machen",redo:"Wiederherstellen",paintformat:"Format kopieren/einfügen",clearformat:"Format löschen",format:"Format",font:"Schriftart",fontSize:"Schriftgrad",fontBold:"Fett",fontItalic:"Kursiv",underline:"Betonen",strike:"Streichen",textColor:"Text Farbe",fillColor:"Füllung Farbe",border:"Umrandung",merge:"Zellen verbinden",align:"Waagrechte Ausrichtung",valign:"Vertikale uitlijning",textwrap:"Textumbruch",freeze:"Zelle sperren",formula:"Funktionen",sort:"Sortieren nach",search:"Suche",more:"Mehr",commentDefault:"Bitte Text eingeben",commentEdit:"Kommentar bearbeiten",commentRemove:"Kommentar entfernen",commentPrevious:"Vorheriger Kommentar",commentNext:"Nächster Kommentar",insertImage:"Bild einfügen",fromURL:"von URL",fromLocal:"von lokalen",menuInsert:"einfügen",menuComment:"Anmerkungen",menuText:"Format",menuFont:"Schriftart",menuEdit:"Herausgeber",menuFile:"Dokumente"},contextmenu:{copy:"Kopieren",cut:"Ausschneiden",paste:"Einfügen",pasteValue:"Nur Werte einfügen",pasteFormat:"Nur Format einfügen",insertRow:"Zeile einfügen",insertColumn:"Spalte einfügen",link:"Link",removeLink:"Link entfernen",editLink:"bearbeiten Link",openLink:"Link öffnen",deleteRow:"Zeile löschen",deleteColumn:"Spalte löschen",deleteCell:"Zelle löschen",deleteCellText:"Zellentext löschen",insertURL:"Bildadresse eingeben",deleteImage:"Bild löschen"},format:{normal:"Regulär",text:"Text",number:"Nummer",percent:"Prozent",rmb:"RMB",usd:"USD",date:"Datum",time:"Termin",datetime:"Datum Termin",duration:"Dauer"},formula:{sum:"Berechnen Sie die Summe einer Reihe von Werten",average:"Berechnen Sie das arithmetische Mittel aller Parameter",max:"Berechnen Sie den Maximalwert in einer Reihe von Zahlen",min:"Berechnen Sie den kleinsten Wert in einer Reihe von Zahlen",concat:"Verbinden Sie Text oder Daten mit mehreren Zeichen in Zellen miteinander",_if:"Entsprechend dem wahren oder falschen Ergebnis der logischen Beurteilung der angegebenen Bedingung wird das durch die entsprechende Bedingung ausgelöste Berechnungsergebnis zurückgegeben",and:'Nur wenn die Ergebnisse der Parameter alle logisch "true" sind, wird logisch "true" zurückgegeben, andernfalls wird logisch "false" zurückgegeben.',or:"Nur wenn alle Parameterwerte logisch „false“ sind, wird das Ergebnis als logisch „false“ zurückgegeben, ansonsten wird es als logisch „true“ zurückgegeben"},dataSort:{ci:"Gebiet",criteria:"Ordnung",casesense:"Groß-/Kleinschreibung",sortby:"Sortiert nach",header:"Meine Daten haben Header",msg:"Bitte wählen Sie verschiedene Spalten für die Sortierung nach Feldern",msg2:"Der Auswahlbereich hat Merge-Bereiche, wir unterstützen keine Sortierung auf Merge-Bereichen",order:{asc:"aufsteigend",desc:"absteigend"}},dataSearch:{label:"Finde was",lkinlb:"Umfang der Suche",matchwhole:"Passen Sie das Ganze",lookin:{values:"Wert",formulas:"Formel",comments:"Kommentar"}},dataComment:{label:"Kommentti"}},nl:{toolbar:{undo:"Ongedaan maken",redo:"Herhalen",print:"Afdrukken",paintformat:"Tekenformaat",clearformat:"Opmaak wissen",format:"Opmaak",fontName:"Lettertypenaam",fontSize:"Lettergrootte",fontBold:"Lettertype vet",fontItalic:"Lettertype cursief",underline:"Onderstreep",strike:"Strike",color:"Tekstkleur",bgcolor:"Vulkleur",border:"Grenzen",merge:"Cellen samenvoegen",unmerge:"Cellen losmaken",align:"Horizontaal uitlijnen",valign:"Verticaal uitlijnen",textwrap:"Tekst omslaan",freeze:"Cel bevriezen",autofilter:"Filteren",formula:"Functies",more:"Meer",sort:"Sorteren",download:"Download",pagination:"Paginering",search:"Zoeken",commentDefault:"Voer tekst in",commentEdit:"Commentaar bewerken",commentRemove:"Commentaar verwijderen",commentPrevious:"Vorige opmerking",commentNext:"Volgende opmerking",insertImage:"Afbeelding invoegen"},menubar:{undo:"Ongedaan maken",redo:"Herhalen",print:"Afdrukken",paintformat:"Tekenformaat",clearformat:"Opmaak wissen",format:"Opmaak",fontName:"Lettertypenaam:",fontSize:"Lettertypegrootte:",fontBold:"Lettertype vet",fontItalic:"Lettertype cursief",underline:"Onderstreep",strike:"Strike",color:"Tekstkleur",bgcolor:"Vulkleur",border:"Grenzen",merge:"Cellen samenvoegen",unmerge:"Cellen losmaken",align:"Horizontaal uitlijnen",valign:"Verticaal uitlijnen",textwrap:"Tekst omslaan",freeze:"Cel bevriezen",autofilter:"Filteren",formula:"Functies",more:"Meer",sort:"Sorteren",download:"Download",download_HTML:"Downloaden als HTML",download_PDF:"Download als PDF",download_Original:"Origineel downloaden",download_XLSX:"Downloaden als XLSX",download_GOOGLE:"Opslaan naar Google Drive",download_DROPBOX:"Opslaan naar Dropbox",pagination:"Paginering",search:"Zoeken",commentDefault:"Voer tekst in",insertSheet:"Blad",insertRow:"Rij",insertColumn:"Kolom",link:"Koppeling",insertComment:"Commentaar",commentEdit:"Commentaar bewerken",commentRemove:"Commentaar verwijderen",commentPrevious:"Vorige opmerking",commentNext:"Volgende opmerking",insertImage:"Afbeelding",fromURL:"Van URL",fromLocal:"Van lokaal",menuInsert:"Invoegen",menuComment:"Herziening",menuText:"Opmaak",menuFont:"Lettertype",menuEdit:"Home",menuFile:"Bestand"},contextmenu:{copy:"Kopiëren",cut:"Snijden",paste:"Plakken",pasteValue:"Alleen waarden plakken",pasteFormat:"Alleen formaat plakken",hide:"Verbergen",insertRow:"Rij invoegen",insertColumn:"Kolom invoegen",deleteSheet:"Verwijderen",deleteRow:"Rij verwijderen",deleteColumn:"Kolom verwijderen",deleteCell:"Cel verwijderen",deleteCellText:"Celtekst verwijderen",validation:"Gegevensvalidaties",sort:"Sorteren",link:"Koppeling",removeLink:"Koppeling verwijderen",editLink:"Koppeling bewerken",openLink:"Koppeling openen",download:"Download",cellprintable:"Exporteren inschakelen",cellnonprintable:"Exporteren uitschakelen",celleditable:"Bewerken inschakelen",cellnoneditable:"Bewerken uitschakelen",insertURL:"Voer het afbeeldingsadres in",deleteImage:"Afbeelding verwijderen",copyImage:"Afbeelding kopiëren",pasteImage:"Afbeelding plakken",merge:"Samenvoegen",unmerge:"Ontsamenvoegen",edit:"Bewerken",clear:"Clear"},link:{emailAddress:"E-mailadres",emailSubject:"Onderwerp",sheetPage:"Documentplaats",sheetCell:"Celverwijzing",linkTypes:{web:"Webpagina",sheet:"Dit document",email:"E-mailadres"},webUrl:"Adres",linkType:"Link naar"},download:{fileName:"Bestandsnaam",saveType:"Opslaan als",saveTypes:{Original:"Origineel",XLSX:"XLSX",PDF:"PDF",HTML:"HTML"}},print:{size:"Papierformaat",orientation:"Pagina-oriëntatie",orientations:['Landschap", "Portret']},format:{normal:"Normaal",text:"Gewone tekst",number:"Aantal",percent:"Percentage",rmb:"RMB",usd:"USD",eur:"EUR",date:"Datum",time:"Tijd",datetime:"Datum tijd",duration:"Duur"},formula:{sum:"Bereken de som van een reeks waarden",average:"Bereken het rekenkundig gemiddelde van alle parameters",max:"Bereken de maximale waarde in een reeks getallen",min:"Bereken de kleinste waarde in een reeks getallen",_if:"Volgens het ware of valse resultaat van de logische beoordeling van de gespecificeerde voorwaarde, wordt het berekeningsresultaat veroorzaakt door de overeenkomstige voorwaarde geretourneerd",and:'Alleen wanneer de resultaten van de parameters logisch "true" zijn, geeft het logisch "true" terug, anders geeft het logisch "false" terug.',or:'Alleen wanneer alle parameterwaarden logisch "false" zijn, wordt het resultaat als logisch "false" geretourneerd, anders wordt het als logisch "true" geretourneerd.',concat:"Meerdere tekentekst of gegevens in cellen met elkaar verbinden"},validation:{required:"het moet verplicht zijn",notMatch:"het komt niet overeen met de validatieregel",between:"Het is tussen {} en {}",notBetween:"Het is niet tussen {} en {}",notIn:"het staat niet in de lijst",equal:"het is gelijk aan {}",notEqual:"het is niet gelijk aan {}",lessThan:"minder dan {}",lessThanEqual:"minder dan of gelijk aan {}",greaterThan:"Het is groter dan {}",greaterThanEqual:"het groter dan of gelijk aan {}",downloadImageFail:"download afbeelding mislukt"},error:{pasteForMergedCell:"Kan dit niet doen voor samengevoegde cellen"},calendar:{weeks:["Zon","Mo","Tue","Wed","Thu","Fr","Sat"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},button:{add:"Toevoegen",del:"Verwijderen",next:"Volgende",cancel:"Annuleren",remove:"Verwijderen",save:"Opslaan",ok:"OK",previous:"Vorige",close:"Sluiten"},sort:{desc:"Sorteren Z -> A",asc:"Sorteren A -> Z"},filter:{empty:"leeg"},dataValidation:{mode:"Mode",range:"Celbereik",criteria:"Criteria",modeType:{cell:"Cel",column:"Kolom",row:"Rij"},type:{list:"Lijst",number:"Aantal",date:"Datum",phone:"Telefoon",email:"E-mail"},operator:{be:"tussen",nbe:"niet tussen",lt:"minder dan",lte:"kleiner dan of gelijk aan",gt:"groter dan",gte:"groter dan of gelijk aan",eq:"gelijk aan",neq:"niet gelijk aan"}},dataSort:{ci:"Bereik",criteria:"Orde",casesense:"Hoofdlettergevoelig",sortby:"Sorteren op",header:"Mijn gegevens hebben koppen",msg:"Selecteer verschillende kolommen om op velden te sorteren",msg2:"Het geselecteerde bereik heeft samenvoegen gebieden, we ondersteunen niet sorteren op samenvoegen gebieden",order:{asc:"ASC",desc:"DESC"}},dataSearch:{label:"Zoek wat",lkinlb:"Kijk binnen",matchwhole:"Volledige inhoud overeenkomen",lookin:{values:"Waarden",formulas:"Formules",comments:"Opmerkingen"}},dataComment:{label:"Commentaar"}},zh:{toolbar:{undo:"撤销",redo:"恢复",print:"打印",paintformat:"格式刷",clearformat:"清除格式",format:"数据格式",fontName:"字体",fontSize:"字号",fontBold:"加粗",fontItalic:"倾斜",underline:"下划线",strike:"删除线",color:"字体颜色",bgcolor:"填充颜色",border:"边框",merge:"合并单元格",align:"水平对齐",valign:"垂直对齐",textwrap:"自动换行",freeze:"冻结",download:"下载",autofilter:"自动筛选",formula:"函数",more:"更多",commentDefault:"请输入文字",commentEdit:"修改批注",commentRemove:"删除批注",commentPrevious:"上一个批注",commentNext:"下一个批注",insertImage:"插入图片"},menubar:{undo:"撤销",redo:"恢复",print:"打印",paintformat:"格式刷",clearformat:"清除格式",format:"数据格式",fontName:"字体",fontSize:"字号",fontBold:"加粗",fontItalic:"倾斜",underline:"下划线",strike:"删除线",color:"字体颜色",bgcolor:"填充颜色",border:"边框",merge:"合并单元格",align:"水平对齐",valign:"垂直对齐",textwrap:"自动换行",freeze:"冻结",sort:"排序",download:"下载",download_HTML:"下载为HTML",download_PDF:"下载为PDF",download_Original:"原格式下载",download_XLSX:"下载为XLSX",download_GOOGLE:"保存到谷歌drive",download_DROPBOX:"保存到Dropbox",search:"搜索",autofilter:"自动筛选",formula:"函数",more:"更多",commentDefault:"请输入文字",commentEdit:"修改批注",commentRemove:"删除批注",commentPrevious:"上一个批注",commentNext:"下一个批注",insertImage:"插入图片",fromURL:"来自URL",fromLocal:"来自本地",menuInsert:"插入",menuComment:"批注",menuText:"格式化",menuFont:"字体",menuEdit:"编辑",menuFile:"文件"},contextmenu:{copy:"复制",cut:"剪切",paste:"粘贴",pasteValue:"粘贴数据",pasteFormat:"粘贴格式",hide:"隐藏",download:"下载",insertRow:"插入行",insertColumn:"插入列",link:"链接",removeLink:"删除链接",editLink:"编辑链接",openLink:"打开链接",deleteSheet:"删除",deleteRow:"删除行",deleteColumn:"删除列",deleteCell:"删除",deleteCellText:"删除数据",validation:"数据验证",cellprintable:"可打印",cellnonprintable:"不可打印",celleditable:"可编辑",cellnoneditable:"不可编辑",insertURL:"输入图片地址",deleteImage:"删除图片"},download:{fileName:"文件名称",saveType:"文件另存为",saveTypes:{Original:"原格式",XLSX:"XLSX",PDF:"PDF",HTML:"HTML"}},link:{emailAddress:"电子邮箱地址",emailSubject:"主题",sheetPage:"文档位置",sheetCell:"单元格引用",linkTypes:{web:"网页",sheet:"文档",email:"电子邮箱"},webUrl:"地址",linkType:"链接到"},print:{size:"纸张大小",orientation:"方向",orientations:["横向","纵向"]},format:{normal:"正常",text:"文本",number:"数值",percent:"百分比",rmb:"人民币",usd:"美元",eur:"欧元",date:"短日期",time:"时间",datetime:"长日期",duration:"持续时间"},formula:{sum:"计算出一组数值的和",average:"计算出所有参数的算术平均值",max:"计算出一组数中的最大值",min:"计算出一组数中的最小值",concat:"将多个字符文本或单元格中的数据连接在一起",_if:"根据对指定条件的逻辑判断的真假结果,返回相对应条件触发的计算结果",and:"仅当有参数的结果均为逻辑 “真(TRUE)” 时返回逻辑 “真(TRUE)”,反之返回逻辑 “假(FALSE)",or:"仅当所有参数值均为逻辑 “假(FALSE)” 时返回结果逻辑 “假(FALSE)”,否则都返回逻辑 “真(TRUE)"},validation:{required:"此值必填",notMatch:"此值不匹配验证规则",between:"此值应在 {} 和 {} 之间",notBetween:"此值不应在 {} 和 {} 之间",notIn:"此值不在列表中",equal:"此值应该等于 {}",notEqual:"此值不应该等于 {}",lessThan:"此值应该小于 {}",lessThanEqual:"此值应该小于等于 {}",greaterThan:"此值应该大于 {}",greaterThanEqual:"此值应该大于等于 {}",downloadImageFail:"下载图片失败"},error:{pasteForMergedCell:"无法对合并的单元格执行此操作"},calendar:{weeks:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},button:{next:"下一步",cancel:"取消",remove:"删除",save:"保存",ok:"确认",previous:"上一步",close:"关闭"},sort:{desc:"降序",asc:"升序"},filter:{empty:"空白"},dataValidation:{mode:"模式",range:"单元区间",criteria:"条件",modeType:{cell:"单元格",column:"列模式",row:"行模式"},type:{list:"列表",number:"数字",date:"日期",phone:"手机号",email:"电子邮件"},operator:{be:"在区间",nbe:"不在区间",lt:"小于",lte:"小于等于",gt:"大于",gte:"大于等于",eq:"等于",neq:"不等于"}},dataSort:{ci:"区域",criteria:"顺序",casesense:"区分大小写",sortby:"排序按照",header:"我的数据有标题",msg:"请选择不同的列作为排序参照",msg2:"当前选择的区域有合并区域,不支持对合并区域进行排序",order:{asc:"升序",desc:"降序"}},dataSearch:{label:"关键词",lkinlb:"查找范围",matchwhole:"匹配整个",lookin:{values:"值",formulas:"公式",comments:"注释"}},dataComment:{label:"批注"}},ru:{toolbar:{undo:"открыть",redo:"повторить",print:"печать",paintformat:"нарисовать формат",clearformat:"Очистить формат",format:"Общие положения",fontName:"название шрифта",fontSize:"размер шрифта",fontBold:"жирный шрифт",fontItalic:"курсивный шрифт",underline:"подчёркивать",strike:"забастовка",color:"цвет текста",bgcolor:"цвет заполнения",border:"граница",merge:"Объединить ячейки",unmerge:"отменить Объединение ячеек",align:"Выравнивание по горизонтали",valign:"Выравнивание по вертикали",textwrap:"перенос текста",freeze:"замораживать ячейки",autofilter:"фильтр",formula:"функция",more:"больше",sort:"классификация",download:"загрузка",pagination:"номер страницы",search:"поиск",commentDefault:"Введите текст",commentEdit:"редактировать комментарий",commentRemove:"Удалить комментарий",commentPrevious:"предыдущий комментарий",commentNext:"следующий комментарий",insertImage:"Вставить изображение"},menubar:{undo:"открыть",redo:"повторить",print:"печать",paintformat:"нарисовать формат",clearformat:"Очистить формат",format:"Общие положения",fontName:"имя шрифта:",fontSize:"размер шрифта:",fontBold:"жирный шрифт",fontItalic:"курсивный шрифт",underline:"подчёркивать",strike:"забастовка",color:"цвет текста",bgcolor:"цвет заполнения",border:"граница",merge:"Объединить ячейки",unmerge:"отменить Объединение ячеек",align:"Выравнивание по горизонтали",valign:"Выравнивание по вертикали",textwrap:"перенос текста",freeze:"замораживать ячейки",autofilter:"фильтр",formula:"функция",more:"больше",sort:"классификация",download:"загрузка",download_HTML:"Загрузка в HTML",download_PDF:"Загрузка в PDF",download_Original:"Загрузить оригинал",download_XLSX:"загрузка XLISX",pagination:"номер страницы",search:"поиск",commentDefault:"Введите текст",insertSheet:"простыня",insertRow:"строка",insertColumn:"столбец",link:"ссылка",insertComment:"рассуждение",commentEdit:"редактировать комментарий",commentRemove:"Удалить комментарий",commentPrevious:"предыдущий комментарий",commentNext:"следующий комментарий",insertImage:"образ",fromURL:"URL",fromLocal:"из",menuInsert:"Вставить",menuComment:"оглядываться",menuText:"Общие положения",menuFont:"шрифт",menuEdit:"жилище",menuFile:"Документация"},contextmenu:{copy:"копировать",cut:"резать",paste:"Вставить",pasteValue:"только вставить значение",pasteFormat:"только вставить формат",hide:"Скрыть",insertRow:"Вставить строки",insertColumn:"Вставить столбцы",deleteSheet:"Исключить",deleteRow:"Удалить строки",deleteColumn:"Удалить столбец",deleteCell:"Удалить ячейку",deleteCellText:"Удалить текст ячейки",validation:"проверка данных",sort:"классификация",link:"ссылка",removeLink:"Удалить ссылку",editLink:"Изменить ссылку",openLink:"Открыть ссылку",download:"загрузка",cellprintable:"Включить экспорт",cellnonprintable:"Отключить экспорт",celleditable:"Включить редактор",cellnoneditable:"Отключить правку",insertURL:"Введите адрес изображения",deleteImage:"Удалить изображение",copyImage:"Копировать изображение",pasteImage:"Вставить изображение",merge:"объединить",unmerge:"отменить объединение",edit:"редактор",clear:"Очистить"},link:{emailAddress:"адрес электронной почты",emailSubject:"тема",sheetPage:"расположение документа",sheetCell:"ссылка на ячейку",linkTypes:{web:"страница",sheet:"Настоящий документ",email:"адрес электронной почты"},webUrl:"адрес",linkType:"ссылка на"},download:{fileName:"имя файла",saveType:"Сохранить как",saveTypes:{Original:"начальный",XLSX:"XLISX",PDF:"формат PDF",HTML:"HTML"}},print:{size:"размер бумаги",orientation:"направление страницы",orientations:["продольный, поперечный"]},format:{normal:"типичный",text:"чистый текст",number:"цифра",percent:"процент",rmb:"юань",usd:"доллар",eur:"евро",date:"дата",time:"время",datetime:"дата",duration:"период"},formula:{sum:"вычислить сумму значений группы",average:"вычислить среднее арифметическое по всем параметрам",max:"вычислить максимальное значение в группе чисел",min:"вычислить минимальное значение в группе чисел",_if:"возвращает результат вычисления, срабатывающий при выполнении соответствующих условий",and:'возвращает логическое "true" только в том случае, если результат логически "true", иначе возвращается логическое "false"',or:'только когда все значения параметра логически равны "false", результат возвращается к логическому "false", иначе возвращается к логическому "true"',concat:"соединять текст или данные в ячейке"},validation:{required:"Это должно быть необходимо",notMatch:"не совпадает с правилами проверки",between:"между {и {и}",notBetween:"не между {и {и}",notIn:"Его нет в списке",equal:"равно {равно}",notEqual:"не равно {равно}",lessThan:"меньше чем {}",lessThanEqual:"меньше или равно {}",greaterThan:"Это больше",greaterThanEqual:"больше или равно {}",downloadImageFail:"Ошибка загрузки образа"},error:{pasteForMergedCell:"Не удаётся выполнить эту операцию в сводной ячейке"},calendar:{weeks:["Воскресенье","понедельник","вторник","среда","четверг","Пятница","суббота"],months:["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},button:{add:"Добавить",del:"Исключить",next:"След.",cancel:"отмена",remove:"удаление",save:"спасти",ok:"OK",previous:"предыдущий",close:"Гуань"},sort:{desc:"сортировка Z - > A",asc:"сортировка A - > Z"},filter:{empty:"пустой"},dataValidation:{mode:"режим",range:"диапазон ячеек",criteria:"стандарт",modeType:{cell:"одиночная камера",column:"столбец",row:"строка"},type:{list:"список",number:"цифра",date:"дата",phone:"телефон",email:"электронная почта"},operator:{be:"между",nbe:"не между",lt:"меньше",lte:"меньше или равно",gt:"больше чем",gte:"больше или равно",eq:"равно",neq:"не равно"}},dataSort:{ci:"Сфера применения",criteria:"порядок",casesense:"различать размер",sortby:"сортировка",header:"мои данные имеют заголовки",msg:'Выберите другую колонку для поля "база сортировки"',msg2:"Выберите диапазон, в котором будут объединены области, которые мы не поддерживаем.",order:{asc:"ASC Corporation",desc:"описание"}},dataSearch:{label:"искать что",lkinlb:"посетить",matchwhole:"согласовать всё содержимое",lookin:{values:"ценность",formulas:"формула",comments:"Замечания"}},dataComment:{label:"рассуждение"}},es:{toolbar:{undo:"Abrir",redo:"Rehacer",print:"Imprimir",paintformat:"Formato de dibujo",clearformat:"Formato claro",format:"Disposiciones generales",fontName:"Nombre de la fuente",fontSize:"Tamaño de la fuente",fontBold:"Negrita de tipo de letra",fontItalic:"Cursiva",underline:"Enfatizar",strike:"Huelga",color:"Color del texto",bgcolor:"Color de relleno",border:"Límite",merge:"Fusionar celdas",unmerge:"Unmerge Cells",align:"Alineación horizontal",valign:"Alineación vertical",textwrap:"Salto de línea de texto",freeze:"Congelar celdas",autofilter:"Filtro",formula:"Función",more:"Más",sort:"Clasificación",download:"Descargar",pagination:"Número de página",search:"Buscar",commentDefault:"Por favor, introduzca texto",commentEdit:"Editar Notas",commentRemove:"Eliminar comentarios",commentPrevious:"Comentario anterior",commentNext:"Siguiente comentario",insertImage:"Insertar imagen"},menubar:{undo:"Abrir",redo:"Rehacer",print:"Imprimir",paintformat:"Formato de dibujo",clearformat:"Formato claro",format:"Disposiciones generales",fontName:"Nombre de la Fuente:",fontSize:"Tamaño de la Fuente:",fontBold:"Negrita de tipo de letra",fontItalic:"Cursiva",underline:"Enfatizar",strike:"Huelga",color:"Color del texto",bgcolor:"Color de relleno",border:"Límite",merge:"Fusionar celdas",unmerge:"Unmerge Cells",align:"Alineación horizontal",valign:"Alineación vertical",textwrap:"Salto de línea de texto",freeze:"Congelar celdas",autofilter:"Filtro",formula:"Función",more:"Más",sort:"Clasificación",download:"Descargar",download_HTML:"Descargar como HTML",download_PDF:"Descargar como PDF",download_Original:"Descargar el original",download_XLSX:"Descargar como xlsx",download_GOOGLE:"Guardar en Google Drive",download_DROPBOX:"Guardar en Dropbox",pagination:"Número de página",search:"Buscar",commentDefault:"Por favor, introduzca texto",insertSheet:"Sábanas",insertRow:"Una línea",insertColumn:"Columna",link:"Enlace",insertComment:"Comentario",commentEdit:"Editar Notas",commentRemove:"Eliminar comentarios",commentPrevious:"Comentario anterior",commentNext:"Siguiente comentario",insertImage:"Imagen",fromURL:"De URL",fromLocal:"Local",menuInsert:"Insertar",menuComment:"Examen",menuText:"Disposiciones generales",menuFont:"Tipo de letra",menuEdit:"Hogar",menuFile:"Documentación"},contextmenu:{copy:"Copiar",cut:"Cortar",paste:"Pegar",pasteValue:"Pegar sólo valores",pasteFormat:"Pegar sólo formato",hide:"Ocultar",insertRow:"Insertar fila",insertColumn:"Insertar columna",deleteSheet:"Tachar",deleteRow:"Eliminar fila",deleteColumn:"Eliminar columnas",deleteCell:"Eliminar celdas",deleteCellText:"Borrar texto de celda",validation:"Validación de datos",sort:"Clasificación",link:"Enlace",removeLink:"Eliminar enlace",editLink:"Editar enlace",openLink:"Abrir enlace",download:"Descargar",cellprintable:"Activar exportación",cellnonprintable:"Desactivar exportación",celleditable:"Habilitar edición",cellnoneditable:"Desactivar edición",insertURL:"Introduzca la dirección de la imagen",deleteImage:"Borrar imagen",copyImage:"Copiar imagen",pasteImage:"Pegar imagen",merge:"Fusión",unmerge:"Cancelar fusión",edit:"Editar",clear:"Claro"},link:{emailAddress:"Dirección de correo electrónico",emailSubject:"Tema",sheetPage:"Ubicación del documento",sheetCell:"Referencia de celda",linkTypes:{web:"Página web",sheet:"Este documento",email:"Dirección de correo electrónico"},webUrl:"Dirección",linkType:"Enlace a"},download:{fileName:"Nombre del archivo",saveType:"Guardar como",saveTypes:{Original:"Original",XLSX:"Xlsx",PDF:"PDF",HTML:"Html"}},print:{size:"Tamaño del papel",orientation:"Orientación de la página",orientations:['Transversal "," longitudinal']},format:{normal:"Típico",text:"Texto plano",number:"Número",percent:"Porcentaje",rmb:"RMB Yuan",usd:"Dólar estadounidense",eur:"Euro",date:"Fecha",time:"Tiempo",datetime:"Fecha y hora",duration:"Período"},formula:{sum:"Calcular la suma de un conjunto de valores",average:"Calcular la media aritmética de todos los parámetros",max:"Calcular el valor máximo de un conjunto de números",min:"Calcular el valor mínimo de un conjunto de números",_if:"Devuelve el resultado del cálculo desencadenado por la condición correspondiente de acuerdo con el juicio lógico de la condición especificada.",and:'Devuelve la lógica "true" sólo cuando el resultado de todos los parámetros es "true" lógico, de lo contrario devuelve la lógica "False".',or:'El resultado sólo se devuelve como "falso" lógico cuando todos los valores de los parámetros son lógicamente "falso", de lo contrario se devuelve como "verdadero" lógico.',concat:"Unir texto o datos de múltiples caracteres en una celda"},validation:{required:"Debe ser necesario",notMatch:"No coincide con las reglas de validación",between:"Está entre {} y {}",notBetween:"No está entre {} y {}",notIn:"No está en la lista",equal:"Igual a {}",notEqual:"No es igual a {}",lessThan:"Menos de {}",lessThanEqual:"Es menor o igual a {}",greaterThan:"Es mayor que {}",greaterThanEqual:"Es mayor o igual a {}",downloadImageFail:"Falló la descarga de la imagen"},error:{pasteForMergedCell:"No se puede hacer esto en celdas fusionadas"},calendar:{weeks:["Domingo","lunes","martes","miércoles","jueves","viernes","sábado"],months:["Enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},button:{add:"Añadir",del:"Tachar",next:"Siguiente",cancel:"Cancelar",remove:"Eliminación",save:"Salvación",ok:"Muy bien.",previous:"Anterior",close:"Cerrar"},sort:{desc:"Ordenar z - > a",asc:"Ordenar a - > Z"},filter:{empty:"Vacío"},dataValidation:{mode:"Patrón",range:"Rango de celdas",criteria:"Normas",modeType:{cell:"Celda individual",column:"Columna",row:"Una línea"},type:{list:"Lista",number:"Número",date:"Fecha",phone:"Teléfono",email:"Correo electrónico"},operator:{be:"Entre",nbe:"No entre los dos",lt:"Menos",lte:"Inferior o igual a",gt:"Mayor que",gte:"Mayor o igual a",eq:"Igual a",neq:"No es igual a"}},dataSort:{ci:"Ámbito de aplicación",criteria:"Orden",casesense:"Sensible a mayúsculas",sortby:"Ordenar por",header:"Mis datos tienen un título",msg:"Seleccione una column a diferente para el campo ordenar por",msg2:"Los rangos de selección tienen regiones fusionadas, no soportamos ordenar en regiones fusionadas",order:{asc:"ASC",desc:"Descripción"}},dataSearch:{label:"Encontrar qué",lkinlb:"Visita",matchwhole:"Coincide con todo el contenido",lookin:{values:"Valores",formulas:"Fórmula",comments:"Comentario"}},dataComment:{label:"Comentario"}},pt:{toolbar:{undo:"Desfazer",redo:"Refazer",print:"Imprimir",paintformat:"Formato da pintura",clearformat:"Limpar o formato",format:"Formato",fontName:"Nome do Tipo de Letra",fontSize:"Tamanho do tipo de letra",fontBold:"Tipo de letra negrito",fontItalic:"Tipo de letra itálico",underline:"Sublinhado",strike:"Strike",color:"Cor do texto",bgcolor:"Cor do preenchimento",border:"Bordas",merge:"Juntar as células",unmerge:"Desmesclar as células",align:"Alinhamento horizontal",valign:"Alinhamento vertical",textwrap:"Envolvimento do texto",freeze:"Célula congelada",autofilter:"Filtro",formula:"Funções",more:"Mais",sort:"Ordenar",download:"Transferir",pagination:"Paginação",search:"Procurar",commentDefault:"Indique por favor o texto",commentEdit:"Editar comentário",commentRemove:"Remover comentário",commentPrevious:"Comentário anterior",commentNext:"Próximo comentário",insertImage:"Inserir imagem"},menubar:{undo:"Desfazer",redo:"Refazer",print:"Imprimir",paintformat:"Formato da pintura",clearformat:"Limpar o formato",format:"Formato",fontName:"Nome do tipo de letra:",fontSize:"Tamanho do tipo de letra:",fontBold:"Tipo de letra negrito",fontItalic:"Tipo de letra itálico",underline:"Sublinhado",strike:"Strike",color:"Cor do texto",bgcolor:"Cor do preenchimento",border:"Bordas",merge:"Juntar as células",unmerge:"Desmesclar as células",align:"Alinhamento horizontal",valign:"Alinhamento vertical",textwrap:"Envolvimento do texto",freeze:"Célula congelada",autofilter:"Filtro",formula:"Funções",more:"Mais",sort:"Ordenar",download:"Transferir",download_HTML:"Transferir Como HTML",download_PDF:"Transferir Como PDF",download_Original:"Obter Original",download_XLSX:"Obter Como XLSX",download_GOOGLE:"Gravar para Google Drive",download_DROPBOX:"Gravar para Dropbox",pagination:"Paginação",search:"Procurar",commentDefault:"Indique por favor o texto",insertSheet:"Folha",insertRow:"Linha",insertColumn:"Coluna",link:"Ligação",insertComment:"Comentário",commentEdit:"Editar comentário",commentRemove:"Remover comentário",commentPrevious:"Comentário anterior",commentNext:"Próximo comentário",insertImage:"Imagem",fromURL:"Do URL",fromLocal:"Do Local",menuInsert:"Inserir",menuComment:"Revisão",menuText:"Formato",menuFont:"Tipo de Letra",menuEdit:"Casa",menuFile:"Ficheiro"},contextmenu:{copy:"Copiar",cut:"Cortar",paste:"Colar",pasteValue:"Colar apenas valores",pasteFormat:"Colar apenas o formato",hide:"Esconder",insertRow:"Inserir linha",insertColumn:"Inserir coluna",deleteSheet:"Apagar",deleteRow:"Apagar a linha",deleteColumn:"Apagar a coluna",deleteCell:"Apagar a célula",deleteCellText:"Apagar o texto da célula",validation:"Validações dos dados",sort:"Ordenar",link:"Ligação",removeLink:"Remover a Ligação",editLink:"Editar a Ligação",openLink:"Abrir Ligação",download:"Transferir",cellprintable:"Activar a exportação",cellnonprintable:"Desactivar a exportação",celleditable:"Activar a edição",cellnoneditable:"Desactivar a edição",insertURL:"Indique o endereço da imagem",deleteImage:"Apagar a imagem",copyImage:"Copiar a imagem",pasteImage:"Colar a imagem",merge:"Juntar",unmerge:"Desmesclar",edit:"Editar",clear:"Limpar"},link:{emailAddress:"Endereço de E- mail",emailSubject:"Assunto",sheetPage:"Local do Documento",sheetCell:"Referência da Célula",linkTypes:{web:"Página Web",sheet:"Este Documento",email:"Endereço de E- mail"},webUrl:"Endereço",linkType:"Ligar para"},download:{fileName:"Nome do Ficheiro",saveType:"Gravar Como",saveTypes:{Original:"Original",XLSX:"XLSX",PDF:"PDF",HTML:"HTML"}},print:{size:"Tamanho do papel",orientation:"Orientação da página",orientations:['Paisagem", "Retrato']},format:{normal:"Normal",text:"Texto Simples",number:"Número",percent:"Percentagem",rmb:"RMB",usd:"USD",eur:"EUR",date:"Data",time:"Tempo",datetime:"Data e hora",duration:"Duração"},formula:{sum:"Calcular a soma de um conjunto de valores",average:"Calcular a média aritmética de todos os parâmetros",max:"Calcular o valor máximo em um conjunto de números",min:"Calcular o menor valor em um conjunto de números",_if:"De acordo com o resultado verdadeiro ou falso do julgamento lógico da condição especificada, o resultado do cálculo desencadeado pela condição correspondente é retornado",and:'Somente quando os resultados dos parâmetros são todos lógicos "true", retorna lógico "true", caso contrário retorna lógico "false"',or:'Somente quando todos os valores dos parâmetros são logicamente "false", o resultado é retornado como lógico "false", caso contrário é retornado como lógico "true"',concat:"Conecte texto de vários caracteres ou dados em células juntos"},validation:{required:"deve ser exigido",notMatch:"não corresponde à sua regra de validação",between:"é entre {} e {}",notBetween:"não é entre {} e {}",notIn:"não está na lista",equal:"é igual a {}",notEqual:"não é igual a {}",lessThan:"menos que {}",lessThanEqual:"menor ou igual a {}",greaterThan:"maior que {}",greaterThanEqual:"maior ou igual a {}",downloadImageFail:"falha na transferência da imagem"},error:{pasteForMergedCell:"Não é possível fazer isto para células fundidas"},calendar:{weeks:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"]},button:{add:"Adicionar",del:"Apagar",next:"Próximo",cancel:"Cancelar",remove:"Remover",save:"Gravar",ok:"OK",previous:"Anterior",close:"Fechar"},sort:{desc:"Ordenar Z -> A",asc:"Ordenar A -> Z"},filter:{empty:"vazio"},dataValidation:{mode:"Modo",range:"Intervalo de Células",criteria:"Critérios",modeType:{cell:"Célula",column:"Coluna",row:"Linha"},type:{list:"Lista",number:"Número",date:"Data",phone:"Telefone",email:"E- mail"},operator:{be:"entre",nbe:"não entre",lt:"menos de",lte:"inferior ou igual a",gt:"maior que",gte:"maior ou igual a",eq:"igual a",neq:"não igual a"}},dataSort:{ci:"Intervalo",criteria:"Ordem",casesense:"Sensível à maiúscula",sortby:"Ordenar por",header:"Os meus dados têm cabeçalhos",msg:"Seleccione por favor colunas diferentes para ordenar por campos",msg2:"O intervalo de seleção tem áreas de mesclagem, não suportamos classificação em áreas de mesclagem",order:{asc:"ASC",desc:"DESC"}},dataSearch:{label:"Encontrar o quê",lkinlb:"Olhe para dentro",matchwhole:"Corresponder ao conteúdo inteiro",lookin:{values:"Valores",formulas:"Fórmulas",comments:"Observações"}},dataComment:{label:"Comentário"}}};function N(t,e){if(e){var i,n=L(B);try{for(n.s();!(i=n.n()).done;){var r=i.value;if(!e[r])break;for(var o=e[r],a=t.match(/(?:\\.|[^.])+/g),s=0;s<a.length;s+=1){var l=o[a[s]];if(!l)break;if(s===a.length-1)return l;o=l}}}catch(t){n.e(t)}finally{n.f()}}}function W(t){var e=N(t,H);return!e&&window&&window.x_spreadsheet&&window.x_spreadsheet.$messages&&(e=N(t,window.x_spreadsheet.$messages)),e||""}function X(t){return function(){return W(t)}}function U(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i?B=[t]:B.unshift(t),e&&(H[t]=e)}function Y(t){H[t]||(t="en"),B[0]=t}var V={phone:/^[1-9]\d{10}$/,email:/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/};function G(t,e){var i="";if(!t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];i=W.apply(void 0,["validation.".concat(e)].concat(r))}return[t,i]}var q=function(){function t(e,i,n,r){l()(this,t),this.required=i,this.value=n,this.type=e,this.operator=r,this.message=""}return a()(t,[{key:"parseValue",value:function(t){var e=this.type;return"date"===e?new Date(t):"number"===e?Number(t):t}},{key:"equals",value:function(t){var e=this.type===t.type&&this.required===t.required&&this.operator===t.operator;return e&&(e=Array.isArray(this.value)?F.arrayEquals(this.value,t.value):this.value===t.value),e}},{key:"values",value:function(){return this.value.split(",")}},{key:"validate",value:function(t){var e=this.required,i=this.operator,n=this.value,o=this.type;if(e&&/^\s*$/.test(t))return G(!1,"required");if(/^\s*$/.test(t))return[!0];if(V[o]&&!V[o].test(t))return G(!1,"notMatch");if("list"===o)return G(this.values().includes(t),"notIn");if(i){var a=this.parseValue(t);if("be"===i){var s=r()(n,2),l=s[0],c=s[1];return G(a>=this.parseValue(l)&&a<=this.parseValue(c),"between",l,c)}if("nbe"===i){var h=r()(n,2),u=h[0],f=h[1];return G(a<this.parseValue(u)||a>this.parseValue(f),"notBetween",u,f)}if("eq"===i)return G(a===this.parseValue(n),"equal",n);if("neq"===i)return G(a!==this.parseValue(n),"notEqual",n);if("lt"===i)return G(a<this.parseValue(n),"lessThan",n);if("lte"===i)return G(a<=this.parseValue(n),"lessThanEqual",n);if("gt"===i)return G(a>this.parseValue(n),"greaterThan",n);if("gte"===i)return G(a>=this.parseValue(n),"greaterThanEqual",n)}return[!0]}}]),t}(),K=function(){function t(e,i,n){l()(this,t),this.refs=i,this.mode=e,this.validator=n}return a()(t,[{key:"includes",value:function(t,e){for(var i=this.refs,n=0;n<i.length;n+=1){if(x.valueOf(i[n]).includes(t,e))return!0}return!1}},{key:"addRef",value:function(t){this.remove(x.valueOf(t)),this.refs.push(t)}},{key:"remove",value:function(t){var e=[];this.refs.forEach((function(i){var n=x.valueOf(i);n.intersects(t)?n.difference(t).forEach((function(t){return e.push(t.toString())})):e.push(i)})),this.refs=e}},{key:"getData",value:function(){var t=this.refs,e=this.mode,i=this.validator;return{refs:t,mode:e,type:i.type,required:i.required,operator:i.operator,value:i.value}}}],[{key:"valueOf",value:function(e){var i=e.refs,n=e.mode,r=e.type,o=e.required,a=e.operator,s=e.value;return new t(n,i,new q(r,o,s,a))}}]),t}(),Z=function(){function t(){l()(this,t),this._=[],this.errors=new Map}return a()(t,[{key:"getError",value:function(t,e){return this.errors.get("".concat(t,"_").concat(e))}},{key:"validate",value:function(t,e,i){var n=this.get(t,e),o="".concat(t,"_").concat(e),a=this.errors;if(null!==n){var s=n.validator.validate(i),l=r()(s,2),c=l[0],h=l[1];c?a.delete(o):a.set(o,h)}else a.delete(o);return!0}},{key:"add",value:function(t,e,i){var n=i.type,r=i.required,o=i.value,a=i.operator,s=new q(n,r,o,a),l=this.getByValidator(s);null!==l?l.addRef(e):this._.push(new K(t,[e],s))}},{key:"getByValidator",value:function(t){for(var e=0;e<this._.length;e+=1){var i=this._[e];if(i.validator.equals(t))return i}return null}},{key:"get",value:function(t,e){for(var i=0;i<this._.length;i+=1){var n=this._[i];if(n.includes(t,e))return n}return null}},{key:"remove",value:function(t){var e="".concat(t.sri,"_").concat(t.sci);this.errors.has(e)&&this.errors.delete(e),this.each((function(e){e.remove(t)}))}},{key:"each",value:function(t){this._.forEach((function(e){return t(e)}))}},{key:"getData",value:function(){return this._.filter((function(t){return t.refs.length>0})).map((function(t){return t.getData()}))}},{key:"setData",value:function(t){this._=t.map((function(t){return K.valueOf(t)}))}}]),t}(),J=function t(){l()(this,t),this.keywords="",this.current=1,this.result=[]},Q=i(3),tt=i.n(Q),et=i(4),it=i.n(et),nt=i(1),rt=i.n(nt),ot="x-spreadsheet";window.devicePixelRatio;function at(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var st=function(t){tt()(i,t);var e=at(i);function i(t){var n;return l()(this,i),(n=e.call(this,"div","".concat(ot,"-icon"))).iconNameEl=f("div","".concat(ot,"-icon-img ").concat(t)),n.child(n.iconNameEl),n}return a()(i,[{key:"setName",value:function(t){this.iconNameEl.className("".concat(ot,"-icon-img ").concat(t))}}]),i}(u);function lt(t,e,i){var n=f("div","".concat(ot,"-toast")),r=f("div","".concat(ot,"-dimmer active"));n.children(f("div","".concat(ot,"-toast-header")).children(new st("close").on("click.stop",(function(){return document.body.removeChild(n.el),document.body.removeChild(r.el),void(i&&i())})),t),f("div","".concat(ot,"-toast-content")).html(e)),document.body.appendChild(n.el),document.body.appendChild(r.el);var o=n.box(),a=o.width,s=o.height,l=document.documentElement,c=l.clientHeight,h=l.clientWidth;n.offset({left:(h-a)/2,top:(c-s)/3})}var ct={mode:"edit",updateMode:"client",updateUrl:"",folderName:"",fileName:"",view:{height:function(){return document.documentElement.clientHeight},width:function(){return document.documentElement.clientWidth}},showToolbar:!0,showPartToolbar:!1,showContextmenu:!0,row:{len:100,height:25},col:{len:26,width:100,indexWidth:60,minWidth:60},style:{align:"left",valign:"middle",textwrap:!1,strike:!1,underline:!1,color:"#0a0a0a",font:{name:"Arial",size:10,bold:!1,italic:!1},format:"normal"}};function ht(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},n=this.merges,o=e.clone(),a=t.size(),s=r()(a,2),l=s[0],c=s[1],h=e.size(),u=r()(h,2),f=u[0],d=u[1];return l>f&&(o.eri=e.sri+l-1),c>d&&(o.eci=e.sci+c-1),this.getRangeLocked(o)?(i("Protected worksheet,the target area contains locked cells"),!1):n.intersects(o)?(i(W("error.pasteForMergedCell")),!1):t.equals(o)?(i("The selection area is same "),!1):!t.intersects(o)||!(f>l&&Math.abs(e.sri-t.sri)%l!=0||d>c&&Math.abs(e.sci-t.sci)%c!=0)||(i("Invalid selection area"),!1)}function ut(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=this.rows,a=this.merges,s=this.name,l=o.copyPaste(t,e,i,n,(function(t,e,i){if(i&&i.merge){var n=r()(i.merge,2),o=n[0],s=n[1];if(o<=0&&s<=0)return;a.add(new x(t,e,t+o,e+s))}}));n?this.updateBatchCellsOpr(s,l,t,e,i):this.copyPasteRangeOpr(s,t,e,i)}function ft(t,e){var i=this.clipboard,n=this.rows,r=this.merges,o=this.name;n.cutPaste(t,e),r.move(t,e.sri-t.sri,e.sci-t.sci),i.clear(),this.cutPasteRangeOpr(o,t,e)}function dt(t,e,i){var n=this.styles,r=this.rows.getCellOrNew(t,e),o={};void 0!==r.style&&(o=F.cloneDeep(n[r.style])),o=F.merge(o,{border:i}),r.style=this.addStyle(o)}function vt(t){var e=this,i=t.mode,n=t.style,o=t.color,a=this.styles,s=this.selector,l=this.rows,c=s.range,h=c.sri,u=c.sci,f=c.eri,d=c.eci,v=!this.isSignleSelected();if(v||"inside"!==i&&"horizontal"!==i&&"vertical"!==i)if("outside"!==i||v){if("none"===i)s.range.each((function(t,i){var n=l.getCell(t,i);if(n&&void 0!==n.style){var r=F.cloneDeep(a[n.style]);delete r.border,n.style=e.addStyle(r)}}));else if("all"===i||"inside"===i||"outside"===i||"horizontal"===i||"vertical"===i)!function(){for(var t=[],a=h;a<=f;a+=1)for(var s=u;s<=d;s+=1){for(var c=[],g=0;g<t.length;g+=1){var p=r()(t[g],4),m=p[0],y=p[1],b=p[2],w=p[3];if(a===m+b+1&&c.push(g),m<=a&&a<=m+b&&s===y){s+=w+1;break}}if(c.forEach((function(e){return t.splice(e,1)})),s>d)break;var x=l.getCell(a,s),C=0,k=0;if(x&&x.merge){var _=r()(x.merge,2);C=_[0],k=_[1],t.push([a,s,C,k])}var S=C>0&&a+C===f,T=k>0&&s+k===d,O={};"all"===i?O={bottom:[n,o],top:[n,o],left:[n,o],right:[n,o]}:"inside"===i?(!T&&s<d&&(O.right=[n,o]),!S&&a<f&&(O.bottom=[n,o])):"horizontal"===i?!S&&a<f&&(O.bottom=[n,o]):"vertical"===i?!T&&s<d&&(O.right=[n,o]):"outside"===i&&v&&(h===a&&(O.top=[n,o]),(S||f===a)&&(O.bottom=[n,o]),u===s&&(O.left=[n,o]),(T||d===s)&&(O.right=[n,o])),Object.keys(O).length>0&&dt.call(e,a,s,O),s+=k}}();else if("top"===i||"bottom"===i)for(var g=u;g<=d;g+=1)"top"===i&&(dt.call(this,h,g,{top:[n,o]}),g+=l.getCellMerge(h,g)[1]),"bottom"===i&&(dt.call(this,f,g,{bottom:[n,o]}),g+=l.getCellMerge(f,g)[1]);else if("left"===i||"right"===i)for(var p=h;p<=f;p+=1)"left"===i&&(dt.call(this,p,u,{left:[n,o]}),p+=l.getCellMerge(p,u)[0]),"right"===i&&(dt.call(this,p,d,{right:[n,o]}),p+=l.getCellMerge(p,d)[0])}else dt.call(this,h,u,{top:[n,o],bottom:[n,o],left:[n,o],right:[n,o]})}function gt(t,e){var i=this.rows,n=this.scroll,r=this.freezeTotalHeight(),o=this.settings.row.height,a=this.exceptRowSet;0===n.riact&&this.freeze[0]>0&&(n.riact=this.freeze[0]);var s=o+r,l=t>s?n.riact:0;0===l&&(s=o);for(var c=0;l<i.len&&!(s>t);l+=1)a.has(l)||(s+=c=i.getHeight(l));return{ri:l-1,top:s-=c,height:c}}function pt(t,e){var i=this.cols,n=this.displayRight2Left,o=this.freezeTotalWidth(),a=i.indexWidth;if(n){var s=this.viewWidth();o+i.indexWidth<s-t&&(a-=e);var l=F.rangeReduceIf(0,i.len,a,i.indexWidth,s-t,(function(t){return i.getWidth(t)})),c=r()(l,3),h=c[0],u=c[1],f=c[2];return u<=0?{ci:-1,left:s,width:i.indexWidth}:{ci:h-1,left:s-u,width:f}}o+i.indexWidth<t&&(a-=e);var d=F.rangeReduceIf(0,i.len,a,i.indexWidth,t,(function(t){return i.getWidth(t)})),v=r()(d,3),g=v[0],p=v[1],m=v[2];return p<=0?{ci:-1,left:0,width:i.indexWidth}:{ci:g-1,left:p,width:m}}var mt=function(){function t(e,i){l()(this,t),this.settings=F.merge(ct,i||{}),this.name=e||"sheet",this.freeze=[0,0],this.styles=[],this.merges=new A,this.rows=new M(this.settings.row),this.cols=new j(this.settings.col),this.validations=new Z,this.hyperlinks=[],this.comments=[],this.viewRangeCache={},this.highlighttxts=[],this.highlightrg=[],this.highlighshapes=[],this.highlighimgs=[],this.highlightIR=null,this.highlightall=!1,this.showhighlight=!1,this.highlightstyle=null,this.selector=new k,this.scroll=new _,this.history=new S,this.updateRows=new Set,this.updateCols=new Set,this.updateRowsHeight=new Set,this.clipboard=new T,this.autoFilter=new R,this.TableAutoFilters=[],this.change=function(){},this.updateCellsData=function(){},this.updateCellServer=function(){},this.updateServerError=function(){},this.updateCellError=function(){},this.loadImages=function(){},this.loadShapes=function(){},this.fillImageSrc=function(){},this.fillImageOnebyOne=function(){},this.loadConditionImage=function(){},this.reloadImagesShapes=function(){},this.scrollImagesShapes=function(){},this.exceptRowSet=new Set,this.sortedRowMap=new Map,this.unsortedRowMap=new Map,this.isupdating=!1,this.search=new J,this.showGrid=!0,this.zoomlevel=1,this.isImageOk=!1}return a()(t,[{key:"addValidation",value:function(t,e,i){var n=this;this.changeData((function(){n.validations.add(t,e,i)}))}},{key:"removeValidation",value:function(){var t=this,e=this.selector.range;this.changeData((function(){t.validations.remove(e)}))}},{key:"getHighlightCellTxt",value:function(t,e){if(this.showhighlight&&!this.highlightall)for(var i=this.highlighttxts,n=0,r=i.length;n<r;n++)if(i[n].row===t&&i[n].col===e)return i[n].color=this.highlightstyle.color,i[n];return null}},{key:"getSelectedValidator",value:function(){var t=this.selector,e=t.ri,i=t.ci,n=this.validations.get(e,i);return n?n.validator:null}},{key:"getSelectedValidation",value:function(){var t=this.selector,e=t.ri,i=t.ci,n=t.range,r=this.validations.get(e,i),o={ref:n.toString()};return null!==r&&(o.mode=r.mode,o.validator=r.validator),o}},{key:"getSelectedSort",value:function(){var t=this.selector,e=t.ci,i=t.range,n={ref:i.toString(),ci:[0,1,2]},r=this.merges;n.sort=[];for(var o=[],a=i.sri,s=i.eri,l=i.sci,c=i.eci,h=0;h<r._.length;h+=1){var u=r._[h];if(u.sri>=a&&u.eri<=s&&u.sci>=l&&u.eci<=c)return lt("error","".concat(W("dataSort.msg2"))),null}for(var f=a+1;f<=s;f+=1){var d=this.getCell(f,e);null===d||/^\s*$/.test(d.text)||o.push(d.text)}n.m=o;for(var v=new Map,g=new Map,m=0,y=l;y<=c;y++,m++){var b=this.getCell(a,y),w="";w=null===b||/^\s*$/.test(b.text)?"(Column "+p(y)+")":b.text,v.set(m,w),g.set(m,"(Column "+p(y)+")")}return n.mcols=v,n.mcolsheader=g,n}},{key:"canUndo",value:function(){return this.history.canUndo()}},{key:"canRedo",value:function(){return this.history.canRedo()}},{key:"undo",value:function(){var t=this;this.history.undo((function(e){return t.getRangeData(e.range)}),(function(e){t.setRangeData(e)}))}},{key:"redo",value:function(){var t=this;this.history.redo((function(e){return t.getRangeData(e.range)}),(function(e){t.setRangeData(e)}))}},{key:"copy",value:function(){this.clipboard.copy(this.selector.range,this.rows)}},{key:"cut",value:function(){this.clipboard.cut(this.selector.range)}},{key:"paste",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"all",i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},n=this.clipboard,r=this.selector;return!n.isClear()&&(!!ht.call(this,n.range,r.range,i)&&(this.changeData((function(){var i=r.range.extendRange(n.range);r.range.setToOther(i),n.isCopy()?ut.call(t,n.range,i,e):n.isCut()&&ft.call(t,n.range,i)})),!0))}},{key:"pasteFromText",value:function(t){var e=this,i=this.name,n=t.split("\r\n").map((function(t){return t.replace(/"/g,"").split("\t")}));if(n.length>0&&""==n[n.length-1]&&(n.length-=1),n.length>=1){var r=this.rows,o=this.selector;this.changeData((function(){var t=r.paste(n,o.range);e.updateBatchCellsOpr(i,t)}))}}},{key:"autofill",value:function(t,e){var i=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=this.selector.range;return-1==r.sci&&(r.sci=0),-1==r.sri&&(r.sri=0),-1==t.sci&&(t.sci=0),-1==t.sri&&(t.sri=0),!!ht.call(this,r,t,n)&&(this.changeData((function(){ut.call(i,r,t,e,!0)}),!0,t),!0)}},{key:"clearClipboard",value:function(){this.clipboard.clear()}},{key:"calSelectedRangeByEnd",value:function(t,e){var i=this.selector,n=this.rows,r=this.cols,o=this.merges,a=i.range,s=a.sri,l=a.sci,c=a.eri,h=a.eci,u=i.ri,f=i.ci,d=t,v=e;return t<0&&(d=n.len-1),e<0&&(v=r.len-1),d>u?(s=u,c=d):(s=d,c=u),v>f?(l=f,h=v):(l=v,h=f),i.range=o.union(new x(s,l,c,h)),i.range=o.union(i.range),i.range}},{key:"calSelectedRangeByStart",value:function(t,e){var i=this.selector,n=this.rows,r=this.cols,o=this.merges.getFirstIncludes(t,e);return null===o&&(o=new x(t,e,t,e),-1===t&&(o.sri=0,o.eri=n.len-1),-1===e&&(o.sci=0,o.eci=r.len-1)),i.range=o,o}},{key:"setSelectedCellAttr",value:function(t,e){var i=this;this.changeData((function(){var n=i.selector,o=i.styles,a=i.rows,s=i.name;if("merge"===t)e?i.merge():i.unmerge();else if("border"===t)vt.call(i,e);else if("formula"===t){var l=n.ri,c=n.ci,h=n.range;if(n.multiple()){var u=n.size(),f=r()(u,2),d=f[0],v=f[1],g=h.sri,p=h.sci,m=h.eri,y=h.eci;if(d>1)for(var w=p;w<=y;w+=1){a.getCellOrNew(m+1,w).text="=".concat(e,"(").concat(b(w,g),":").concat(b(w,m),")")}else if(v>1){a.getCellOrNew(l,y+1).text="=".concat(e,"(").concat(b(p,l),":").concat(b(y,l),")")}}else{a.getCellOrNew(l,c).text="=".concat(e,"()")}}else n.range.each((function(n,r){var l=a.getCellOrNew(n,r),c={};if(void 0!==l.style&&(c=F.cloneDeep(o[l.style])),"format"===t)c.format=e,"normal"===e?(delete c.number,delete c.custom):"text"===e?(c.number=49,delete c.custom):"number"===e?(c.custom="#,##0.00_",delete c.number):"percent"===e?(c.number=10,delete c.custom):"rmb"===e?(c.custom="[$¥-804]#,##0.00",delete c.number):"usd"===e?(c.custom="$#,##0.00",delete c.number):"eur"===e?(c.custom="[$€-408]#,##0.00",delete c.number):"date"===e?(c.custom="mm/dd/yyyy",delete c.number):"time"===e?(c.number=21,delete c.custom):"datetime"===e?(c.custom="mm/dd/yyyy hh:mm:ss",delete c.number):"duration"===e&&(c.custom="[h]:mm:ss",delete c.number),l.style=i.addStyle(c),i.updateCellStyleOpr(s,n,r,c);else if("font-bold"===t||"font-italic"===t||"font-name"===t||"font-size"===t){var h={};h[t.split("-")[1]]=e,c.font=Object.assign(c.font||{},h),l.style=i.addStyle(c)}else"strike"===t||"textwrap"===t||"underline"===t||"align"===t||"valign"===t||"color"===t||"bgcolor"===t||"pbgcolor"===t||"pattern"===t?(c[t]=e,l.style=i.addStyle(c),"align"===t&&delete l.isautoalign):l[t]=e}))}))}},{key:"setHyperlinkStyle",value:function(t,e,i){var n=this.rows,r=this.styles,o=n.getCellOrNew(t,e),a={};void 0!==o.style&&(a=F.cloneDeep(r[o.style])),a.underline=i,a.color=i?"#0000ff":"Black",o.style=this.addStyle(a)}},{key:"setSelectedCellText",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input",i=this.autoFilter,n=this.selector,r=this.rows,o=n.ri,a=n.ci,s=o;this.unsortedRowMap.has(o)&&(s=this.unsortedRowMap.get(o));var l=r.getCell(s,a),c=l?l.text:"";if(this.setCellText(s,a,t,e),i.active()){var h=i.getFilter(a);if(h){var u=h.value.findIndex((function(t){return t===c}));u>=0&&h.value.splice(u,1,t)}}}},{key:"getSelectedCell",value:function(){var t=this.selector,e=t.ri,i=t.ci,n=e;return this.unsortedRowMap.has(e)&&(n=this.unsortedRowMap.get(e)),this.rows.getCell(n,i)}},{key:"canSelected",value:function(t,e){if(!this.sprotected)return!0;var i=t;this.unsortedRowMap.has(t)&&(i=this.unsortedRowMap.get(t));var n=this.getCellStyle(i,e);return null==n?this.canselectlocked:!(!n.unlocked||!this.canselectunlocked)||!(n.unlocked||!this.canselectlocked)}},{key:"isfirstRowCellsContainsFormula",value:function(t){for(var e=t.sci;e<=t.eci;e+=1){var i=this.getCell(t.sri,e);if(null!=i&&void 0!==i.f)return!0}return!1}},{key:"getLocked",value:function(){var t=this.selector,e=t.ri,i=t.ci;return this.getCellLocked(e,i)}},{key:"getCellLocked",value:function(t,e){if(!this.sprotected)return!1;var i=t;this.unsortedRowMap.has(t)&&(i=this.unsortedRowMap.get(t));var n=this.getCellStyle(i,e);return!(null!=n&&n.unlocked)}},{key:"getRangeLocked",value:function(t){for(var e=t.sri;e<=t.eri;e+=1)for(var i=t.sci;i<=t.eci;i+=1)if(this.getCellLocked(e,i))return!0;return!1}},{key:"xyInSelectedRect",value:function(t,e){var i=this.getSelectedRect(),n=i.left,r=i.top,o=i.width,a=i.height,s=this.settings.row.height,l=t-this.cols.indexWidth,c=e-s;return l>n&&l<n+o&&c>r&&c<r+a}},{key:"getSelectedRectBySearch",value:function(){return this.getRect(this.selector.range)}},{key:"getSelectedRect",value:function(){var t=this.selector.range.clone();if(this.freezeIsActive()){if(t.sri>=this.freeze[0]&&t.eri<this.scroll.riact)return{left:-99999,top:-99999};t.sri>=this.freeze[0]&&t.sri<this.scroll.riact&&(t.sri=this.scroll.riact)}else{if(t.eri<this.scroll.riact)return{left:-99999,top:-99999};t.sri<this.scroll.riact&&(t.sri=this.scroll.riact)}return this.getRect(t)}},{key:"getClipboardRect",value:function(){var t=this.clipboard;return t.isClear()?{left:-100,top:-100}:this.getRect(t.range)}},{key:"getRect",value:function(t){var e=this.scroll,i=this.rows,n=this.cols,o=this.exceptRowSet,a=this.displayRight2Left,s=this.freeze,l=this.zoomlevel,c=t.sri,h=t.sci,u=t.eri,f=t.eci;if(c<0&&h<0)return{left:0,l:0,top:0,t:0,scroll:e};var d=r()(s,2)[1],v=a?this.viewWidth()-n.indexWidth-n.sumWidth(0,f+1):n.sumWidth(0,h),g=i.sumHeight(0,c,o),p=i.sumHeight(c,u+1,o)*l,m=n.sumWidth(h,f+1)*l,y=a?d>0&&f>=d||0===d?v+e.x:v:v-e.x,b=this.freezeTotalHeight(),w=this.freezeTotalWidth(),x=i.sumHeight(e.riact,c,o)+b;return w>0&&w>v&&!a&&(y=v),b>0&&b>g&&(x=g),{l:v*l,t:g*l,left:y*l,top:x*l,height:p,width:m,scroll:e}}},{key:"getCellRectByXY",value:function(t,e){var i=this.scroll,n=this.merges,r=this.rows,o=this.cols,a=this.zoomlevel,s=gt.call(this,e,i.y),l=s.ri,c=s.top,h=s.height,u=pt.call(this,t,i.x),f=u.ci,d=u.left,v=u.width;if(-1===f&&(v=o.totalWidth()),-1===l&&(h=r.totalHeight()),l>=0||f>=0){var g=n.getFirstIncludes(l,f);if(g){l=g.sri,f=g.sci;var p=this.cellRectWithOutTransfer(l,f);d=p.left,c=p.top,v=p.width,h=p.height}}return{ri:l,ci:f,left:d*a,top:c*a,width:v*a,height:h*a}}},{key:"isSignleSelected",value:function(){var t=this.selector.range,e=t.sri,i=t.sci,n=t.eri,o=t.eci,a=this.getCell(e,i);if(a&&a.merge){var s=r()(a.merge,2),l=s[0],c=s[1];if(e+l===n&&i+c===o)return!0}return!this.selector.multiple()}},{key:"canUnmerge",value:function(){var t=this.selector.range,e=t.sri,i=t.sci,n=t.eri,o=t.eci,a=this.getCell(e,i);if(a&&a.merge){var s=r()(a.merge,2),l=s[0],c=s[1];if(e+l===n&&i+c===o)return!0}return!1}},{key:"merge",value:function(){var t=this.selector,e=this.rows;if(!this.isSignleSelected()){var i=t.size(),n=r()(i,2),o=n[0],a=n[1];if(o>1||a>1){var s=t.range,l=s.sri,c=s.sci,h=e.getCellOrNew(l,c);h.merge=[o-1,a-1],this.merges.add(t.range),this.rows.deleteCells(t.range),this.rows.setCell(l,c,h)}}}},{key:"unmerge",value:function(){var t=this.selector;if(this.isSignleSelected()){var e=t.range,i=e.sri,n=e.sci;this.rows.deleteCell(i,n,"merge"),this.merges.deleteWithin(t.range)}}},{key:"canAutofilter",value:function(){return!this.autoFilter.active()}},{key:"autofilter",value:function(){var t=this,e=this.autoFilter,i=this.selector,n=this.TableAutoFilters;if(!e.active())for(var r=0,o=n.length;r<o;r++){var a=n[r],s=x.valueOf(a.ref);if(!(s.eci<i.range.sci||i.range.eci<s.sci))return void lt("Warning","there is already table autofilter in the selected range")}this.changeData((function(){e.active()?(e.clear(),t.exceptRowSet=new Set,t.sortedRowMap=new Map,t.unsortedRowMap=new Map):e.ref=i.range.toString()}))}},{key:"autoSort",value:function(){var t=this.autoFilter,e=this.selector;this.changeData((function(){t.filters=[],t.ref=e.range.toString()}))}},{key:"sortByRowIdArray",value:function(t,e){for(var i=this.rows,n=t.sri,r=t.eri,o=t.sci,a=t.eci,s=[],l=0,c=e.length;l<c;l++){for(var h=i._[e[l]].cells,u=[],f=o;f<=a;f++)void 0!==h[f]&&u.push({id:f,v:F.cloneDeep(h[f])});s.push(u)}for(var d=0,v=n;v<=r;v++)if(e[d++]!==v){for(var g=i._[v].cells,p=o;p<=a;p++)delete g[p];for(var m=s[d-1],y=0,b=m.length;y<b;y++){var w=m[y];g[w.id]=w.v}}}},{key:"doSort",value:function(t,e,i){var n=this.name,r=this.selector.range,o=(r.sri,r.eri,r.sci,r.eci,{name:n,src:r,ci:t,order:e,isheader:i,op:"sort"});this.updateCellServer(o)}},{key:"setAutoFilter",value:function(t,e,i,n){var r=this.currentAutoFilter;void 0===r&&(r=this.autoFilter),r.addFilter(t,i,n),r.setSort(t,e),this.resetAutoFilter()}},{key:"resetAutoFilter",value:function(){var t=this,e=this.currentAutoFilter,i=this.rows,n=e;if(void 0===n&&(n=this.autoFilter),n.active()){var r=n.sort,o=n.filteredRows((function(t,e){return i.getCell(t,e)})),a=o.rset,s=o.fset,l=Array.from(s),c=Array.from(s);r&&l.sort((function(t,e){if("desc"===r.order){var n=t;t=e,e=n}var o=i.getCell(t,r.ci),a=i.getCell(e,r.ci);if(null!=o&&""===o.text&&(o=null),null!=a&&""===a.text&&(a=null),null==o&&null==a)return t-e;if(null==o)return"asc"===r.order?1:-1;if(null==a)return"asc"===r.order?-1:1;o=o.text,a=a.text;var s=isNaN(Number(o)),l=isNaN(Number(a));return s&&l?o.localeCompare(a):s&&!l?1:!s&&l?-1:Number(o)-Number(a)})),this.exceptRowSet=a,this.sortedRowMap=new Map,this.unsortedRowMap=new Map,l.forEach((function(e,i){t.sortedRowMap.set(c[i],e),t.unsortedRowMap.set(e,c[i])}))}}},{key:"deleteExceptRowHideForAutoFilter",value:function(){var t=this.exceptRowSet,e=this.rows;t.forEach((function(t){e.get(t)&&(e.get(t).hide=void 0)}))}},{key:"updateMyConditionImages",value:function(t){var e=this.conditionimg,i=(this.rows,this.styles,this);t&&t.forEach((function(t){if(e){var n=e.find((function(e){return e.row===t.row&&e.col===t.col}));n?n.image.src="data:image/png;base64,"+t.data:i.insertConditionImage(t)}}))}},{key:"createConditionImage",value:function(t,e){var i=this.displayRight2Left,n=new Image;n.src="data:image/png;base64,"+t.data;var r=this.cols.sumWidth(0,t.col),o=this.rows.sumHeight(0,t.row);if(0===t.type){n.style.zIndex=e+1;var a=this.getCellStyle(t.row,t.col);null!=a&&"bottom"===a.valign&&(o+=this.rows.getHeight(t.row)-16)}else n.style.zIndex=e,n.style.opacity=.88;if((this.rows.isHide(t.row)||this.cols.isHide(t.col)||this.exceptRowSet.has(t.row))&&(n.style.display="none"),i){var s=this.viewWidth();n.style.left=s-r+"px"}else n.style.left=r+"px";if(n.style.top=o+"px",n.style.position="absolute",void 0===t.ol){var l=parseInt(n.style.left),c=parseInt(n.style.top);t.ol=l,t.ot=c}return n}},{key:"updateConditionImageVisible",value:function(){var t=this.exceptRowSet,e=this.rows,i=this.cols;this.conditionimg&&this.conditionimg.forEach((function(n){e.isHide(n.row)||i.isHide(n.col)||t.has(n.row)?n.image.style.display="none":n.image.style.display="block"}))}},{key:"updateConditionImageDirection",value:function(){var t=this.displayRight2Left,e=this.cols,i=this.zoomlevel,n=this.viewWidth()-e.indexWidth;this.conditionimg&&this.conditionimg.forEach((function(r){r.image&&(r.image.style.left=t?(n-r.ol-e.getWidth(r.col))*i+"px":r.ol*i+"px")}))}},{key:"updateConditionImageZoom",value:function(){this.exceptRowSet,this.rows,this.cols;var t=this.zoomlevel;this.conditionimg&&this.conditionimg.forEach((function(e){if(e.ow||(e.ow=e.image.width,e.oh=e.image.height),e.image.style.left=e.ol*t+"px",e.image.style.top=e.ot*t+"px",e.ow){e.image.height;e.image.width=e.ow*t,1===e.type&&(e.image.height=e.oh*t)}}))}},{key:"updateConditionImagePositionForCol",value:function(t,e,i){var n=this.displayRight2Left,r=this.cols,o=this.zoomlevel;if(this.conditionimg){var a=this.viewWidth()-r.indexWidth;this.conditionimg.forEach((function(s){if(s.col>t)s.ol+=e,s.image.style.left=n?(a-s.ol-r.getWidth(s.col))*o+"px":s.ol*o+"px";else if(s.col===t){if(1===s.type){var l=s.image.height;s.image.width=i*o,s.ow=i,s.image.height=l}n&&(s.image.style.left=(a-s.ol-r.getWidth(s.col))*o+"px")}}))}}},{key:"updateConditionImagePositionForRow",value:function(t,e,i){var n=this.zoomlevel;this.conditionimg&&this.conditionimg.forEach((function(r){if(r.row>t)r.ot+=e,r.image.style.top=r.ot*n+"px";else if(r.row===t&&1===r.type){var o=r.image.width;r.image.height=i*n,r.oh=i,r.image.width=o}}))}},{key:"updateConditionImageForColInsert",value:function(t,e){var i=this.conditionimg,n=this.cols,r=this.displayRight2Left,o=this.zoomlevel;if(i){var a=this.viewWidth()-n.indexWidth,s=n.sumWidth(t,e+1),l=e-t+1;i.forEach((function(e){e.col>=t&&(e.ol+=s,e.image.style.left=r?(a-e.ol-n.getWidth(e.col))*o+"px":e.ol*o+"px",l&&(e.col+=l))}))}}},{key:"updateConditionImageForRowInsert",value:function(t,e){var i=this.conditionimg,n=this.rows,r=this.zoomlevel;if(i){var o=n.sumHeight(t,e+1),a=e-t+1;i.forEach((function(e){e.row>=t&&(e.ot+=o,e.image.style.top=e.ot*r+"px",a&&(e.row+=a))}))}}},{key:"updateConditionImageForRowDelete",value:function(t,e,i){var n=this.conditionimg,r=(this.rows,this.zoomlevel);if(n)for(var o=e-t+1,a=n.length-1;a>=0;a--){var s=n[a];s.row>=t&&s.row<=e?(s.image.remove(),n.splice(a,1)):s.row>e&&(s.ot+=i,s.image.style.top=s.ot*r+"px",o&&(s.row-=o))}}},{key:"updateConditionImageForColDelete",value:function(t,e,i){var n=this.conditionimg,r=this.cols,o=this.displayRight2Left,a=this.zoomlevel;if(n)for(var s=this.viewWidth()-r.indexWidth,l=n.length-1;l>=0;l--){var c=n[l];if(c.col>=t&&c.col<=e)c.image.remove(),n.splice(l,1);else if(c.col>e){c.ol+=i,c.image.style.left=o?(s-c.ol-r.getWidth(c.col))*a+"px":c.ol*a+"px";var h=e-t+1;h&&(c.col-=h)}}}},{key:"deleteCell",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"all",i=this.selector,n=this.name;this.changeData((function(){t.rows.deleteCells(i.range,e),"all"!==e&&"format"!==e||t.merges.deleteWithin(i.range),t.delCellOpr(n,i.range,e)}))}},{key:"insert",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.changeData((function(){var n=e.selector.range,r=n.sri,o=n.sci,a=e.rows,s=e.merges,l=e.cols,c=e.name,h=r;if("row"===t){a.insert(r,i),e.updateConditionImageForRowInsert(r,r+i-1);var u=a.getHeight(r-1);e.insertRowOpr(c,r,i,u)}else if("column"===t){a.insertColumn(o,i),h=o,l.len+=i;for(var f=l.getWidth(o-1),d=l.len,v=0;v<i;v++)l._[d-1-v]={};for(var g=d-1;g>=o;g--)l._[g].width=g>=i?l._[g-i].width:l.width;e.insertColumnOpr(c,o,i,f),e.updateConditionImageForColInsert(o,o+i-1)}s.shift(t,h,i,(function(t,e,i,n){var r=a.getCell(t,e);r.merge[0]+=i,r.merge[1]+=n}))}),!1)}},{key:"delete",value:function(t){var e=this,i=this.selector.range,n=i.sri,r=i.sci,o=i.eri,a=i.eci;n<0&&(n=0),o<n||(r<0&&(r=0),a<r||this.changeData((function(){var i=e.rows,n=e.merges,r=e.selector,o=e.cols,a=e.name,s=r.range,l=r.range,c=l.sri,h=l.sci,u=l.eri,f=l.eci,d=c,v=0;if("row"===t){if(c<0&&(c=0),u<c)return;if(confirm("sure to delete rows from "+(c+1)+" to "+(u+1))){v=u-c+1;var g=-i.sumHeight(c,u+1);i.delete(c,u),e.deleteRowOpr(a,c,u),e.updateConditionImageForRowDelete(c,u,g)}}else if("column"===t){if(h<0&&(h=0),f<h)return;if(confirm("sure to delete columns from "+(h+1)+" to "+(f+1))){var p=-o.sumWidth(h,f+1);i.deleteColumn(h,f),d=s.sci,v=f-h+1,o.len-=v;for(var m=h;m<o.len-v;m++)o._[m].width=o._[m+v].width;for(var y=o.len;y<o.len+v;y++)delete o._[y];e.deleteColumnOpr(a,h,f),e.updateConditionImageForColDelete(h,f,p)}}n.shift(t,d,-v,(function(t,e,n,r){var o=i.getCell(t,e);o.merge[0]+=n,o.merge[1]+=r,0===o.merge[0]&&0===o.merge[1]&&delete o.merge}))}),!1))}},{key:"deletelocalonly",value:function(t,e,i){var n=this;this.changeData((function(){var r=n.rows,o=n.merges;n.cols;"row"===t?r.delete(e,e+i-1):"column"===t&&r.deleteColumn(e,e+i-1),o.shift(t,e,-i,(function(t,e,i,n){var o=r.getCell(t,e);o.merge[0]+=i,o.merge[1]+=n,0===o.merge[0]&&0===o.merge[1]&&delete o.merge}))}),!1)}},{key:"updateRevertOpr",value:function(t){"insertrow"===t.op?this.deletelocalonly("row",t.ri,t.n):"insertcol"===t.op&&this.deletelocalonly("column",t.ci,t.n)}},{key:"scrollx",value:function(t,e){var i=this.scroll,n=this.freeze,o=this.cols;this.displayRight2Left&&(t=-t);var a=r()(n,2)[1],s=F.rangeReduceIf(a,o.len,0,0,t,(function(t){return o.getWidth(t)})),l=r()(s,3),c=l[0],h=l[1],u=l[2],f=h;t>0&&(f+=u),i.x!==f&&(i.ci=t>0?c:0,i.x=f,e())}},{key:"scrolly",value:function(t,e){var i=this.scroll,n=this.freeze,o=this.rows,a=this.exceptRowSet,s=r()(n,1)[0],l=F.rangeReduceIf(s,o.len,0,0,t,(function(t){return o.getHeight(t,a)})),c=r()(l,3),h=c[0],u=c[1],f=c[2],d=u;if(t>0&&(d+=f),i.y!==d){for(i.ri=t>0?h:0,i.y=d,0===i.ri&&this.freeze[0]>0&&(i.ri=this.freeze[0],i.y=0),i.yact=i.y,i.riact=i.ri;this.isInvisibleRow(i.riact);)i.yact+=o.getHeight(i.riact,a),i.riact++;e()}}},{key:"isInvisibleRow",value:function(t){var e=this.exceptRowSet;return this.rows.isHide(t)||e.has(t)}},{key:"cellRect",value:function(t,e){var i=this.rows,n=this.cols,o=this.exceptRowSet,a=this.displayRight2Left,s=this.scroll,l=i.sumHeight(0,t,o),c=i.getCell(t,e),h=n.getWidth(e),u=i.getHeight(t);if(null!==c&&c.merge){var f=r()(c.merge,2),d=f[0],v=f[1];if(d>0)for(var g=1;g<=d;g+=1)u+=i.getHeight(t+g);if(v>0)for(var p=1;p<=v;p+=1)h+=n.getWidth(e+p)}var m=a?this.viewWidth()-n.sumWidth(0,e)-h+2*s.x:n.sumWidth(0,e);if(a){var y=r()(this.freeze,2),b=(y[0],y[1]);b>0&&e<b&&(m-=2*s.x)}return{left:m,top:l,width:h,height:u,cell:c}}},{key:"cellRectWithOutTransfer",value:function(t,e){var i=this.cellRect(t,e),n=this.displayRight2Left,o=this.cols,a=this.scroll,s=this.zoomlevel,l=o.indexWidth,c=this.settings.row.height;i.top+=c;var h=r()(this.freeze,2),u=(h[0],h[1]);return n?(i.left-=l,i.left+=i.width,e>u&&(i.left-=a.x)):(i.left+=l,e>u&&(i.left-=a.x)),t>u&&(i.top-=a.y),i.left*=s,i.top*=s,i.width*=s,i.height*=s,i}},{key:"getCell",value:function(t,e){return this.rows.getCell(t,e)}},{key:"getCellTextOrDefault",value:function(t,e){var i=this.getCell(t,e);return i&&i.text?i.text:""}},{key:"isEmpty",value:function(t,e){var i=this.getCell(t,e);return!i||!i.text||0===i.text.trim().length}},{key:"getCellStyle",value:function(t,e){var i=this.getCell(t,e);return i&&void 0!==i.style?this.styles[i.style]:null}},{key:"getCellStyleOrDefault",value:function(t,e){var i=this.styles,n=this.rows,r=this.displayRight2Left,o=n.getCell(t,e),a=o&&void 0!==o.style?i[o.style]:{},s=F.merge(this.defaultStyle(),a);if(void 0!==a.bgcolor&&(s.hasbgcolor=!0),o&&void 0!==o.merge){if(0!=o.merge[1]){var l=n.getCell(t,e+o.merge[1]),c=l&&void 0!==l.style?i[l.style]:{};c.border&&void 0!==c.border.right&&(void 0===a.border&&(a.border={}),a.border.right=c.border.right)}if(0!=o.merge[0]){var h=n.getCell(t+o.merge[0],e),u=h&&void 0!==h.style?i[h.style]:{};u.border&&void 0!==u.border.bottom&&(void 0===a.border&&(a.border={}),a.border.bottom=u.border.bottom)}}if(void 0!==s.border&&r){var f=s.border.right;s.border.right=s.border.left,s.border.left=f}return s}},{key:"getSelectedCellStyle",value:function(){var t=this.selector,e=t.ri,i=t.ci;return this.getCellStyleOrDefault(e,i)}},{key:"setCellText",value:function(t,e,i,n){var r=this.rows,o=this.history,a=this.validations,s=this.settings,l=this.name;"finished"===n?("server"!==s.updateMode&&(r.setCellText(t,e,""),o.add(this.getData()),r.setCellText(t,e,i)),"server"===s.updateMode&&this.updateCellTextOpr(l,t,e,i)):r.setCellText(t,e,i),a.validate(t,e,i)}},{key:"isNumber",value:function(t){return!isNaN(parseFloat(t))&&isFinite(t)}},{key:"isDate",value:function(t){return isNaN(t)&&!isNaN(Date.parse(t))}},{key:"setCellAutoAlignment",value:function(t,e,i){var n=this.styles,r=this.rows.getCellOrNew(t,e),o={};void 0!==r.style&&(o=F.cloneDeep(n[r.style])),(r.isautoalign||void 0===o.align)&&(o.align=i,r.style=this.addStyle(o),r.isautoalign=!0)}},{key:"cutPasteRangeOpr",value:function(t,e,i){var n={name:t,src:e,dest:i,op:"cutpaste"};this.updateCellServer(n)}},{key:"copyPasteRangeOpr",value:function(t,e,i,n){var r={name:t,src:e,dest:i,op:"copypaste",what:n};this.updateCellServer(r)}},{key:"autofillRangeOpr",value:function(t,e,i,n){var r={name:t,src:e,dest:i,op:"autofill",what:n};this.updateCellServer(r)}},{key:"updateBatchCellsOpr",value:function(t,e,i,n,r){var o={name:t,cells:e,src:i,dest:n,what:r,op:"batchupdate"};this.updateCellServer(o)}},{key:"updateCellStyleOpr",value:function(t,e,i,n){var r={name:t,ri:e,ci:i,number:n.number,custom:n.custom,op:"updatestyle"};this.updateCellServer(r)}},{key:"updateCellTextOpr",value:function(t,e,i,n){var r=n.startsWith("<font style=")||n.startsWith("<Font Style=")?"updatehtml":"update",o={name:t,ri:e,ci:i,text:n,op:r};this.updateCellServer(o)}},{key:"delCellOpr",value:function(t,e,i){var n={name:t,range:e,what:i,op:"delcells"};this.updateCellServer(n)}},{key:"addSheetOpr",value:function(t){var e={name:t,op:"add"};this.updateCellServer(e)}},{key:"delSheetOpr",value:function(t){var e={name:t,op:"del"};this.updateCellServer(e)}},{key:"renameSheetOpr",value:function(t,e){var i={oldname:t,name:e,op:"rename"};this.updateCellServer(i)}},{key:"insertRowOpr",value:function(t,e,i,n){var r={name:t,ri:e,n:i,h:n,op:"insertrow"};this.updateCellServer(r)}},{key:"insertColumnOpr",value:function(t,e,i,n){var r={name:t,ci:e,n:i,w:n,op:"insertcol"};this.updateCellServer(r)}},{key:"deleteRowOpr",value:function(t,e,i){var n={name:t,sri:e,eri:i,op:"delrow"};this.updateCellServer(n)}},{key:"deleteColumnOpr",value:function(t,e,i){var n={name:t,sci:e,eci:i,op:"delcol"};this.updateCellServer(n)}},{key:"setAutoAlignForCell",value:function(t){t.ufv||this.isNumber(t.text)||this.isDate(t.text)?this.setCellAutoAlignment(t.ri,t.ci,"right"):this.setCellAutoAlignment(t.ri,t.ci,"left")}},{key:"updateMyCells",value:function(t){var e=this,i=this.styles,n=this.rows,r=this.search,o=this;t.forEach((function(t,r,a){var s=n.updateOneCell(t);if(t.bgcolor){var l={};void 0!==s.style&&(l=F.cloneDeep(i[s.style])),l.bgcolor=t.bgcolor,s.style=o.addStyle(l)}e.setAutoAlignForCell(t)})),"comments"!==r.lookin&&(r.result=null)}},{key:"updateShapes",value:function(t,e){var i=this.shapes;null!=i&&null!=t&&t.forEach((function(t,n,r){for(var o=0,a=i.length;o<a;o++)if(i[o].id===t.id){var s={};s.id="s_"+t.id+"_"+i[o].tick,s.name=t.id+"."+t.tick,s.it=i[o],e.push(s),$("#"+s.id).addClass("resize-image").removeAttr("src");break}}))}},{key:"updateShapeSrcToRefresh",value:function(t,e,i,n){if(n.length>0){var r=this;$.get(e+"?uid="+t+"&id="+i,(function(t){r.fillImageOnebyOne(t,n)}))}}},{key:"validateFormula",value:function(t){for(var e=0,i=0;i<t.length;i++)"("===t[i]?e++:")"===t[i]&&e--;return 0===e}},{key:"freezeIsActive",value:function(){var t=r()(this.freeze,2),e=t[0],i=t[1];return e>0||i>0}},{key:"resetScroll",value:function(){var t=this.scroll;t.riact=0,t.ri=0,t.y=0,t.yact=0,t.x=0,t.ci=0}},{key:"setFreeze",value:function(t,e){var i=this;0===t&&this.resetScroll(),this.changeData((function(){i.freeze=[t,e]}))}},{key:"freezeTotalWidth",value:function(){return this.cols.sumWidth(0,this.freeze[1])}},{key:"freezeTotalHeight",value:function(){return this.rows.sumHeight(0,this.freeze[0],this.exceptRowSet)}},{key:"setRowHeight",value:function(t,e){var i=this;this.changeData((function(){i.rows.setHeight(t,e)}))}},{key:"setColWidth",value:function(t,e){var i=this;this.changeData((function(){i.cols.setWidth(t,e)}))}},{key:"viewHeight",value:function(){var t=this.settings,e=t.view,i=t.showToolbar,n=e.height();return n-=26,n-=41,n-=80,i&&(n-=41),n}},{key:"viewWidth",value:function(){return this.settings.view.width()}},{key:"freezeViewRange",value:function(){var t=r()(this.freeze,2),e=t[0],i=t[1];return new x(0,0,e-1,i-1,this.freezeTotalWidth(),this.freezeTotalHeight())}},{key:"contentRange",value:function(){var t=this.rows,e=this.cols,i=t.maxCell(),n=r()(i,2),o=n[0],a=n[1],s=t.sumHeight(0,o+1),l=e.sumWidth(0,a+1);return new x(0,0,o,a,l,s)}},{key:"exceptRowTotalHeight",value:function(t,e){var i=this.exceptRowSet,n=this.rows,r=Array.from(i),o=0;return r.forEach((function(i){if(i<t||i>e){var r=n.getHeight(i);o+=r}})),o}},{key:"viewRange",value:function(){var t=this.scroll,e=this.rows,i=this.cols,n=this.freeze,o=this.exceptRowSet,a=t.ri,s=t.ci;a<=0&&(a=r()(n,1)[0]);s<=0&&(s=r()(n,2)[1]);for(var l=[this.freezeTotalWidth(),0],c=l[0],h=l[1],u=[e.len,i.len],f=u[0],d=u[1],v=a;v<e.len&&(o.has(v)||(h+=e.getHeight(v),f=v),!(h>this.viewHeight()/this.zoomlevel));v+=1);for(var g=s;g<i.len&&(d=g,!((c+=i.getWidth(g))>this.viewWidth()/this.zoomlevel));g+=1);var p=new x(a,s,f,d,c,h);return this.viewRangeCache=p,p}},{key:"eachMergesInView",value:function(t,e){this.merges.filterIntersects(t).forEach((function(t){return e(t)}))}},{key:"hideRowsOrCols",value:function(){var t=this.rows,e=this.cols,i=this.selector,n=i.size(),o=r()(n,2),a=o[0],s=o[1],l=i.range,c=l.sri,h=l.sci,u=l.eri,f=l.eci;if(a===t.len)for(var d=h;d<=f;d+=1)e.setHide(d,!0);else if(s===e.len)for(var v=c;v<=u;v+=1)t.setHide(v,!0)}},{key:"unhideRowsOrCols",value:function(t,e){this["".concat(t,"s")].unhide(e)}},{key:"rowEach",value:function(t,e,i){for(var n=0,r=this.rows,o=this.exceptRowSet,a=(v()(o),0),s=t+a;s<=e;s+=1)if(o.has(s))a+=1;else{var l=r.getHeight(s);if(l>0){if(i(s,n,l),n+=l,this.zoomlevel<1&&n>this.viewHeight()/this.zoomlevel)break;if(this.zoomlevel>=1&&n>this.viewHeight())break}}}},{key:"colEach",value:function(t,e,i){for(var n=0,r=this.cols,o=t;o<=e;o+=1){var a=r.getWidth(o);if(a>0){if(i(o,n,a),n+=a,this.zoomlevel<1&&n>this.viewWidth()/this.zoomlevel)break;if(this.zoomlevel>=1&&n>this.viewWidth())break}}}},{key:"generatePicItems",value:function(t,e,i){var n=new Array;null!=t&&t.forEach((function(t){if(null==t.src){var e={};e.id="p_"+t.id+"_"+t.tick,void 0===t.refid?e.name=t.id+"."+t.tick:e.name=t.refid+"."+t.tick,e.it=t,n.push(e)}})),null!=e&&e.forEach((function(t){if(null==t.src){var e={};e.id="s_"+t.id+"_"+t.tick,void 0===t.refid?e.name=t.id+"."+t.tick:e.name=t.refid+"."+t.tick,e.it=t,n.push(e)}})),this.loadCount=n.length,this.fillImageOnebyOne(i,n)}},{key:"defaultStyle",value:function(){return this.settings.style}},{key:"addStyle",value:function(t){for(var e=this.styles,i=0;i<e.length;i+=1){var n=e[i];if(F.equals(n,t))return i}return e.push(t),e.length-1}},{key:"changeData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0,n=void 0!==i?i:this.selector.range;if(this.history.add(this.getRangeData(n)),t(),this.change(this.getData()),e)for(var r=n.sri,o=(n.sci,n.eri),a=(n.eci,r);a<=o;a++)this.updateRows.add(a)}},{key:"setRangeData",value:function(t){this.rows.setRangeData(t.rows,t.range),this.merges.setData(t.merges)}},{key:"setData",value:function(t){var e=this;return Object.keys(t).forEach((function(i){if("merges"===i||"rows"===i||"cols"===i||"validations"===i)e[i].setData(t[i]);else if("freeze"===i){var n=y(t[i]),o=r()(n,2),a=o[0],s=o[1];e.freeze=[s,a]}else if("autofilter"===i)e.autoFilter.setData(t[i]);else if("lautofilters"===i){var l=t[i],c=e;l.forEach((function(t){var e=new R;e.setData(t),c.TableAutoFilters.push(e)}))}else void 0!==t[i]&&(e[i]=t[i])})),this}},{key:"getData",value:function(){var t=this.name,e=this.freeze,i=this.styles,n=this.merges,r=this.rows,o=this.cols,a=this.validations,s=this.autoFilter,l=this.TableAutoFilters,c={name:t,freeze:b(e[1],e[0]),styles:i,merges:n.getData(),rows:r.getData(),cols:o.getData(),validations:a.getData(),autofilter:s.getData(),TableAutoFilters:[]};return l.forEach((function(t){c.TableAutoFilters.push(t.getData())})),c}},{key:"getRangeData",value:function(t){var e=this.merges,i=this.rows;this.styles;return{rows:i.getRangeData(t),merges:e.getData(),range:t}}},{key:"getDataForSave",value:function(){var t=this.name,e=this.freeze,i=this.styles,n=this.merges,r=this.rows,o=this.cols,a=this.validations,s=this.autoFilter,l=this.settings,c=this.updateRows,h=this.updateRowsHeight,u=this.updateCols,f=this.canselectlocked,d=this.sprotected,v=this.canselectunlocked,g=this.showGrid,p=this.comments,m=this.images,y=this.shapes;return{name:t,freeze:b(e[1],e[0]),styles:i,comments:p,canselectlocked:f,sprotected:d,canselectunlocked:v,showGrid:g,merges:n.getDataForSave(),settings:l,cols:o.getDataForSave(u),rows:r.getDataForRowsSet(c),rowh:r.getHeightForSave(h),validations:a.getData(),autofilter:s.getData(),images:null!=m?m.filter((function(t){return t.changed})).map((function(t){var e={};return e.left=t.left,e.top=t.top,e.originAngle=t.originAngle,e.angle=t.angle,e.zorder=t.zorder,e.width=t.originWidth*t.scaleX,e.height=t.originHeight*t.scaleY,e.op=t.op,e.id=t.id,t.hyperlink&&(e.hyperlink=t.hyperlink),e})):[],shapes:null!=y?y.filter((function(t){return t.changed})).map((function(t){var e={};return e.left=t.left,e.top=t.top,e.originAngle=t.originAngle,e.angle=t.angle,e.zorder=t.zorder,e.width=t.originWidth*t.scaleX,e.height=t.originHeight*t.scaleY,e.op=t.op,e.id=t.id,t.hyperlink&&(e.hyperlink=t.hyperlink),e})):[]}}}]),t}(),yt=i(12),bt=i.n(yt),wt=i(7),xt=i.n(wt),Ct=i(11),kt=i.n(Ct),_t=i(13),St=i.n(_t);function Tt(t,e,i){t.addEventListener(e,i)}function Ot(t,e,i){t.removeEventListener(e,i)}function Et(t){t.xclickoutside&&(Ot(window.document.body,"click",t.xclickoutside),delete t.xclickoutside)}function Rt(t,e){t.xclickoutside=function(i){2===i.detail||t.contains(i.target)||(e?e(t):(t.hide(),Et(t)))},Tt(window.document.body,"click",t.xclickoutside)}function At(t,e,i){Tt(t,"mousemove",e),t.xEvtUp=function(n){Ot(t,"mousemove",e),Ot(t,"mouseup",t.xEvtUp),i(n)},Tt(t,"mouseup",t.xEvtUp)}var It=null;function Pt(){clearInterval(It),It=null}function Dt(t,e){(function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];It||(It=setInterval((function(){t.apply(void 0,i)}),400))})((function(){t.selectMoveDown(),t.canvas.publishEvent("object:scroll",t.data)}))}function Ft(t,e){var i="object"===("undefined"==typeof window?"undefined":St()(window))?window.navigator.userAgent:"";if(/Android/i.test(i)){var n=window.innerHeight;window.addEventListener("resize",(function(i){var r=window.innerHeight;n>r?"true"===document.activeElement.contentEditable&&e(i):t(i)}))}else/iPhone|iPod|iPad/i.test(i)&&(window.addEventListener("focusin",(function(t){e(t)})),window.addEventListener("focusout",(function(e){t(e)})))}var Mt=function(){function t(){var e=this,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;l()(this,t),this.moving=!1,this.sheet=r,this.vertical=i,this.el=f("div","".concat(ot,"-resizer ").concat(i?"vertical":"horizontal")).children(this.unhideHoverEl=f("div","".concat(ot,"-resizer-hover")).on("dblclick.stop",(function(t){return e.mousedblclickHandler(t)})).css("position","absolute").hide(),this.hoverEl=f("div","".concat(ot,"-resizer-hover")).on("mousedown.stop",(function(t){return e.mousedownHandler(t)})),this.lineEl=f("div","".concat(ot,"-resizer-line")).hide()).hide(),this.cRect=null,this.IsRight2Left=!1,this.finishedFn=null,this.minDistance=n,this.maxRowHeight=408,this.maxColWidth=254,this.unhideFn=function(){}}return a()(t,[{key:"showUnhide",value:function(t){this.unhideIndex=t,this.unhideHoverEl.show()}},{key:"hideUnhide",value:function(){this.unhideHoverEl.hide()}},{key:"show",value:function(t,e,i){var n=this.moving,r=this.vertical,o=this.hoverEl,a=this.lineEl,s=this.el,l=this.unhideHoverEl;if(!n){this.IsRight2Left=i,this.cRect=t;var c=t.left,h=t.top,u=t.width,f=t.height,d=i?c-u:c+u-5;s.offset({left:r?d:c,top:r?h:h+f-5}).show(),o.offset({width:r?5:u,height:r?f:5}),a.offset({width:r?0:e.width,height:r?e.height:0}),l.offset({left:r?5-u:c,top:r?h:5-f,width:r?5:u,height:r?f:5})}}},{key:"hide",value:function(){this.el.offset({left:0,top:0}).hide(),this.hideUnhide()}},{key:"mousedblclickHandler",value:function(){this.unhideIndex&&this.unhideFn(this.unhideIndex)}},{key:"mousedownHandler",value:function(t){var e=this,i=t,n=this.el,r=this.lineEl,o=this.cRect,a=this.vertical,s=this.minDistance,l=this.IsRight2Left,c=this.maxRowHeight,h=this.maxColWidth,u=a?o.width:o.height;u=Math.round(u),r.show(),At(window,(function(t){e.moving=!0,null!==i&&1===t.buttons&&(a?(l?u-=t.movementX:u+=t.movementX,u>s&&u<h&&(l?n.css("left","".concat(o.left-u,"px")):n.css("left","".concat(o.left+u,"px")))):(u+=t.movementY)>s&&u<c&&n.css("top","".concat(o.top+u,"px")),i=t)}),(function(){i=null,r.hide(),e.moving=!1,e.hide(),e.finishedFn&&(u<s&&(u=s),a?u>h&&(u=h):u>c&&(u=c),e.finishedFn(o,u))}))}}]),t}(),jt=function(){function t(e){var i=this;l()(this,t),this.vertical=e,this.moveFn=null,this.el=f("div","".concat(ot,"-scrollbar ").concat(e?"vertical":"horizontal")).child(this.contentEl=f("div","")).on("mousemove.stop",(function(){})).on("scroll.stop",(function(t){var e=t.target,n=e.scrollTop,r=e.scrollLeft;i.moveFn&&i.moveFn(i.vertical?n:r,t)}))}return a()(t,[{key:"move",value:function(t){return this.el.scroll(t),this}},{key:"scroll",value:function(){return this.el.scroll()}},{key:"set",value:function(t,e){var i=t-1;if(e>i){var n=this.vertical?"height":"width";this.el.css(n,"".concat(i-50,"px")).show(),this.contentEl.css(this.vertical?"width":"height","1px").css(n,"".concat(e,"px"))}else this.el.hide();return this}}]),t}(),Lt=10,zt=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];l()(this,t),this.isreadonly=e,this.useHideInput=i,this.inputChange=function(){},this.cornerEl=f("div","".concat(ot,"-selector-corner")),this.areaEl=f("div","".concat(ot,"-selector-area")).child(this.cornerEl).hide(),window.mobileAndTabletCheck()&&this.cornerEl.child(f("div","".concat(ot,"-selector-corner-shape"))),this.clipboardEl=f("div","".concat(ot,"-selector-clipboard")).hide(),this.autofillEl=f("div","".concat(ot,"-selector-autofill")).hide(),this.el=f("div","".concat(ot,"-selector")).css("z-index","".concat(Lt)).children(this.areaEl,this.clipboardEl,this.autofillEl).hide(),this.isreadonly&&this.cornerEl.hide(),Lt+=1}return a()(t,[{key:"setOffset",value:function(t){return this.el.offset(t).show(),this}},{key:"hide",value:function(){return this.el.hide(),this}},{key:"setAreaOffset",value:function(t){var e=t.left,i=t.top,n=t.width,r=t.height,o={width:this.isreadonly?n-2:n+.8,height:this.isreadonly?r-2:r+.8,left:e-.8,top:i-.8};this.areaEl.offset(o).show()}},{key:"setClipboardOffset",value:function(t){var e=t.left,i=t.top,n=t.width,r=t.height;this.clipboardEl.offset({left:e,top:i,width:n-2.4,height:r-2.4})}},{key:"showAutofill",value:function(t){var e=t.left,i=t.top,n=t.width,r=t.height;this.autofillEl.offset({width:n-3,height:r-3,left:e,top:i}).show()}},{key:"hideAutofill",value:function(){this.autofillEl.hide()}},{key:"showClipboard",value:function(){this.clipboardEl.show()}},{key:"hideClipboard",value:function(){this.clipboardEl.hide()}}]),t}();function Bt(t){var e=this.data,i=t.left,n=t.top,r=t.width,o=t.height,a=t.scroll,s=t.l,l=t.t,c=e.freezeTotalWidth(),h=e.freezeTotalHeight(),u=e.displayRight2Left?0===c?i:i-(e.viewWidth()-e.cols.indexWidth-c):i-c,f=r;void 0!==a&&(e.displayRight2Left?0===c||(u+r<0?u=19999:u<0&&(f-=a.x)):c>s&&(u-=a.x));var d=n-h;return void 0!==a&&h>l&&(d-=a.y),{left:u,top:d,width:f,height:o}}function Ht(t){var e=this.data,i=t.left,n=t.width,r=t.height,o=t.l,a=t.t,s=t.scroll,l=e.freezeTotalWidth(),c=e.displayRight2Left?0===l?i:i-(e.viewWidth()-e.cols.indexWidth-l):i-l,h=n;return void 0!==s&&(e.displayRight2Left?0===l||(c+n<0?c=19999:c<0&&(h-=s.x)):l>o&&(c-=s.x)),{left:c,top:a,width:h,height:r}}function Nt(t){var e=this.data,i=t.top,n=t.width,r=t.height,o=t.l,a=t.t,s=t.scroll,l=t.left,c=e.freezeTotalHeight(),h=i-c;return c>a&&(h-=s.y),e.displayRight2Left?{left:l,top:h,width:n,height:r}:{left:o,top:h,width:n,height:r}}function Wt(t){this.br.setAreaOffset(Bt.call(this,t))}function Xt(t){this.tl.setAreaOffset(t)}function Ut(t){this.t.setAreaOffset(Ht.call(this,t))}function Yt(t){this.l.setAreaOffset(Nt.call(this,t))}function Vt(t){this.l.setClipboardOffset(Nt.call(this,t))}function Gt(t){this.br.setClipboardOffset(Bt.call(this,t))}function qt(t){this.tl.setClipboardOffset(t)}function Kt(t){this.t.setClipboardOffset(Ht.call(this,t))}function Zt(t){Wt.call(this,t),Xt.call(this,t),Ut.call(this,t),Yt.call(this,t)}function Jt(t){Gt.call(this,t),qt.call(this,t),Kt.call(this,t),Vt.call(this,t)}var $t=function(){function t(e){var i=this;l()(this,t),this.inputChange=function(){},this.data=e;var n="edit"!==e.settings.mode;this.br=new zt(n,!0),this.t=new zt(n),this.l=new zt(n),this.tl=new zt(n),this.br.inputChange=function(t){i.inputChange(t)},this.br.el.show(),this.offset=null,this.areaOffset=null,this.indexes=null,this.range=null,this.arange=null,this.el=f("div","".concat(ot,"-selectors")).children(this.tl.el,this.t.el,this.l.el,this.br.el).hide(),this.lastri=-1,this.lastci=-1,Lt+=1,this.mobilestartOffset=null,this.mobilestartRange=null,this.objId=null}return a()(t,[{key:"getObj",value:function(){if(null===this.objId)return null;var t=this.objId.split("_");return"s"===t[0]?this.data.shapes.filter((function(e){return Number(e.id)===Number(t[1])}))[0]:this.data.images.filter((function(e){return Number(e.id)===Number(t[1])}))[0]}},{key:"setObjId",value:function(t){this.objId=t}},{key:"setMobilestartOffsetAndRange",value:function(){this.mobilestartOffset=this.data.getSelectedRect(),this.mobilestartRange=this.range}},{key:"resetData",value:function(t){this.data=t,this.range=t.selector.range,this.resetAreaOffset()}},{key:"hide",value:function(){this.el.hide()}},{key:"resetOffset",value:function(){var t=this.data,e=this.tl,i=this.t,n=this.l,r=this.br,o=t.freezeTotalHeight(),a=t.freezeTotalWidth();if(o>0||a>0)if(this.data.displayRight2Left){var s=t.viewWidth()-t.cols.indexWidth;e.setOffset({width:s-a,height:o}),i.setOffset({left:s-a,height:o}),n.setOffset({width:s-a,top:o}),r.setOffset({left:s-a,top:o})}else e.setOffset({width:a,height:o}),i.setOffset({left:a,height:o}),n.setOffset({width:a,top:o}),r.setOffset({left:a,top:o});else e.hide(),i.hide(),n.hide(),r.setOffset({left:0,top:0})}},{key:"resetAreaOffset",value:function(){var t=this.data.getSelectedRect(),e=this.data.getClipboardRect();Zt.call(this,t),Jt.call(this,e),this.resetOffset()}},{key:"resetBRTAreaOffset",value:function(){var t=this.data.getSelectedRect(),e=this.data.getClipboardRect();this.data.displayRight2Left?0===this.data.freeze[1]?Wt.call(this,t):(Yt.call(this,t),Xt.call(this,t),Vt.call(this,e),qt.call(this,e)):(Wt.call(this,t),Ut.call(this,t),Gt.call(this,e),Kt.call(this,e)),this.resetOffset()}},{key:"resetBRLAreaOffset",value:function(){var t=this.data.getSelectedRect(),e=this.data.getClipboardRect();Wt.call(this,t),Yt.call(this,t),Gt.call(this,e),Vt.call(this,e),this.resetOffset()}},{key:"set",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this.data,r=n.calSelectedRangeByStart(t,e),o=r.sri,a=r.sci;if(i){var s=t,l=e;t<0&&(s=0),e<0&&(l=0),n.selector.setIndexes(s,l),this.indexes=[s,l]}this.moveIndexes=[o,a],this.range=r,this.resetAreaOffset(),this.el.show()}},{key:"setEnd",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this.data,r=this.lastri,o=this.lastci;if(i){if(t===r&&e===o)return;this.lastri=t,this.lastci=e}this.moveIndexes=[t,e],this.range=n.calSelectedRangeByEnd(t,e),Zt.call(this,this.data.getSelectedRect())}},{key:"setEndMobile",value:function(t,e){Zt.call(this,{width:this.mobilestartOffset.width+t,height:this.mobilestartOffset.height+e,left:this.mobilestartOffset.left,top:this.mobilestartOffset.top})}},{key:"getMobileMultipleSelect",value:function(t,e){var i=this.mobilestartRange,n=i.sri,r=i.sci,o=i.eri,a=i.eci,s=0,l=0,c=o,h=a;if(e>0){for(var u=o+1;u<=this.data.rows.len-1;u++)if((s+=this.data.rows.getHeight(u))>e){c=u-1;break}}else{e=-e;for(u=o;u>=n;u--)if((s+=this.data.rows.getHeight(u))>e){c=u-1;break}c===n-1&&(c=n)}if(t>0){for(var f=a+1;f<=this.data.cols.len-1;f++)if((l+=this.data.cols.getWidth(f))>t){h=f-1;break}}else{t=-t;for(f=a;f>=r;f--)if((l+=this.data.cols.getWidth(f))>t){h=f-1;break}h===r-1&&(h=r)}return[c,h]}},{key:"setMobileMultipleSelect",value:function(t,e){var i=this.getMobileMultipleSelect(t,e),n=r()(i,2),o=n[0],a=n[1];this.setEnd(o,a,!1)}},{key:"setMobile",value:function(t,e,i,n){var r=this.range,o=r.eri,a=r.eci;this.set(t,e),this.lastri=this.lastci=0,this.setEnd(o,a);var s=this.data.getSelectedRect();i=i>s.width+s.left?s.width+s.left:i,n=n>s.height+s.top?s.height+s.top:n,Zt.call(this,{width:s.width+(s.left-i),height:s.height+(s.top-n),left:i,top:n}),this.el.show()}},{key:"reset",value:function(){var t=this.data.selector.range,e=t.eri,i=t.eci;this.setEnd(e,i)}},{key:"showAutofill",value:function(t,e){if(-1!==t||-1!==e){var i=this.range,n=i.sri,r=i.sci,o=i.eri,a=i.eci,s=t,l=e,c=n-t,h=o-t,u=a-e;if(r-e>0)this.arange=new x(n,l,o,r-1);else if(c>0)this.arange=new x(s,r,n-1,a);else if(u<0)this.arange=new x(n,a+1,o,l);else{if(!(h<0))return void(this.arange=null);this.arange=new x(o+1,r,s,a)}if(null!==this.arange){var f=this.data.getRect(this.arange);f.width+=2,f.height+=2;var d=this.br,v=this.l,g=this.t,p=this.tl;d.showAutofill(Bt.call(this,f)),v.showAutofill(Nt.call(this,f)),g.showAutofill(Ht.call(this,f)),p.showAutofill(f)}}}},{key:"hideAutofill",value:function(){var t=this;["br","l","t","tl"].forEach((function(e){t[e].hideAutofill()}))}},{key:"showClipboard",value:function(){var t=this,e=this.data.getClipboardRect();Jt.call(this,e),["br","l","t","tl"].forEach((function(e){t[e].showClipboard()}))}},{key:"hideClipboard",value:function(){var t=this;["br","l","t","tl"].forEach((function(e){t[e].hideClipboard()}))}}]),t}();function Qt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var te=function(t){tt()(i,t);var e=Qt(i);function i(t){var n;return l()(this,i),(n=e.call(this,"dialog")).show(),n.setContent(t),n}return a()(i,[{key:"hide",value:function(){this.removeAttr("open")}},{key:"show",value:function(){this.attr("open","")}},{key:"setContent",value:function(t){var e=f("p");e.child(t),this.child(e)}}],[{key:"findDialog",value:function(t){for(var e=[],i=0;i<t.children().length;i++)"dialog"===t.children()[i].localName&&e.push(i);return e}}]),i}(u);function ee(t){t.preventDefault(),t.stopPropagation();var e=this.filterItems;e.length<=0||(this.itemIndex>=0&&(e[this.itemIndex].toggle(),e[this.itemIndex].el.hideHelp()),this.itemIndex-=1,this.itemIndex<0&&(this.itemIndex=e.length-1),e[this.itemIndex].toggle(),e[this.itemIndex].el.showHelp())}function ie(t){t.stopPropagation();var e=this.filterItems;e.length<=0||(this.itemIndex>=0&&(e[this.itemIndex].toggle(),e[this.itemIndex].el.hideHelp()),this.itemIndex+=1,this.itemIndex>e.length-1&&(this.itemIndex=0),e[this.itemIndex].toggle(),e[this.itemIndex].el.showHelp())}function ne(t){t.preventDefault();var e=this.filterItems;e.length<=0||(t.stopPropagation(),this.itemIndex<0&&(this.itemIndex=0),e[this.itemIndex].el.click(),this.hide())}function re(t,e){e.focusing=!0;var i=t.keyCode;switch(t.ctrlKey&&t.stopPropagation(),i){case 37:t.stopPropagation();break;case 38:ee.call(this,t);break;case 39:t.stopPropagation();break;case 40:ie.call(this,t);break;case 13:case 9:ne.call(this,t);break;default:t.stopPropagation()}}var oe=function(){function t(e,i){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"200px";l()(this,t),this.filterItems=[],this.items=e,this.el=f("div","".concat(ot,"-suggest")).css("width",n).hide(),this.itemClick=i,this.itemIndex=-1}return a()(t,[{key:"setOffset",value:function(t){this.el.cssRemoveKeys("top","bottom").offset(t)}},{key:"hide",value:function(){var t=this.el;this.filterItems=[],this.itemIndex=-1,t.hide();for(var e=te.findDialog(t.parent()),i=0;i<e.length;i++)t.parent().removeChild(t.parent().children()[e[i]]);Et(this.el.parent())}},{key:"setItems",value:function(t){this.items=t}},{key:"search",value:function(t){var e,i=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=this.items;if(/^\s*$/.test(t)||(r=r.filter((function(e){return(e.key||e).startsWith(t.toUpperCase())}))),r=r.map((function(t){var e=t.title;e?"function"==typeof e&&(e=e()):e=t;var r=f("div","".concat(ot,"-item")).child("f"===n?t.key:e).on("click.stop",(function(){i.itemClick(t),i.hide()}));return t.label&&r.child(f("div","label").html(t.label)),"f"===n&&(r.el.help=new te(t.title())),r.el.showHelp=function(){var t=i.el.el.offsetTop+i.filterItems[i.itemIndex].el.offsetTop,e=i.el.el.offsetLeft+i.filterItems[i.itemIndex].el.clientWidth+20,n={top:"".concat(t,"px"),left:"".concat(e,"px"),"line-height":"16px",padding:"5px 2px"},r=i.filterItems[i.itemIndex].el.help;r.css(n),i.el.parent().child(r),Rt(r,(function(t){for(var e=te.findDialog(i.el.parent()),n=0;n<e.length;n++)i.el.parent().removeChild(i.el.parent().children()[e[n]]);Et(t)}))},r.el.hideHelp=function(){i.el.parent().contains(i.filterItems[i.itemIndex].el.help.el)&&i.el.parent().removeChild(i.filterItems[i.itemIndex].el.help.el),Et(i.filterItems[i.itemIndex].el.help)},r})),this.filterItems=r,!(r.length<=0)){var o=this.el;if((e=o.html("")).children.apply(e,v()(r)).show(),"f"===n){for(var a=te.findDialog(o.parent()),s=0;s<a.length;s++)o.parent().removeChild(o.parent().children()[a[s]]);this.itemIndex=0,this.filterItems[this.itemIndex].el.hideHelp(),this.filterItems[this.itemIndex].toggle(),this.filterItems[this.itemIndex].el.showHelp(),Rt(o.parent(),(function(){i.hide(),i.filterItems.forEach((function(t){return t.hideHelp()}))}))}}}},{key:"bindInputEvents",value:function(t,e){var i=this;t.on("keydown",(function(t){return re.call(i,t,e)}))}}]),t}();function ae(t,e){t.setMonth(t.getMonth()+e)}function se(t,e){var i=new Date(t);return i.setDate(e-t.getDay()+1),i}var le=function(){function t(e){var i,n=this;l()(this,t),this.value=e,this.cvalue=new Date(e),this.headerLeftEl=f("div","calendar-header-left"),this.bodyEl=f("tbody",""),this.buildAll(),this.el=f("div","x-spreadsheet-calendar").children(f("div","calendar-header").children(this.headerLeftEl,f("div","calendar-header-right").children(f("a","calendar-prev").on("click.stop",(function(){return n.prev()})).child(new st("chevron-left")),f("a","calendar-next").on("click.stop",(function(){return n.next()})).child(new st("chevron-right")))),f("table","calendar-body").children(f("thead","").child((i=f("tr","")).children.apply(i,v()(W("calendar.weeks").map((function(t){return f("th","cell").child(t)}))))),this.bodyEl)),this.selectChange=function(){}}return a()(t,[{key:"setValue",value:function(t){this.value=t,this.cvalue=new Date(t),this.buildAll()}},{key:"prev",value:function(){ae(this.value,-1),this.buildAll()}},{key:"next",value:function(){ae(this.value,1),this.buildAll()}},{key:"buildAll",value:function(){this.buildHeaderLeft(),this.buildBody()}},{key:"buildHeaderLeft",value:function(){var t=this.value;this.headerLeftEl.html("".concat(W("calendar.months")[t.getMonth()]," ").concat(t.getFullYear()))}},{key:"buildBody",value:function(){var t,e=this,i=this.value,n=this.cvalue,r=this.bodyEl,o=function(t,e,i){for(var n=new Date(t,e,1,23,59,59),r=[[],[],[],[],[],[]],o=0;o<6;o+=1)for(var a=0;a<7;a+=1){var s=se(n,7*o+a),l=s.getMonth()!==e,c=s.getMonth()===i.getMonth()&&s.getDate()===i.getDate();r[o][a]={d:s,disabled:l,active:c}}return r}(i.getFullYear(),i.getMonth(),n).map((function(t){var i,n=t.map((function(t){var i="cell";return t.disabled&&(i+=" disabled"),t.active&&(i+=" active"),f("td","").child(f("div",i).on("click.stop",(function(){e.selectChange(t.d)})).child(t.d.getDate().toString()))}));return(i=f("tr","")).children.apply(i,v()(n))}));(t=r.html("")).children.apply(t,v()(o))}}]),t}(),ce=function(){function t(){l()(this,t),this.calendar=new le(new Date),this.el=f("div","".concat(ot,"-datepicker")).child(this.calendar.el).hide()}return a()(t,[{key:"setValue",value:function(t){var e=this.calendar;return"string"==typeof t?/^\d{4}-\d{1,2}-\d{1,2}$/.test(t)&&e.setValue(new Date(t.replace(new RegExp("-","g"),"/"))):t instanceof Date&&e.setValue(t),this}},{key:"change",value:function(t){var e=this;this.calendar.selectChange=function(i){t(i),e.hide()}}},{key:"show",value:function(){this.el.show()}},{key:"hide",value:function(){this.el.hide()}}]),t}(),he=[{key:"SUM",title:X("formula.sum"),render:function(t){return t.reduce((function(t,e){return D("+",t,e)}),0)},tipInfo:{repeat:!0,args:[{name:"number",required:!1}]}},{key:"AVERAGE",title:X("formula.average"),render:function(t){return t.reduce((function(t,e){return Number(t)+Number(e)}),0)/t.length},tipInfo:{repeat:!0,args:[{name:"number",required:!1}]}},{key:"MAX",title:X("formula.max"),render:function(t){return Math.max.apply(Math,v()(t.map((function(t){return Number(t)}))))},tipInfo:{repeat:!0,args:[{name:"number",required:!1}]}},{key:"MIN",title:X("formula.min"),render:function(t){return Math.min.apply(Math,v()(t.map((function(t){return Number(t)}))))},tipInfo:{repeat:!0,args:[{name:"number",required:!1}]}},{key:"IF",title:X("formula._if"),render:function(t){var e=r()(t,3),i=e[0],n=e[1],o=e[2];return i?n:o},tipInfo:{repeat:!1,args:[{name:"logical_test",required:!0},{name:"value_if_true",required:!1},{name:"value_if_false",required:!1}]}},{key:"AND",title:X("formula.and"),render:function(t){return t.every((function(t){return t}))},tipInfo:{repeat:!0,args:[{name:"logical",required:!1}]}},{key:"OR",title:X("formula.or"),render:function(t){return t.some((function(t){return t}))},tipInfo:{repeat:!0,args:[{name:"logical",required:!1}]}},{key:"CONCAT",title:X("formula.concat"),render:function(t){return t.join("")},tipInfo:{repeat:!0,args:[{name:"text",required:!1}]}}],ue=he,fe={};function de(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=function(t,e){if(!t)return;if("string"==typeof t)return ve(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return ve(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function ve(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}he.forEach((function(t){fe[t.key]=t}));var ge=function(){function t(){l()(this,t),this.el=f("div").hide(),this.el.css({position:"absolute",padding:"5px",color:"#000","border-radius":"1px","font-size":"12px","z-index":"201","line-height":"10px","min-width":"20px",background:"#fff",border:"1px solid",top:"30px",left:"0px","white-space":"nowrap"})}return a()(t,[{key:"tipContent",value:function(t,e){if(void 0===t)return"";var i=t.tipInfo.args.slice(),n="";t.tipInfo.repeat&&(n=i[i.length-1].name,i.pop());var r=[];if(""!==n){for(var o=1;i.length!==e+2;){var a=n+o;o++,i.push({name:a,required:!1})}i.push({name:"...",required:!0})}for(var s=0;s<i.length;s++){var l=i[s].required||0===s?i[s].name:"[".concat(i[s].name,"]");r.push(l)}return r[e]="<strong>".concat(r[e],"</strong>"),"".concat(t.key.toUpperCase(),"(").concat(r.join(", "),")")}},{key:"hide",value:function(){this.el.hide()}},{key:"show",value:function(t){if(-1!==t.startsWith("=")){var e,i="",n=[],r=[],o=de(t.substring(1));try{for(o.s();!(e=o.n()).done;){var a=e.value;switch(a){case"(":n.unshift(i),r.unshift(0),i="";break;case")":n.shift(),r.shift();break;case",":r[0]++,i="";break;case"=":break;default:i+=a}}}catch(t){o.e(t)}finally{o.f()}var s=he.find((function(t){return void 0!==n[0]&&t.key===n[0].toUpperCase()})),l=this.tipContent(s,r[0]);this.el.html(l),""!==l&&this.el.show(),""===l?this.el.hide():this.el.show(),Rt(this.el)}}}]),t}();function pe(){var t=this.inputText;if(!/^\s*$/.test(t)){var e=this.textlineEl,i=this.textEl,n=this.areaOffset,r=t.split("\n"),o=Math.max.apply(Math,v()(r.map((function(t){return t.length})))),a=e.offset().width/t.length,s=(o+1)*a+5,l=this.viewFn().width-n.left-a,c=r.length;if(s>n.width){var h=s;s>l&&(h=l,c+=parseInt(s/l,10),c+=s%l>0?1:0),i.css("width","".concat(h,"px"))}c*=this.rowHeight,(c-=7)>n.height&&i.css("height","".concat(c,"px"))}}function me(t){var e=t.target;if(window.getSelection){var i=window.getSelection(),n=i.getRangeAt(0),r=document.createElement("br");n.deleteContents(),n.insertNode(r),n.collapse(!1),i.removeAllRanges(),i.addRange(n),this.inputText=e.innerText,this.inputHtml=e.innerHTML,pe.call(this)}}function ye(t){var e=t.keyCode,i=t.altKey;13!==e&&9!==e&&t.stopPropagation(),13===e&&i&&(me.call(this,t),t.stopPropagation()),13!==e||i||t.preventDefault()}function be(t){var e=t.target.innerText,i=t.target.innerHTML,n=this.suggest,r=this.textlineEl,o=this.validator,a=this.cell;if(null!==a)if("editable"in a&&!0===a.editable||void 0===a.editable){if(this.inputText=e,this.inputHtml=i,o)"list"===o.type?n.search(e):n.hide();else{var s=e.lastIndexOf("=");-1!==s?(n.search(e.substring(s+1),"f"),"("===t.data&&n.hide(),this.formalaTip.show(e)):(n.hide(),this.formalaTip.hide())}r.html(i),pe.call(this),this.change("input",e)}else t.target.innerText="";else{if(this.inputText=e,this.inputHtml=i,o)"list"===o.type?n.search(e):n.hide();else{var l=e.lastIndexOf("=");-1!==l?(n.search(e.substring(l+1),"f"),"("===t.data&&n.hide(),this.formalaTip.show(e)):(n.hide(),this.formalaTip.hide())}r.html(e),pe.call(this),this.change("input",e)}}function we(t,e){var i=this.textEl.el;setTimeout((function(){if(e){var t=window.getSelection(),n=document.createRange();t.removeAllRanges(),n.selectNodeContents(i),n.collapse(!1),t.addRange(n),i.focus()}}),1)}function xe(t,e,i,n){var r=this.textEl,o=this.textlineEl;mobileAndTabletCheck()||r.el.blur();var a=!1;t.length>0?(a=!0,r.html(t)):r.html(e,!0,!0),a?o.html(t):o.html(e,!0,!0),we.call(this,i,n)}function Ce(t,e){var i=this.inputText,n=this.validator,r=0;if(n&&"list"===n.type)this.inputText=t,r=this.inputText.length;else{var o=i.lastIndexOf("="),a=i.substring(0,o+1),s=i.substring(o+1);s=-1!==s.indexOf(")")?s.substring(s.indexOf(")")):"",this.inputText="".concat(a+t.key,"("),r=this.inputText.length,this.inputText+="".concat(s),this.formalaTip.show(this.inputText)}xe.call(this,this.inputText,r,e)}function ke(){this.suggest.setItems(this.formulas)}var _e=function(){function t(e,i,n,r){var o=this;l()(this,t),this.viewFn=i,this.rowHeight=n,this.formulas=e,this.formalaTip=new ge,this.suggest=new oe(e,(function(t){Ce.call(o,t,!0)})),this.datepicker=new ce,this.datepicker.change((function(t){o.setText(function(t){var e=t.getMonth()+1,i=t.getDate();return e<10&&(e="0".concat(e)),i<10&&(i="0".concat(i)),"".concat(t.getFullYear(),"-").concat(e,"-").concat(i)}(t)),o.clear()})),this.areaEl=f("div","".concat(ot,"-editor-area")).children(this.textEl=f("div","htmlline").on("input",(function(t){return be.call(o,t)})).on("paste.stop",(function(){})).on("keydown",(function(t){return ye.call(o,t)})),this.textlineEl=f("div","textline"),this.suggest.el,this.datepicker.el,this.formalaTip.el).on("mousemove.stop",(function(){})).on("mousedown.stop",(function(){})),this.el=f("div","".concat(ot,"-editor")).child(this.areaEl).hide(),this.suggest.bindInputEvents(this.textEl,r),this.areaOffset=null,this.freeze={w:0,h:0},this.cell=null,this.inputText="",this.inputHtml="",this.ishtml=!1,this.change=function(){}}return a()(t,[{key:"setFreezeLengths",value:function(t,e){this.freeze.w=t,this.freeze.h=e}},{key:"insertTextNewLine",value:function(t){me.call(this,t)}},{key:"clear",value:function(){""!==this.inputText&&this.change("finished",this.ishtml?this.inputHtml:this.inputText),this.cell=null,this.areaOffset=null,this.inputText="",this.inputHtml="",this.ishtml=!1,this.el.hide(),this.textEl.html(""),this.textlineEl.html(""),ke.call(this),this.datepicker.hide()}},{key:"setOffset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",i=this.textEl,n=this.areaEl,r=this.suggest,o=this.freeze,a=this.el;if(t){this.areaOffset=t;var s=t.left,l=t.top,c=t.width,h=t.height,u=t.l,f=t.t,d={left:0,top:0};o.w>u&&o.h>f||(o.w<u&&o.h<f?(d.left=o.w,d.top=o.h):o.w>u?d.top=o.h:o.h>f&&(d.left=o.w)),a.offset(d),n.offset({left:s-d.left-.8,top:l-d.top-.8}),i.offset({width:c-.2,height:h-.2});var v={left:0};v[e]=h,r.setOffset(v),r.hide()}}},{key:"setCell",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this.el,r=this.datepicker,o=this.suggest,a=this.textEl;a.attr("contenteditable","true"),n.show(),this.cell=t;var s=t&&t.text||"",l=t&&t.html||"";if(t&&(t.f?s=t.f:t.ufv&&(s=t.ufv)),this.ishtml=t&&t.html,this.setTextAndHtml(l,s,i),this.validator=e,e){var c=e.type;"date"===c&&(r.show(),/^\s*$/.test(s)||r.setValue(s)),"list"===c&&(o.setItems(e.values()),o.search(""))}}},{key:"setTextAndHtml",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];this.inputText=e,this.inputHtml=t,xe.call(this,t,e,e.length,i),pe.call(this)}},{key:"setText",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.inputText=t,xe.call(this,"",t,t.length,e),pe.call(this)}}]),t}();function Se(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Te=function(t){tt()(i,t);var e=Se(i);function i(t){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return l()(this,i),(n=e.call(this,"div","".concat(ot,"-button ").concat(r))).child(W("button.".concat(t))),n}return i}(u);function Oe(){return window.devicePixelRatio||1}function Ee(){return Oe()-.5}function Re(t){return parseInt(t*Oe(),10)}function Ae(t){var e=Math.ceil(t/Oe());return Re(e)===t?e:e-1}function Ie(t){var e=Re(t);return e>0?e-.5:.5}var Pe=function(){function t(e,i,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;l()(this,t),this.x=e,this.y=i,this.width=n,this.height=r,this.padding=o,this.bgcolor="#ffffff",this.borderTop=null,this.borderRight=null,this.borderBottom=null,this.borderLeft=null,this.pbgcolor=null,this.pattern=null}return a()(t,[{key:"setBorders",value:function(t){var e=t.top,i=t.bottom,n=t.left,r=t.right;e&&(this.borderTop=e),r&&(this.borderRight=r),i&&(this.borderBottom=i),n&&(this.borderLeft=n)}},{key:"setPattern",value:function(t){t&&(this.pattern=t)}},{key:"innerWidth",value:function(){return this.width-2*this.padding-2}},{key:"innerHeight",value:function(){return this.height-2*this.padding-2}},{key:"textx",value:function(t){var e=this.width,i=this.padding,n=this.x;return"left"===t?n+=i:"center"===t?n+=e/2:"right"===t&&(n+=e-i),n}},{key:"texty",value:function(t,e){var i=this.height,n=this.padding,r=this.y;return"top"===t?r+=n:"middle"===t?r+=i/2-e/2:"bottom"===t&&(r+=i-n-e),r}},{key:"topxys",value:function(){var t=this.x,e=this.y;return[[t,e],[t+this.width,e]]}},{key:"rightxys",value:function(){var t=this.x,e=this.y,i=this.width;return[[t+i,e],[t+i,e+this.height]]}},{key:"bottomxys",value:function(){var t=this.x,e=this.y,i=this.width,n=this.height;return[[t,e+n],[t+i,e+n]]}},{key:"leftxys",value:function(){var t=this.x,e=this.y;return[[t,e],[t,e+this.height]]}}]),t}();function De(t,e,i,n,r,o,a){var s={x:0,y:0};"underline"===t?s.y="bottom"===r?0:"top"===r?-(o+2):-o/2:"strike"===t&&("bottom"===r?s.y=o/2:"top"===r&&(s.y=-(o/2+2))),"center"===n?s.x=a/2:"right"===n&&(s.x=a),this.line([e-s.x,i-s.y],[e-s.x+a,i-s.y])}function Fe(t,e,i,n,r,o){for(var a=i;a<r;a+=o)t.moveTo(e,a),t.lineTo(n,a)}function Me(t,e,i,n,r,o){for(var a=e;a<n;a+=o)t.moveTo(a,i),t.lineTo(a,r)}function je(t,e,i,n,r,o){for(var a=e,s=a+o;s<=n;s+=o)t.moveTo(s,r),t.lineTo(a,i),a+=o}function Le(t,e,i,n,r,o){for(var a=e,s=a+o;s<=n;s+=o)t.moveTo(a,r),t.lineTo(s,i),a+=o}function ze(t,e,i,n,r,o){for(var a=i;a<r;a+=o)t.moveTo(e,a),t.lineTo(n,a)}var Be=function(){function t(e,i,n){l()(this,t),this.el=e,this.ctx=e.getContext("2d"),this.resize(i,n),this.ctx.scale(Oe(),Oe())}return a()(t,[{key:"resize",value:function(t,e){this.el.style.width="".concat(t,"px"),this.el.style.height="".concat(e,"px"),this.el.width=Re(t),this.el.height=Re(e)}},{key:"clear",value:function(){var t=this.el,e=t.width,i=t.height;return this.ctx.clearRect(0,0,e,i),this}},{key:"attr",value:function(t){return Object.assign(this.ctx,t),this}},{key:"save",value:function(){return this.ctx.save(),this.ctx.beginPath(),this}},{key:"restore",value:function(){return this.ctx.restore(),this}},{key:"beginPath",value:function(){return this.ctx.beginPath(),this}},{key:"translate",value:function(t,e){return this.ctx.translate(Re(t),Re(e)),this}},{key:"scale",value:function(t,e){return this.ctx.scale(t,e),this}},{key:"scaledpr",value:function(t){this.scale(t,t)}},{key:"clearRect",value:function(t,e,i,n){return this.ctx.clearRect(t,e,i,n),this}},{key:"fillRect",value:function(t,e,i,n){return this.ctx.fillRect(Re(t)-.5,Re(e)-.5,Re(i),Re(n)),this}},{key:"fillText",value:function(t,e,i){return this.ctx.fillText(t,Re(e),Re(i)),this}},{key:"richtext",value:function(t,e,i,n){var r=this,o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=arguments.length>5?arguments[5]:void 0,s=this.ctx,l=t.bigfontsize,c=t.rtxt,h=e.exttxtwidth?e.exttxtwidth+e.innerWidth():e.innerWidth(),u=e.textx(i);s.save(),s.beginPath();var f=this;this.attr({textAlign:"center"===i?"right":i,textBaseline:"bottom"});var d=[],v=[],g=c.length;if(o)for(var p=function(t){var i=c[t],n=[],r=e.padding,o=0,a=0;i.forEach((function(t){f.attr({font:"".concat(t.font.italic?"italic":""," ").concat(t.font.bold?"bold":""," ").concat(t.font.size,"pt ").concat(t.font.name)});var i=s.measureText(t.txt).width;if(o=r,(r+=i)>Re(h)){for(var l={w:o,len:0,start:0},c=0;c<t.txt.length;)if(l.w+=s.measureText(t.txt[c]).width+1,l.w>=Re(h)){if(l.len>l.start){var u={};u.font=t.font,u.txt=t.txt.substr(l.start,l.len),n.push(u),t.font.size>a&&(a=t.font.size)}d.push(n),v.push(a),l={w:0,len:c,start:c},r=e.padding,n=[],a=0}else l.len+=1,c++;if(l.len>l.start){var g={};g.font=t.font,g.txt=t.txt.substr(l.start,l.len),n.push(g),t.font.size>a&&(a=t.font.size),r=l.w}}else n.push(t),t.font.size>a&&(a=t.font.size)})),d.push(n),v.push(a)},m=0;m<g;m++)p(m);else d=c,v=l;for(var y=v.length,b=0,w=0;w<y;w++)b+=v[w]+8;var x=e.texty(n,b),C=0,k=!1,_=[],S=[];if("center"===i||"right"===i)for(var T=0;T<y;T++){var O=d[T],E=0;O.forEach((function(t){f.attr({font:"".concat(t.font.italic?"italic":""," ").concat(t.font.bold?"bold":""," ").concat(Re(t.font.size),"pt ").concat(t.font.name),fillStyle:t.font.color,strokeStyle:t.font.color}),E+=Ae(s.measureText(t.txt).width)})),S.push(E)}for(var R=function(t){var e=d[t],n=0,o=u,l=o,c=o,h=v[t]+8,g=S.length>0?S[t]:0;"center"===i?l=o-g/2:"right"===i&&(l=o-g);var p=l;x+=h,e.forEach((function(t){f.attr({font:"".concat(t.font.italic?"italic":""," ").concat(t.font.bold?"bold":""," ").concat(Re(t.font.size),"pt ").concat(t.font.name),fillStyle:t.font.color,strokeStyle:t.font.color});var e=Ae(s.measureText(t.txt).width);if(c=p+e,null!==a){if(C<=a.start&&a.start<C+t.txt.length){k=!0;var u=t.txt.substr(0,a.start-C),d=Ae(s.measureText(u).width);l=p+d}if(C<a.end&&a.end<=C+t.txt.length){var v=t.txt.substr(0,a.end-C),m=Ae(s.measureText(v).width);c=p+m,k=!1,_.push({x:l,y:x-h,w:c-l,h:h})}}n+=e;var y=0;"center"===i?y=g/2-n:"right"===i&&(y=g-n),r.fillText(t.txt,o-y,x),"center"===i&&(y+=e/2),t.font.strike&&De.call(r,"strike",o-y,x,i,"bottom",t.font.size,e),t.font.underline&&De.call(r,"underline",o-y,x,i,"bottom",t.font.size,e),"left"===i&&(o+=e),p+=e,C+=t.txt.length})),null!==a&&k&&_.push({x:l,y:x-h,w:c-l,h:h}),C++},A=0;A<y;A++)R(A);if(s.restore(),null!==a){s.save(),this.attr({fillStyle:a.color});for(var I=0,P=_.length;I<P;I++){var D=_[I];this.fillRect(D.x,D.y,D.w,D.h)}s.restore()}return this}},{key:"text",value:function(t,e){var i=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4?arguments[4]:void 0,a=this.ctx,s=n.align,l=n.valign,c=n.font,h=n.color,u=n.strike,f=n.underline,d=e.textx(s);a.save(),a.beginPath(),this.attr({textAlign:s,textBaseline:l,font:"".concat(c.italic?"italic":""," ").concat(c.bold?"bold":""," ").concat(Re(c.size),"px ").concat(c.name),fillStyle:h,strokeStyle:h});var v="".concat(t).split("\n"),g=e.exttxtwidth?e.exttxtwidth+e.innerWidth():e.innerWidth(),p=[];v.forEach((function(t){var e=a.measureText(t).width;if(r&&e>Re(g)){for(var i={w:0,len:0,start:0},n=0;n<t.length;n+=1)i.w>=Re(g)&&(p.push(t.substr(i.start,i.len)),i={w:0,len:0,start:n}),i.len+=1,i.w+=a.measureText(t[n]).width+1;i.len>0&&p.push(t.substr(i.start,i.len))}else p.push(t)}));var m=(p.length-1)*(c.size+2),y=e.texty(l,m),b=0,w=!1,x=[];if(p.forEach((function(t){var e=a.measureText(t).width,n=d,r=d+Ae(e);if(null!==o){if(b<=o.start&&o.start<b+t.length){w=!0;var h=t.substr(0,o.start-b),v=Ae(a.measureText(h).width);n+=v,Ae(e)-v}if(b<o.end&&o.end<b+t.length){var g=t.substr(0,o.end-b),p=Ae(a.measureText(g).width);r=d+p}if(b>o.end&&(w=!1),w){var m={x:0,y:0};m.y="bottom"===l?c.size+2:"top"===l?2:(c.size+2)/2,"center"===s?m.x=Ae(e/2):"right"===s&&(m.x=Ae(e)),x.push({x:n-m.x,y:y-m.y,w:r-n,h:c.size+2})}}i.fillText(t,d,y),u&&De.call(i,"strike",d,y,s,l,c.size,Ae(e)),f&&De.call(i,"underline",d,y,s,l,c.size,Ae(e)),y+=c.size+2,b+=t.length+1})),a.restore(),null!==o){a.save(),this.attr({fillStyle:o.color});for(var C=0,k=x.length;C<k;C++){var _=x[C];this.fillRect(_.x,_.y,_.w,_.h)}a.restore()}return this}},{key:"border",value:function(t,e){var i=this.ctx;return i.lineWidth=Ee,i.strokeStyle=e,"medium"===t?i.lineWidth=Re(2)-.5:"thick"===t?i.lineWidth=Re(3):"dashed"===t?i.setLineDash([Re(3),Re(2)]):"dotted"===t?i.setLineDash([Re(1),Re(1)]):"double"===t&&i.setLineDash([Re(2),0]),this}},{key:"line",value:function(){var t=this.ctx;if(arguments.length>1){t.beginPath();var e=arguments.length<=0?void 0:arguments[0],i=r()(e,2),n=i[0],o=i[1];t.moveTo(Ie(n),Ie(o));for(var a=1;a<arguments.length;a+=1){var s=a<0||arguments.length<=a?void 0:arguments[a],l=r()(s,2),c=l[0],h=l[1];t.lineTo(Ie(c),Ie(h))}t.stroke()}return this}},{key:"strokeBorders",value:function(t){var e=this.ctx;e.save();var i=t.borderTop,n=t.borderRight,r=t.borderBottom,o=t.borderLeft;i&&(this.border.apply(this,v()(i)),this.line.apply(this,v()(t.topxys()))),n&&(this.border.apply(this,v()(n)),this.line.apply(this,v()(t.rightxys()))),r&&(this.border.apply(this,v()(r)),this.line.apply(this,v()(t.bottomxys()))),o&&(this.border.apply(this,v()(o)),this.line.apply(this,v()(t.leftxys()))),e.restore()}},{key:"strokePattern",value:function(t){var e=this.ctx;e.save();var i=t.x,n=t.y,r=t.width,o=t.height,a=t.pattern;if(a){e.beginPath();var s=Ie(i),l=s+Re(r),c=Ie(n),h=c+Re(o);switch(a){case"None":case"Solid":break;case"HorizontalStripe":e.lineWidth=2,e.setLineDash([]),Fe(e,s,c,l,h,4);break;case"ThinHorizontalStripe":e.lineWidth=1,e.setLineDash([]),Fe(e,s,c,l,h,4);break;case"Gray75":e.lineWidth=2,e.setLineDash([2]),ze(e,s,c,l,h,3);break;case"VerticalStripe":e.lineWidth=2,e.setLineDash([]),Me(e,s,c,l,h,4);break;case"ThinVerticalStripe":e.lineWidth=1,e.setLineDash([]),Me(e,s,c,l,h,4);break;case"Gray50":e.lineWidth=2,e.setLineDash([2]),ze(e,s,c,l,h,3.5);break;case"ReverseDiagonalStripe":e.lineWidth=2,e.setLineDash([]),je(e,s,c,l,h,4);break;case"ThinReverseDiagonalStripe":e.lineWidth=1,e.setLineDash([]),je(e,s,c,l,h,4);break;case"Gray25":e.lineWidth=2,e.setLineDash([2]),ze(e,s,c,l,h,4);break;case"DiagonalStripe":e.lineWidth=2,e.setLineDash([]),Le(e,s,c,l,h,4);break;case"ThinDiagonalStripe":e.lineWidth=1,e.setLineDash([]),Le(e,s,c,l,h,4);break;case"Gray12":e.lineWidth=2,e.setLineDash([2]),ze(e,s,c,l,h,4.5);break;case"DiagonalCrosshatch":e.lineWidth=1.5,e.setLineDash([]),je(e,s,c,l,h,4),Le(e,s,c,l,h,4);break;case"ThinHorizontalCrosshatch":e.lineWidth=1,e.setLineDash([]),Fe(e,s,c,l,h,4),Me(e,s,c,l,h,4);break;case"Gray6":e.lineWidth=2,e.setLineDash([2]),ze(e,s,c,l,h,5);break;case"ThickDiagonalCrosshatch":e.lineWidth=2,e.setLineDash([]),je(e,s,c,l,h,4),Le(e,s,c,l,h,4);break;case"ThinDiagonalCrosshatch":e.lineWidth=1,e.setLineDash([]),je(e,s,c,l,h,4),Le(e,s,c,l,h,4)}e.closePath(),e.stroke()}e.restore()}},{key:"dropdown",value:function(t){var e=this.ctx,i=t.x,n=t.y,r=i+t.width-15,o=n+t.height-15;e.save(),e.beginPath(),e.moveTo(Re(r),Re(o)),e.lineTo(Re(r+8),Re(o)),e.lineTo(Re(r+4),Re(o+6)),e.closePath(),e.fillStyle="rgba(0, 0, 0, .45)",e.fill(),e.restore()}},{key:"error",value:function(t,e){var i=this.ctx,n=t.x,r=t.y,o=t.width,a=n+o-1;i.save(),i.beginPath(),e?(i.moveTo(Re(a-o+8),Re(r-1)),i.lineTo(Re(a-o),Re(r-1)),i.lineTo(Re(a-o),Re(r+8))):(i.moveTo(Re(a-8),Re(r-1)),i.lineTo(Re(a),Re(r-1)),i.lineTo(Re(a),Re(r+8))),i.closePath(),i.fillStyle="rgba(255, 0, 0, .65)",i.fill(),i.restore()}},{key:"frozen",value:function(t){var e=this.ctx,i=t.x,n=t.y,r=i+t.width-1;e.save(),e.beginPath(),e.moveTo(Re(r-8),Re(n-1)),e.lineTo(Re(r),Re(n-1)),e.lineTo(Re(r),Re(n+8)),e.closePath(),e.fillStyle="rgba(0, 255, 0, .85)",e.fill(),e.restore()}},{key:"line2",value:function(){var t=this.ctx;if(arguments.length>1){t.beginPath();var e=arguments.length<=0?void 0:arguments[0],i=r()(e,2),n=i[0],o=i[1];t.moveTo(n,o);for(var a=1;a<arguments.length;a+=1){var s=a<0||arguments.length<=a?void 0:arguments[a],l=r()(s,2),c=l[0],h=l[1];t.lineTo(c,h)}t.stroke()}return this}},{key:"rect2",value:function(t,e){var i=this.ctx,n=t.x,r=t.y,o=t.width,a=t.height,s=t.bgcolor,l=t.pbgcolor,c=t.exttxtwidthR,h=t.exttxtwidthL;if(i.save(),i.beginPath(),i.fillStyle=void 0!==s?s:void 0!==l?l:"#ffffff",i.rect(n+1,r+1,o-2,a-2),i.clip(),i.fill(),void 0!==c||void 0!==h){var u=void 0===c?0:c,f=void 0===h?0:h;i.restore(),i.save(),i.rect(n+1-f,r+1,o+u+f-2,a-2),i.clip(),e(),i.restore()}else e(),i.restore()}},{key:"rect",value:function(t,e){var i=this.ctx,n=t.x,r=t.y,o=t.width,a=t.height,s=t.bgcolor,l=t.pbgcolor,c=t.exttxtwidthR,h=t.exttxtwidthL;if(i.save(),i.beginPath(),i.fillStyle=void 0!==s?s:void 0!==l?l:"#ffffff",i.rect(Ie(n+1),Ie(r+1),Re(o-2),Re(a-2)),i.clip(),i.fill(),void 0!==c||void 0!==h){var u=void 0===c?0:c,f=void 0===h?0:h;i.restore(),i.save(),i.rect(Ie(n+1-f),Ie(r+1),Re(o+u+f-2),Re(a-2)),i.clip(),e(),i.restore()}else e(),i.restore()}}]),t}(),He=[{key:"Arial",title:"Arial"},{key:"Arial Black",title:"Arial Black"},{key:"Comic Sans",title:"Comic Sans"},{key:"Comic Sans MS",title:"Comic Sans MS"},{key:"Courier New",title:"Courier New"},{key:"Georgia",title:"Georgia"},{key:"Impact",title:"Impact"},{key:"Lucida Console",title:"Lucida Console"},{key:"Lucida Sans",title:"Lucida Sans"},{key:"Palatino",title:"Palatino"},{key:"Tahoma",title:"Tahoma"},{key:"Times New Roman",title:"Times New Roman"},{key:"Trebuchet",title:"Trebuchet"},{key:"Verdana",title:"Verdana"},{key:"Lato",title:"Lato"},{key:"Helvetica",title:"Helvetica"},{key:"Source Sans Pro",title:"Source Sans Pro"}],Ne=[{pt:7.5,px:10},{pt:8,px:11},{pt:9,px:12},{pt:10,px:13},{pt:10.5,px:14},{pt:11,px:15},{pt:12,px:16},{pt:14,px:18.7},{pt:15,px:20},{pt:16,px:21.3},{pt:18,px:24},{pt:22,px:29.3},{pt:24,px:32},{pt:26,px:34.7},{pt:36,px:48},{pt:42,px:56}];function We(t){for(var e=0;e<Ne.length;e+=1){var i=Ne[e];if(i.pt===t)return i.px}return t}var Xe=function(t){for(var e=[],i=[],n=[],o=0,a="",s=1,l="",c=0;c<t.length;c+=1){var h=t.charAt(c);if(" "!==h){if(h>="a"&&h<="z")n.push(h.toUpperCase());else if(h>="0"&&h<="9"||h>="A"&&h<="Z"||"."===h)n.push(h);else if('"'===h){for(c+=1;'"'!==t.charAt(c);)n.push(t.charAt(c)),c+=1;i.push('"'.concat(n.join(""))),n=[]}else if("-"===h&&/[+\-*/,(]/.test(l))n.push(h);else{if("("!==h&&n.length>0&&i.push(n.join("")),")"===h){var u=e.pop();if(2===o)try{for(var f=y(i.pop()),d=r()(f,2),v=d[0],g=d[1],p=y(i.pop()),m=r()(p,2),w=m[0],x=m[1],C=0,k=w;k<=v;k+=1)for(var _=x;_<=g;_+=1)i.push(b(k,_)),C+=1;i.push([u,C])}catch(t){}else if(1===o||3===o)3===o&&i.push(a),i.push([u,s]),s=1;else for(;"("!==u&&(i.push(u),!(e.length<=0));)u=e.pop();o=0}else if("="===h||">"===h||"<"===h){var S=t.charAt(c+1);a=h,"="!==S&&"-"!==S||(a+=S,c+=1),o=3}else if(":"===h)o=2;else if(","===h)3===o&&i.push(a),o=1,s+=1;else if("("===h&&n.length>0)e.push(n.join(""));else{if(e.length>0&&("+"===h||"-"===h)){var T=e[e.length-1];if("("!==T&&i.push(e.pop()),"*"===T||"/"===T)for(;e.length>0&&"("!==(T=e[e.length-1]);)i.push(e.pop())}e.push(h)}n=[]}l=h}}for(n.length>0&&i.push(n.join(""));e.length>0;)i.push(e.pop());return i},Ue=function(t,e){var i=r()(t,1)[0],n=t;if('"'===i)return t.substring(1);var o=1;if("-"===i&&(n=t.substring(1),o=-1),n[0]>="0"&&n[0]<="9")return o*Number(n);var a=y(n),s=r()(a,2);return o*e(s[0],s[1])},Ye=function(t,e,i,n){for(var o=[],a=0;a<t.length;a+=1){var s=t[a],l=s[0];if("+"===s){var c=o.pop();o.push(D("+",o.pop(),c))}else if("-"===s)if(1===o.length){var h=o.pop();o.push(D("*",h,-1))}else{var u=o.pop();o.push(D("-",o.pop(),u))}else if("*"===s)o.push(D("*",o.pop(),o.pop()));else if("/"===s){var f=o.pop();o.push(D("/",o.pop(),f))}else if("="===l||">"===l||"<"===l){var d=o.pop();Number.isNaN(d)||(d=Number(d));var v=o.pop();Number.isNaN(v)||(v=Number(v));var g=!1;"="===l?g=v===d:">"===s?g=v>d:">="===s?g=v>=d:"<"===s?g=v<d:"<="===s&&(g=v<=d),o.push(g)}else if(Array.isArray(s)){for(var p=r()(s,2),m=p[0],y=p[1],b=[],w=0;w<y;w+=1)b.push(o.pop());o.push(e[m].render(b.reverse()))}else{if(n.includes(s))return 0;(l>="a"&&l<="z"||l>="A"&&l<="Z")&&n.push(s),o.push(Ue(s,i)),n.pop()}}return o[0]},Ve=function t(e,i,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if("="===e[0]){var o=Xe(e.substring(1));return o.length<=0?e:Ye(o,i,(function(e,o){return t(n(e,o),i,n,r)}),r)}return e},Ge=function(t){return t},qe=function(t){if(/^(-?\d*.?\d*)$/.test(t)){var e=Number(t).toFixed(2).toString().split("\\."),i=h()(e),n=i[0],r=i.slice(1);return[n.toLocaleString()].concat(v()(r))}return t},Ke=[{key:"normal",title:X("format.normal"),type:"string",render:Ge},{key:"text",title:X("format.text"),type:"string",render:Ge},{key:"number",title:X("format.number"),type:"number",label:"1,000.12",render:qe},{key:"percent",title:X("format.percent"),type:"number",label:"10.12%",render:function(t){return"".concat(t,"%")}},{key:"rmb",title:X("format.rmb"),type:"number",label:"¥10.00",render:function(t){return"¥".concat(qe(t))}},{key:"usd",title:X("format.usd"),type:"number",label:"$10.00",render:function(t){return"$".concat(qe(t))}},{key:"eur",title:X("format.eur"),type:"number",label:"€10.00",render:function(t){return"€".concat(qe(t))}},{key:"date",title:X("format.date"),type:"date",label:"26/09/2008",render:Ge},{key:"time",title:X("format.time"),type:"date",label:"15:59:00",render:Ge},{key:"datetime",title:X("format.datetime"),type:"date",label:"26/09/2008 15:59:00",render:Ge},{key:"duration",title:X("format.duration"),type:"date",label:"24:01:00",render:Ge}],Ze={};function Je(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=function(t,e){if(!t)return;if("string"==typeof t)return $e(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return $e(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function $e(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}Ke.forEach((function(t){Ze[t.key]=t}));var Qe={fillStyle:"#f4f5f8"},ti={fillStyle:"#fff",lineWidth:Ee,strokeStyle:"#e6e6e6"};function ei(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=t.cellRect(e,i),o=r.left,a=r.top,s=r.width,l=r.height;return new Pe(o,a+n,s,l,3)}function ii(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=t.cellRect(e.sri,e.sci),r=n.left,o=n.top,a=t.cols.sumWidth(e.sci,e.eci+1),s=t.rows.sumHeight(e.sri,e.eri+1);return new Pe(r,o+i,a,s,3)}function ni(t,e,i,n,r,o,a){var s=t.cols,l=t.viewRangeCache;if(!a.textwrap&&o.text&&o.text.length>0){var c=0,h=0;if(void 0===a.align||"center"===a.align||"left"===a.align)for(var u=r+1;u<=l.eci;u++){var f=t.getCell(i,u);if(null!==f&&void 0!==f.text&&f.text.length>0)break;c+=s.getWidth(u)}if(a.align&&("center"===a.align||"right"===a.align))for(var d=r-1;d>=l.sci;d--){var v=t.getCell(i,d);if(null!==v&&void 0!==v.text&&v.text.length>0)break;h+=s.getWidth(d)}c>0&&(e.exttxtwidthR=c),h>0&&(e.exttxtwidthL=h)}}function ri(t){var e=[],i=[],n=[],r=0;if(void 0!==t.rtxt&&void 0===t.bigfontsize){for(var o=t.rtxt.length,a=0;a<o;a++){var s=t.rtxt[a].txt.split("\n"),l=s.length,c=t.rtxt[a].font.size;if(1===l)n.push(t.rtxt[a]),c>r&&(r=c);else{if(0!==s[0].length){var h={};h.font=t.rtxt[a].font,h.txt=s[0],n.push(h),c>r&&(r=c)}i.push(r),e.push(n),n=[],r=0;for(var u=1;u<l-1;u++){var f={};f.font=t.rtxt[a].font,f.txt=s[u],n.push(f),e.push(n),i.push(c),n=[],r=0}if(0!==s[l-1].length){var d={};d.font=t.rtxt[a].font,d.txt=s[l-1],n.push(d),r=c}}}n.length>0&&(i.push(r),e.push(n)),t.rtxt=e,t.bigfontsize=i}}function oi(t,e,i,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]&&arguments[5],a=e.sortedRowMap,s=e.rows,l=e.cols;e.viewRangeCache;if(!s.isHide(i)&&!l.isHide(n)){var c=i;a.has(i)&&(c=a.get(i));var h=e.getCell(c,n);if(null!==h){ri(h);var u=!1;"editable"in h&&!1===h.editable&&(u=!0);var f=e.getCellStyleOrDefault(c,n),d=ei(e,i,n,r);d.bgcolor=f.bgcolor,d.pbgcolor=f.pbgcolor,void 0!==f.border&&(d.setBorders(f.border),t.strokeBorders(d));var v=d;f.hasbgcolor&&!o&&(void 0!==f.border&&void 0!==f.border.right||(v.width+=3),void 0!==f.border&&void 0!==f.border.bottom||(v.height+=3)),ni(e,d,c,0,n,h,f);var g=e.getHighlightCellTxt(i,n);t.rect(v,(function(){var i="";i=e.settings.evalPaused||"server"===e.settings.updateMode?h.text||"":Ve(h.text||"",fe,(function(t,i){return e.getCellTextOrDefault(i,t)})),f.format&&"server"!==e.settings.updateMode&&(i=Ze[f.format].render(i));var r=Object.assign({},f.font);r.size=We(r.size),void 0===h.rtxt?t.text(i,d,{align:f.align,valign:f.valign,font:r,color:f.color,strike:f.strike,underline:f.underline},f.textwrap,g):t.richtext(h,d,f.align,f.valign,f.textwrap,g),e.validations.getError(c,n)&&t.error(d),u&&t.frozen(d),void 0!==f.pattern&&(d.setPattern(f.pattern),t.strokePattern(d))}))}}}function ai(t){var e=this.data,i=this.draw;if(t){var n=e.autoFilter,r=e.TableAutoFilters;si(e,t,i,n),r.forEach((function(n){si(e,t,i,n)}))}}function si(t,e,i,n){if(n.active()){var r=n.hrange();e.intersects(r)&&r.each((function(e,n){var r=ei(t,e,n);i.dropdown(r)}))}}function li(t,e,i,n,r){var o=this.draw,a=this.data;o.save(),a.displayRight2Left?o.translate(-e,i).translate(n,r):o.translate(e,i).translate(n,r),a.comments.forEach((function(e){if(t.sri<=e.row&&t.eri>=e.row&&t.sci<=e.col&&t.eci>=e.col){var i=ei(a,e.row,e.col);o.error(i,a.displayRight2Left)}})),o.restore()}function ci(t,e,i,n,r){var o=this.draw,a=this.data;o.save(),a.displayRight2Left?o.translate(-e,i).translate(n,r):o.translate(e,i).translate(n,r);var s=a.exceptRowSet;o.save(),o.translate(0,-0),t.emptyFirst((function(t,e){oi(o,a,t,e)}),(function(t){return function(t){return!s.has(t)}(t)}),(function(t,e){return a.isEmpty(t,e)})),o.restore();var l=new Set;o.save(),o.translate(0,-0),a.eachMergesInView(t,(function(t){var e=t.sri,i=t.sci,n=t.eri;if(s.has(e)){if(!l.has(e)){l.add(e);var r=a.rows.sumHeight(e,n+1);o.translate(0,-r)}}else oi(o,a,e,i,0,!0)})),o.restore(),ai.call(this,t),o.restore()}function hi(t,e,i,n){var r=this.draw;r.save(),r.attr({fillStyle:"rgba(75, 137, 255, 0.08)"}).fillRect(t,e,i,n),r.restore()}function ui(t,e,i,n,r,o){var a=this,s=this.draw,l=this.data,c=e.h,h=e.w,u=o+n,f=r+i,d=l.displayRight2Left?l.viewWidth():0,v=l.displayRight2Left?d-i:0;if(s.save(),s.attr(Qe),"all"!==t&&"left"!==t||s.fillRect(v,u,i,c),"all"===t||"top"===t)if(l.displayRight2Left){var g=e.lineStartx?e.lineStartx:0;s.fillRect(g,0,h,n)}else s.fillRect(f,0,h,n);var m=l.selector.range,y=m.sri,b=m.sci,w=m.eri,x=m.eci;if(s.attr({textAlign:"center",textBaseline:"middle",font:"500 ".concat(Re(12),"px Source Sans Pro"),fillStyle:"#585757",lineWidth:Ee(),strokeStyle:"#e6e6e6"}),"all"===t||"left"===t){var C=v;l.rowEach(e.sri,e.eri,(function(t,e,n){var r=u+e,o=t;s.line([C,r],[C+i,r]),y<=o&&o<w+1&&hi.call(a,C,r,i,n),s.fillText(o+1,C+i/2,r+n/2),t>0&&l.rows.isHide(t-1)&&(s.save(),s.attr({strokeStyle:"#c6c6c6"}),s.line([C+5,r+5],[C+i-5,r+5]),s.restore())})),s.line([C,c+u],[C+i,c+u]),s.line([C+i,u],[C+i,c+u])}"all"!==t&&"top"!==t||(l.colEach(e.sci,e.eci,(function(t,e,i){var r=l.displayRight2Left?d-(f+e+i):f+e,o=t;s.line([r,0],[r,n]),b<=o&&o<x+1&&hi.call(a,r,0,i,n),s.fillText(p(o),r+i/2,n/2),t>0&&l.cols.isHide(t-1)&&(s.save(),s.attr({strokeStyle:"#c6c6c6"}),s.line([r+5,5],[r+5,n-5]),s.restore())})),s.line([h+f,0],[h+f,n]),s.line([0,n],[h+f,n])),s.restore()}function fi(t,e){var i=this.draw;i.save(),i.attr({fillStyle:"#f4f5f8"}).fillRect(0,0,t,e),i.restore()}function di(t,e,i,n,o){var a=t.sri,s=t.sci,l=t.eri,c=t.eci,h=t.w,u=t.h,f=t.clearStartx,d=void 0===f?0:f,v=t.lineStartx,g=void 0===v?0:v,p=this.draw,m=this.data,y=(m.settings,m.displayRight2Left),b=m.scroll;if(p.save(),y?p.attr(ti).translate(-(e+n),i+o):p.attr(ti).translate(e+n,i+o),p.clearRect(d,0,h,u),m.showGrid){if(y){h+=e+n;var w=r()(m.freeze,2),x=(w[0],w[1]);x>0&&s>=x&&(h+=b.x),0===x&&0==g&&(h=m.viewWidth()),m.rowEach(a,l,(function(t,e,i){t!==a&&p.line([g,e],[g+h,e]),t===l&&p.line([g,e+i],[g+h,e+i])}))}else m.rowEach(a,l,(function(t,e,i){t!==a&&p.line([0,e],[h,e]),t===l&&p.line([0,e+i],[h,e+i])}));if(y){var C=m.viewWidth();m.colEach(s,c,(function(t,e,i){p.line([C-e-i,0],[C-e-i,u]),t===s&&p.line([C-e,0],[C-e,u])}))}else m.colEach(s,c,(function(t,e,i){t!==s&&p.line([e,0],[e,u]),t===c&&p.line([e+i,0],[e+i,u])}));p.restore()}else p.restore()}function vi(t,e,i,n){var r=this.draw,o=this.data,a=o.viewWidth(),s=(a-t)/this.zoomlevel,l=(o.viewHeight()-e)/this.zoomlevel;o.displayRight2Left?r.save().translate(-t,e).attr({strokeStyle:"rgba(75, 137, 255, .6)"}):r.save().translate(t,e).attr({strokeStyle:"rgba(75, 137, 255, .6)"}),o.displayRight2Left?(r.line([0,n],[a,n]),r.line([a-i,0],[a-i,l])):(r.line([0,n],[s,n]),r.line([i,0],[i,l])),r.restore()}var gi=function(){function t(e,i){l()(this,t),this.el=e,this.draw=new Be(e,i.viewWidth(),i.viewHeight()),this.data=i,this.zoomlevel=1}return a()(t,[{key:"resetData",value:function(t){this.data=t,this.render()}},{key:"clearSelectRender",value:function(){var t=this.data,e=this.draw,i=this.zoomlevel,n=t.selector,r=n.ri,o=n.ci,a=r;t.sortedRowMap.has(r)&&(a=sortedRowMap.get(r));var s=t.getCell(a,o);if(null!==s){var l=t.getCellStyleOrDefault(a,o),c=ei(t,r,o,0);ni(t,c,a,0,o,s,l);var h=t.cols.indexWidth,u=t.settings.row.height,f=t.freezeTotalWidth(),d=t.scroll,v=d.x,g=d.y;e.save(),e.scaledpr(i),t.displayRight2Left?e.attr(ti).translate(-(h+f),u+0):e.attr(ti).translate(h+f,u+0);var p=void 0===c.exttxtwidthR?0:c.exttxtwidthR,m=void 0===c.exttxtwidthL?0:c.exttxtwidthL;e.fillRect(c.x+1-m-v,c.y+1-g,c.width+p+m-2,c.height-2),e.restore()}}},{key:"render",value:function(){var t=this.data,e=this.zoomlevel;if(!t.isupdating){var i=t.rows,n=t.cols;if(0!==Object.keys(i._).length){var o=n.indexWidth,a=t.settings.row.height;this.draw.resize(t.viewWidth(),t.viewHeight()),this.draw.scaledpr(e),this.clear();var s=t.viewRange(),l=t.freezeTotalWidth(),c=t.freezeTotalHeight(),h=t.scroll,u=h.x,f=h.y;di.call(this,s,o,a,l,c),ci.call(this,s,o,a,-u,-f),li.call(this,s,o,a,-u,-f),ui.call(this,"all",s,o,a,l,c),fi.call(this,o,a);var d=r()(t.freeze,2),v=d[0],g=d[1];if(v>0||g>0){if(v>0){var p=s.clone();p.sri=0,p.eri=v-1,p.h=c,di.call(this,p,o,a,l,0),ci.call(this,p,o,a,-u,0),li.call(this,p,o,a,-u,0),ui.call(this,"top",p,o,a,l,0)}if(g>0){var m=s.clone();m.sci=0,m.eci=g-1,m.w=l,m.clearStartx=t.displayRight2Left?this.draw.ctx.canvas.width-l:0,m.lineStartx=t.displayRight2Left?t.viewWidth()-l:0,di.call(this,m,o,a,0,c),ui.call(this,"left",m,o,a,0,c),ci.call(this,m,o,a,0,-f),li.call(this,m,o,a,0,-f)}var y=t.freezeViewRange();y.clearStartx=t.displayRight2Left?this.draw.ctx.canvas.width-l:0,y.lineStartx=t.displayRight2Left?t.viewWidth()-l:0,di.call(this,y,o,a,0,0),ui.call(this,"all",y,o,a,0,0),ci.call(this,y,o,a,0,0),li.call(this,y,o,a,0,0),vi.call(this,o,a,l,c)}this.highlightRanges(s,o,a,u,f)}}}},{key:"highlightRanges",value:function(t,e,i,n,r){var o=this.draw,a=this.data;if(a.showhighlight){if(o.save(),a.displayRight2Left?o.translate(-e,i).translate(-n,-r):o.translate(e,i).translate(-n,-r),a.highlightall){var s=ii(a,t);s.bgcolor=a.highlightstyle.color,o.rect(s,(function(){}))}else if(a.highlightIR){var l,c=Je(t.difference(a.highlightIR));try{for(c.s();!(l=c.n()).done;){var h=ii(a,l.value);h.bgcolor=a.highlightstyle.color,o.rect(h,(function(){}))}}catch(t){c.e(t)}finally{c.f()}}else{var u,f=Je(a.highlightrg);try{for(f.s();!(u=f.n()).done;){var d=u.value;if(t.intersects(d)){var v=d.clone();v.sri<t.sri&&(v.sri=t.sri),v.eri>t.eri&&(v.eri=t.eri),v.sci<t.sci&&(v.sci=t.sci),v.eci>t.eci&&(v.eci=t.eci);var g=ii(a,v);g.bgcolor=a.highlightstyle.color,o.rect(g,(function(){}))}}}catch(t){f.e(t)}finally{f.f()}}o.restore()}}},{key:"clear",value:function(){this.draw.clear()}}]),t}(),pi=[["A3",11.69,16.54],["A4",8.27,11.69],["A5",5.83,8.27],["B4",9.84,13.9],["B5",6.93,9.84]],mi=["landscape","portrait"];function yi(t){return parseInt(96*t,10)}function bi(t){"cancel"===t?this.el.hide():this.toPrint()}function wi(t){var e=this.paper,i=t.target.value,n=pi[i];e.w=yi(n[1]),e.h=yi(n[2]),this.preview()}function xi(t){var e=this.paper,i=t.target.value,n=mi[i];e.orientation=n,this.preview()}var Ci=function(){function t(e,i){var n,r;l()(this,t),this.paper={w:yi(pi[0][1]),h:yi(pi[0][2]),padding:50,orientation:mi[0],get width(){return"landscape"===this.orientation?this.h:this.w},get height(){return"landscape"===this.orientation?this.w:this.h}},this.data=e,this.imageCanvas=i,this.el=f("div","".concat(ot,"-print")).children(f("div","".concat(ot,"-print-bar")).children(f("div","-title").child("Print settings"),f("div","-right").children(f("div","".concat(ot,"-buttons")).children(new Te("cancel").on("click",bi.bind(this,"cancel")),new Te("next","primary").on("click",bi.bind(this,"next"))))),f("div","".concat(ot,"-print-content")).children(this.contentEl=f("div","-content"),f("div","-sider").child(f("form","").children(f("fieldset","").children(f("label","").child("".concat(W("print.size"))),(n=f("select","")).children.apply(n,v()(pi.map((function(t,e){return f("option","").attr("value",e).child("".concat(t[0]," ( ").concat(t[1],"''x").concat(t[2],"'' )"))})))).on("change",wi.bind(this))),f("fieldset","").children(f("label","").child("".concat(W("print.orientation"))),(r=f("select","")).children.apply(r,v()(mi.map((function(t,e){return f("option","").attr("value",e).child("".concat(W("print.orientations")[e]))})))).on("change",xi.bind(this))))))).hide()}return a()(t,[{key:"resetData",value:function(t){this.data=t}},{key:"preview",value:function(){var t=this,e=this.data,i=this.paper,n=i.width,r=i.height,o=i.padding,a=n-2*o,s=r-2*o,l=e.contentRange(),c=parseInt(l.h/s,10)+1,h=a/l.w,u=o,d=o;h>1&&(u+=(a-l.w)/2);var v=0,g=0;this.contentEl.html(""),this.canvases=[];for(var p={sri:0,sci:0,eri:0,eci:0},m=function(i){var o=0,a=0,c=f("div","".concat(ot,"-canvas-card")),m=f("canvas","".concat(ot,"-canvas"));t.canvases.push(m.el);var y=new Be(m.el,n,r);for(y.save(),y.translate(u,d),h<1&&y.scale(h,h);v<=l.eri;v+=1){var b=e.rows.getHeight(v);if(!((o+=b)<s)){a=-(o-b);break}for(var w=0;w<=l.eci;w+=1)oi(y,e,v,w,g),p.eci=w}p.eri=v,y.restore(),y.save(),y.translate(u,d),h<1&&y.scale(h,h);var x=g;e.eachMergesInView(p,(function(t){var i=t.sri,n=t.sci;oi(y,e,i,n,x)})),y.restore(),p.sri=p.eri,p.sci=p.eci,g+=a;var C=t.imageCanvas.el.getContext("2d");C.width=n,C.height=r,C.translate(u,d),h<1&&C.scale(h,h),m.el.getContext("2d").drawImage(t.imageCanvas.el,u-t.imageCanvas.tOffset.left,t.imageCanvas.tOffset.top),t.contentEl.child(f("div","".concat(ot,"-canvas-card-wraper")).child(c.child(m)))},y=0;y<c;y+=1)m()}},{key:"toPrint",value:function(){this.el.hide();var t=this.paper,e=f("iframe","").hide().el;window.document.body.appendChild(e);var i=e.contentWindow,n=i.document,r=document.createElement("style");r.innerHTML="\n @page { size: ".concat(t.width,"px ").concat(t.height,"px; };\n canvas {\n page-break-before: auto;\n page-break-after: always;\n image-rendering: pixelated;\n };\n "),n.head.appendChild(r),this.canvases.forEach((function(t){var e=t.cloneNode(!1);e.getContext("2d").drawImage(t,0,0),n.body.appendChild(e)})),i.print()}}]),t}(),ki=[{key:"copy",title:X("contextmenu.copy"),label:"Ctrl+C"},{key:"cut",title:X("contextmenu.cut"),label:"Ctrl+X"},{key:"paste",title:X("contextmenu.paste"),label:"Ctrl+V"},{key:"paste-value",title:X("contextmenu.pasteValue"),label:"Ctrl+Shift+V"},{key:"paste-format",title:X("contextmenu.pasteFormat"),label:"Ctrl+Alt+V"},{key:"divider"},{key:"insert-row",title:X("contextmenu.insertRow")},{key:"insert-column",title:X("contextmenu.insertColumn")},{key:"divider"},{key:"delete-row",title:X("contextmenu.deleteRow")},{key:"delete-column",title:X("contextmenu.deleteColumn")},{key:"delete-cell-text",title:X("contextmenu.deleteCellText")},{key:"hide",title:X("contextmenu.hide")},{key:"divider"},{key:"link",title:X("contextmenu.link")},{key:"openLink",title:X("contextmenu.openLink")},{key:"removeLink",title:X("contextmenu.removeLink")},{key:"divider"},{key:"validation",title:X("contextmenu.validation")},{key:"cell-editable",title:X("contextmenu.celleditable")},{key:"cell-non-editable",title:X("contextmenu.cellnoneditable")}];function _i(t,e){var i=this;return"divider"===t.key?f("div","".concat(ot,"-item divider")):f("div","".concat(ot,"-item")).on("click",(function(){t.callback?t.callback(e):i.itemClick(t.key),i.hide()})).children(t.text?t.text:t.title(),f("div","label").child(t.label||"").attr("k",t.key))}function Si(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ki,i=arguments.length>1?arguments[1]:void 0;return e.map((function(e){return _i.call(t,e,i)}))}function Ti(t,e){return t.find((function(t){return t.key===e}))}var Oi=function(){function t(e,i){var n,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3?arguments[3]:void 0;if(l()(this,t),window.mobileAndTabletCheck()){var a={key:"merge",title:X("contextmenu.merge"),label:""},s={key:"unmerge",title:X("contextmenu.unmerge"),label:""},c={key:"edit",title:X("contextmenu.edit"),label:""};ki.forEach((function(t){t.label=void 0,"delete-cell-text"===t.key&&(t.title=X("contextmenu.clear"))})),ki.push(a),ki.push(s),ki.unshift(c)}this.customMenuItemsForImage=[{key:"delete-image",title:X("contextmenu.deleteImage"),label:"Del"}],this.customsetting=o&&!o.usedefault,this.customItems=this.customsetting?o.customItems:[],this.menuItems=this.customsetting?Si.call(this,o.customItems,i):Si.call(this),this.el=(n=f("div","".concat(ot,"-contextmenu"))).children.apply(n,v()(this.menuItems)).hide(),this.viewFn=e,this.itemClick=function(){},this.showMenuBefore=function(){},this.isHide=r,this.setMode("range"),this.sheet=i}return a()(t,[{key:"getImageContextMenuItems",value:function(){return this.customMenuItemsForImage}},{key:"addImageContextMenuItems",value:function(t){var e=this.customMenuItemsForImage;e.push.apply(e,t)}},{key:"delImageContextMenuItems",value:function(t){var e=this.customMenuItemsForImage;t.forEach((function(t){var i=e.findIndex((function(e){return e.key===t}));i>=0&&e.splice(i,1)}))}},{key:"getCutomContextMenuItems",value:function(){if(this.customsetting)return this.customItems}},{key:"addCutomContextMenuItems",value:function(t){var e=this.customItems,i=this.customsetting,n=this.sheet,r=this.menuItems;if(i){var o=Si.call(this,t,n);t.forEach((function(t,i){"divider"!==t.key&&Ti(e,t.key)||(e.push(t),r.push(o[i]))})),this.rebuildMenuItems(r)}}},{key:"insertCutomContextMenuItem",value:function(t,e){var i=this.customItems,n=this.customsetting,r=this.sheet,o=this.menuItems;if(n&&("divider"===t.key||!Ti(i,t.key))){var a=_i.call(this,t,r);i.splice(e,0,t),o.splice(e,0,a),this.rebuildMenuItems(o)}}},{key:"updateCutomContextMenuItem",value:function(t,e){var i=this.customItems,n=this.customsetting,r=this.sheet,o=this.menuItems;if(n){var a=i.findIndex((function(e){return e.key==t}));if(-1!==a){e.text&&(i[a].text=e.text),e.callback&&(i[a].callback=e.callback);var s=_i.call(this,i[a],r);o[a]=s,this.rebuildMenuItems(o)}}}},{key:"rebuildMenuItems",value:function(t){var e,i=this.sheet;(i.el.removeChild(this.el.el),t.length>0)?this.el=(e=f("div","".concat(ot,"-contextmenu"))).children.apply(e,v()(t)).hide():this.el=f("div","".concat(ot,"-contextmenu")).hide();i.el.child(this.el)}},{key:"delCutomContextMenuItems",value:function(t){var e=this.customItems,i=this.menuItems,n=this.customsetting;this.sheet;n&&(t.forEach((function(t){var n=e.findIndex((function(e){return e.key===t}));n>=0&&(e.splice(n,1),i.splice(n,1))})),this.rebuildMenuItems(i))}},{key:"setMode",value:function(t){if(!this.customsetting){var e=this.menuItems[12];"row-col"===t?e.show():e.hide()}}},{key:"hide",value:function(){var t=this.el;t.hide(),Et(t)}},{key:"setPosition",value:function(t,e){if(!this.isHide){var i=this.el,n=this.sheet;this.showImageDeleteItem(i,n),this.showMenuBefore(this.menuItems);var r=i.show().offset(),o=r.width,a=r.height,s=this.viewFn(),l=t;s.width-t<=o&&(l-=o),i.css("left","".concat(l,"px"));var c=e;a+e>s.height&&(c-=a+e-s.height),i.css("top","".concat(c,"px")).css("max-height","".concat(s.height,"px")).css("bottom","auto"),Rt(i)}}},{key:"showImageDeleteItem",value:function(t,e){var i=this,n=this.customMenuItemsForImage;n.forEach((function(e){t.children().forEach((function(i){i.children[0]&&i.children[0].getAttribute("k")===e.key&&t.removeChild(i)}))})),this.el.children()[0].className.includes("divider")&&this.el.removeChild(this.el.children()[0]);var r=e.canvas.fabric.getActiveObject();if(null!=r){var o=Si.call(this,n);o.unshift.apply(o,v()(Si([{key:"divider"}]))),o.forEach((function(t){return i.el.child(t,!0)})),e.selector.hide(),e.selector.setObjId(r.id)}}}]),t}(),Ei=i(9),Ri=i.n(Ei);var Ai=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;l()(this,t),this.tip=W("toolbar.".concat(e.replace(/-[a-z]/g,(function(t){return t[1].toUpperCase()})))),this.activeTip=null===i?null:W("toolbar.".concat(i.replace(/-[a-z]/g,(function(t){return t[1].toUpperCase()})))),n&&(this.tip+=" (".concat(n,")")),this.tag=e,this.shortcut=n,this.value=r,this.el=this.element(),this.change=function(){}}return a()(t,[{key:"element",value:function(){var t=this.tip,e=this.activeTip;return f("div","".concat(ot,"-toolbar-btn")).on("mouseenter",(function(i){""!==t&&function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!e.classList.contains("active")||null!==i){var n=e.getBoundingClientRect(),r=n.left,o=n.top,a=n.width,s=n.height,l=e.classList.contains("active")?i:t,c=f("div","".concat(ot,"-tooltip")).html(l).show();document.body.appendChild(c.el);var h=c.box();c.css("left","".concat(r+a/2-h.width/2,"px")).css("top","".concat(o+s+2,"px")),Tt(e,"mouseleave",(function(){document.body.contains(c.el)&&document.body.removeChild(c.el)})),Tt(e,"click",(function(){document.body.contains(c.el)&&document.body.removeChild(c.el)}))}}(t,i.target,e)})).attr("data-tooltip",t)}},{key:"setState",value:function(){}}]),t}();function Ii(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Pi=function(t){tt()(i,t);var e=Ii(i);function i(){return l()(this,i),e.apply(this,arguments)}return a()(i,[{key:"dropdown",value:function(){}},{key:"getValue",value:function(t){return t}},{key:"element",value:function(){var t=this,e=this.tag;return this.dd=this.dropdown(),this.dd.change=function(i){return t.change(e,t.getValue(i))},Ri()(rt()(i.prototype),"element",this).call(this).child(this.dd)}},{key:"setState",value:function(t){t&&(this.value=t,this.dd.setTitle(t))}}]),i}(Ai);function Di(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Fi=function(t){tt()(i,t);var e=Di(i);function i(t,n,r,o){var a,s;l()(this,i),(s=e.call(this,"div","".concat(ot,"-dropdown ").concat(o))).title=t,s.change=function(){},s.headerClick=function(){},"string"==typeof t?s.title=f("div","".concat(ot,"-dropdown-title")).child(t):r&&s.title.addClass("arrow-left"),s.contentEl=f("div","".concat(ot,"-dropdown-content")).css("width",n).hide();for(var c=arguments.length,h=new Array(c>4?c-4:0),u=4;u<c;u++)h[u-4]=arguments[u];return s.contentEl.tags=h.map((function(t){return t.tag})),(a=s).setContentChildren.apply(a,h),s.headerEl=f("div","".concat(ot,"-dropdown-header")),s.headerEl.on("click",(function(){if("block"!==s.contentEl.css("display")){if(s.show(),mobileAndTabletCheck()&&window.document.body.offsetWidth!==window.document.body.scrollWidth){if(s.menuDiv){for(var t=s.menuDiv.el,e=s.menuDiv.el.offsetParent;t.offsetParent&&"BODY"!==t.offsetParent.nodeName;)t=t.offsetParent;s.contentEl.el.clientWidth-t.offsetLeft>100&&(s.el.classList.replace("bottom-left","bottom-center"),s.contentEl.el.style.top+=e.offsetTop)}s.el.classList.contains("bottom-left")&&s.el.classList.replace("bottom-left","bottom-right"),s.el.classList.contains("top-left")&&s.el.classList.replace("top-left","top-right")}}else s.hide()})).children(s.title,r?f("div","".concat(ot,"-icon arrow-right")).child(f("div","".concat(ot,"-icon-img arrow-down"))):""),s.children(s.headerEl,s.contentEl),s}return a()(i,[{key:"setContentChildren",value:function(){var t;(this.contentEl.html(""),arguments.length>0)&&(t=this.contentEl).children.apply(t,arguments)}},{key:"showExplain",value:function(t){var e=this;if(this.contentEl.children().length===t.length)for(var i=function(i){Tt(e.contentEl.children()[i],"mouseover",(function(){var n=new te(t[i].title()),r=te.findDialog(e.contentEl),o={top:"".concat(e.contentEl.children()[i].offsetTop,"px")};if(0!==r.length)for(var a=0;a<r.length;a++)e.contentEl.removeChild(e.contentEl.children()[r[a]]);n.css(o),e.contentEl.child(n)})),Tt(e.contentEl.children()[i],"mouseout",(function(){var t=te.findDialog(e.contentEl);if(0!==t.length)for(var i=0;i<t.length;i++)e.contentEl.removeChild(e.contentEl.children()[t[i]])}))},n=0;n<t.length;n++)i(n)}},{key:"setTitle",value:function(t){this.title.html(t),this.hide()}},{key:"show",value:function(){var t=this;this.contentEl.show(),this.parent().active(),Rt(this.parent(),(function(){t.hide()}))}},{key:"hide",value:function(){this.parent().active(!1),this.contentEl.hide(),Et(this.parent())}}]),i}(u);function Mi(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var ji=function(t){tt()(i,t);var e=Mi(i);function i(t,n){var r;l()(this,i);var o=new st("align-".concat(n)),a=t.map((function(t){return(e="align-".concat(t),f("div","".concat(ot,"-item")).child(new st(e))).on("click",(function(){r.setTitle(t),r.change(t)}));var e}));return r=e.call.apply(e,[this,o,"auto",!0,"bottom-left"].concat(v()(a)))}return a()(i,[{key:"setTitle",value:function(t){this.title.setName("align-".concat(t)),this.hide()}}]),i}(Fi);function Li(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var zi=function(t){tt()(i,t);var e=Li(i);function i(t){return l()(this,i),e.call(this,"align",null,"",t)}return a()(i,[{key:"dropdown",value:function(){var t=this.value;return new ji(["left","center","right"],t)}}]),i}(Pi);function Bi(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Hi=function(t){tt()(i,t);var e=Bi(i);function i(t){return l()(this,i),e.call(this,"valign",null,"",t)}return a()(i,[{key:"dropdown",value:function(){var t=this.value;return new ji(["top","middle","bottom"],t)}}]),i}(Pi);function Ni(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Wi=function(t){tt()(i,t);var e=Ni(i);function i(){return l()(this,i),e.apply(this,arguments)}return a()(i,[{key:"element",value:function(){var t=this,e=this.tag;return Ri()(rt()(i.prototype),"element",this).call(this).child(new st(e)).on("click",(function(){return t.click()}))}},{key:"click",value:function(){this.change(this.tag,this.toggle())}},{key:"setState",value:function(t){this.el.active(t)}},{key:"toggle",value:function(){return this.el.toggle()}},{key:"active",value:function(){return this.el.hasClass("active")}}]),i}(Ai);function Xi(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Ui=function(t){tt()(i,t);var e=Xi(i);function i(){return l()(this,i),e.call(this,"autofilter")}return a()(i,[{key:"setState",value:function(){}}]),i}(Wi);function Yi(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Vi=function(t){tt()(i,t);var e=Yi(i);function i(){return l()(this,i),e.call(this,"font-bold",null,"Ctrl+B")}return i}(Wi);function Gi(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var qi=function(t){tt()(i,t);var e=Gi(i);function i(){return l()(this,i),e.call(this,"font-italic",null,"Ctrl+I")}return i}(Wi);function Ki(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Zi=function(t){tt()(i,t);var e=Ki(i);function i(){return l()(this,i),e.call(this,"strike")}return i}(Wi);function Ji(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var $i=function(t){tt()(i,t);var e=Ji(i);function i(){return l()(this,i),e.call(this,"underline",null,"Ctrl+U")}return i}(Wi),Qi=["#ffffff","#000100","#e7e5e6","#445569","#5b9cd6","#ed7d31","#a5a5a5","#ffc001","#4371c6","#71ae47"],tn=[["#f2f2f2","#7f7f7f","#d0cecf","#d5dce4","#deeaf6","#fce5d5","#ededed","#fff2cd","#d9e2f3","#e3efd9"],["#d8d8d8","#595959","#afabac","#adb8ca","#bdd7ee","#f7ccac","#dbdbdb","#ffe59a","#b3c6e7","#c5e0b3"],["#bfbfbf","#3f3f3f","#756f6f","#8596b0","#9cc2e6","#f4b184","#c9c9c9","#fed964","#8eaada","#a7d08c"],["#a5a5a5","#262626","#3a3839","#333f4f","#2e75b5","#c45a10","#7b7b7b","#bf8e01","#2f5596","#538136"],["#7f7f7f","#0c0c0c","#171516","#222a35","#1f4e7a","#843c0a","#525252","#7e6000","#203864","#365624"]],en=["#c00000","#fe0000","#fdc101","#ffff01","#93d051","#00b04e","#01b0f1","#0170c1","#012060","#7030a0"];function nn(t){var e=this;return f("td","").child(f("div","".concat(ot,"-color-palette-cell")).on("click.stop",(function(){return e.change(t)})).css("background-color",t))}var rn=function t(){var e,i,n,r=this;l()(this,t),this.el=f("div","".concat(ot,"-color-palette")),this.change=function(){};var o=f("table","").children((e=f("tbody","")).children.apply(e,[(i=f("tr","".concat(ot,"-theme-color-placeholders"))).children.apply(i,v()(Qi.map((function(t){return nn.call(r,t)}))))].concat(v()(tn.map((function(t){var e;return(e=f("tr","".concat(ot,"-theme-colors"))).children.apply(e,v()(t.map((function(t){return nn.call(r,t)}))))}))),[(n=f("tr","".concat(ot,"-standard-colors"))).children.apply(n,v()(en.map((function(t){return nn.call(r,t)}))))])));this.el.child(o)};function on(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var an=function(t){tt()(i,t);var e=on(i);function i(t,n){var r;l()(this,i);var o=new st(t).css("height","16px").css("border-bottom","3px solid ".concat(n)),a=new rn;return a.change=function(t){r.setTitle(t),r.change(t)},r=e.call(this,o,"max-content",!1,"bottom-left",a.el)}return a()(i,[{key:"setTitle",value:function(t){this.title.css("border-color",t),this.hide()}}]),i}(Fi);function sn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var ln=[["thin",'<svg xmlns="http://www.w3.org/2000/svg" width="50" height="1" style="user-select: none;"><line x1="0" y1="0.5" x2="50" y2="0.5" stroke-width="1" stroke="black" style="user-select: none;"></line></svg>'],["medium",'<svg xmlns="http://www.w3.org/2000/svg" width="50" height="2" style="user-select: none;"><line x1="0" y1="1.0" x2="50" y2="1.0" stroke-width="2" stroke="black" style="user-select: none;"></line></svg>'],["thick",'<svg xmlns="http://www.w3.org/2000/svg" width="50" height="3" style="user-select: none;"><line x1="0" y1="1.5" x2="50" y2="1.5" stroke-width="3" stroke="black" style="user-select: none;"></line></svg>'],["dashed",'<svg xmlns="http://www.w3.org/2000/svg" width="50" height="1" style="user-select: none;"><line x1="0" y1="0.5" x2="50" y2="0.5" stroke-width="1" stroke="black" stroke-dasharray="2" style="user-select: none;"></line></svg>'],["dotted",'<svg xmlns="http://www.w3.org/2000/svg" width="50" height="1" style="user-select: none;"><line x1="0" y1="0.5" x2="50" y2="0.5" stroke-width="1" stroke="black" stroke-dasharray="1" style="user-select: none;"></line></svg>']],cn=function(t){tt()(i,t);var e=sn(i);function i(t){var n;l()(this,i);var r=new st("line-type"),o=0,a=ln.map((function(e,i){return f("div","".concat(ot,"-item state ").concat(t===e[0]?"checked":"")).on("click",(function(){a[o].toggle("checked"),a[i].toggle("checked"),o=i,n.hide(),n.change(e)})).child(f("div","".concat(ot,"-line-type")).html(e[1]))}));return n=e.call.apply(e,[this,r,"max-content",!1,"bottom-left"].concat(v()(a)))}return i}(Fi);function hn(){var t;return f("table","").child((t=f("tbody","")).children.apply(t,arguments))}function un(t){var e=this;return f("td","").child(f("div","".concat(ot,"-border-palette-cell")).child(new st("border-".concat(t))).on("click",(function(){e.mode=t;var i=e.mode,n=e.style,r=e.color;e.change({mode:i,style:n,color:r})})))}var fn=function t(){var e,i,n=this;l()(this,t),this.color="#000",this.style="thin",this.mode="all",this.change=function(){},this.ddColor=new an("line-color",this.color),this.ddColor.change=function(t){n.color=t},this.ddType=new cn(this.style),this.ddType.change=function(t){var e=r()(t,1)[0];n.style=e},this.el=f("div","".concat(ot,"-border-palette"));var o=hn(f("tr","").children(f("td","".concat(ot,"-border-palette-left")).child(hn((e=f("tr","")).children.apply(e,v()(["all","inside","horizontal","vertical","outside"].map((function(t){return un.call(n,t)})))),(i=f("tr","")).children.apply(i,v()(["left","top","right","bottom","none"].map((function(t){return un.call(n,t)})))))),f("td","".concat(ot,"-border-palette-right")).children(f("div","".concat(ot,"-toolbar-btn")).child(this.ddColor.el),f("div","".concat(ot,"-toolbar-btn")).child(this.ddType.el))));this.el.child(o)};function dn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var vn=function(t){tt()(i,t);var e=dn(i);function i(){var t;l()(this,i);var n=new st("border-all"),r=new fn;return r.change=function(e){t.change(e),t.hide()},t=e.call(this,n,"max-content",!1,"bottom-left",r.el)}return i}(Fi);function gn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var pn=function(t){tt()(i,t);var e=gn(i);function i(){return l()(this,i),e.call(this,"border")}return a()(i,[{key:"dropdown",value:function(){return new vn}}]),i}(Pi);function mn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var yn=function(t){tt()(i,t);var e=mn(i);function i(){return l()(this,i),e.apply(this,arguments)}return a()(i,[{key:"element",value:function(){var t=this;return this.icon=new st(this.tag),Ri()(rt()(i.prototype),"element",this).call(this).child(this.icon).on("click",(function(){return t.change(t.tag)}))}},{key:"setState",value:function(t){this.el.disabled(t)}},{key:"setIcon",value:function(t){this.icon.setName(t)}}]),i}(Ai);function bn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var wn=function(t){tt()(i,t);var e=bn(i);function i(){return l()(this,i),e.call(this,"clearformat")}return i}(yn);function xn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Cn=function(t){tt()(i,t);var e=xn(i);function i(){return l()(this,i),e.call(this,"paintformat")}return a()(i,[{key:"setState",value:function(){}}]),i}(Wi);function kn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var _n=function(t){tt()(i,t);var e=kn(i);function i(t){return l()(this,i),e.call(this,"color",null,void 0,t)}return a()(i,[{key:"dropdown",value:function(){var t=this.tag,e=this.value;return new an(t,e)}}]),i}(Pi);function Sn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Tn=function(t){tt()(i,t);var e=Sn(i);function i(t){return l()(this,i),e.call(this,"bgcolor",null,void 0,t)}return a()(i,[{key:"dropdown",value:function(){var t=this.tag,e=this.value;return new an(t,e)}}]),i}(Pi);function On(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var En=function(t){tt()(i,t);var e=On(i);function i(){var t;l()(this,i);var n=Ne.map((function(e){return f("div","".concat(ot,"-item")).on("click",(function(){t.setTitle("".concat(e.pt)),t.change(e)})).child("".concat(e.pt))}));return t=e.call.apply(e,[this,"10","60px",!0,"bottom-left"].concat(v()(n)))}return i}(Fi);function Rn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var An=function(t){tt()(i,t);var e=Rn(i);function i(){return l()(this,i),e.call(this,"font-size")}return a()(i,[{key:"getValue",value:function(t){return t.pt}},{key:"dropdown",value:function(){return new En}}]),i}(Pi);function In(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Pn=function(t){tt()(i,t);var e=In(i);function i(){var t;l()(this,i);var n=[{text:"50%",number:.5},{text:"75%",number:.75},{text:"100%",number:1},{text:"125%",number:1.25},{text:"150%",number:1.5},{text:"175%",number:1.75},{text:"200%",number:2}].map((function(e){return f("div","".concat(ot,"-item")).on("click",(function(){t.setTitle("".concat(e.text)),t.change(e)})).child("".concat(e.text))}));return t=e.call.apply(e,[this,"10","60px",!0,"bottom-left"].concat(v()(n)))}return i}(Fi);function Dn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Fn=function(t){tt()(i,t);var e=Dn(i);function i(){return l()(this,i),e.call(this,"zoom-size")}return a()(i,[{key:"getValue",value:function(t){return t}},{key:"setState",value:function(t){"string"!=typeof t&&(t=100*t+"%"),Ri()(rt()(i.prototype),"setState",this).call(this,t)}},{key:"dropdown",value:function(){return new Pn}}]),i}(Pi);function Mn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var jn=function(t){tt()(i,t);var e=Mn(i);function i(){var t;l()(this,i);var n=He.map((function(e){return f("div","".concat(ot,"-item")).on("click",(function(){t.setTitle(e.title),t.change(e)})).child(e.title)}));return t=e.call.apply(e,[this,He[0].title,"max-content",!0,"bottom-left"].concat(v()(n)))}return i}(Fi);function Ln(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var zn=function(t){tt()(i,t);var e=Ln(i);function i(){return l()(this,i),e.call(this,"font-name")}return a()(i,[{key:"getValue",value:function(t){return t.key}},{key:"dropdown",value:function(){return new jn}}]),i}(Pi);function Bn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Hn=function(t){tt()(i,t);var e=Bn(i);function i(){var t;l()(this,i);var n=Ke.slice(0);return n.splice(2,0,{key:"divider"}),n.splice(8,0,{key:"divider"}),n=n.map((function(e){var i=f("div","".concat(ot,"-item"));return"divider"===e.key?i.addClass("divider"):(i.child(e.title()).on("click",(function(){t.setTitle(e.title()),t.change(e)})),e.label&&i.child(f("div","label").html(e.label))),i})),t=e.call.apply(e,[this,"Normal","220px",!0,"bottom-left"].concat(v()(n)))}return a()(i,[{key:"setTitle",value:function(t){for(var e=0;e<Ke.length;e+=1)Ke[e].key===t&&this.title.html(Ke[e].title());this.hide()}}]),i}(Fi);function Nn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Wn=function(t){tt()(i,t);var e=Nn(i);function i(){return l()(this,i),e.call(this,"format")}return a()(i,[{key:"getValue",value:function(t){return t.key}},{key:"dropdown",value:function(){return new Hn}}]),i}(Pi),Xn=i(8),Un=i.n(Xn);function Yn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Vn=function(t){tt()(i,t);var e=Yn(i);function i(){var t,n;l()(this,i);var r=he.map((function(t){return f("div","".concat(ot,"-item")).on("click",(function(){n.hide(),n.change(t)})).child(t.key)}));return n=e.call.apply(e,[this,new st("formula"),"max-content",!0,"bottom-left"].concat(v()(r))),Ri()((t=Un()(n),rt()(i.prototype)),"showExplain",t).call(t,he),n}return i}(Fi);function Gn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var qn=function(t){tt()(i,t);var e=Gn(i);function i(){return l()(this,i),e.call(this,"formula")}return a()(i,[{key:"getValue",value:function(t){return t.key}},{key:"dropdown",value:function(){return new Vn}}]),i}(Pi);function Kn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Zn=function(t){tt()(i,t);var e=Kn(i);function i(){return l()(this,i),e.call(this,"freeze")}return i}(Wi);function Jn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var $n=function(t){tt()(i,t);var e=Jn(i);function i(){return l()(this,i),e.call(this,"merge","unmerge")}return a()(i,[{key:"setState",value:function(t,e){this.el.active(t).disabled(e)}}]),i}(Wi);function Qn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var tr=function(t){tt()(i,t);var e=Qn(i);function i(){return l()(this,i),e.call(this,"print","Ctrl+P")}return i}(yn);function er(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var ir=function(t){tt()(i,t);var e=er(i);function i(){return l()(this,i),e.call(this,"textwrap")}return i}(Wi);function nr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var rr=function(t){tt()(i,t);var e=nr(i);function i(){var t;l()(this,i);var n=new st("ellipsis"),r=f("div","".concat(ot,"-toolbar-more"));return(t=e.call(this,n,"max-content",!1,"bottom-right",r)).moreBtns=r,screen.width<500?t.contentEl.css("max-width","200px"):t.contentEl.css("max-width","420px"),t}return i}(Fi),or=function(t){tt()(i,t);var e=nr(i);function i(){var t;return l()(this,i),(t=e.call(this,"more")).el.hide(),t}return a()(i,[{key:"dropdown",value:function(){return new rr}},{key:"show",value:function(){this.el.show()}},{key:"hide",value:function(){this.el.hide()}}]),i}(Pi);function ar(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var sr=function(t){tt()(i,t);var e=ar(i);function i(){return l()(this,i),e.call(this,"sort")}return i}(yn);function lr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var cr=function(t){tt()(i,t);var e=lr(i);function i(){return l()(this,i),e.call(this,"search")}return i}(yn);function hr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var ur=function(t){tt()(i,t);var e=hr(i);function i(){return l()(this,i),e.call(this,"commentEdit")}return i}(yn);function fr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var dr=function(t){tt()(i,t);var e=fr(i);function i(){return l()(this,i),e.call(this,"commentRemove")}return i}(yn);function vr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var gr=function(t){tt()(i,t);var e=vr(i);function i(){return l()(this,i),e.call(this,"commentPrevious")}return i}(yn);function pr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var mr=function(t){tt()(i,t);var e=pr(i);function i(){return l()(this,i),e.call(this,"commentNext")}return i}(yn);function yr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var br=function(t){tt()(i,t);var e=yr(i);function i(){var t;l()(this,i);var n=new st("".concat(ot,"-icon-img insert-image")),r=f("div","".concat(ot,"-item")),o=f("input");o.attr({type:"file",name:"photo",id:"upload-image",style:"display:none;",accept:"image/*"}),r.tag="fromLocal";var a=f("label");a.attr("for","upload-image"),a.child(new st("".concat(ot,"-icon-img insert-image-local"))),a.child(" "+W("menubar.".concat(r.tag))),r.child(o),r.child(a),r.on("click",(function(){t.change("local")}));var s,c=(s="".concat(ot,"-icon-img insert-image-url"),f("div","".concat(ot,"-item")).child(new st(s)));return c.tag="fromURL",c.child(" "+W("menubar.".concat(c.tag))),c.on("click",(function(){t.change("url")})),t=e.call.apply(e,[this,n,"auto",!0,"bottom-left"].concat([r,c]))}return i}(Fi);function wr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var xr=function(t){tt()(i,t);var e=wr(i);function i(t){return l()(this,i),e.call(this,"insert-image",null,"",t)}return a()(i,[{key:"dropdown",value:function(){return new br}}]),i}(Pi);function Cr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var kr=function(t){tt()(i,t);var e=Cr(i);function i(){var t;return l()(this,i),(t=e.call(this,"menu-display-hide","")).state="up",t}return a()(i,[{key:"setUp",value:function(){this.setIcon("menu-display-hide"),this.state="up"}},{key:"setDown",value:function(){this.setIcon("menu-display-show"),this.state="down"}}]),i}(yn);function _r(){return f("div","".concat(ot,"-toolbar-divider"))}function Sr(){var t=this;this.btns2=[],this.items.forEach((function(e){if(Array.isArray(e))e.forEach((function(e){var i=e.el,n=i.box(),r=i.computedStyle(),o=r.marginLeft,a=r.marginRight;t.btns2.push([i,n.width+parseInt(o,10)+parseInt(a,10)])}));else{var i=e.box(),n=e.computedStyle(),r=n.marginLeft,o=n.marginRight;t.btns2.push([e,i.width+parseInt(r,10)+parseInt(o,10)])}}))}function Tr(){var t,e,i=this.el,n=this.btns,o=this.moreEl,a=this.btns2,s=o.dd,l=s.moreBtns,c=s.contentEl,h=i.box(),u=100,f=12,d=[],v=[];a.forEach((function(t,e){var i=r()(t,2),n=i[0],o=i[1];u+=o,e===a.length-1||u<h.width?d.push(n):(f+=o,v.push(n))})),(t=n.html("")).children.apply(t,d),(e=l.html("")).children.apply(e,v),c.css("width","".concat(f,"px")),v.length>0?o.show():o.hide()}var Or=function(){function t(e,i,n,r){var o=this;l()(this,t),this.data=e,this.change=function(){},this.widthFn=i,this.isHide=n;var a=e.defaultStyle();this.items=[[new tr,this.paintformatEl=new Cn,this.clearformatEl=new wn],_r(),[this.formatEl=new Wn],_r(),[this.fontEl=new zn,this.fontSizeEl=new An],_r(),[this.zoomSizeEl=new Fn,this.boldEl=new Vi,this.italicEl=new qi,this.underlineEl=new $i,this.strikeEl=new Zi,this.textColorEl=new _n(a.color)],_r(),[this.fillColorEl=new Tn(a.bgcolor),this.borderEl=new pn,this.mergeEl=new $n],_r(),[this.alignEl=new zi(a.align),this.valignEl=new Hi(a.valign),this.textwrapEl=new ir],_r(),[this.freezeEl=new Zn,this.autofilterEl=new Ui,this.formulaEl=new qn,this.sortEl=new sr,this.insertImageEL=new xr,this.searchEl=new cr],_r(),[this.commentEditEl=new ur,this.commentRemoveEl=new dr,this.commentPreviousEl=new gr,this.commentNextEl=new mr],_r(),[this.moreEl=new or]],screen.width<500&&this.items[0].splice(0,1),n&&r&&(this.items=[[new tr,this.moreEl=new or,this.sortEl=new sr,this.searchEl=new cr]]),this.el=f("div","".concat(ot,"-toolbar")),this.btns=f("div","".concat(ot,"-toolbar-btns")),this.items.forEach((function(t){Array.isArray(t)?t.forEach((function(t){o.btns.child(t.el),t.change=function(){o.change.apply(o,arguments)}})):o.btns.child(t.el)}));var s=this.menuDisplay=new kr;s.change=function(){o.change.apply(o,arguments)},this.el.children(this.btns.el,s.el),n&&!r?this.el.hide():(this.reset(),setTimeout((function(){Sr.call(o),Tr.call(o)}),0),Tt(window,"resize",(function(){Tr.call(o)})))}return a()(t,[{key:"paintformatActive",value:function(){return this.paintformatEl.active()}},{key:"paintformatToggle",value:function(){this.paintformatEl.toggle()}},{key:"trigger",value:function(t){this["".concat(t,"El")].click()}},{key:"resetData",value:function(t){this.data=t,this.reset()}},{key:"reset",value:function(){if(!this.isHide){var t=this.data,e=t.getSelectedCellStyle();this.mergeEl.setState(t.canUnmerge(),!1),this.autofilterEl.setState(!t.canAutofilter());var i=e.font,n=e.format;this.formatEl.setState(n),this.fontEl.setState(i.name),this.fontSizeEl.setState(i.size),this.zoomSizeEl.setState(t.zoomlevel),this.boldEl.setState(i.bold),this.italicEl.setState(i.italic),this.underlineEl.setState(e.underline),this.strikeEl.setState(e.strike),this.textColorEl.setState(e.color),this.fillColorEl.setState(e.bgcolor),this.alignEl.setState(e.align),this.valignEl.setState(e.valign),this.textwrapEl.setState(e.textwrap),this.freezeEl.setState(t.freezeIsActive())}}}]),t}(),Er=function(){function t(e,i){var n,r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"600px",a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];l()(this,t),this.moving=!1,this.drag=s,this.title=e;var c=parseInt(o);screen.width<500&&c>300&&(o="300px"),this.el=f("div","".concat(ot,"-modal")).css("width",o).css("position","absolute").children(f("div","".concat(ot,"-modal-header")).children(new st("close").on("click.stop",(function(){return r.hide()})),this.title),(n=f("div","".concat(ot,"-modal-content"))).children.apply(n,v()(i))).hide(),this.showDimmer=a,this.drag&&this.el.on("mousedown.stop",(function(t){return r.mousedownHandler(t)}))}return a()(t,[{key:"show",value:function(){var t=this;if(!this.moving){this.showDimmer&&(this.dimmer=f("div","".concat(ot,"-dimmer active")),document.body.appendChild(this.dimmer.el));var e=this.el.show().box(),i=e.width,n=e.height,r=document.documentElement,o=r.clientHeight,a=r.clientWidth;this.el.offset({left:(a-i)/2,top:(o-n)/3}),window.xkeydownEsc=function(e){27===e.keyCode&&t.hide()},Tt(window,"keydown",window.xkeydownEsc)}}},{key:"hide",value:function(){this.el.hide(),this.showDimmer&&document.body.removeChild(this.dimmer.el),Ot(window,"keydown",window.xkeydownEsc),delete window.xkeydownEsc}},{key:"mousedownHandler",value:function(t){var e=this,i=t;At(window,(function(t){if(e.moving=!0,null!==i){var n=e.el.offset(void 0);e.el.offset({left:n.left+t.movementX,top:n.top+t.movementY}),i=t}}),(function(){i=null,e.moving=!1}))}}]),t}(),Rr=function(){function t(e,i){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;l()(this,t),this.vchange=function(){},this.el=f("div","".concat(ot,"-form-input")),this.input=f("input","").css("width",e).on("input",(function(t){return n.vchange(t)})).attr("placeholder",i).attr("maxlength",r),this.el.child(this.input)}return a()(t,[{key:"focus",value:function(){var t=this;setTimeout((function(){t.input.el.focus()}),10)}},{key:"hint",value:function(t){this.input.attr("placeholder",t)}},{key:"setReadonly",value:function(t){t?this.input.attr("readonly",""):this.input.removeAttr("readonly")}},{key:"val",value:function(t){return this.input.val(t)}}]),t}();function Ar(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=function(t,e){if(!t)return;if("string"==typeof t)return Ir(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return Ir(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function Ir(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var Pr=function(){function t(e,i,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(t){return t},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){};l()(this,t),this.key=e,this.getTitle=o,this.change=a,this.width=n,this.vchange=function(){},this.items=[],this.itemsmap=new Map,this.el=f("div","".concat(ot,"-form-select")),this.suggest=new oe(i.map((function(t){return{key:t,title:r.getTitle(t)}})),(function(t){r.itemClick(t.key),a(t.key),r.vchange(t.key)}),n,this.el),this.el.children(this.itemEl=f("div","input-text").html(this.getTitle(e)),this.suggest.el).on("click",(function(){return r.show()}))}return a()(t,[{key:"show",value:function(){this.suggest.search("")}},{key:"itemClick",value:function(t){this.key=t,this.itemsmap.size>0?this.itemEl.html(this.itemsmap.get(t)):this.itemEl.html(this.getTitle(t))}},{key:"setItemsMap",value:function(t){var e=this;this.itemsmap=t;var i,n=[],o=Ar(t);try{for(o.s();!(i=o.n()).done;){var a=r()(i.value,2),s=a[0],l=a[1];n.push({key:s,title:l})}}catch(t){o.e(t)}finally{o.f()}this.suggest=new oe(n,(function(t){e.itemClick(t.key),e.change(t.key),e.vchange(t.key)}),this.width,this.el),t.size>6&&this.suggest.el.css("height","200px"),this.el.empty(),this.el.children(this.itemEl=f("div","input-text").html(n[0].title),this.suggest.el)}},{key:"val",value:function(t){return void 0!==t?(this.key=t,this.itemsmap.size>0?this.itemEl.html(this.itemsmap.get(t)):this.itemEl.html(this.getTitle(t)),this):this.key}}]),t}(),Dr={number:/(^\d+$)|(^\d+(\.\d{0,4})?$)/,date:/^\d{4}-\d{1,2}-\d{1,2}$/},Fr=function(){function t(e,i,n,r){var o=this;l()(this,t),this.label="",this.rule=i,n&&(this.label=f("label","label").css("width","".concat(r,"px")).html(n)),this.tip=f("div","tip").child("tip").hide(),this.input=e,this.input.vchange=function(){return o.validate()},this.el=f("div","".concat(ot,"-form-field")).children(this.label,e.el,this.tip)}return a()(t,[{key:"isShow",value:function(){return"none"!==this.el.css("display")}},{key:"show",value:function(){this.el.show()}},{key:"hide",value:function(){return this.el.hide(),this}},{key:"val",value:function(t){return this.input.val(t)}},{key:"hint",value:function(t){this.input.hint(t)}},{key:"validate",value:function(){var t=this.input,e=this.rule,i=this.tip,n=this.el,r=t.val();if(e.required&&/^\s*$/.test(r))return i.html(W("validation.required")),n.addClass("error"),!1;if((e.type||e.pattern)&&!(e.pattern||Dr[e.type]).test(r))return i.html(W("validation.notMatch")),n.addClass("error"),!1;return n.removeClass("error"),!0}},{key:"validateFail",value:function(t){var e=this.el,i=this.tip;e.addClass("error"),i.html(t),i.show()}},{key:"validateClear",value:function(){var t=this.el,e=this.tip;t.removeClass("error"),e.html(""),e.hide()}}]),t}();function Mr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var jr=function(t){tt()(i,t);var e=Mr(i);function i(){var t;l()(this,i);var n=new Fr(new Pr("cell",["cell"],"100%",(function(t){return W("dataValidation.modeType.".concat(t))})),{required:!0},"".concat(W("dataValidation.range"),":"),100),r=new Fr(new Rr("120px","E3 or E3:F12"),{required:!0,pattern:/^([A-Z]{1,2}[1-9]\d*)(:[A-Z]{1,2}[1-9]\d*)?$/}),o=new Fr(new Pr("list",["list","number","date","phone","email"],"100%",(function(t){return W("dataValidation.type.".concat(t))}),(function(e){return t.criteriaSelected(e)})),{required:!0},"".concat(W("dataValidation.criteria"),":"),100),a=new Fr(new Pr("be",["be","nbe","eq","neq","lt","lte","gt","gte"],"160px",(function(t){return W("dataValidation.operator.".concat(t))}),(function(e){return t.criteriaOperatorSelected(e)})),{required:!0}).hide(),s=new Fr(new Rr("70px","10"),{required:!0}).hide(),c=new Fr(new Rr("70px","100"),{required:!0,type:"number"}).hide(),h=new Fr(new Rr("120px","a,b,c"),{required:!0}),u=new Fr(new Rr("70px","10"),{required:!0,type:"number"}).hide();return(t=e.call(this,W("contextmenu.validation"),[f("div","".concat(ot,"-form-fields")).children(n.el,r.el),f("div","".concat(ot,"-form-fields")).children(o.el,a.el,s.el,c.el,u.el,h.el),f("div","".concat(ot,"-buttons")).children(new Te("cancel").on("click",(function(){return t.btnClick("cancel")})),new Te("remove").on("click",(function(){return t.btnClick("remove")})),new Te("save","primary").on("click",(function(){return t.btnClick("save")})))])).mf=n,t.rf=r,t.cf=o,t.of=a,t.minvf=s,t.maxvf=c,t.vf=u,t.svf=h,t.change=function(){},t}return a()(i,[{key:"showVf",value:function(t){var e="date"===t?"2018-11-12":"10",i=this.vf;i.input.hint(e),i.show()}},{key:"criteriaSelected",value:function(t){var e=this.of,i=this.minvf,n=this.maxvf,r=this.vf,o=this.svf;"date"===t||"number"===t?(e.show(),i.rule.type=t,n.rule.type=t,"date"===t?(i.hint("2018-11-12"),n.hint("2019-11-12")):(i.hint("10"),n.hint("100")),i.show(),n.show(),r.hide(),o.hide()):("list"===t?o.show():o.hide(),r.hide(),e.hide(),i.hide(),n.hide())}},{key:"criteriaOperatorSelected",value:function(t){if(t){var e=this.minvf,i=this.maxvf,n=this.vf;if("be"===t||"nbe"===t)e.show(),i.show(),n.hide();else{var r=this.cf.val();n.rule.type=r,"date"===r?n.hint("2018-11-12"):n.hint("10"),n.show(),e.hide(),i.hide()}}}},{key:"btnClick",value:function(t){if("cancel"===t)this.hide();else if("remove"===t)this.change("remove"),this.hide();else if("save"===t){for(var e=["mf","rf","cf","of","svf","vf","minvf","maxvf"],i=0;i<e.length;i+=1){var n=this[e[i]];if(n.isShow()&&!n.validate())return}var r=this.mf.val(),o=this.rf.val(),a=this.cf.val(),s="phone"===a||"email"===a?"":this.of.val(),l=this.svf.val();"number"!==a&&"date"!==a||(l="be"===s||"nbe"===s?[this.minvf.val(),this.maxvf.val()]:this.vf.val()),this.change("save",r,o,{type:a,operator:s,required:!1,value:l}),this.hide()}}},{key:"setValue",value:function(t){if(t){var e=this.mf,i=this.rf,n=this.cf,r=this.of,o=this.svf,a=this.vf,s=this.minvf,l=this.maxvf,c=t.mode,h=t.ref,u=t.validator||{type:"list"},f=u.type,d=u.operator,v=u.value;e.val(c||"cell"),i.val(h),n.val(f),r.val(d),Array.isArray(v)?(s.val(v[0]),l.val(v[1])):(o.val(v||""),a.val(v||"")),this.criteriaSelected(f),this.criteriaOperatorSelected(d)}this.show()}}]),i}(Er),Lr=function(){function t(e,i){l()(this,t),this.el=f("input","".concat(ot,"-form-checkbox")).css("width",e).attr("type","Checkbox")}return a()(t,[{key:"hint",value:function(t){this.el.attr("placeholder",t)}},{key:"val",value:function(t){if(void 0===t)return this.el.el.checked;this.el.el.checked=t}}]),t}();function zr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Br=function(t){tt()(i,t);var e=zr(i);function i(){var t;l()(this,i);var n=new Fr(new Rr("60px",""),{required:!0,pattern:/^([A-Z]{1,2}[1-9]\d*)(:[A-Z]{1,2}[1-9]\d*)?$/},"".concat(W("dataSort.ci"),":"),60),r=new Fr(new Pr(0,[],"180px",(function(){}),(function(){})),{required:!0},"".concat(W("dataSort.sortby"),":"),60),o=new Fr(new Pr("desc",["asc","desc"],"100%",(function(t){return W("dataSort.order.".concat(t))}),(function(){})),{required:!0},"".concat(W("dataSort.criteria"),":"),60),a=new Fr(new Pr(0,[],"180px",(function(){}),(function(){})),{required:!0},"".concat(W("dataSort.sortby"),":"),60),s=new Fr(new Pr("desc",["asc","desc"],"100%",(function(t){return W("dataSort.order.".concat(t))}),(function(){})),{required:!0},"".concat(W("dataSort.criteria"),":"),60),c=new Fr(new Pr(0,[],"180px",(function(){}),(function(){})),{required:!0},"".concat(W("dataSort.sortby"),":"),60),h=new Fr(new Pr("desc",["asc","desc"],"100%",(function(t){return W("dataSort.order.".concat(t))}),(function(){})),{required:!0},"".concat(W("dataSort.criteria"),":"),60);n.input.setReadonly(!0);var u=new Lr("60px","");u.el.on("click",(function(){return t.myHeaderClick()})),u.val(!0);var d=new Te("del","formbt").on("click",(function(){return t.btnClick("del",1)})),v=f("div","".concat(ot,"-form-fields")).children(a.el,s.el,f("div","".concat(ot,"-buttons")).children(new Te("add","formbt").on("click",(function(){return t.btnClick("add",2)})),d)),g=f("div","".concat(ot,"-form-fields")).children(c.el,h.el,new Te("del","formbt").on("click",(function(){return t.btnClick("del",2)})));return(t=e.call(this,W("contextmenu.sort"),[f("div","".concat(ot,"-form-fields")).children(n.el,new Fr(u,{required:!1},"".concat(W("dataSort.header"),":"),120).el),f("div","".concat(ot,"-form-fields")).children(r.el,o.el,new Te("add","formbt").on("click",(function(){return t.btnClick("add",1)}))),v,g,f("div","".concat(ot,"-buttons")).children(new Te("ok","primary").on("click",(function(){return t.btnClick("ok")})),new Te("cancel").on("click",(function(){return t.btnClick("cancel")})))])).cf=n,t.of1=o,t.sortby1=r,t.of2=s,t.sortby2=a,t.of3=h,t.sortby3=c,t.ci1=null,t.ci2=null,t.ci3=null,t.values=[],t.mcols=null,t.mcolsheader=null,t.cicount=1,t.div2=v,t.div3=g,t.but2=d,t.sc=1,t.myheader=u,v.hide(),g.hide(),t.change=function(){},t}return a()(i,[{key:"btnClick",value:function(t,e){if("ok"===t){if(!this.cf.validate())return;var i=[],n=[];if(i.push(this.of1.val()),n.push(this.sortby1.val()),this.sc>=2&&(i.push(this.of2.val()),n.push(this.sortby2.val())),this.sc>=3&&(i.push(this.of3.val()),n.push(this.sortby3.val())),new Set(n).size<n.length)return void lt("error","".concat(W("dataSort.msg")));this.change("ok",n,i,this.myheader.val()),this.hide()}else"add"===t?1===e?(this.div2.css("display",""),this.sc=2):2===e&&(this.div3.css("display",""),this.but2.hide(),this.sc=3):"del"===t?1===e?(this.div2.hide(),this.sc=1):2===e&&(this.div3.hide(),this.but2.css("display",""),this.sc=2):"cancel"===t&&this.hide()}},{key:"myHeaderClick",value:function(){var t=this.mcols,e=this.mcolsheader,i=this.myheader,n=this.sortby1,r=this.sortby2,o=this.sortby3,a=i.val()?t:e;n.input.setItemsMap(a),n.val(0),r.input.setItemsMap(a),r.val(1),o.input.setItemsMap(a),o.val(2)}},{key:"setValue",value:function(t){if(null!=t){if(t){var e=this.cf,i=this.of1,n=this.sortby1,r=this.of2,o=this.sortby2,a=this.of3,s=this.sortby3,l=t.ref,c=t.sort,h=t.ci,u=t.m,f=t.mcols,d=t.mcolsheader,v=(c[0]||{order:"asc"}).order1,g=(c[1]||{order:"asc"}).order2,p=(c[2]||{order:"asc"}).order3;e.val(l),i.val(v),r.val(g),a.val(p),this.mcols=f,this.mcolsheader=d,this.myheader.val(1);for(var m=[],y=0;y<f.length;y++)m.push(y);n.input.setItemsMap(f),n.val(0),o.input.setItemsMap(f),o.val(1),s.input.setItemsMap(f),s.val(2),this.ci=h,this.values=u}this.show()}}}]),i}(Er);function Hr(t){return f("div","".concat(ot,"-item ").concat(t))}function Nr(t){var e=this;return Hr("state").child(W("sort.".concat(t))).on("click.stop",(function(){return e.itemClick(t)}))}function Wr(t){var e=this,i=this.filterbEl,n=this.filterValues;i.html(""),Object.keys(t).forEach((function(r,o){var a=t[r],s=n.includes(r)?"checked":"";i.child(f("div","".concat(ot,"-item state ").concat(s)).on("click.stop",(function(){return e.filterClick(o,r)})).children(""===r?W("filter.empty"):r,f("div","label").html("(".concat(a,")"))))}))}function Xr(){var t=this.filterhEl,e=this.filterValues,i=this.values;t.html("".concat(e.length," / ").concat(i.length)),t.checked(e.length===i.length)}var Ur=function(){function t(){var e=this;l()(this,t),this.filterbEl=f("div","".concat(ot,"-body")),this.filterhEl=f("div","".concat(ot,"-header state")).on("click.stop",(function(){return e.filterClick(0,"all")})),this.el=f("div","".concat(ot,"-sort-filter")).children(this.sortAscEl=Nr.call(this,"asc"),this.sortDescEl=Nr.call(this,"desc"),Hr("divider"),f("div","".concat(ot,"-filter")).children(this.filterhEl,this.filterbEl),f("div","".concat(ot,"-buttons")).children(new Te("cancel").on("click",(function(){return e.btnClick("cancel")})),new Te("ok","primary").on("click",(function(){return e.btnClick("ok")})))).hide(),this.ci=null,this.sortDesc=null,this.values=null,this.filterValues=[]}return a()(t,[{key:"btnClick",value:function(t){if("ok"===t){var e=this.ci,i=this.sort,n=this.filterValues;this.ok&&this.ok(e,i,"in",n)}this.hide()}},{key:"itemClick",value:function(t){this.sort=t;var e=this.sortAscEl,i=this.sortDescEl;e.checked("asc"===t),i.checked("desc"===t)}},{key:"filterClick",value:function(t,e){var i=this.filterbEl,n=this.filterValues,r=this.values,o=i.children();"all"===e?o.length===n.length?(this.filterValues=[],o.forEach((function(t){return f(t).checked(!1)}))):(this.filterValues=Array.from(r),o.forEach((function(t){return f(t).checked(!0)}))):f(o[t]).toggle("checked")?n.push(e):n.splice(n.findIndex((function(t){return t===e})),1);Xr.call(this)}},{key:"set",value:function(t,e,i,n){this.ci=t;var r=this.sortAscEl,o=this.sortDescEl;null!==n?(this.sort=n.order,r.checked(n.asc()),o.checked(n.desc())):(this.sortDesc=null,r.checked(!1),o.checked(!1)),this.values=Object.keys(e),this.filterValues=i?Array.from(i.value):Object.keys(e),Wr.call(this,e,i),Xr.call(this)}},{key:"setOffset",value:function(t){var e=this;this.el.offset(t).show();var i=1;Rt(this.el,(function(){i<=0&&(e.hide(),i=5),i-=1}))}},{key:"setOffsetAdjustView",value:function(t,e,i){var n=this;this.el.show();var r=this.el.offset(),o=r.width,a=r.height;t.top+a>i&&(t.top=i-a),t.left+o>e&&(t.left=e-o),this.el.offset(t);var s=1;Rt(this.el,(function(){s<=0&&(n.hide(),s=5),s-=1}))}},{key:"show",value:function(){this.el.show()}},{key:"hide",value:function(){this.el.hide(),Et(this.el)}}]),t}(),Yr=function(){function t(){l()(this,t),xt()(this,"onEdit",!1),this.el=f("div","".concat(ot,"-comment-tip")).hide()}return a()(t,[{key:"hide",value:function(){this.el.hide()}},{key:"setPosition",value:function(t,e,i){if(!0!==this.onEdit){var n=this.el,r=i?e.left-e.width-1:e.left+e.width,o=e.top-10;n.css("left","".concat(r,"px")),n.css("top","".concat(o,"px")),n.html(t).show(),i&&n.css("left","".concat(r-n.el.offsetWidth,"px"))}}}]),t}();function Vr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Gr=function(t){tt()(i,t);var e=Vr(i);function i(){var t;l()(this,i);var n=new Fr(new Rr("80px",""),{required:!0},"".concat(W("dataSearch.label"),":"),100),r=new Fr(new Lr("80px",""),{required:!1},"".concat(W("dataSort.casesense"),":"),100),o=new Fr(new Lr("30px",""),{required:!1},"".concat(W("dataSearch.matchwhole"),":"),150),a=new Fr(new Pr("values",["values","formulas","comments"],"120px",(function(t){return W("dataSearch.lookin.".concat(t))}),(function(){})),{required:!0},"".concat(W("dataSearch.lkinlb"),":"),100);return(t=e.call(this,W("toolbar.search"),[f("div","".concat(ot,"-form-fields")).children(r.el,o.el),f("div","".concat(ot,"-form-fields")).child(n.el),f("div","".concat(ot,"-form-fields")).child(a.el),f("div","".concat(ot,"-buttons")).children(new Te("previous").on("click",(function(){return t.btnClick("previous")})),new Te("next").on("click",(function(){return t.btnClick("next")})),new Te("close","primary").on("click",(function(){return t.btnClick("close")})))],"500px",!1,!0)).formField=n,t.casesense=r,t.lookin=a,t.matchwhole=o,t.change=function(){},t}return a()(i,[{key:"btnClick",value:function(t){if("close"!==t){if(!this.formField.validate())return;var e=this.casesense.val(),i=this.lookin.val(),n=this.matchwhole.val(),r=this.formField.val().trim();switch(t){case"previous":this.change("previous",r,e,i,n);break;case"next":this.change("next",r,e,i,n)}}else this.hide()}},{key:"show",value:function(){Ri()(rt()(i.prototype),"show",this).call(this),this.formField.input.focus()}}]),i}(Er),qr=function(){function t(e,i){var n=this;l()(this,t),this.data=e,this.mode=i,this.ishtml=!1,this.inputChange=function(){},this.enter=function(){},this.tab=function(){},this.focuson=function(){},this.el=f("div","".concat(ot,"-formula-bar")),this.barLabel=f("div","".concat(ot,"-bar-label")),this.formulaInput=f("div","".concat(ot,"-formula-input")).on("input",(function(t){n.inputChange(n.ishtml?t.target.innerHTML:t.target.innerText)})).on("focus",(function(t){n.focuson()})).on("keydown",(function(t){var e=t.keyCode||t.which;13===e?(t.altKey||n.formulaInput.el.blur(),n.enter(t,n.ishtml)):9===e&&(n.formulaInput.el.blur(),n.tab(t))})),"read"===this.mode?this.formulaInput.attr("disabled","disabled"):this.formulaInput.attr("contenteditable","true"),this.el.children(this.barLabel,this.formulaInput),this.reset()}return a()(t,[{key:"resetData",value:function(t){this.data=t,this.reset()}},{key:"reset",value:function(){var t=this.data,e=t.selector,i=p(e.ci)+""+(e.ri+1),n=t.getSelectedCell(),r="",o=!1;n&&(n.html?(r=n.html,this.ishtml=!0):(this.ishtml=!1,n.f?r=n.f:n.ufv?r=n.ufv:n.text&&(r=n.text,o=!0))),this.barLabel.html(i),this.formulaInput.html(r,!this.ishtml,o)}}]),t}();function Kr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Zr=function(t){tt()(i,t);var e=Kr(i);function i(){var t;return l()(this,i),t=e.call(this),xt()(Un()(t),"col",void 0),xt()(Un()(t),"row",void 0),t.el.attr("contentEditable","true"),t.el.attr("placeholder","".concat(W("toolbar.commentDefault"))),t.el.attr("id","commentEdit"),t}return a()(i,[{key:"saveAndHide",value:function(t){var e=this;if(void 0!==this.col&&void 0!==this.row){if(""!==this.el.html()){for(var i=-1,n=0;n<t.data.comments.length;n++)if(t.data.comments[n].col===this.col&&t.data.comments[n].row===this.row){i=n;break}-1===i?t.data.comments.push({col:this.col,row:this.row,author:"Aspose",note:this.el.html()}):t.data.comments[i].note=this.el.html()}t.data.comments=t.data.comments.filter((function(t){return!e.checkEmptyContent(t.note)})),this.hide(),t.commentTip.onEdit=!1,this.col=void 0,this.row=void 0}}},{key:"checkEmptyContent",value:function(t){var e=document.createElement("div");return e.innerHTML=t,""===e.innerText}},{key:"setPosition",value:function(t,e,n){Ri()(rt()(i.prototype),"setPosition",this).call(this,t,e,n),this.el.focus()}}]),i}(Yr),Jr=i(10),$r=function(){function t(){l()(this,t),xt()(this,"name",void 0)}return a()(t,[{key:"execute",value:function(t){}}]),t}();function Qr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}function to(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function eo(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?to(Object(i),!0).forEach((function(e){xt()(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):to(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function io(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}function no(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function ro(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?no(Object(i),!0).forEach((function(e){xt()(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):no(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function oo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var ao=[function(t){tt()(i,t);var e=Qr(i);function i(){var t;l()(this,i);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t=e.call.apply(e,[this].concat(r)),xt()(Un()(t),"name","delete"),t}return a()(i,[{key:"execute",value:function(t){var e=t.canvas,i=t.data,n=e.fabric,r=n.getActiveObject(),o=e.findObjByData(r.id,i);if(o)if(o.op="del",i.canvasFreeze){var a=i.canvasFreeze;[a.br,a.bl,a.tr,a.tl].forEach((function(t){t.remove(e.findObjInCanvas(t,r.id)),e.saveCanvasData(i,t),t.renderAll()}))}else n.remove(r),n.renderAll(),e.saveCanvasData(i,n)}}]),i}($r),function(t){tt()(r,t);var e,i,n=io(r);function r(){var t;l()(this,r);for(var e=arguments.length,i=new Array(e),o=0;o<e;o++)i[o]=arguments[o];return t=n.call.apply(n,[this].concat(i)),xt()(Un()(t),"name","paste"),xt()(Un()(t),"canvas",void 0),xt()(Un()(t),"sheet",void 0),xt()(Un()(t),"inFreeze",void 0),t}return a()(r,[{key:"execute",value:(i=bt()(kt.a.mark((function t(e){var i,n,r,o,a;return kt.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=e.canvas.clipboard,this.canvas=null!==(i=this.canvas)&&void 0!==i?i:e.canvas.fabric,this.sheet=null!==(n=this.sheet)&&void 0!==n?n:e,this.inFreeze=null!==(r=this.inFreeze)&&void 0!==r?r:e.canvas.inFreeze,a=this,o){t.next=7;break}return t.abrupt("return");case 7:return t.next=9,o.clonedObj.clone(function(){var t=bt()(kt.a.mark((function t(i){var n;return kt.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n=fabric.util.object.clone(i),a.setImagePosition(n),e.canvas.setLoading(e,{left:n.left,top:n.top}),t.next=6,a.addImageToData(n);case 6:a.setImageEventAndLayout(n),a.addImageToCanvas(n)?a.reactiveObj(n):a.rollback(a.sheet,n),t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),lt(t.t0);case 14:return t.prev=14,e.canvas.removeLoading(e),t.finish(14);case 17:case"end":return t.stop()}}),t,null,[[0,10,14,17]])})));return function(e){return t.apply(this,arguments)}}(),["id","tick","imgType","zorder"]);case 9:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"rollback",value:function(t,e){var i=t.data,n=t.canvas;n.fabric.remove(n.fabric.getObjects()[n.fabric.getObjects().findIndex((function(t){return t.id===e.id}))]),n.saveCanvasData(t.data,n.fabric),n.inFreeze&&(n.inFreeze.removeImage(e.id),n.removeImageInData(i,e.id))}},{key:"setImagePosition",value:function(t){var e=this.sheet.data,i=this.sheet.getTableOffset(),n=0,r=0;if(!t)throw"no cloneObj";if(!this.canvas)throw"no canvas";if(!this.sheet)throw"no sheet data";if(this.canvas.getActiveObject()){var o=this.canvas.getActiveObject();n=o.left+20,r=o.top+20}else{var a=e.getSelectedRect();if(!a)throw"get selected rect value is null";n=a.left+i.left,r=a.top+i.top}t.set({left:n,top:r,evented:!0}),this.sheet.canvas.edgeCollision(t)}},{key:"addImageToCanvas",value:function(t){var e=this,i=this.canvas,n=this.sheet.data;if(n.name!==this.sheet.canvas.clipboard.sheetName)return!1;if(n.canvasFreeze){var r=n.canvasFreeze;[r.br,r.bl,r.tr,r.tl].forEach((function(i){var n=fabric.util.object.clone(t),r=e.inFreeze.getOffsetWhenIndividualCanvasMovement(i.canvasName);n.set({top:n.top+r.y,left:n.left+r.x}),i.add(n),n.setCoords()}))}else t.setCoords(),i.add(t);return!0}},{key:"addImageToData",value:(e=bt()(kt.a.mark((function t(e){var i,n,r,o,a,s,l,c,h,u;return kt.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=this.sheet,n=this.sheet.canvas.data,r=i.canvas.clipboard.newData,o=eo({},r),a=this.sheet.getTableOffset(),s={ri:n.selector.ri,ci:n.selector.ci,name:n.name,srcid:o.id,srcname:i.canvas.clipboard.sheetName,isshape:"Picture"!==o.type},(l=new FormData).set("p",JSON.stringify(s)),l.set("uid",i.uniqueid),t.next=11,fetch(i.imageCopyUrl,{method:"POST",body:l});case 11:if((c=t.sent).ok){t.next=14;break}throw"upload copy image fail";case 14:return t.next=16,c.json();case 16:if(h=t.sent,h=JSON.parse(h)){t.next=20;break}throw"upload copy image return null ";case 20:if(!h.Error){t.next=22;break}throw h.Error;case 22:delete h.width,delete h.height,n.images||(n.images=[]),Object.assign(o,h),o.left=e-a.left,o.top=e-a.top,n.images.push(o),u=h.type,delete h.type,Object.assign(e,h),e.id=i.canvas.picId(h.id,h.tick),e.imgType=u,e.zorder=i.data.topOrder++,e.changed=!0;case 36:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"setImageEventAndLayout",value:function(t){"Chart"===t.imgType&&t.setControlsVisibility({mtr:!1}),this.sheet.canvas.setSelectionLayout(t),this.sheet.canvas.eventsOn(t,this.sheet.canvas.imgEvents)}},{key:"reactiveObj",value:function(t){var e=this.canvas,i=this.sheet,n=i.data;if(n.canvasFreeze){var r=n.canvasFreeze,o=r.br,a=r.bl,s=r.tr,l=r.tl;[o,a,s,l].forEach((function(e){e.discardActiveObject(),e.setActiveObject(e.getObjects().find((function(e){return e.id===t.id}))),e.requestRenderAll(),i.canvas.saveCanvasData(n,e),i.canvas.saveOriginalAngleInfoOfImage(l)}))}else e.discardActiveObject(),e.setActiveObject(t),e.requestRenderAll(),i.canvas.saveCanvasData(n,e),i.canvas.saveOriginalAngleInfoOfImage(e)}}]),r}($r),function(t){tt()(i,t);var e=oo(i);function i(){var t;l()(this,i);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t=e.call.apply(e,[this].concat(r)),xt()(Un()(t),"name","copy"),t}return a()(i,[{key:"execute",value:function(t){var e=t.canvas.fabric;if(e.getActiveObject()){var i=e;t.data.canvasFreeze&&(i=t.data.canvasFreeze.tl),i.getActiveObject().clone((function(e){t.canvas.clipboard={clonedObj:e,newData:ro({},t.canvas.findObjByData(e.id,t.data)),sheetName:t.data.name}}),["id","tick","imgType","zorder"])}}}]),i}($r)],so=function(){function t(e){var i=this;l()(this,t),xt()(this,"freezeXY",void 0),xt()(this,"imageCanvas",void 0),xt()(this,"freezeEvents",{"object:rotating":function(t){return function(e){i.imageCanvas.pubSub.publish("object:rotating",e,t)}},"object:moving":function(t){return function(e){i.imageCanvas.pubSub.publish("object:moving",e,t)}},"object:scaling":function(t){return function(e){i.imageCanvas.pubSub.publish("object:scaling",e,t)}},"selection:created":function(t){return function(e){i.imageCanvas.pubSub.publish("selection:created",e,t)}},"selection:cleared":function(t){return function(e){i.imageCanvas.pubSub.publish("selection:cleared",e,t)}},"selection:updated":function(t){return function(e){i.imageCanvas.pubSub.publish("selection:updated",e,t)}}}),this.imageCanvas=e;var n=e.sheet.getTableOffset(),r=e.sheet.data,o=e.sheet;if(!r.displayRight2Left){var a=r.freezeTotalWidth()+n.left/o.table.zoomlevel,s=r.freezeTotalHeight()+n.top/o.table.zoomlevel;if(this.freezeXY={},this.freezeXY.x=a,this.freezeXY.y=s,JSON.stringify(r.freeze)!==JSON.stringify([0,0])&&!r.canvasFreeze){e.pubSub=e.initPubSub();var c=e.fabric;c.off("object:moving",e.canvasEvents["object:moving"]),c.set("canvasName","br");var h=this.createCanvas(o.overlayerEl,"bl",a,c.height,JSON.stringify(c.toDatalessJSON(["id","tick","imgType","zorder"]))),u=this.createCanvas(o.overlayerEl,"tr",c.width,s,JSON.stringify(c.toDatalessJSON(["id","tick","imgType","zorder"]))),f=this.createCanvas(o.overlayerEl,"tl",a,s,JSON.stringify(c.toDatalessJSON(["id","tick","imgType","zorder"])));this.setEventAndClipPath(c,u,h,f);for(var d=0;d<document.getElementsByClassName("canvas-container").length;d++)document.getElementsByClassName("canvas-container")[d].setAttribute("style","position:absolute");r.originFreezeSize={tl:{width:f.width,height:f.height},bl:{width:h.width,height:h.height},tr:{width:u.width,height:u.height},br:{width:c.width,height:c.height}},r.canvasFreeze={tl:f,bl:h,tr:u,br:c},this.setZoom(this.imageCanvas.sheet.table.zoomlevel)}}}return a()(t,[{key:"getFreezeCanvasClipPath",value:function(t,e,i){var n=this.freezeXY,r=this.imageCanvas.sheet,o=this.imageCanvas.tOffset;o.left/=r.data.zoomlevel,o.top/=r.data.zoomlevel;var a=new Jr.fabric.Rect({width:n.x,height:e.height-n.y,top:n.y,left:o.left}),s=new Jr.fabric.Rect({width:n.x,height:n.y,left:o.left,top:o.top}),l=new Jr.fabric.Rect({width:t.width-n.x,height:n.y,left:n.x,top:o.top}),c=new Jr.fabric.Rect({width:i.width-n.x,height:i.height-n.y,left:n.x,top:n.y});return function(t){var e;switch(t){case"tr":e=l;break;case"bl":e=a;break;case"tl":e=s;break;default:e=c}return e}}},{key:"getOffsetsBetweenCanvases",value:function(t,e){var i=this.imageCanvas.data,n=i.scroll,r=i.displayRight2Left?n.x:-n.x,o=-n.y,a={offsetX:0,offsetY:0};switch(t+e){case"tlbl":case"trbr":a={offsetX:0,offsetY:-o};break;case"bltl":case"brtr":a={offsetX:0,offsetY:o};break;case"tltr":case"blbr":a={offsetX:-r,offsetY:0};break;case"brbl":case"trtl":a={offsetX:r,offsetY:0};break;case"trbl":a={offsetX:r,offsetY:-o};break;case"tlbr":a={offsetX:-r,offsetY:-o};break;case"bltr":a={offsetX:-r,offsetY:o};break;case"brtl":a={offsetX:r,offsetY:o}}return a}},{key:"setIndividualCanvasesToMoveInSync",value:function(t,e,i,n){var r=this.imageCanvas.findObjInCanvas(t,e.target.id);if(r){var o=this.getOffsetsBetweenCanvases(n,t.canvasName);r.set({left:e.target.left-o.offsetX,top:e.target.top-o.offsetY}),r.set(i),this.imageCanvas.edgeCollision(r,t.canvasName),r.dirty=!0,t.renderAll()}}},{key:"setEventAndClipPath",value:function(t,e,i,n){var r=this;[t,e,i,n].forEach((function(t){var e=Object.keys(r.freezeEvents).map((function(e){return[e,r.freezeEvents[e](t.canvasName)]}));e=Object.fromEntries(e),r.imageCanvas.eventsOn(t,e)}));var o=this.getFreezeCanvasClipPath(e,i,t);this.freezeClipPath=o,[t,e,i,n].forEach((function(t){t.clipPath=o(t.canvasName),r.subscribeObjectEvent(t),r.subscribeSelectionEvent(t),r.subscribeCustomEvent(t,o)}))}},{key:"updateCanvasAllObjectAndRenderAll",value:function(t,e){t.getObjects().forEach(e),t.renderAll()}},{key:"subscribeObjectEvent",value:function(t){var e=this;this.imageCanvas.pubSub.subscribe("object:rotating",(function(i,n){var r={angle:i.target.angle};e.setIndividualCanvasesToMoveInSync(t,i,r,n)})),this.imageCanvas.pubSub.subscribe("object:moving",(function(i,n){var r=n===t.canvasName?{left:i.target.left,top:i.target.top}:{};e.setIndividualCanvasesToMoveInSync(t,i,r,n)})),this.imageCanvas.pubSub.subscribe("object:scaling",(function(i,n){var r={scaleX:i.target.scaleX,scaleY:i.target.scaleY};e.setIndividualCanvasesToMoveInSync(t,i,r,n)}))}},{key:"getOffsetWhenIndividualCanvasMovement",value:function(t){var e,i=this.imageCanvas.data,n=i.scroll,r=i.displayRight2Left?n.x:-n.x,o=-n.y;switch(t){case"tr":e={x:r,y:0};break;case"bl":e={x:0,y:o};break;case"br":e={x:r,y:o};break;default:e={x:0,y:0}}return e}},{key:"subscribeCustomEvent",value:function(t,e){var i=this;this.imageCanvas.pubSub.subscribe("reset",(function(){var e=i.getOffsetWhenIndividualCanvasMovement(t.canvasName);i.updateCanvasAllObjectAndRenderAll(t,(function(t){t.set({left:t.left-e.x,top:t.top-e.y}),t.setCoords(),t.dirty=!0}))})),this.imageCanvas.pubSub.subscribe("object:scroll",(function(e){var n=i.imageCanvas.data.canvasData,r=i.getOffsetWhenIndividualCanvasMovement(t.canvasName);if(n){var o=JSON.parse(n);t.getObjects().forEach((function(t){var e=o.objects.find((function(e){return e.id===t.id}));t.set({left:e.left+r.x,top:e.top+r.y}),t.setCoords()})),t.renderAll()}}))}},{key:"clearFreeze",value:function(t){if(t.canvasFreeze){this.imageCanvas.eventsOff(this.imageCanvas.fabric,this.freezeEvents);var e=t.canvasFreeze.tr,i=t.canvasFreeze.tl,n=t.canvasFreeze.bl;e.dispose(),i.dispose(),n.dispose(),document.getElementById("tr").remove(),document.getElementById("tl").remove(),document.getElementById("bl").remove();var r={width:this.imageCanvas.fabric.width,height:this.imageCanvas.fabric.height,top:this.imageCanvas.tOffset.top/this.imageCanvas.sheet.table.zoomlevel,left:this.imageCanvas.tOffset.left/this.imageCanvas.sheet.table.zoomlevel};this.imageCanvas.fabric.clipPath=new Jr.fabric.Rect(r),this.imageCanvas.eventsOn(this.imageCanvas.fabric,this.imageCanvas.canvasEvents),this.imageCanvas.pubSub=this.imageCanvas.initPubSub(),this.imageCanvas.pubSub.subscribe("object:scroll",this.imageCanvas.customEvents["object:scroll"]),this.imageCanvas.fabric.renderAll(),t.canvasFreeze=void 0}}},{key:"setZoom",value:function(t){var e=this.imageCanvas,i=e.data,n=(e.fabric,e.tOffset,i.originFreezeSize);this.foreachFreezeCanvas((function(e){e.setZoom(t),e.renderAll()})),this.foreachFreezeCanvas((function(e){e.setWidth(n[e.canvasName].width*t),e.setHeight(n[e.canvasName].height*t)}),"br")}},{key:"resize",value:function(){var t=this.imageCanvas,e=t.data,i=(t.fabric,e.canvasFreeze),n=(i.tl,i.bl),r=i.tr,o=i.br,a=this.getFreezeCanvasClipPath(r,n,o);this.foreachFreezeCanvas((function(t){t.clipPath=a(t.canvasName),t.renderAll()}))}},{key:"subscribeSelectionEvent",value:function(t){var e=this;this.imageCanvas.pubSub.subscribe("selection:created",(function(i,n){if(n!==t.canvasName){e.imageCanvas.checkHyperlink(e.imageCanvas.data.canvasFreeze.br)&&!i.e.ctrlKey&&e.imageCanvas.openLink(e.imageCanvas.data);var r=e.imageCanvas.findObjInCanvas(t,i.target.id);t._setActiveObject(r),t.renderAll()}})),this.imageCanvas.pubSub.subscribe("selection:cleared",(function(e,i){i!==t.canvasName&&(t._discardActiveObject(),t.renderAll())})),this.imageCanvas.pubSub.subscribe("selection:updated",(function(i,n){var r;if(n!==t.canvasName){var o=e.imageCanvas.findObjInCanvas(t,i.target.id);(null===(r=t.getActiveObject())||void 0===r?void 0:r.id)!==o.id&&(t._setActiveObject(o),t.renderAll())}}))}},{key:"setObjectOrderAndChangedInAllCanvas",value:function(t,e){var i=this;++t.topOrder,Object.keys(t.canvasFreeze).forEach((function(n){var r=i.imageCanvas.findObjInCanvas(t.canvasFreeze[n],e.id);r&&(r.changed=!0,i.imageCanvas.sendImageToFont(t.canvasFreeze[n],r),e.zorder=r.zorder=t.topOrder,t.canvasFreeze[n].renderAll())}))}},{key:"setOrderAndSaveData",value:function(t){var e=this.imageCanvas.data;this.setObjectOrderAndChangedInAllCanvas(e,t),this.imageCanvas.saveOriginalAngleInfoOfImage(e.canvasFreeze.br),this.imageCanvas.saveCanvasData(e,e.canvasFreeze.br)}},{key:"loadFreezeImage",value:function(){var t=this.imageCanvas.data;if(t.canvasFreeze){var e=t.canvasFreeze,i=e.tl,n=e.bl,r=e.tr;this.imageCanvas.rerenderCanvasBySavedJson(n,{x:0,y:0},n.clipPath),this.imageCanvas.rerenderCanvasBySavedJson(r,{x:0,y:0},r.clipPath),this.imageCanvas.rerenderCanvasBySavedJson(i,{x:0,y:0},i.clipPath)}}},{key:"createCanvas",value:function(t,e,i,n,r){var o=document.createElement("canvas");o.width=i,o.height=n,o.setAttribute("id",e),t.children(o),window.mobileAndTabletCheck()&&(Jr.fabric.Object.prototype.selectable=!1);var a=new Jr.fabric.Canvas(e);return a.selection=!1,a.set("canvasName",e),this.imageCanvas.eventsOn(a,this.imageCanvas.canvasEvents),a}},{key:"removeImage",value:function(t){this.foreachFreezeCanvas((function(e){e.remove(e.getObjects()[e.getObjects().findIndex((function(e){return e.id===t}))])}),"br")}},{key:"setOrder",value:function(){this.foreachFreezeCanvas((function(t){null!=t&&t.getObjects().find((function(t){return!t.zorder}))||t.getObjects().sort((function(t,e){return t.zorder<e.zorder?-1:1})).forEach((function(e){t.bringToFront(e)}))}))}},{key:"saveCanvasData",value:function(){var t=this,e=this.imageCanvas.data;this.foreachFreezeCanvas((function(i){t.imageCanvas.saveCanvasData(e,i)}))}},{key:"setCursor",value:function(t){this.foreachFreezeCanvas((function(e){e.defaultCursor=t}))}},{key:"renderAll",value:function(){this.foreachFreezeCanvas((function(t){t.renderAll()}))}},{key:"foreachFreezeCanvas",value:function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];var r=this.imageCanvas.data;if(r.canvasFreeze){var o=r.canvasFreeze,a=o.tl,s=o.bl,l=o.tr,c=o.br;[a,s,l,c].forEach((function(e){i.includes(e.canvasName)||t(e)}))}}}]),t}();function lo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var co=function(){function t(){l()(this,t),this.subscribers=[]}return a()(t,[{key:"subscribe",value:function(t,e){var i=this.subscribers[t];i?i.push(e):this.subscribers[t]=[e]}},{key:"publish",value:function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];var r=this.subscribers[t]||[];r.forEach((function(t){return t.apply(void 0,i)}))}}]),t}(),ho=function(t){tt()(i,t);var e=lo(i);function i(){var t;return l()(this,i),t=e.call(this,"canvas"),xt()(Un()(t),"imgEvents",{mouseup:function(e){var i=Un()(t).sheet,n=i.data,r=e.target;if(!window.mobileAndTabletCheck()){var o=r.canvas;o||(o=t.fabric),n.canvasFreeze?t.inFreeze.setOrderAndSaveData(r):(r.changed=!0,t.sendImageToFont(o,r),r.zorder=++n.topOrder,t.findObjInCanvas(o,r.id).zorder=r.zorder,t.saveOriginalAngleInfoOfImage(o),t.saveCanvasData(n,o)),i.selector.setObjId(r.id)}},mousedown:function(e){window.mobileAndTabletCheck()||(t.sheet.selector.hide(),t.sheet.editor.clear(),null==e||e.e.stopPropagation())},mousemove:function(e){t.findObjByData(e.target.id,t.data).hyperlink?t.fabric.hoverCursor="pointer":t.fabric.hoverCursor="move"}}),xt()(Un()(t),"pausePanning",!1),xt()(Un()(t),"canvasEvents",{"mouse:move:before":function(){t.sheet.data.canvasFreeze&&t.sheet.data.canvasFreeze.tl.getObjects().length!==t.sheet.data.canvasFreeze.br.getObjects().length&&t.inFreeze.loadFreezeImage()},"object:moving":function(e){t.edgeCollision(e.target,"canvas")},"selection:created":function(e){t.checkHyperlink(t.fabric)&&!e.e.ctrlKey&&t.openLink(t.data)}}),xt()(Un()(t),"customEvents",{"object:scroll":function(){var e=t.data,i=e.scroll,n=e.displayRight2Left,r=e.canvasData,o=n?i.x:-i.x,a=-i.y;if(r){var s=JSON.parse(r);t.fabric.getObjects().forEach((function(t){var e=s.objects.find((function(e){return e.id===t.id}));t.set({left:e.left+o,top:e.top+a}),t.setCoords()})),t.fabric.renderAll()}}}),xt()(Un()(t),"tOffset",void 0),xt()(Un()(t),"data",void 0),xt()(Un()(t),"fabric",void 0),xt()(Un()(t),"freeze",void 0),xt()(Un()(t),"freezeXY",{x:0,y:0}),xt()(Un()(t),"pubSub",void 0),xt()(Un()(t),"sheet",void 0),xt()(Un()(t),"basicZorder",void 0),xt()(Un()(t),"canvasId","canvas_".concat((new Date).getTime())),xt()(Un()(t),"imageOperationList",{}),t.attr("id",t.canvasId),t.pubSub=t.initPubSub(),ao.forEach((function(e){var i=new e;t.imageOperationList[i.name]=i})),Tt(window,"resize",(function(e){window.mobileAndTabletCheck()||t.resize(e)})),t}return a()(i,[{key:"publishEvent",value:function(t,e){this.pubSub.publish(t,e)}},{key:"initPubSub",value:function(){return new co}},{key:"setCursor",value:function(t){this.sheet.data.canvasFreeze?this.inFreeze.setCursor(t):this.fabric.defaultCursor=t}},{key:"doNewSheetPage",value:function(t){this.fabric.clear(),this.inFreeze&&this.inFreeze.clearFreeze(t)}},{key:"doSwitchSheetPage",value:function(t){var e=this;this.sheet.selector.el.show();setTimeout((function t(){var i,n,r,o;e.sheet.canvas.fabric.getObjects().length===(null!==(i=null===(n=e.sheet.data.images)||void 0===n?void 0:n.length)&&void 0!==i?i:0)+(null!==(r=null===(o=e.sheet.data.shapes)||void 0===o?void 0:o.length)&&void 0!==r?r:0)?e.doEndSwitchSheetPage():setTimeout(t,200)}),200);this.inFreeze&&this.inFreeze.clearFreeze(t)}},{key:"doEndSwitchSheetPage",value:function(){var t;this.setOrder(this.fabric),null===(t=this.sheet.canvas.inFreeze)||void 0===t||t.setOrder()}},{key:"initFreeze",value:function(){this.inFreeze=new so(this)}},{key:"rerenderCanvasBySavedJson",value:function(t,e,i){var n=this;if(this.data.canvasData&&this.fabric){this.initFreeze();var r=JSON.parse(this.data.canvasData);delete r.clipPath,this.loadFromCanvasData(JSON.stringify(r),(function(r,o){o.set({left:r.left+e.x,top:r.top+e.y}),"Chart"===o.imgType&&o.setControlsVisibility({mtr:!1}),n.setSelectionLayout(o),n.eventsOn(o,n.imgEvents),n.findObjByData(r.id,n.data)&&(t.clipPath=i)}),t)}}},{key:"findObjInCanvas",value:function(t,e){return t.getObjects().find((function(t){return t.id===e}))}},{key:"recordCanvasData",value:function(t,e){var i,n,r=t.aCoords,o=this.tOffset,a=this.findObjByData(t.id,e);if(a){var s=r.tl.x+(r.tr.x-r.tl.x)/2-o.left,l=r.tl.y+(r.bl.y-r.tl.y)/2-o.top;a.centerX||(a.centerX=s),a.centerY||(a.centerY=l),a.currentCenterX=s,a.currentCenterY=l;var c=e.getCellRectByXY(r.tl.x,r.tl.y);a.width=a.originWidth*t.scaleX,a.height=a.originHeight*t.scaleY,a.scaleX=t.scaleX,a.scaleY=t.scaleY,a.top=t.top-o.top/e.zoomlevel+e.scroll.y,a.left=t.left-o.left/e.zoomlevel+e.scroll.x,a.row=null==c?void 0:c.ri,a.col=null==c?void 0:c.ci,a.changed=null!==(i=t.changed)&&void 0!==i&&i,a.zorder=null!==(n=t.zorder)&&void 0!==n?n:e.topOrder}}},{key:"edgeCollision",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"canvas",i=this.data,n=this.tOffset,r=n.top/i.zoomlevel,o=n.left/i.zoomlevel;0!==i.scroll.y&&["br","bl"].includes(e)&&(r-=i.scroll.y),0!==i.scroll.x&&["br","tr"].includes(e)&&(o-=i.scroll.x),t.setCoords();var a=t.getBoundingRect().top/i.zoomlevel,s=t.getBoundingRect().left/i.zoomlevel;(a<r||s<o)&&(t.top=Math.max(t.top,t.top-a+r),t.left=Math.max(t.left,t.left-s+o))}},{key:"init",value:function(t){var e=this;this.tOffset=t.getTableOffset();var i=this.tOffset;this.attr("width",i.width+i.left),this.attr("height",i.height+i.top),this.sheet=t,window.mobileAndTabletCheck()&&(Jr.fabric.Object.prototype.selectable=!1),this.fabric=new Jr.fabric.Canvas(this.canvasId),this.clipPath({width:this.fabric.width,height:this.fabric.height,top:this.tOffset.top/t.data.zoomlevel,left:this.tOffset.left/t.data.zoomlevel});var n=0,r=setInterval((function(){(t.data.isImageOk||50===n)&&(e.onSheetImageLoaded(),clearInterval(r)),n++}),200);this.eventsOn(this.fabric,this.canvasEvents),this.fabric.selection=!1,window.mobileAndTabletCheck()&&this.fabric.removeListeners(),this.pubSub.subscribe("object:scroll",this.customEvents["object:scroll"])}},{key:"onSheetImageLoaded",value:function(){var t;this.setOrder(this.sheet.canvas.fabric),null===(t=this.sheet.canvas.inFreeze)||void 0===t||t.setOrder()}},{key:"resetFreeze",value:function(t){var e=r()(t.freeze,2),i=e[0],n=e[1];0===i&&0===n?this.inFreeze&&this.inFreeze.clearFreeze(t):this.initFreeze()}},{key:"reset",value:function(t){this.data=t,this.fabric.clear(),this.initFreeze(),this.freezeXY=this.inFreeze.freezeXY,this.inFreeze.loadFreezeImage(),this.fabric.renderAll()}},{key:"doResetPosition",value:function(t){0===t&&this.pubSub.publish("reset")}},{key:"saveOriginalAngleInfoOfImage",value:function(t){var e=this,i={};t.getObjects().forEach((function(t){i[t.id]=t.angle,e.rotateObject(t,0)})),t.renderAll(),t.getObjects().forEach((function(t){e.recordCanvasData(t,e.sheet.data),e.setDataAngle(t,i[t.id],e.sheet.data),e.rotateObject(t,i[t.id])})),t.renderAll()}},{key:"setDataAngle",value:function(t,e,i){var n=this.findObjByData(t.id,i);n&&(n.angle=e)}},{key:"clipPath",value:function(t){this.fabric.clipPath=new Jr.fabric.Rect(t)}},{key:"eventsOn",value:function(t,e){for(var i in e)t.on(i,e[i])}},{key:"eventsOff",value:function(t,e){for(var i in e)t.off(i,e[i])}},{key:"saveCanvasData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.fabric,i=this.sheet;if(e){var n=e.toDatalessJSON(["id","tick","imgType","zorder"]);n.objects.forEach((function(t){t.left+=i.data.scroll.x,t.top+=i.data.scroll.y})),t.canvasData=JSON.stringify(n)}}},{key:"loadFromCanvasData",value:function(t,e){var i=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.fabric;t?n.loadFromJSON(t,(function(){i.setOrder(n),n.renderAll()}),e):n.clear()}},{key:"findObjByData",value:function(t,e){var i=this.findImage(t,e);return null!=i?i:this.findShape(t,e)}},{key:"setZoom",value:function(t){var e=this.sheet.data;this.tOffset=this.sheet.getTableOffset(),this.sheet.verticalScrollbar.move({top:0}),this.sheet.horizontalScrollbar.move({left:0}),e.canvasFreeze?this.inFreeze.setZoom(t):(this.fabric.clipPath=new Jr.fabric.Rect({width:this.fabric.width/e.zoomlevel,height:this.fabric.height/e.zoomlevel,left:this.tOffset.left/e.zoomlevel,top:this.tOffset.top/e.zoomlevel}),this.fabric.setZoom(t),this.fabric.renderAll())}},{key:"picId",value:function(t,e){return"p_".concat(t,"_").concat(e)}},{key:"shapeId",value:function(t,e){return"s_".concat(t,"_").concat(e)}},{key:"findImage",value:function(t,e){var i,n=this;return null===(i=e.images)||void 0===i?void 0:i.find((function(e){return t===n.picId(e.id,e.tick)}))}},{key:"findShape",value:function(t,e){var i,n=this;return null===(i=e.shapes)||void 0===i?void 0:i.find((function(e){return t===n.shapeId(e.id,e.tick)}))}},{key:"resize",value:function(t){var e=this.sheet,i=this.fabric,n=this.tOffset;i&&(i.setWidth(t.target.outerWidth+n.left),i.setHeight(t.target.outerHeight+n.top),i.clipPath=new Jr.fabric.Rect({width:i.getWidth(),height:i.getHeight(),top:this.tOffset.top/e.data.zoomlevel,left:this.tOffset.left/e.data.zoomlevel}),i.renderAll(),e.data.canvasFreeze&&this.inFreeze.resize())}},{key:"setSelectionLayout",value:function(t){t.set({borderColor:"gray",cornerColor:"gray",cornerSize:12,transparentCorners:!0})}},{key:"setImage",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"content/img/updating.gif",n=t.canvas,r=this;Jr.fabric.Image.fromURL(i,(function(i){var o;if(e.id.includes("loading"))return i.set(e),n.fabric.add(i),n.fabric.renderAll(),void(null===(o=r.inFreeze)||void 0===o||o.loadFreezeImage());try{var a,s=n.findObjByData(e.id,t.data);if(!s)return;var l=n.findObjInCanvas(n.fabric,e.id);l&&n.fabric.remove(l),e.width?(e.fromOutside&&(delete e.width,delete e.height),i.set(e)):(i.scaleToWidth(e.scaleToWidth),i.scaleToHeight(e.scaleToHeight),i.set(e),s.fromOutside=!0,s.scaleX=i.scaleX,s.scaleY=i.scaleY),"Chart"===e.imgType&&i.setControlsVisibility({mtr:!1}),n.setSelectionLayout(i),n.eventsOn(i,n.imgEvents),n.eventsOn(n,r.canvasEvents),n.fabric.add(i),n.rotateObject(i,e.rotate),n.fabric.renderAll(),n.saveCanvasData(t.data),null===(a=r.inFreeze)||void 0===a||a.loadFreezeImage()}catch(t){console.error(t),lt(t)}finally{n.removeLoading(t)}}))}},{key:"setLoading",value:function(t,e){var i=this.tOffset,n=t.data,r=n.displayRight2Left,o=n.cols,a=r?t.data.viewWidth()-o.indexWidth:0,s=r?a-e.left:e.left;e.top+=i.top,e.left=s+i.left,e.id="loading"+(new Date).getTime(),e.selectable=!1,this.setImage(t,e),this.loadingStack||(this.loadingStack=[]),this.loadingStack.push(e.id)}},{key:"removeLoading",value:function(t){var e=t.canvas;if(this.loadingStack){var i=this.loadingStack.shift();e.fabric.remove(e.fabric.getObjects()[e.fabric.getObjects().findIndex((function(t){return t.id===i}))]),e.saveCanvasData(t.data,e.fabric),e.inFreeze&&(e.inFreeze.removeImage(i),e.inFreeze.saveCanvasData(),e.inFreeze.renderAll(),e.fabric.renderAll())}}},{key:"rotateObject",value:function(t,e){t&&(t._setOriginToCenter(),t.set("angle",e).setCoords(),t._resetOrigin())}},{key:"doInsertURLImage",value:function(t,e){this.doInsertImage(t,e,!0)}},{key:"doInsertImage",value:function(t,e){var i,n,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=e.data.getSelectedRect(),a=this.tOffset,s=e.data,l=s.displayRight2Left,c=s.cols,h=l?e.data.viewWidth()-c.indexWidth:0,u=l?h-o.left/e.table.zoomlevel-t.width:o.left/e.table.zoomlevel,f=t.url,d={angle:0,col:this.data.selector.ci,height:t.height,id:t.id,left:o.left/e.table.zoomlevel,originAngle:0,originHeight:t.height,originLeft:o.left,originTop:o.top,originWidth:t.width,row:this.data.selector.ri,scaleX:1,scaleY:1,src:f,strid:t.strid,tick:t.tick,top:o.top/e.table.zoomlevel,type:t.type,width:t.width,zorder:null!==(i=e.data.topOrder)&&void 0!==i?i:0};this.findObjByData(d.id,e.data)||(e.data.images||(e.data.images=[]),e.data.images.push(d)),r?this.setImage(e,{id:this.picId(d.id,d.tick),tick:d.tick,scaleToWidth:t.width,scaleToHeight:t.height,top:d.top+a.top/e.table.zoomlevel,left:u+a.left/e.table.zoomlevel,originAngle:0,rotate:0,fromOutside:!0,imgType:d.type,"z-index":this.basicZorder+d.zorder,zorder:d.zorder},d.src):this.setImage(e,{id:this.picId(d.id,d.tick),tick:d.tick,scaleToWidth:d.width,scaleToHeight:d.height,top:d.top+a.top/e.table.zoomlevel,left:u+a.left/e.table.zoomlevel,originAngle:0,rotate:0,fromOutside:!0,imgType:d.type,"z-index":this.basicZorder+d.zorder,zorder:d.zorder},d.src),this.fabric.renderAll(),this.saveCanvasData(e.data),null===(n=this.inFreeze)||void 0===n||n.loadFreezeImage()}},{key:"isImageOnSelected",value:function(){return!!this.fabric.getActiveObject()}},{key:"setHyperlink",value:function(t){var e=this.getActiveObjInData(this.data);e&&(e.hyperlink=t)}},{key:"getActiveObjInData",value:function(t){var e=this.fabric.getActiveObject();if(e)return this.findObjByData(e.id,t)}},{key:"link",value:function(t){var e,i=this.getActiveObjInData(t);i&&this.sheet.modalLink.setValue(xs.datas.map((function(t){return t.name})),null!==(e=i.hyperlink)&&void 0!==e?e:{})}},{key:"removeLink",value:function(t){var e=this.getActiveObjInData(t);e&&(e.hyperlink=null)}},{key:"openLink",value:function(t){var e=this.getActiveObjInData(t);e&&(this.fabric._discardActiveObject(),this.fabric.renderAll(),this.sheet.hyperlink.access(e.hyperlink))}},{key:"sendImageToFont",value:function(t,e){t&&e&&t.bringToFront(e)}},{key:"doOperation",value:function(t){Object.keys(this.imageOperationList).includes(t)&&!window.mobileAndTabletCheck()&&this.imageOperationList[t].execute(this.sheet)}},{key:"removeImageInData",value:function(t,e){if(!e.includes("_")&&e.split("_").length-1!=2)throw new Error("not correct id");var i=e.split("_"),n=r()(i,3),o=n[0],a=n[1],s=n[2],l="s"===o?t.shapes:t.images;null==l||l.splice(l.findIndex((function(t){return t.id===a&&t.tick===s})),1)}},{key:"checkHyperlink",value:function(t){var e=t.getActiveObject();if(e)return!!this.findObjByData(e.id,this.data).hyperlink}},{key:"validType",value:function(t,e,i){var n=t.getActiveObject();if(n)return this.findObjByData(n.id,this.data)[e]===i}},{key:"setOrder",value:function(t){null==t||t.getObjects().sort((function(t,e){return t.zorder<e.zorder?-1:1})).forEach((function(e){t.bringToFront(e)}))}}]),i}(u);function uo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var fo=function(t){tt()(i,t);var e=uo(i);function i(){var t;l()(this,i);var n=new Fr(new Rr("100%",W("contextmenu.insertURL")),{required:!0},"",100);return(t=e.call(this,">",[f("div","".concat(ot,"-form-fields")).children(n.el),f("div","".concat(ot,"-buttons")).children(new Te("ok","primary").on("click",(function(){return t.btnClick("ok")})))])).url=n,t.values=[],t.change=function(){},t}return a()(i,[{key:"btnClick",value:function(t){"ok"===t?this.url.validate()&&this.checkIsImage(this.url.val(),this.validateImage,5e3):this.hide()}},{key:"validateImage",value:function(t,e){"success"===e?(this.change("ok",t),this.hide()):this.url.validateFail(W("validation.downloadImageFail"))}},{key:"show",value:function(){Ri()(rt()(i.prototype),"show",this).call(this),this.url.input.focus()}},{key:"hide",value:function(){this.url.val(""),this.url.validateClear(),Ri()(rt()(i.prototype),"hide",this).call(this)}},{key:"checkIsImage",value:function(t,e,i){var n,r=!1,o=this,a=new Image;a.onerror=a.onabort=function(){r||(clearTimeout(n),e.call(o,t,"error"))},a.onload=function(){r||(clearTimeout(n),e.call(o,t,"success"))},a.src=t,n=setTimeout((function(){r=!0,a.src="//!!!!/test.jpg",e.call(o,t,"timeout")}),i)}}]),i}(Er);function vo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}function go(t){t.dd&&(t.dd.title.removeClass("arrow-left"),2===t.dd.headerEl.children().length&&t.dd.headerEl.removeChild(t.dd.headerEl.children()[1]))}function po(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=" "+W("menubar.".concat(t.tag.replace(/-[a-z]/g,(function(t){return t[1].toUpperCase()}))));t.dd?t.dd.headerEl.child(i,e):t.el.child(i)}function mo(t){var e=f("div","".concat(ot,"-item")).child(t.el);return t.dd&&(t.dd.contentEl.addClass("".concat(ot,"-menubar-dropdown-content")),e=f("div","".concat(ot,"-menubar-btn")).child(t.dd.el)),e}function yo(t,e){t.el.addEventListener("click",(function(i){e.dd?e.dd.menuDiv=t:(e.click?e.click():e.change(e.tag),i.stopPropagation())}),!0),t.el.addEventListener("mouseenter",(function(t){t.stopPropagation()}),!0)}var bo=function(t){tt()(i,t);var e=vo(i);function i(t,n){var r;l()(this,i);for(var o,a=[],s=["format","font-name","font-size"],c=0;c<n.length;c++){(o=n[c]).tip="",o.el.attr("style","margin:0"),o.el.attr("class",""),go(n[c]);var h=s.includes(n[c].tag);po(n[c],h);var u=mo(n[c]);yo(u,n[c]),a.push(u)}return(r=e.call.apply(e,[this,t,"max-content",!1,"bottom-left"].concat(a))).headerEl.on("mouseenter",(function(t){if(!window.mobileAndTabletCheck()){var e=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});t.target.dispatchEvent(e)}})),r}return i}(Fi);function wo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var xo=function(t){tt()(i,t);var e=wo(i);function i(t,n){return l()(this,i),e.call(this,t,null,"",n)}return a()(i,[{key:"dropdown",value:function(){return new bo(this.tag,this.value)}}]),i}(Pi);function Co(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var ko=function(t){tt()(i,t);var e=Co(i);function i(t){var n;l()(this,i);var r="download";return null!=t&&t&&(r+="_".concat(t)),n=e.call(this,r),"GOOGLE"===t||"DROPBOX"===t?n.setIcon("savetocloud"):n.setIcon("download"),n}return i}(yn);function _o(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var So=function(t){tt()(i,t);var e=_o(i);function i(){return l()(this,i),e.call(this,"link")}return i}(yn);function To(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Oo=function(t){tt()(i,t);var e=To(i);function i(){return l()(this,i),e.call(this,"insertColumn")}return i}(yn);function Eo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Ro=function(t){tt()(i,t);var e=Eo(i);function i(){return l()(this,i),e.call(this,"insertRow")}return i}(yn);function Ao(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Io=function(t){tt()(i,t);var e=Ao(i);function i(){return l()(this,i),e.call(this,"insertSheet")}return i}(yn);var Po=function(){function t(e,i,n,r,o){var a=this;l()(this,t),this.data=e;var s=e.defaultStyle();this.change=function(){},this.widthFn=i,this.isHide=n,this.dropdowns=[];var c=W("menubar.menuEdit"),h=W("menubar.menuComment"),u=W("menubar.menuInsert"),d=W("menubar.menuText"),v=W("menubar.menuFile");this.items={},this.items[v]=[new tr,new ko("Original"),new ko("XLSX"),new ko("PDF"),new ko("HTML")],"ru"!==o&&"zh"!==o&&(this.items[v].push(new ko("GOOGLE")),this.items[v].push(new ko("DROPBOX"))),this.items[c]=[this.borderEl=new pn,this.mergeEl=new $n,this.freezeEl=new Zn,this.autofilterEl=new Ui,this.sortEl=new sr,this.searchEl=new cr,this.paintformatEl=new Cn,this.clearformatEl=new wn,this.fillColorEl=new Tn(s.bgcolor)],this.items[u]=[this.insertColumn=new Oo,this.insertRow=new Ro,this.insertSheet=new Io,this.insertImageEL=new xr,this.formulaEl=new qn,this.insertLink=new So,this.insetCommentEl=new ur],this.insetCommentEl.tag="insertComment",this.items[d]=[this.fontEl=new zn,this.fontSizeEl=new An,this.boldEl=new Vi,this.italicEl=new qi,this.underlineEl=new $i,this.strikeEl=new Zi,this.alignEl=new zi(s.align),this.valignEl=new Hi(s.valign),this.textwrapEl=new ir,this.textColorEl=new _n(s.color)],this.items[h]=[this.commentEditEl=new ur,this.commentRemoveEl=new dr,this.commentPreviousEl=new gr,this.commentNextEl=new mr];for(var g=0;g<this.insertImageEL.dd.contentEl.children().length;g++)this.insertImageEL.dd.contentEl.children()[g].style="width:max-content";this.el=f("div","".concat(ot,"-toolbar ").concat(ot,"-menubar")),n?this.el.hide():(this.el.css("text-transform","capitalize"),Object.keys(this.items).forEach((function(t){var e=new xo(t,a.items[t]);a.dropdowns.push(e),a.el.child(e.el),a.items[t].map((function(t){t.change=function(){a.change.apply(a,arguments)}}))})))}return a()(t,[{key:"hideDropdown",value:function(){this.dropdowns.forEach((function(t){return t.dd.hide()}))}}]),t}(),Do=function(){function t(){l()(this,t),xt()(this,"setActiveSheetBySheetName",(function(){})),xt()(this,"setActiveCell",(function(){})),xt()(this,"linkPositions",[])}return a()(t,[{key:"checkAndAccess",value:function(t,e,i){var n=this.find(t,e,i);return n?this.access(n):null}},{key:"loadLinkPosition",value:function(t){var e=this,i=t.data;this.linkPositions=[];t.getTableOffset();i.hyperlinks.forEach((function(t){var n={},r=C.valueOf(t.area),o=i.scroll.ci,a=i.scroll.ri;o=o>0&&r.sci<o?0:o,a=a>0&&r.sri<a?0:a,n.x=[i.cols.sumWidth(o,r.sci+1)-i.cols.getWidth(r.sci),i.cols.sumWidth(o,r.eci+1)],n.y=[i.rows.sumHeight(a,r.sri+1)-i.rows.getHeight(r.eri),i.rows.sumHeight(a,r.eri+1)],i.canvasFreeze&&(i.scroll.ri>0||i.scroll.ci>0)||e.linkPositions.push(n)}))}},{key:"find",value:function(t,e,i){var n=t.hyperlinks;if(0!==n.length)return n.find((function(t){return t.area?C.valueOf(t.area).includes(e,i):null}))}},{key:"findByArea",value:function(t,e){var i=t.hyperlinks;if(0!==i.length)return i.find((function(t){return t.area?C.valueOf(t.area).contains(C.valueOf(e)):null}))}},{key:"check",value:function(t,e,i){return!!this.find(t,e,i)}},{key:"remove",value:function(t,e){var i=e.hyperlinks.findIndex((function(e){return e.area===t.area}));e.hyperlinks.splice(i,1)}},{key:"removeByRange",value:function(t,e){var i=this.findByRange(t,e.data);this.remove(i,e.data),this.setHyperlinkStyleByArea(i.area,e,!1)}},{key:"findByRange",value:function(t,e){var i=this.getSelectArea(t);return this.findByArea(e,i)}},{key:"getSelectArea",value:function(t){var e=b(t.sci,t.sri),i=b(t.eci,t.eri);return"".concat(e,":").concat(i)}},{key:"setHyperlinkStyleByArea",value:function(t,e,i){for(var n=C.valueOf(t),r=n.sri;r<=n.eri;r++)for(var o=n.sci;o<=n.eci;o++)e.data.setHyperlinkStyle(r,o,i);e.table.render()}},{key:"accessByRange",value:function(t,e){var i=this.getSelectArea(t),n=this.findByArea(e,i);this.access(n)}},{key:"access",value:function(t){if("number"==typeof t.type&&t.address){switch(t.type){case 0:case 2:window.open(t.address,"_blank");break;case 1:break;case 3:if(!t.address.includes("!"))break;var e=t.address.split("!"),i=r()(e,2),n=i[0],o=i[1];this.setActiveSheetBySheetName(n);var a=y(o),s=r()(a,2),l=s[0],c=s[1],h=this;setTimeout((function(){h.setActiveCell(c,l)}),1e3)}return null}}}]),t}();function Fo(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=function(t,e){if(!t)return;if("string"==typeof t)return Mo(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return Mo(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function Mo(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var jo=function(){function t(e){l()(this,t),this.sheet=e}return a()(t,[{key:"setCustomHighlightImgFunc",value:function(t){this.highlightImgFunc=t}},{key:"showHighlights",value:function(t){var e=this.sheet.data;e.showhighlight=!0,e.highlightstyle=t,this.AutoShowOrHide()}},{key:"AutoShowOrHide",value:function(){var t=this.sheet,e=t.data,i=t.canvas;if(e.highlightall){var n=i.fabric;this.highlightAllImg(e.showhighlight,n)}else this.showHighlightImageShapesAuto(e.showhighlight)}},{key:"hideHighlights",value:function(){var t=this.sheet,e=t.data,i=t.table;e.showhighlight=!1,this.AutoShowOrHide(),i.render()}},{key:"getHighlightTexts",value:function(){return this.sheet.data.highlighttxts}},{key:"addHighlightText",value:function(t,e,i,n){var r=this.sheet.data,o={row:t,col:e,start:i,end:n},a=r.highlighttxts.find((function(i){if(i.row===t&&i.col===e)return i}));a?(a.start=i,a.end=n):r.highlighttxts.push(o)}},{key:"removeHighlightText",value:function(t,e){for(var i=this.sheet.data,n=0;n<i.highlighttxts.length;n++)i.highlighttxts[n].row===t&&i.highlighttxts[n].col===e&&i.highlighttxts.splice(n,1)}},{key:"getHighlightRanges",value:function(){return this.sheet.data.highlightrg}},{key:"addHighlightRange",value:function(t,e,i,n){for(var r=this.sheet.data,o=new C(t,e,i,n),a=0;a<r.highlightrg.length;a++)if(r.highlightrg[a].contains(o))return;r.highlightrg.push(o)}},{key:"removeHighlightRange",value:function(t,e,i,n){for(var r=this.sheet.data,o=new C(t,e,i,n),a=0;a<r.highlightrg.length;a++)r.highlightrg[a].equals(o)&&r.highlightrg.splice(a,1)}},{key:"setHighlightInverseRange",value:function(t,e,i,n){this.sheet.data.highlightIR=new C(t,e,i,n)}},{key:"getHighlightInverseRange",value:function(){return this.sheet.data.highlightIR}},{key:"removeHighlightInverseRange",value:function(){delete this.sheet.data.highlightIR}},{key:"getCanvasImgByid",value:function(t,e){return t.getObjects().find((function(t){return t.id===e}))}},{key:"highlightAllImg",value:function(t,e){var i,n=Fo(e.getObjects());try{for(n.s();!(i=n.n()).done;){var r=i.value;this.highlightImgFunc?this.highlightImgFunc(t,r):(r.filters[0]=!!t&&new fabric.Image.filters.Invert,r.applyFilters())}}catch(t){n.e(t)}finally{n.f()}e.renderAll()}},{key:"showHighlightImageShapesAuto",value:function(t){var e,i=this,n=this.sheet,r=n.data,o=n.canvas.fabric,a=Fo(r.highlighshapes);try{var s=function(){var n=e.value,a=r.shapes.find((function(t){return t.id===n}));a&&i.highlightImg(t,o,"s_"+a.id+"_"+a.tick)};for(a.s();!(e=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}var l,c=Fo(r.highlighimgs);try{var h=function(){var e=l.value,n=r.images.find((function(t){return t.id===e}));n&&i.highlightImg(t,o,"p_"+n.id+"_"+n.tick)};for(c.s();!(l=c.n()).done;)h()}catch(t){c.e(t)}finally{c.f()}o.renderAll()}},{key:"highlightImg",value:function(t,e,i){var n=this.getCanvasImgByid(e,i);n&&(this.highlightImgFunc?this.highlightImgFunc(t,n):(n.filters[0]=!!t&&new fabric.Image.filters.Invert,n.applyFilters()))}},{key:"getHighlightShaps",value:function(){return this.sheet.data.highlighshapes}},{key:"addHighlightShape",value:function(t){var e=this.sheet,i=e.data,n=e.canvas;if(-1===i.highlighshapes.indexOf(t)){var r=i.shapes.find((function(e){return e.id===t}));if(r){var o=n.fabric;i.highlighshapes.push(t),i.showhighlight&&(this.highlightImg(!0,o,"s_"+r.id+"_"+r.tick),o.renderAll())}}}},{key:"removeHighlightShape",value:function(t){var e=this.sheet,i=e.data,n=e.canvas.fabric,r=i.highlighshapes.indexOf(t);if(r>-1){i.highlighshapes.splice(r,1);var o=i.shapes.find((function(e){return e.id===t}));o&&(this.highlightImg(!1,n,"s_"+o.id+"_"+o.tick),n.renderAll())}}},{key:"getHighlightImages",value:function(){return this.sheet.data.highlighimgs}},{key:"addHighlightImage",value:function(t){var e=this.sheet,i=e.data,n=e.canvas;if(-1===i.highlighimgs.indexOf(t)){var r=i.images.find((function(e){return e.id===t}));if(r){var o=n.fabric;i.highlighimgs.push(t),i.showhighlight&&(this.highlightImg(!0,o,"p_"+r.id+"_"+r.tick),o.renderAll())}}}},{key:"removeHighlightImage",value:function(t){var e=this.sheet,i=e.data,n=e.canvas.fabric,r=i.highlighimgs.indexOf(t);if(r>-1){i.highlighimgs.splice(r,1);var o=i.images.find((function(e){return e.id===t}));o&&(this.highlightImg(!1,n,"p_"+o.id+"_"+o.tick),n.renderAll())}}},{key:"setHighlightAll",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.sheet,n=i.data,r=i.canvas,o=i.table;if(n.showhighlight){var a=r.fabric;n.highlightall=t,this.highlightAllImg(t,a),t||this.showHighlightImageShapesAuto(!0)}e&&o.render()}}]),t}();function Lo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var zo=function(t){tt()(i,t);var e=Lo(i);function i(){var t;l()(this,i);var n=new Fr(new Rr("400px",""),{required:!0},"".concat(W("download.fileName"),":"),100),r=new Fr(new Pr("Original",["Original","XLSX","PDF","HTML"],"100%",(function(t){return W("download.saveTypes.".concat(t))}),(function(e){var i=t.fileNameField.val();t.fileNameField.val(t.setSuffix(i,e)),t.fileNameField.validate()})),{required:!0},"".concat(W("download.saveType"),":"),100);return t=e.call(this,W("contextmenu.download"),[f("div","".concat(ot,"-form-fields")).children(n.el),f("div","".concat(ot,"-form-fields")).children(r.el),f("div","".concat(ot,"-buttons")).children(new Te("ok","primary").on("click",(function(){return t.btnClick("ok")})),new Te("cancel").on("click",(function(){return t.btnClick("cancel")})))]),xt()(Un()(t),"defaultSuffix","xlsx"),t.fileNameField=n,t.saveTypeField=r,t.ci=null,t.values=[],t.change=function(){},t}return a()(i,[{key:"setSuffix",value:function(t,e){var i;return"Original"===e&&(e=this.originalType),t=(t=""===(null!==(i=t)&&void 0!==i?i:"")?this.originalFileName:t).includes(".")?t:t+"."+this.defaultSuffix,"".concat(t.substr(0,t.lastIndexOf(".")),".").concat(e.toLowerCase())}},{key:"btnClick",value:function(t){if("ok"===t){if(!this.fileNameField.validate())return;var e=this.saveTypeField.val(),i=this.fileNameField.val();i=this.setSuffix(i,e),this.change("ok",i,e)}this.hide()}},{key:"setValue",value:function(t){this.originalFileName=""===(null!=t?t:"")?"worksheet.xlsx":t,this.originalType=t.split(".").length>=2?t.substr(t.lastIndexOf(".")+1):this.defaultSuffix,this.fileNameField.val(this.originalFileName),this.show()}}]),i}(Er);function Bo(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var Ho=function(t){tt()(i,t);var e=Bo(i);function i(){var t;l()(this,i);var n=new Fr(new Rr("100%",""),{required:!0},"".concat(W("link.emailAddress"),":"),100),r=new Fr(new Rr("100%",""),{required:!0},"".concat(W("link.emailSubject"),":"),100),o=f("div","".concat(ot,"-form-fields")).children(f("div","".concat(ot,"-form-fields")).children(n.el),f("div","".concat(ot,"-form-fields")).children(r.el));o.hide();var a=new Fr(new Rr("100%",""),{required:!0},"".concat(W("link.sheetCell"),":"),100),s=new Fr(new Pr("",[""],"max-content",(function(t){return t}),(function(t){})),{required:!0},"".concat(W("link.sheetPage"),":"),100);s.input.el.css("width","max-content");var c=f("div","".concat(ot,"-form-fields")).children(f("div","".concat(ot,"-form-fields")).children(a.el),f("div","".concat(ot,"-form-fields")).children(s.el));c.hide();var h=new Fr(new Rr("100%",""),{required:!0},"".concat(W("link.webUrl"),":"),100),u=f("div","".concat(ot,"-form-fields")).children(h.el);u.hide();var d=new Fr(new Pr("web",["web","sheet","email"],"max-content",(function(t){return W("link.linkTypes.".concat(t))}),(function(e){switch(u.hide(),c.hide(),o.hide(),e){case"web":u.show(),t.active="web";break;case"sheet":c.show(),t.active="sheet";break;case"email":o.show(),t.active="email"}})),{required:!0},"".concat(W("link.linkType"),":"),100);return t=e.call(this,W("contextmenu.link"),[f("div","".concat(ot,"-form-fields")).children(d.el),f("div","".concat(ot,"-form-fields")).children(o.el,u.el,c.el),f("br"),f("br"),f("div","".concat(ot,"-buttons")).children(new Te("ok","primary").on("click",(function(){return t.btnClick("ok")})),new Te("cancel").on("click",(function(){return t.btnClick("cancel")})))]),xt()(Un()(t),"active",void 0),t.ci=null,t.values=[],t.sheetPageField=s,t.sheetField=c,t.webField=u,t.emailField=o,t.sheetCellField=a,t.webUrlField=h,t.emailAddressField=n,t.emailSubjectField=r,t.linkTypeField=d,t.change=function(){},t.el.on("click",(function(t){t.preventDefault()})),t}return a()(i,[{key:"btnClick",value:function(t){var e=this.link,i=this.type;if("ok"===t){switch(this.active){case"web":if(!this.webUrlField.validate())return;if(!this.isValidHttpUrl(this.webUrlField.val()))return void this.webUrlField.validateFail("Missing address network protocols such as http:// or https://");e.type=0,e.address=this.webUrlField.val();break;case"sheet":if(!this.sheetCellField.validate())return;e.type=3,e.address="".concat(this.sheetPageField.val(),"!").concat(this.sheetCellField.val());break;case"email":e.type=2,e.address="mailto:".concat(this.emailAddressField.val(),"?subject=").concat(this.emailSubjectField.val())}this.change("ok",e,i)}this.hide()}},{key:"clear",value:function(){this.sheetField.hide(),this.sheetPageField.val(this.sheets[0]),this.sheetCellField.val("A1"),this.webField.hide(),this.webUrlField.val(""),this.webUrlField.validateClear(),this.emailField.hide(),this.emailSubjectField.val(""),this.emailAddressField.val("")}},{key:"isValidHttpUrl",value:function(t){var e;try{e=new URL(t)}catch(t){return!1}return"http:"===e.protocol||"https:"===e.protocol}},{key:"setValue",value:function(t,e,i){var n;if(this.type=i,this.sheets=t,this.link=e,this.clear(),this.sheetPageField.input.suggest.setItems(t.map((function(t){return{key:t,title:t}}))),""!==(null!==(n=null==e?void 0:e.type)&&void 0!==n?n:""))switch(e.type){case 1:case 0:this.webUrlField.input.val(e.address),this.linkTypeField.val("web"),this.webField.show(),this.active="web";break;case 2:var r=/mailto:([^\?]*)\?subject\=(.*)/.exec(e.address);this.emailSubjectField.val(r[2]),this.emailAddressField.val(r[1]),this.linkTypeField.val("email"),this.emailField.show(),this.active="email";break;case 3:var o=e.address.split("!");if(2!==o.length)break;this.sheetPageField.val(o[0]),this.sheetCellField.val(o[1]),this.linkTypeField.val("sheet"),this.sheetField.show(),this.active="sheet"}else this.linkTypeField.val("web"),this.webField.show(),this.active="web";this.show()}}]),i}(Er),No=function(){function t(e,i,n,r){l()(this,t),this.el=f("div","".concat(ot,"-banner-icon"))}return a()(t,[{key:"setHomeIcon",value:function(t,e){this.el.css({"background-image":"url(".concat(t,")"),"background-size":"contain","background-position":"center"});var i=f("a");i.attr("href",e),i.css({display:"block",height:"100%",width:"100%","text-decoration":"none"}),this.el.child(i)}}]),t}(),Wo=function(){function t(e){var i=this;l()(this,t),this.el=f("div","".concat(ot,"-banner-filename")),this.filename=f("div","".concat(ot,"-banner-filename-name")),this.filename.on("blur",(function(t){t.target.innerHTML=t.target.innerHTML.replace(/<[^>]+>/gi,"");var n=t.target.innerText;n=n.replace(/\r?\n|\r/g,""),e.filename=n+i.suffixStr,setTimeout((function(){e.selector.el.show()}),100)})),this.filename.on("focus",(function(t){window.mobileEditOnCell=!1,e.editor.el.hide()})),this.filename.on("keyup",(function(t){13===t.keyCode&&i.filename.el.blur()})),this.filename.attr("contenteditable",!0),this.filename.attr("spellcheck",!1),this.suffix=f("div"),this.el.children(this.filename,this.suffix)}return a()(t,[{key:"setValue",value:function(t){if(t.includes(".")){var e=t.substring(0,t.lastIndexOf(".")),i=this.suffixStr=t.substring(t.lastIndexOf("."));this.filename.html(e),this.suffix.html(i)}}}]),t}(),Xo=function(){function t(e,i,n,r,o,a){var s=this;l()(this,t),this.data=e;e.defaultStyle();this.change=function(){},this.widthFn=i,this.isHide=n,this.icon=new No,this.filenamebar=new Wo(o),this.menubar=new Po(e,i,n,r,a),this.el=f("div");var c=f("div","".concat(ot,"-banner"));n&&!r?(this.el.hide(),this.notShow=!0):(c.children(this.icon.el,f("div","".concat(ot,"-banner-info")).children(this.filenamebar.el,this.menubar.el)),this.el.child(c)),this.menubar.change=function(){s.change.apply(s,arguments)}}return a()(t,[{key:"show",value:function(){this.notShow||this.el.show()}},{key:"hide",value:function(){this.el.hide()}},{key:"hideDropdown",value:function(){this.menubar.hideDropdown()}},{key:"setFileName",value:function(t){this.filenamebar.setValue(t)}}]),t}();function Uo(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function Yo(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?Uo(Object(i),!0).forEach((function(e){xt()(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):Uo(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function Vo(t,e){var i,n=this;return function(){for(var r=n,o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];var l=a;i||(i=setTimeout((function(){i=null,t.apply(r,l)}),e))}}function Go(){var t=this.data,e=this.verticalScrollbar,i=this.horizontalScrollbar,n=t.getSelectedRect(),r=n.l,o=n.t,a=n.left,s=n.top,l=n.width,c=n.height,h=this.getTableOffset();if(Math.abs(a)+l>h.width)i.move({left:r+l-h.width});else{var u=t.freezeTotalWidth();a<u&&i.move({left:r-1-u})}if(Math.abs(s)+c>h.height)e.move({top:o+c-h.height-1});else{var f=t.freezeTotalHeight();s<f&&e.move({top:o-1-f})}}function qo(){var t=this.data,e=this.verticalScrollbar,i=this.horizontalScrollbar,n=t.getSelectedRectBySearch(),r=n.l,o=n.t;i.move({left:r-1}),e.move({top:o-1})}function Ko(t,e,i){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(-1!==e||-1!==i){var o=this.table,a=this.selector,s=this.toolbar,l=this.formulaBar,c=this.data,h=this.contextMenu;if(h.setMode(-1===e||-1===i?"row-col":"range"),c.canSelected(e,i)){var u=c.getCell(e,i);t?(a.setEnd(e,i,r),this.trigger("cells-selected",u,a.range)):(a.set(e,i,n),this.trigger("cell-selected",u,e,i)),this.focusing=!0,a.setObjId(null),s.reset(),l.reset(),o.render()}}}function Zo(t,e){var i=this.selector,n=this.data,o=n.rows,a=n.cols,s=r()(i.indexes,2),l=s[0],c=s[1],h=i.range,u=h.eri,f=h.eci;if(t){var d=r()(i.moveIndexes,2);l=d[0],c=d[1]}"left"===e?c>0&&(c-=1):"right"===e?(f!==c&&(c=f),c<a.len-1&&(c+=1)):"up"===e?l>0&&(l-=1):"down"===e?(u!==l&&(l=u),l<o.len-1&&(l+=1)):"row-first"===e?c=0:"row-last"===e?c=a.len-1:"col-first"===e?l=0:"col-last"===e&&(l=o.len-1),t&&(i.moveIndexes=[l,c]),Ko.call(this,t,l,c),Go.call(this)}function Jo(t){if(0===t.buttons&&t.target.className!=="".concat(ot,"-resizer-hover")){var e=t.offsetX,i=t.offsetY,n=this.rowResizer,r=this.colResizer,o=this.tableEl,a=this.data,s=a.rows,l=a.cols,c=a.displayRight2Left,h=a.settings.row.height;if(e>l.indexWidth&&i>h)return n.hide(),void r.hide();var u=o.box(),f=a.getCellRectByXY(t.offsetX/a.zoomlevel,t.offsetY/a.zoomlevel);f.ri>=0&&-1===f.ci?(f.width=l.indexWidth*a.zoomlevel,n.show(f,{width:u.width}),s.isHide(f.ri-1)?n.showUnhide(f.ri):n.hideUnhide()):n.hide(),-1===f.ri&&f.ci>=0?(f.height=h*a.zoomlevel,f.top=0,r.show(f,{height:u.height},c),l.isHide(f.ci-1)?r.showUnhide(f.ci):r.hideUnhide()):r.hide()}}function $o(t){var e=this.verticalScrollbar,i=this.horizontalScrollbar,n=this.data,r=e.scroll().top,o=i.scroll().left,a=n.rows,s=n.cols,l=t.deltaY,c=t.deltaX,h=function(t,e){var i=t,n=0;do{n=e(i),i+=1}while(n<=0);return n},u=function(t){if(t>0){var i=n.scroll.ri+1;if(i<a.len){var o=h(i,(function(t){return a.getHeight(t)}));e.move({top:r+o-1})}}else{var s=n.scroll.ri-1;if(s>=0){var l=h(s,(function(t){return a.getHeight(t)}));e.move({top:0===s?0:r-l})}}},f=Math.abs(l),d=Math.abs(c),v=Math.max(f,d);/Firefox/i.test(window.navigator.userAgent)&&Vo(u(t.detail),50),v===d&&Vo(function(t){if(t>0){var e=n.scroll.ci+1;if(e<s.len){var r=h(e,(function(t){return s.getWidth(t)}));i.move({left:o+r-1})}}else{var a=n.scroll.ci-1;if(a>=0){var l=h(a,(function(t){return s.getWidth(t)}));i.move({left:0===a?0:o-l})}}}(c),50),v===f&&Vo(u(l),50)}function Qo(){var t=this.data,e=this.verticalScrollbar,i=(1!==t.zoomlevel?this.originTableOffset:this.getTableOffset()).height,n=t.exceptRowTotalHeight(0,-1);e.set(i,(t.rows.totalHeight()-n)*t.zoomlevel)}function ta(){var t=this.data,e=this.horizontalScrollbar,i=(1!==t.zoomlevel?this.originTableOffset:this.getTableOffset()).width;t&&e.set(i,t.cols.totalWidth()*t.zoomlevel),t.displayRight2Left?e.el.attr("dir","rtl"):e.el.removeAttr("dir")}function ea(){var t=this.selector,e=this.data,i=this.editor,n=this.canvas,o=r()(e.freeze,2),a=o[0],s=o[1];if(a>0||s>0){var l=e.freezeTotalWidth(),c=e.freezeTotalHeight();i.setFreezeLengths(l,c)}else i.setFreezeLengths(0,0);n.resetFreeze(e),t.resetAreaOffset()}function ia(){var t=this.tableEl,e=this.overlayerEl,i=this.overlayerCEl,n=this.table,r=this.toolbar,o=this.formulaBar,a=this.selector,s=this.hyperlink,l=this.el;this.originTableOffset||(this.originTableOffset=this.getTableOffset()),1!==this.data.zoomlevel&&(a.br.useHideInput=!1);var c=this.getTableOffset(),h=this.getRect();t.attr(h),e.offset(h);var u=this.data.zoomlevel;i.offset(Yo(Yo({},c),{},{width:c.width/u,height:c.height/u})),l.css("width","".concat(h.width,"px")),Qo.call(this),ta.call(this),ea.call(this),n.render(),r.reset(),o.reset(),a.reset(),s.loadLinkPosition(this),1!==this.data.zoomlevel&&(a.br.useHideInput=!0)}function na(){var t=this.data,e=this.selector;t.clearClipboard(),e.hideClipboard()}function ra(){var t=this.data,e=this.selector,i=this.canvas;t.copy(),e.showClipboard(),i.clipboard=null}function oa(){var t=this.data,e=this.selector;t.cut(),e.showClipboard()}function aa(t,e){var i=this.data;if("read"!==i.settings.mode&&!i.getLocked())if(i.paste(t,(function(t){return lt("Tip",t)})))ia.call(this);else if(e&&null==i.clipboard.range){var n=e.clipboardData.getData("text/plain");n.length>0&&(this.data.pasteFromText(n),ia.call(this))}}function sa(){this.data.hideRowsOrCols(),ia.call(this)}function la(t,e){this.data.unhideRowsOrCols(t,e),ia.call(this)}function ca(){this.data.autofilter(),ia.call(this)}function ha(){var t=document.createElement("div");t.id="aspose_mask_bg",t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.width="100%",t.style.height="100%",t.style.backgroundColor="#777",t.style.opacity=.6,t.style.zIndex=10001,document.body.appendChild(t);var e=document.createElement("div");e.style.position="absolute",e.style.top="33%",e.style.left="40%",e.style.backgroundColor="white",e.style.border="#336699 1px solid",e.style.textAlign="center",e.style.fontSize="medium",e.style.padding="1.5em 4em 1.5em 4em",e.innerText="updating , please wait...",t.appendChild(e)}function ua(){var t=document.getElementById("aspose_mask_bg");null!=t&&t.parentNode.removeChild(t)}function fa(t,e){return da.apply(this,arguments)}function da(){return(da=bt()(kt.a.mark((function t(e,i){var n,r,o,a,s,l;return kt.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=this.data,r={sheetname:n.name,actrow:n.selector.ri,actcol:n.selector.ci,datas:xs.getUpdateDatas()},o={p:JSON.stringify(r),uid:uniqueid,file:e,outputType:i},a=this.fileDownloadUrl,s=new FormData,Object.keys(o).forEach((function(t){return s.set(t,o[t])})),ha(),t.next=9,fetch(a,{method:"POST",body:s});case 9:if((l=t.sent).ok){t.next=15;break}ua(),alert("Download failed, please try again"),t.next=22;break;case 15:return t.t0=Aa,t.next=18,l.json();case 18:t.t1=t.sent,t.t2=e,(0,t.t0)(t.t1,t.t2),ua();case 22:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function va(){var t=this.toolbar;t.paintformatActive()&&(aa.call(this,"format"),na.call(this),t.paintformatToggle())}function ga(){var t=this.editor,e=this.contextMenu,i=this.commentTip,n=this.commentEditable;t.clear(),e.hide(),i.hide(),n.saveAndHide(this)}function pa(t){var e=this,i=this.selector,n=this.data,o=this.table,a=this.sortFilter,s=this.hyperlink,l=t.offsetX,c=t.offsetY,h=t.target.className==="".concat(ot,"-selector-corner"),u=o.zoomlevel,f=n.getCellRectByXY(l/u,c/u),d=f.left,v=f.top,g=f.width,p=f.height,m=n.viewHeight(),y=n.viewWidth(),b=f.ri,w=f.ci;if(!(b<-1||w<-1)){var x=n.autoFilter,C=n.TableAutoFilters;if(x.includes(b,w)&&d+g-20*u<l&&v+p-20*u<c){var k=x.items(w,(function(t,e){return n.rows.getCell(t,e)}));return a.set(w,k,x.getFilter(w),x.getSort(w)),a.setOffsetAdjustView({left:d,top:v+p+2},y,m),void(n.currentAutoFilter=x)}for(var _=0,S=C.length;_<S;_++){var T=C[_];if(T.includes(b,w)&&d+g-20*u<l&&v+p-20*u<c){var O=T.items(w,(function(t,e){return n.rows.getCell(t,e)}));return a.set(w,O,T.getFilter(w),T.getSort(w)),a.setOffsetAdjustView({left:d,top:v+p+2},y,m),void(n.currentAutoFilter=T)}}if(!t.shiftKey){if(h){if(window.mobileAndTabletCheck())return;i.showAutofill(b,w)}else if(Ko.call(this,!1,b,w),!t.ctrlKey&&2!==t.button){var E,R=null!==(E=s.checkAndAccess(n,b,w))&&void 0!==E?E:[w,b],A=r()(R,2);w=A[0],b=A[1]}window.mobileAndTabletCheck()||At(window,(function(t){var r=n.getCellRectByXY(t.offsetX/u,t.offsetY/u);if(b=r.ri,w=r.ci,h){if(window.mobileAndTabletCheck())return;i.showAutofill(b,w)}else 1!==t.buttons||t.shiftKey||Ko.call(e,!0,b,w,!0,!0)}),(function(){n.getLocked()||(h&&i.arange&&"read"!==n.settings.mode&&n.autofill(i.arange,"all",(function(t){return lt("Tip",t)}))&&o.render(),i.hideAutofill(),va.call(e))}))}h||1!==t.buttons||t.shiftKey&&Ko.call(this,!0,b,w)}}function ma(){var t=this.editor,e=this.data.getSelectedRect(),i=this.getTableOffset(),n="top";e.top>i.height/2&&(n="bottom"),t.setOffset(e,n)}function ya(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=this.table,i=this.editor,n=this.data;"read"!==n.settings.mode&&(n.getLocked()||(ma.call(this),e.clearSelectRender(),i.setCell(n.getSelectedCell(),n.getSelectedValidator(),t),na.call(this)))}function ba(){var t=this.formulaBar,e=this.data;t.resetData(e)}function wa(t){var e=this,i=this.data,n=this.table,r=this.selector,o=this.hyperlink;i.scrolly(t,(function(){1!==e.data.zoomlevel&&(r.br.useHideInput=!1),r.resetBRLAreaOffset(),ma.call(e),n.render(),o.loadLinkPosition(e),i.scrollImagesShapes(),1!==e.data.zoomlevel&&(r.br.useHideInput=!0)}))}function xa(t){var e=this,i=this.data,n=this.table,r=this.selector,o=this.hyperlink;i.scrollx(t,(function(){1!==e.data.zoomlevel&&(r.br.useHideInput=!1),r.resetBRTAreaOffset(),ma.call(e),n.render(),o.loadLinkPosition(e),i.scrollImagesShapes(),1!==e.data.zoomlevel&&(r.br.useHideInput=!0)}))}function Ca(t,e){var i=t.ri,n=this.table,r=this.selector,o=this.data,a=this.hyperlink,s=o.rows.getHeight(i);o.rows.setHeight(i,e),o.updateRowsHeight.add(i),o.updateConditionImagePositionForRow(i,e-s,e),n.render(),1!==this.data.zoomlevel&&(r.br.useHideInput=!1),r.resetAreaOffset(),a.loadLinkPosition(this),Qo.call(this),ma.call(this),1!==this.data.zoomlevel&&(r.br.useHideInput=!0)}function ka(t,e){var i=t.ci,n=this.table,r=this.selector,o=this.data,a=this.hyperlink,s=o.cols.getWidth(i);o.cols.setWidth(i,e),o.updateCols.add(i),o.updateConditionImagePositionForCol(i,e-s,e),n.render(),1!==this.data.zoomlevel&&(r.br.useHideInput=!1),r.resetAreaOffset(),a.loadLinkPosition(this),ta.call(this),ma.call(this),1!==this.data.zoomlevel&&(r.br.useHideInput=!0)}function _a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"finished",i=this.data,n=this.table;if("read"!==i.settings.mode&&!i.getLocked()){i.setSelectedCellText(t,e);var r=i.selector,o=r.ri,a=r.ci;if("finished"===e){if("server"===i.settings.updateMode)return;n.render()}else this.trigger("cell-edited",t,o,a)}}function Sa(t){var e=this.data;"insert-row"===t?e.insert("row"):"delete-row"===t?e.delete("row"):"insert-column"===t?e.insert("column"):"delete-column"===t?e.delete("column"):"delete-cell"===t?e.deleteCell():"delete-cell-format"===t?e.deleteCell("format"):"delete-cell-text"===t?e.deleteCell("text"):"cell-printable"===t?e.setSelectedCellAttr("printable",!0):"cell-non-printable"===t?e.setSelectedCellAttr("printable",!1):"cell-editable"===t?e.setSelectedCellAttr("editable",!0):"cell-non-editable"===t&&e.setSelectedCellAttr("editable",!1),na.call(this),ia.call(this)}function Ta(t){for(var e=t,i=0,n=0;null!==e;)i+=e.offsetTop,n+=e.offsetLeft,e=e.offsetParent;return{top:i,left:n}}function Oa(t,e,i){var n=this.data,r=this.modalSort,o=this.modalDownload,a=this.modalLink,s=this.modalSearch,l=this.commentEditable,c=this.modalInsertURLImage,h=(this.overlayerCEl,this.canvas,this.filename),u=this.toolbar;function f(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Device",i=this.filename;"Original"!==t&&(i="".concat(i.substr(0,i.lastIndexOf(".")),".").concat(t.toLowerCase())),"function"!=typeof this.fileDownloadCallFunc?fa.call(this,i,t):this.fileDownloadCallFunc(i,t,e)}if(window.mobileAndTabletCheck()&&u.moreEl.el.hasClass("active")&&u.moreEl.dd.hide(),"undo"===t)this.undo();else if("redo"===t)this.redo();else if("print"===t)this.print.preview(),this.print.toPrint();else if("paintformat"===t)!0===e?ra.call(this):na.call(this);else if("clearformat"===t)Sa.call(this,"delete-cell-format");else if("chart"===t);else if("autofilter"===t)ca.call(this);else if("freeze"===t)if(e){var d=n.selector,v=d.ri,g=d.ci;this.freeze(v,g)}else this.freeze(0,0);else if("sort"===t)r.setValue(n.getSelectedSort());else if("download"===t)o.setValue(h);else if("download_HTML"===t)f.call(this,"HTML");else if("download_Original"===t)f.call(this,"Original");else if("download_XLSX"===t)f.call(this,"XLSX");else if("download_PDF"===t)f.call(this,"PDF");else if("download_GOOGLE"===t)f.call(this,"Original","GoogleDrive");else if("download_DROPBOX"===t)f.call(this,"Original","Dropbox");else if("search"===t)s.show();else if("menu-display-hide"===t)"up"===this.toolbar.menuDisplay.state?(this.toolbar.menuDisplay.setDown(),this.menubar.hide()):(this.toolbar.menuDisplay.setUp(),this.menubar.show());else if("insertComment"===t&&"commentEdit"===e||"insertComment"===t||"commentEdit"===t){var p=n.selector,m=p.ri,y=p.ci,b="";if(void 0!==n.comments)for(var w=0;w<n.comments.length;w++){var x=n.comments[w];x.row===m&&x.col===y&&(b=x.note)}var C=n.cellRectWithOutTransfer(m,y);l.col=y,l.row=m,l.setPosition(b,C,n.displayRight2Left),this.commentTip.onEdit=!0,"comments"===n.search.lookin&&(n.search.result=null)}else if("insertComment"===t&&"commentRemove"===e||"commentRemove"===t){var k=n.selector,_=k.ri,S=k.ci;if(void 0!==n.comments)for(var T=0;T<n.comments.length;T++)n.comments[T].col===S&&n.comments[T].row===_&&n.comments.splice(T,1);"comments"===n.search.lookin&&(n.search.result=null),this.table.render()}else if("insertComment"===t&&"commentPrevious"===e||"commentPrevious"===t)Ea(this,n,"previous");else if("insertComment"===t&&"commentNext"===e||"commentNext"===t)Ea(this,n,"next");else if("insert-image"===t)"url"===e&&c.show();else if("zoom-size"===t)this.setzoom(e.number);else if("insertSheet"===t)this.addSheet();else if("insertRow"===t)Sa.call(this,"insert-row");else if("insertColumn"===t)Sa.call(this,"insert-column");else if("link"===t){if(this.canvas.isImageOnSelected())return void this.canvas.link(this.data);var O=this.selector.range,E=this.hyperlink.getSelectArea(O),R=this.hyperlink.findByArea(this.data,E),A="edit";if(!R){(R={}).area=E;var I=this.data.getCell(O.sri,O.sci);R.text=I?I.text:"",A="add"}a.setValue(xs.datas.map((function(t){return t.name})),R,A)}else n.setSelectedCellAttr(t,e),"formula"!==t||n.selector.multiple()||ya.call(this),ia.call(this);i&&i()}function Ea(t,e,i){var n=t.selector,r=t.commentEditable,o=e.selector,a=o.ri,s=o.ci,l=a,c=s,h="";if(void 0!==e.comments){e.comments.sort((function(t,e){return t.row>e.row||t.row===e.row&&t.col>e.col?1:-1}));for(var u=0;u<e.comments.length;u++){var f=e.comments[u];if("previous"===i)(f.row<a||f.row===a&&f.col<s)&&(l=f.row,c=f.col,h=f.note);else if("next"===i&&(f.row>a||f.row===a&&f.col>s)){l=f.row,c=f.col,h=f.note;break}}}if(n.set(l,c),""!==h){var d=e.cellRectWithOutTransfer(l,c);r.col=c,r.row=l,r.onEdit=!1,r.setPosition(h,d)}}function Ra(t,e,i,n){this.data.setAutoFilter(t,e,i,n),ia.call(this),this.data.updateConditionImageVisible()}function Aa(t,e){var i=new XMLHttpRequest;i.open("get",t,!0),i.responseType="blob",i.onload=function(){if(200===this.status){var t=this.response;Ia.call(this,t,e)}else alert("Download failed, please try again")},i.send()}function Ia(t,e){var i=document.createElement("a"),n=t;"string"==typeof t?i.target="_blank":n=window.URL.createObjectURL(t),i.href=n,i.download=e,document.body.appendChild(i),i.click(),document.body.removeChild(i),"string"!=typeof t&&window.URL.revokeObjectURL(n)}function Pa(t){var e=Ta(t.target);return[t.changedTouches[0].pageX-e.left,t.changedTouches[0].pageY-e.top]}function Da(){var t=this,e=this.selector,i=this.overlayerEl,n=this.rowResizer,o=this.colResizer,a=this.verticalScrollbar,s=this.horizontalScrollbar,l=this.editor,c=this.contextMenu,h=this.commentTip,u=this.commentEditable,d=this.toolbar,v=this.menubar,g=this.formulaBar,p=this.modalValidation,m=this.modalSort,y=this.modalDownload,b=this.modalLink,w=(this.hyperlink,this.modalInsertURLImage),x=this.modalSearch,k=this.sortFilter,_=this.canvas,S=this.el;function T(t,e){ga.call(t),pa.call(t,e)}if(window.mobileAndTabletCheck()||i.on("mousemove",(function(e){Jo.call(t,e)})).on("mousedown",(function(e){ga.call(t),2===e.buttons?(t.data.xyInSelectedRect(e.offsetX,e.offsetY)||pa.call(t,e),c.setPosition(e.offsetX,e.offsetY),e.stopPropagation()):2===e.detail?ya.call(t):pa.call(t,e)})).on("mousewheel.stop",(function(e){$o.call(t,e)})).on("mouseout",(function(t){var e=t.offsetX;t.offsetY<=0&&o.hide(),e<=0&&n.hide()})),u.el.on("input",(function(e){if(1===t.commentEditable.el.el.childNodes.length&&"#text"===t.commentEditable.el.el.childNodes[0].nodeName){var i=f("font");i.attr("style","FONT-FAMILY: 宋体;FONT-SIZE: 9pt;COLOR: #000000;TEXT-ALIGN: left;"),i.child(document.createTextNode(t.commentEditable.el.el.textContent)),t.commentEditable.el.el.replaceChild(i.el,t.commentEditable.el.el.firstChild),e.target.focus();var n=window.getSelection();n.selectAllChildren(e.target),n.collapseToEnd()}})),e.inputChange=function(e){_a.call(t,e,"input"),ya.call(t),ba.call(t)},g.inputChange=function(e){_a.call(t,e,"input"),ya.call(t,!1)},g.enter=function(e,i){if(e.altKey){l.insertTextNewLine(e);var n=i?e.target.innerHTML:e.target.innerText;_a.call(t,n,"input"),ya.call(t,!1)}else l.clear(),Zo.call(t,!1,e.shiftKey?"up":"down"),t.focusing=!0;e.preventDefault()},g.tab=function(e){l.clear(),Zo.call(t,!1,e.shiftKey?"left":"right"),t.focusing=!0,e.preventDefault()},g.focuson=function(){t.focusing=!1},Tt(S.el,"mousemove",(function(e){h.hide();var i=e.offsetX,n=e.offsetY,r=t.data,o=t.table,a=t.hyperlink,s=t.canvas,l=r.comments,c=o.zoomlevel,u=r.getCellRectByXY(i/c,n/c);if(0!==r.hyperlinks.length){var f=a.getSelectArea({sci:u.ci,eci:u.ci,sri:u.ri,eri:u.ri});a.findByArea(r,f)?s.setCursor("pointer"):s.setCursor("")}u.ri>=0&&u.ci>=0&&l.forEach((function(t){u.ri===t.row&&u.ci===t.col&&h.setPosition(t.note,u,r.displayRight2Left)}))})),window.mobileAndTabletCheck()){var O,E=this,R=!1,A=!1,I=function(){return R&&A},P=this.getTableOffset(),D="",F=[0,0],M=[0,0],j=[0,0],L=[0,0],z=!1;E.table.zoomlevel;new AlloyFinger(this.el.el,{tap:function(t){},touchStart:function(t){if(!(t.target.parentElement&&"true"===t.target.parentElement.contentEditable||"true"===t.target.contentEditable)){!function(t,e){t.target.className.includes("item")||e.contextMenu.hide()}(t,E);var e=function(t,e){var i,n=t.target.className.includes("".concat(ot,"-selector-corner")),r=t.target.className.includes("tl")?"tl":"br",o=[],a=[],s=!1;return n&&(i=Ta(t.target.offsetParent.offsetParent),o[0]=t.changedTouches[0].pageX,o[1]=t.changedTouches[0].pageY,a[0]=e.data.scroll.x,a[1]=e.data.scroll.y,s=!0),[r,i,o,a,s]}(t,E),i=r()(e,5);D=i[0],O=i[1],F=i[2],j=i[3],(R=i[4])&&(z=!1,console.info("#####touchStart ..that.data.scroll.y...... "+E.data.scroll.y+",startscroll[0]:"+j[0]),j[0]=E.data.scroll.x,j[1]=E.data.scroll.y,E.selector.setMobilestartOffsetAndRange())}},touchEnd:function(t){if(!(t.target.parentElement&&"true"===t.target.parentElement.contentEditable||"true"===t.target.contentEditable)&&I()){var i=M[0]-F[0]+E.data.scroll.x-j[0],n=M[1]-F[1]+E.data.scroll.y-j[1];e.setMobileMultipleSelect(i,n),function(t,e,i,n){if(e&&i){var r=t.br.areaEl.el.getBoundingClientRect(),o=r.right>window.screen.width?window.screen.width:r.right,a=r.top-i.top+n.top;a=a>window.screen.height?window.screen.height:a,c.setPosition(o,a)}}(e,!0,O,P);var o=(Pt(),[!1,!1,!1]),a=r()(o,3);R=a[0],A=a[1],z=a[2],E.table.render()}},doubleTap:function(t){if(!(t.target.parentElement&&"true"===t.target.parentElement.contentEditable||"true"===t.target.contentEditable)&&"CANVAS"===t.target.nodeName){var e=Pa(t),i=r()(e,2);t.offsetX=i[0],t.offsetY=i[1],window.mobileEditOnCell=!0,T(E,t),ya.call(E)}},longTap:function(t){if(!(t.target.parentElement&&"true"===t.target.parentElement.contentEditable||"true"===t.target.contentEditable)){var e=Pa(t),i=r()(e,2),n=i[0],o=i[1];c.setPosition(n,o)}},singleTap:function(t){if(!(t.target.parentElement&&"true"===t.target.parentElement.contentEditable||"true"===t.target.contentEditable||"CANVAS"!==t.target.nodeName||function(t){return t.target.className.includes("item")}(t))){var i=Pa(t),n=r()(i,2);t.offsetX=n[0],t.offsetY=n[1],window.mobileEditOnCell=!0,T(E,t),e.br.useHideInput=!1,window.keyboardShow?(e.br.useHideInput=!0,ya.call(E)):function(t,e){var i=Pa(t),n=r()(i,2),o=n[0],a=n[1];if(t.target.className.includes("".concat(ot,"-selector-corner"))){var s=Ta(t.target);o=s.left,a=s.top}var l=o<=e.left&&a>=e.top,h=o>=e.left&&a<=e.top;if(l||h){var u=l?e.left:o,f=h?e.top:a;c.setPosition(u,f)}}(t,P)}},rotate:function(t){},pinch:function(t){if(!(t.target.parentElement&&"true"===t.target.parentElement.contentEditable||"true"===t.target.contentEditable)){E.editor.el.hide();var e=t.zoom;e>2&&(e=2),e<.5&&(e=.5),E.setzoom(e)}},pressMove:function(t){if(!(t.target.parentElement&&"true"===t.target.parentElement.contentEditable||"true"===t.target.contentEditable)){var e=E.selector;E.data;if(A=!0,I()){switch(function(t,e,i,n,r){t[0]=n.changedTouches[0].pageX,t[1]=n.changedTouches[0].pageY,e[0]=i.data.scroll.x,e[1]=i.data.scroll.y}(M,L,E,t),D){case"tl":break;case"br":var i=M[0]-F[0],n=M[1]-F[1];e.setEndMobile(i,n);var o=e.getMobileMultipleSelect(i,n),a=r()(o,2),s=a[0],l=a[1];s>=E.data.viewRange().eri-4&&!z&&(z=!0,e.setEnd(s,l),function(t,e){""!==t?Dt(e):Pt()}("down",E))}}else Math.abs(t.deltaX)>Math.abs(t.deltaY)?Math.abs(t.deltaX)>18&&(E.scrollH(t.deltaX),E.table.render()):Math.abs(t.deltaY)>18&&(E.scrollV(t.deltaY),E.table.render())}},swipe:function(t){}})}d.change=function(e,i){return Oa.call(t,e,i)},v.change=function(e,i){return Oa.call(t,e,i,(function(){return v.hideDropdown()}))},k.ok=function(e,i,n,r){return Ra.call(t,e,i,n,r)},n.finishedFn=function(e,i){Ca.call(t,e,i)},o.finishedFn=function(e,i){ka.call(t,e,i)},n.unhideFn=function(e){la.call(t,"row",e)},o.unhideFn=function(e){la.call(t,"col",e)},a.moveFn=function(e,i){wa.call(t,e,i)},s.moveFn=function(e,i){xa.call(t,e,i)},l.change=function(e,i){_a.call(t,i,e),ba.call(t)},p.change=function(e){if("save"===e){for(var i,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(i=t.data).addValidation.apply(i,r)}else t.data.removeValidation()},m.change=function(e,i,n,r){"ok"===e&&t.data.doSort(i,n,r)},y.change=function(e,i,n){"ok"===e&&fa.call(t,i,n)},b.change=function(e,i,n){"ok"===e&&(t.canvas.isImageOnSelected()?t.canvas.setHyperlink(i):"add"===n&&(t.data.hyperlinks=t.data.hyperlinks.filter((function(t){return!C.valueOf(i.area).contains(C.valueOf(t.area))})),t.data.hyperlinks.push(i),t.hyperlink.setHyperlinkStyleByArea(i.area,t,!0),t.hyperlink.loadLinkPosition(t)))},w.change=function(e,i){var n=t.canvas,r=t;if("ok"===e){var o=r.data.getSelectedRect();n.setLoading(r,{top:o.top,left:o.left});var a={ri:t.data.selector.ri,ci:t.data.selector.ci,name:t.data.name},s={p:JSON.stringify(a),uid:r.uniqueid,imageurl:i};$.ajax({url:r.imageUploadByUrlUrl,type:"post",data:s,success:function(t,e,i){(t=JSON.parse(t)).Error?lt("error",t.Error):n.doInsertURLImage(t,r)}})}},$("#upload-image").on("change",(function(e){var i=t.canvas,n=t,r=new FormData;r.append("uid",n.uniqueid);var o={ri:t.data.selector.ri,ci:t.data.selector.ci,name:t.data.name};r.append("p",JSON.stringify(o)),r.append("image",e.target.files[0]);var a=n.data.getSelectedRect();i.setLoading(n,{top:a.top,left:a.left}),$.ajax({url:n.imageUploadByLocalUrl,type:"post",processData:!1,contentType:!1,data:r,success:function(t,r,o){(t=JSON.parse(t)).Error?lt("error",t.Error):i.doInsertImage(t,n),e.target.value=null}})})),x.change=function(i,n,r,o,a){if("close"!==i){r||(n=n.toUpperCase());var s=t.data,l=s.search,c=s.rows,h=s.comments,f=l.keywords,d=[];if(null!=l.result&&f===n&&l.iscasesense===r&&l.lookin===o&&l.matchwhole===a)d=l.result;else{var v=c.len>0?c._:{},g=null;if("comments"===o){for(var p=document.createElement("c"),m=0,y=h.length;m<y;m++)if(p.innerHTML=h[m].note,g=r?p.innerText:p.innerText.toUpperCase(),!a&&-1!==g.indexOf(n)||a&&g===n){var b={ri:h[m].row,ci:h[m].col};b.cmt=h[m],d.push(b)}}else for(var w in v){var x=v[w].cells;for(var C in x)if("values"===o?g=r?x[C].text:x[C].text.toUpperCase():"formulas"===o&&(g=void 0!==x[C].f?r?x[C].f:x[C].f.toUpperCase():null),null!=g&&(a&&g===n||!a&&-1!==g.indexOf(n))){var k={ri:w,ci:C};d.push(k)}}l.keywords=n,l.lookin=o,l.matchwhole=a,l.iscasesense=r,l.result=d}if(0===d.length)return void alert("We couldn't find what you were looking for.");var _=-1,S=Number(e.indexes[0]),T=Number(e.indexes[1]),O=d.length-1;if(1===d.length)_=0;else if("next"===i){for(var E=0,R=d.length;E<R;E++){if(Number(d[E].ri)===S&&Number(d[E].ci)>T){_=E;break}if(Number(d[E].ri)>S){_=E;break}}-1===_&&(_=0)}else{for(var A=O;A>=0;A--){if(Number(d[A].ri)===S&&Number(d[A].ci)<T){_=A;break}if(Number(d[A].ri)<S){_=A;break}}-1===_&&(_=O)}l.current=_;var I=d[_];if(e.set(I.ri,I.ci),d[_].cmt){var P=I.cmt.note;if(""!==P){var D=s.cellRectWithOutTransfer(I.ri,I.ci);u.col=I.ci,u.row=I.ri,u.onEdit=!1,u.setPosition(P,D)}}qo.call(t)}},c.showMenuBefore=function(e){var i=r()(t.selector.indexes,2),n=i[0],o=i[1],a=!1;if(e.forEach((function(t){return t.show()})),t.canvas.isImageOnSelected()){if(t.canvas.checkHyperlink(t.canvas.fabric))return;t.canvas.validType(t.canvas.fabric,"type","Chart")&&(a=!0)}if(!t.hyperlink.check(t.data,n,o)){var s=null;if(e.forEach((function(t){a&&t.el.innerText===W("contextmenu.link")&&(s.hide(),t.hide()),t.el.innerText===W("contextmenu.openLink")&&t.hide(),t.el.innerText===W("contextmenu.removeLink")&&t.hide(),s=t})),window.mobileAndTabletCheck()){var l=["edit","cut","copy","paste","merge","unmerge","clear"].map((function(t){return W("contextmenu.".concat(t))}));e.forEach((function(e){l.includes(e.el.innerText)||e.hide(),e.el.className.includes("divider")&&e.hide(),t.data.merges.equals(t.selector.range)&&e.el.innerText===W("contextmenu.merge")&&e.hide(),t.data.merges.equals(t.selector.range)||e.el.innerText!==W("contextmenu.unmerge")||e.hide()}))}}},c.itemClick=function(e){if("validation"===e)p.setValue(t.data.getSelectedValidation());else if("sort"===e)m.setValue(t.data.getSelectedSort());else if("download"===e)y.setValue(t.filename);else if("link"===e){if(t.canvas.isImageOnSelected())return void t.canvas.link(t.data);var i=t.selector.range,n=t.hyperlink.getSelectArea(i),r=t.hyperlink.findByArea(t.data,n),o="edit";if(!r){(r={}).area=n;var a=t.data.getCell(i.sri,i.sci);r.text=a?a.text:"",o="add"}b.setValue(xs.datas.map((function(t){return t.name})),r,o)}else"removeLink"===e?t.canvas.isImageOnSelected()?t.canvas.removeLink(t.data):t.hyperlink.removeByRange(t.selector.range,t):"openLink"===e?t.canvas.isImageOnSelected()?t.canvas.openLink(t.data):t.hyperlink.accessByRange(t.selector.range,t.data):"copy"===e?(ra.call(t),t.canvas.doOperation("copy")):"cut"===e?(oa.call(t),t.canvas.doOperation("copy"),t.canvas.doOperation("delete")):"paste"===e?_.clipboard?t.canvas.doOperation("paste"):aa.call(t,"all"):"paste-value"===e?aa.call(t,"text"):"paste-format"===e?aa.call(t,"format"):"hide"===e?sa.call(t):"delete-image"===e?t.canvas.doOperation("delete"):"merge"===e?(t.data.setSelectedCellAttr(e,!0),t.table.render()):"unmerge"===e?(t.data.setSelectedCellAttr("merge",!1),t.table.render()):"edit"===e?ya.call(t):Sa.call(t,e)},Tt(window,"resize",(function(){window.mobileAndTabletCheck()||t.reload()})),Tt(window,"click",(function(t){})),Tt(window,"paste",(function(e){t.focusing&&"commentEdit"!==e.target.parentElement.id&&(e.target.parentElement.parentElement&&"commentEdit"===e.target.parentElement.parentElement.id||(aa.call(t,"all",e),e.preventDefault()))})),Tt(window,"keydown",(function(e){if(t.focusing&&"commentEdit"!==e.target.id){var i=e.keyCode||e.which,n=e.key,r=e.ctrlKey,o=e.shiftKey,a=e.metaKey;if(r||a)switch(i){case 90:t.undo(),e.preventDefault();break;case 89:t.redo(),e.preventDefault();break;case 67:ra.call(t),_.doOperation("copy"),e.preventDefault();break;case 88:oa.call(t),e.preventDefault();break;case 85:d.trigger("underline"),e.preventDefault();break;case 86:_.clipboard?_.doOperation("paste"):aa.call(t,"all"),e.preventDefault();break;case 37:Zo.call(t,o,"row-first"),e.preventDefault();break;case 38:Zo.call(t,o,"col-first"),e.preventDefault();break;case 39:Zo.call(t,o,"row-last"),e.preventDefault();break;case 40:Zo.call(t,o,"col-last"),e.preventDefault();break;case 32:Ko.call(t,!1,-1,t.data.selector.ci,!1),e.preventDefault();break;case 66:d.trigger("bold");break;case 73:d.trigger("italic")}else{switch(i){case 32:o&&Ko.call(t,!1,t.data.selector.ri,-1,!1);break;case 27:c.hide(),h.hide(),na.call(t);break;case 37:Zo.call(t,o,"left"),e.preventDefault();break;case 38:Zo.call(t,o,"up"),e.preventDefault();break;case 39:Zo.call(t,o,"right"),e.preventDefault();break;case 40:Zo.call(t,o,"down"),e.preventDefault();break;case 9:l.clear(),Zo.call(t,!1,o?"left":"right"),e.preventDefault();break;case 13:l.clear(),Zo.call(t,!1,o?"up":"down"),e.preventDefault();break;case 8:Sa.call(t,"delete-cell-text"),e.preventDefault()}"Delete"===n?(Sa.call(t,"delete-cell-text"),_.doOperation("delete"),e.preventDefault()):i>=65&&i<=90||i>=48&&i<=57||i>=96&&i<=105||"="===e.key?(_a.call(t,e.key,"input"),ya.call(t),ba.call(t)):113===i&&ya.call(t)}}}))}var Fa=function(){function t(e,i){var n=this;l()(this,t),this.eventMap=new Map;var r=i.settings,o=r.view,a=r.showToolbar,s=r.showContextmenu,c=r.mode,h=r.showPartToolbar,u=r.contextMenuItems,d=r.local;this.el=f("div","".concat(ot,"-sheet")),this.menubar=new Xo(i,o.width,!a,h,this,d),this.toolbar=new Or(i,o.width,!a,h),this.formulaBar=new qr(i,c),this.canvas=new ho,this.print=new Ci(i,this.canvas),this.hyperlink=new Do,e.children(this.menubar.el,this.toolbar.el,this.formulaBar.el,this.el,this.print.el),this.data=i,this.tableEl=f("canvas","".concat(ot,"-table"));var v=i.settings.row.height;this.rowResizer=new Mt(!1,v,this),this.colResizer=new Mt(!0,i.cols.minWidth,this),this.verticalScrollbar=new jt(!0),this.horizontalScrollbar=new jt(!1),this.editor=new _e(ue,(function(){return n.getTableOffset()}),v,this),this.modalValidation=new jr,this.modalSort=new Br,this.modalDownload=new zo,this.modalLink=new Ho,this.modalSearch=new Gr,this.modalInsertURLImage=new fo,this.contextMenu=new Oi((function(){return n.getRect()}),this,!s,u),this.commentTip=new Yr,this.commentEditable=new Zr,this.selector=new $t(i),this.highlight=new jo(this),this.overlayerCEl=f("div","".concat(ot,"-overlayer-content")).children(this.editor.el,this.selector.el),this.overlayerEl=f("div","".concat(ot,"-overlayer")).children(this.overlayerCEl,this.canvas),this.sortFilter=new Ur,this.el.children(this.tableEl,this.overlayerEl.el,this.rowResizer.el,this.colResizer.el,this.verticalScrollbar.el,this.horizontalScrollbar.el,this.contextMenu.el,this.commentTip.el,this.commentEditable.el,this.modalValidation.el,this.modalSort.el,this.modalDownload.el,this.modalLink.el,this.modalSearch.el,this.modalInsertURLImage.el,this.sortFilter.el),this.table=new gi(this.tableEl.el,i),Da.call(this),ia.call(this),Ko.call(this,!1,0,0),this.canvas.init(this),this.imageUploadByLocalUrl=null,this.imageUploadByUrlUrl=null,this.reloadUrl=null,this.fileDownloadUrl=null,this.uniqueid="",this.filename=""}return a()(t,[{key:"setReloadUrl",value:function(t){this.reloadUrl=t}},{key:"getReloadUrl",value:function(){return this.reloadUrl+"?filename="+this.filename+"&uid="+this.uniqueid}},{key:"on",value:function(t,e){return this.eventMap.set(t,e),this}},{key:"preMousedown",value:function(){ga.call(this)}},{key:"trigger",value:function(t){var e=this.eventMap;if(e.has(t)){for(var i,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(i=e.get(t)).call.apply(i,[this].concat(r))}}},{key:"resetData",value:function(t){this.editor.clear(),this.data=t,Qo.call(this),ta.call(this);var e=this.getTableOffset();this.overlayerCEl.offset(e),t.displayRight2Left?this.overlayerCEl.el.setAttribute("dir","rtl"):this.overlayerCEl.el.removeAttribute("dir"),this.data.topOrder=0,this.toolbar.resetData(t),this.formulaBar.resetData(t),this.print.resetData(t),this.selector.resetData(t),this.table.resetData(t),this.canvas.reset(t),this.data.updateConditionImageDirection(),this.data.reloadImagesShapes(),this.hyperlink.loadLinkPosition(this);var i=this.highlight;setTimeout((function(){i.AutoShowOrHide()}),2e3)}},{key:"loadData",value:function(t){return this.data.setData(t),ia.call(this),this}},{key:"scrollV",value:function(t){var e=this.verticalScrollbar.scroll().top;this.verticalScrollbar.move({top:e-t})}},{key:"scrollToRow",value:function(t){var e=this.verticalScrollbar.scroll().top,i=this.data.viewRange().sri,n=t>i?-this.data.rows.sumHeight(i,t):this.data.rows.sumHeight(t,i);this.verticalScrollbar.move({top:e-n})}},{key:"scrollH",value:function(t){var e=this.horizontalScrollbar.scroll().left;this.horizontalScrollbar.move({left:e-t})}},{key:"selectMoveDown",value:function(){Zo.call(this,!0,"down")}},{key:"freeze",value:function(t,e){var i=this.data;return this.canvas.doResetPosition(t,e),i.setFreeze(t,e),ia.call(this),this}},{key:"setActiveCell",value:function(t,e){return Ko.call(this,!1,t,e),this.focusing=!0,this}},{key:"undo",value:function(){this.data.undo(),ia.call(this)}},{key:"redo",value:function(){this.data.redo(),ia.call(this)}},{key:"reload",value:function(){return ia.call(this),this}},{key:"setzoom",value:function(t){var e=this.data,i=this.table,n=this.canvas,r=this.selector;i.zoomlevel=t,e.zoomlevel=t;this.getTableOffset();1!==this.data.zoomlevel&&(r.br.useHideInput=!1),this.data.zoomlevel<1&&!window.mobileAndTabletCheck()&&(this.overlayerCEl.el.style.width="".concat(this.overlayerCEl.el.clientWidth/t,"px"),this.overlayerCEl.el.style.height="".concat(this.overlayerCEl.el.clientHeight/t,"px")),n.setZoom(t),ia.call(this),1!==this.data.zoomlevel&&(r.br.useHideInput=!0),e.updateConditionImageZoom()}},{key:"showHighlights",value:function(t){this.highlight.showHighlights(t)}},{key:"hideHighlights",value:function(){this.highlight.hideHighlights()}},{key:"getHighlightTexts",value:function(){return this.highlight.getHighlightTexts()}},{key:"addHighlightText",value:function(t,e,i,n){this.highlight.addHighlightText(t,e,i,n)}},{key:"removeHighlightText",value:function(t,e){this.highlight.removeHighlightText(t,e)}},{key:"getHighlightRanges",value:function(){return this.highlight.getHighlightRanges()}},{key:"addHighlightRange",value:function(t,e,i,n){this.highlight.addHighlightRange(t,e,i,n)}},{key:"removeHighlightRange",value:function(t,e,i,n){this.highlight.removeHighlightRange(t,e,i,n)}},{key:"setHighlightInverseRange",value:function(t,e,i,n){this.highlight.setHighlightInverseRange(t,e,i,n)}},{key:"getHighlightInverseRange",value:function(){return this.highlight.getHighlightInverseRange()}},{key:"removeHighlightInverseRange",value:function(){this.highlight.removeHighlightInverseRange()}},{key:"getHighlightShaps",value:function(){return this.highlight.getHighlightShaps()}},{key:"addHighlightShape",value:function(t){this.highlight.addHighlightShape(t)}},{key:"removeHighlightShape",value:function(t){this.highlight.removeHighlightShape(t)}},{key:"getHighlightImages",value:function(){return this.highlight.getHighlightImages()}},{key:"addHighlightImage",value:function(t){this.highlight.addHighlightImage(t)}},{key:"removeHighlightImage",value:function(t){this.highlight.removeHighlightImage(t)}},{key:"setHighlightAll",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.highlight;i.setHighlightAll(t,e)}},{key:"setCustomHighlightImgFunc",value:function(t){this.highlight.setCustomHighlightImgFunc(t)}},{key:"getImageContextMenuItems",value:function(){return this.contextMenu.getImageContextMenuItems()}},{key:"addImageContextMenuItems",value:function(t){this.contextMenu.addImageContextMenuItems(t)}},{key:"delImageContextMenuItems",value:function(t){this.contextMenu.delImageContextMenuItems(t)}},{key:"getCustomContextMenuItems",value:function(){return this.contextMenu.getCutomContextMenuItems()}},{key:"addCustomContextMenuItems",value:function(t){this.contextMenu.addCutomContextMenuItems(t)}},{key:"insertCustomContextMenuItem",value:function(t,e){this.contextMenu.insertCutomContextMenuItem(t,e)}},{key:"updateCustomContextMenuItem",value:function(t,e){this.contextMenu.updateCutomContextMenuItem(t,e)}},{key:"delCustomContextMenuItems",value:function(t){this.contextMenu.delCutomContextMenuItems(t)}},{key:"getRect",value:function(){var t=this.data;return{width:t.viewWidth(),height:t.viewHeight()}}},{key:"getTableOffset",value:function(){var t=this.data,e=t.rows,i=t.cols,n=t.displayRight2Left,r=this.table.zoomlevel,o=this.data.settings.row.height,a=this.getRect(),s=a.width,l=a.height;return{width:(s-i.indexWidth)*r,height:(l-e.height)*r,left:n?0:i.indexWidth*r,top:o*r}}}]),t}();function Ma(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=rt()(t);if(e){var r=rt()(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return it()(this,i)}}var ja=function(t){tt()(i,t);var e=Ma(i);function i(t){var n;l()(this,i);var r=new st("ellipsis");return(n=e.call(this,r,"auto",!1,"top-left")).contentClick=t,n}return a()(i,[{key:"reset",value:function(t){var e=this,i=t.map((function(t,i){return f("div","".concat(ot,"-item")).css("width","150px").css("font-weight","normal").on("click",(function(){e.contentClick(i),e.hide()})).child(t)}));this.setContentChildren.apply(this,v()(i))}},{key:"setTitle",value:function(){}}]),i}(Fi),La=function(t){tt()(i,t);var e=Ma(i);function i(t){var n;l()(this,i);var r=new st("pagination");return(n=e.call(this,r,"100px",!1,"top-left")).contentEl.css("max-height","298px"),n.contentEl.css("overflow-y","auto"),n.contentClick=t,n}return a()(i,[{key:"reset",value:function(t){var e=this,i=t.map((function(t,i){return f("div","".concat(ot,"-item")).css("width","auto").css("font-weight","normal").on("click",(function(){e.contentClick(i),e.hide()})).child(t)}));this.setContentChildren.apply(this,v()(i))}}]),i}(Fi),za=[{key:"delete",title:X("contextmenu.deleteSheet")}];function Ba(t){var e=this;return f("div","".concat(ot,"-item")).child(t.title()).on("click",(function(){e.itemClick(t.key),e.hide()}))}function Ha(){var t=this;return za.map((function(e){return Ba.call(t,e)}))}var Na=function(){function t(){var e;l()(this,t),this.el=(e=f("div","".concat(ot,"-contextmenu")).css("width","160px")).children.apply(e,v()(Ha.call(this))).hide(),this.itemClick=function(){}}return a()(t,[{key:"hide",value:function(){var t=this.el;t.hide(),Et(t)}},{key:"setOffset",value:function(t){var e=this.el;e.offset(t),e.show(),Rt(e)}}]),t}(),Wa=function(){function t(){var e=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},s=arguments.length>5?arguments[5]:void 0;l()(this,t),this.settings=s,this.addFunc=i,this.swapFunc=n,this.updateFunc=o,this.scrollFunc=a,this.dataNames=[],this.activeEl=null,this.deleteEl=null,this.items=[],this.moreEl=new ja((function(t){e.clickSwap2(e.items[t])})),this.paginationEl=new La((function(t){e.scrollFunc(t)})),this.contextMenu=new Na,this.contextMenu.itemClick=r,this.el=f("div","".concat(ot,"-bottombar")).children(this.contextMenu.el,this.menuEl=this.setMenuEl())}return a()(t,[{key:"setMenuEl",value:function(){var t=this;return"edit"===this.settings.mode?f("ul","".concat(ot,"-menu")).child(f("li","").children(new st("add").on("click",(function(){t.dataNames.length<10?t.addFunc():lt("Warning","It is less than or equal to 10")})),f("span","").child(this.moreEl))):f("ul","".concat(ot,"-menu")).child(f("li","").children(f("span","").child(this.moreEl)))}},{key:"addItem",value:function(t,e,i,n){this.dataNames.push(t);var r=f("li",e?"active":"").child(t);void 0!==i&&(r.el.style.color=n,r.el.style.backgroundColor=i),this.setItemEvent(r),e&&this.clickSwap(r),this.items.push(r),this.menuEl.child(r),this.moreEl.reset(this.dataNames)}},{key:"addPagination",value:function(t){for(var e=[],i=1;i<=t;i++){var n=i+"";e.push(n)}this.paginationEl.reset(e)}},{key:"setItemEvent",value:function(t){var e=this;"edit"===this.settings.mode?t.on("click",(function(){e.clickSwap2(t)})).on("contextmenu",(function(i){var n=i.target,r=n.offsetLeft,o=n.offsetHeight;e.contextMenu.setOffset({left:r,bottom:o+1}),e.deleteEl=t})).on("dblclick",(function(){if(!(t.el.children.length>0)){var i=t.html(),n=new Rr("auto","",31);n.val(i),n.input.on("blur",(function(t){var r=t.target.value,o=e.dataNames.findIndex((function(t){return t===i}));e.renameItem(o,r,n)})),t.html("").child(n.el),n.focus()}})):t.on("click",(function(){e.clickSwap2(t)}))}},{key:"renameItem",value:function(t,e,i){if(this.dataNames[t]!==e&&0!==e.length)if(e.length>31)lt("Error","The max length of the sheet name is 31",(function(){i.focus()}));else if(this.dataNames.indexOf(e)>=0)lt("Error","Same worksheet name already exist",(function(){i.focus()}));else{for(var n=0;n<e.length;n++)switch(e[n]){case":":case"\\":case"/":case"?":case"*":case"[":case"]":return void lt("Error","Worksheet name could not contain any following characters : : \\ / ? * [ or ]",(function(){i.focus()}))}this.dataNames.splice(t,1,e),this.moreEl.reset(this.dataNames),this.items[t].html("").child(e),this.updateFunc(t,e)}else this.items[t].html("").child(e)}},{key:"clear",value:function(){var t=this;this.items.forEach((function(e){t.menuEl.removeChild(e.el)})),this.items=[],this.dataNames=[],this.moreEl.reset(this.dataNames)}},{key:"hide",value:function(){var t=this.el;t.hide(),Et(t)}},{key:"deleteItem",value:function(){var t=this.activeEl,e=this.deleteEl;if(this.items.length>1){var i=this.items.findIndex((function(t){return t===e}));if(this.items.splice(i,1),this.dataNames.splice(i,1),this.menuEl.removeChild(e.el),this.moreEl.reset(this.dataNames),t===e){var n=r()(this.items,1)[0];return this.activeEl=n,this.activeEl.toggle(),[i,0]}return[i,-1]}return[-1]}},{key:"clickSwap2",value:function(t){var e=this.items.findIndex((function(e){return e===t}));this.clickSwap(t),this.activeEl.toggle(),this.swapFunc(e)}},{key:"clickSwap",value:function(t){null!==this.activeEl&&this.activeEl.toggle(),this.activeEl=t}},{key:"setDirection",value:function(t){t?this.el.attr("dir","rtl"):this.el.removeAttr("dir")}}]),t}();i(35),i(36);function Xa(t){var e=[],i=0;this.run=function(t){var n=this;this.startHandler(t,(function(){i--,t.timestm,t.isfinish,e.length>0&&n.run(e.shift())}))},this.startHandler=function(n,r){var o=this;n.isfinish?e.length>0&&this.run(e.shift()):0!==i?setTimeout((function(){return o.startHandler(n,r)}),300):(i++,n.timestm,n.isfinish,t(n,r))},this.append=function(t){e.push(t),e.length,t.timestm,1===e.length&&this.run(t)},this.isFinish=function(){return 0===e.length&&0===i}}var Ua=function t(e,i,n,r){l()(this,t),this.item=e,this.url=i,this.callback=n,this.callbackerror=r,this.isfinish=!1,this.timestm="["+(new Date).getTime()+"] "};function Ya(t,e){var i=$.ajax({url:t.url,type:"post",dataType:"json",data:t.item});t.timestm,t.isfinish,i.done((function(i){t.timestm,t.callback&&(t.callback(i),t.isfinish=!0),e()})),i.fail((function(i,n,r){t.timestm,t.callbackerror&&(t.callbackerror(i,n,r),t.isfinish=!0),e()}))}function Va(t){t.scaleX=1,t.scaleY=1,t.originAngle=t.angle;var e=t.originAngle;e<0&&(e+=360),e>90&&e<180?e=180-e:e>=180&&e<270?e-=180:e>=270&&(e=360-e),e>=45&&(e=90-e);Math.sin(.017453293*e),Math.cos(.017453293*e);t.originWidth=t.width,t.originHeight=t.height,t.originLeft=t.left,t.originTop=t.top}var Ga=function(){function t(e){var i=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,t);var r=e;this.options=n,n.local&&Y(n.local),this.sheetIndex=0,this.datas=[],this.uniqueid="",this.filename="",this.imageDiv=null,this.imageUrl=null,this.basicZorder=0,this.istestforimage=!1,this.buffer=new Xa(Ya),"string"==typeof e&&(r=document.querySelector(e)),window.mobileAndTabletCheck=function(){var t,e=!1;return t=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0),e},window.mobileEditOnCell=!1,Ft((function(t){var e=i.sheet;e.data,e.selector,e.canvas,e.editor,e.verticalScrollbar;window.keyboardShow=!1,i.sheet.preMousedown(),i.reRender(),window.mobileEditOnCell=!1}),(function(t){window.keyboardShow=!0;var e=i.sheet,n=e.data;e.selector,e.editor,e.verticalScrollbar;window.mobileEditOnCell&&i.sheet.scrollToRow(n.selector.ri)})),this.bottombar=new Wa((function(){if(i.uniqueid.endsWith(".csv"))lt("Warning","CSV file does not support more than one worksheet");else if(i.uniqueid.endsWith(".tsv"))lt("Warning","TSV file does not support more than one worksheet");else{i.sheet.canvas.doNewSheetPage(i.sheet.data);var t=i.addSheet();t.showGrid=!0,i.sheet.resetData(t)}}),(function(t){var e=i.datas[t];e.scroll={ci:0,ri:0,riact:0,x:0,y:0,yact:0},i.sheet.canvas.doSwitchSheetPage(i.sheet.data),i.sheet.resetData(e),i.bottombar.setDirection(e.displayRight2Left),i.resetPagination(e),i.sheet.verticalScrollbar.move({top:0}),i.setZoomLevel(e.zoomlevel)}),(function(){i.deleteSheet()}),(function(t,e){i.renameSheet(t,e)}),(function(t){var e=t*i.data.settings.row.len,n=i.data.rows.sumHeight(0,e);i.sheet.verticalScrollbar.move({top:n-1})}),this.options),this.isloading=!0,this.data=this.addSheet(),this.isloading=!1,this.resetPagination(this.data);var o=f("div","".concat(ot)).on("contextmenu",(function(t){return t.preventDefault()}));r.appendChild(o.el),this.sheet=new Fa(o,this.data),this.sheet.hyperlink.setActiveSheetBySheetName=function(t){i.setActiveSheetByName(t)},this.sheet.hyperlink.setActiveCell=function(t,e){i.setActiveCell(t,e)},this.sheet.addSheet=this.bottombar.addFunc,o.child(this.bottombar.el)}return a()(t,[{key:"setUniqueId",value:function(t){this.uniqueid=t,this.sheet.uniqueid=t}},{key:"setFileDownloadInfo",value:function(t){this.sheet.fileDownloadUrl=t}},{key:"setFileName",value:function(t){this.filename=t,this.sheet.filename=t,this.sheet.menubar.setFileName(t)}},{key:"setZoomLevel",value:function(t){this.sheet.setzoom(t)}},{key:"setReloadUrl",value:function(t){this.sheet.setReloadUrl(t)}},{key:"setFileDownloadCallFunction",value:function(t){this.sheet.fileDownloadCallFunc=t}},{key:"setImageInfo",value:function(t,e,i,n,r,o){return this.imageDiv=t,this.imageUrl=e,this.sheet.imageUploadByLocalUrl=i,this.sheet.imageUploadByUrlUrl=n,this.sheet.imageCopyUrl=r,this.basicZorder=o,this}},{key:"setImageForTest",value:function(t,e,i){return this.imageDiv=t,this.imageUrl=e,this.basicZorder=i,this.istestforimage=!0,this}},{key:"setDisplayRight2Left",value:function(t){var e=this.sheet,i=this.bottombar,n=e.data;if(n.displayRight2Left!==t){n.displayRight2Left=t;var r=e.getTableOffset();e.overlayerCEl.offset(r),e.resetData(n),i.setDirection(t)}}},{key:"getUpdateDatas",value:function(){for(var t=[],e=0,i=this.datas.length;e<i;e++){var n=this.datas[e].getDataForSave();null!=n&&t.push(n)}return t}},{key:"addSheet",value:function(t){var e=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=t||"sheet".concat(this.sheetIndex),a=new mt(o,this.options);return a.rows.setCellText(0,0,""),a.change=function(){for(var t,i=arguments.length,n=new Array(i),r=0;r<i;r++)n[r]=arguments[r];(t=e.sheet).trigger.apply(t,["change"].concat(n))},a.updateCellsData=function(t){var i=e.sheet.data,n=i.updateCellError,r=i.updateMyCells,o=e.uniqueid,a=e.imageUrl;t.Error?(t.cell&&(r.call(e.sheet.data,[t.cell]),e.reRender()),t.cells&&(r.call(e.sheet.data,t.cells),e.reRender()),t.p&&(e.sheet.data.updateRevertOpr(t.p),e.reRender()),n(t.Error)):"update"===t.op?(t.data.forEach((function(t,i,n){for(var r=0,s=new Array;r<e.datas.length;r++)if(e.datas[r].name===t.name){e.datas[r].updateMyCells(t.cells),e.datas[r].updateShapes(t.shapes,s),e.datas[r].updateMyConditionImages(t.conditionimg);break}e.sheet.data.updateShapeSrcToRefresh(o,a,t.pickey,s)})),e.reRender()):"sort"===t.op&&t.rowids&&t.rowids.length>0&&(e.sheet.data.sortByRowIdArray(t.r,t.rowids),e.reRender())},a.updateServerError=function(){for(var t,i=arguments.length,n=new Array(i),r=0;r<i;r++)n[r]=arguments[r];(t=e.sheet).trigger.apply(t,["updateServerError"].concat(n))},a.updateCellError=function(){for(var t,i=arguments.length,n=new Array(i),r=0;r<i;r++)n[r]=arguments[r];(t=e.sheet).trigger.apply(t,["updateCellError"].concat(n))},a.updateCellServer=function(t){var i=e.sheet.data,n=i.settings,r=i.updateServerError,o=i.updateCellsData,a=e.uniqueid,s=e.buffer;if("server"===n.updateMode){var l={p:JSON.stringify(t),uid:a,folderName:n.folderName,fileName:n.fileName};s.append(new Ua(l,n.updateUrl,(function(t){o(t)}),(function(t,e,i){r(t,e,i)})))}},a.loadImages=function(){var t=e.sheet.data,i=t.images,n=t.displayRight2Left,r=t.cols,o=n?e.sheet.data.viewWidth()-r.indexWidth:0,a=(e.uniqueid,e.imageDiv,e.imageUrl,e.basicZorder),s=e.sheet;s.canvas.basicZorder=null!=a?a:s.canvas.basicZorder;var l=s.getTableOffset();null!=i&&i.forEach((function(t){if("del"!==t.op){var e,i,r=n?o-t.left-t.width:t.left;if(s.data.topOrder=s.data.topOrder<t.zorder?t.zorder:s.data.topOrder,t.src)s.canvas.setImage(s,{id:s.canvas.picId(t.id,t.tick),tick:t.tick,width:t.width,height:t.height,top:t.top+l.top/s.table.zoomlevel,left:r+l.left/s.table.zoomlevel,"z-index":a+t.zorder,originAngle:t.originAngle,rotate:t.angle,imgType:t.type,scaleX:t.scaleX,scaleY:t.scaleY,zorder:t.zorder,fromOutside:null!==(e=t.fromOutside)&&void 0!==e&&e},t.src);else s.canvas.setImage(s,{id:s.canvas.picId(t.id,t.tick),tick:t.tick,width:t.width,height:t.height,top:t.top+l.top/s.table.zoomlevel,left:r+l.left/s.table.zoomlevel,"z-index":a+t.zorder,originAngle:t.originAngle,rotate:t.angle,imgType:t.type,zorder:t.zorder,fromOutside:null!==(i=t.fromOutside)&&void 0!==i&&i})}}))},a.loadShapes=function(){var t=e.sheet.data,i=t.shapes,n=t.displayRight2Left,r=t.cols,o=n?e.sheet.data.viewWidth()-r.indexWidth:0,a=(e.uniqueid,e.imageDiv,e.imageUrl,e.basicZorder),s=e.sheet;s.canvas.basicZorder=null!=a?a:s.canvas.basicZorder;var l=s.getTableOffset();null!=i&&i.forEach((function(t){if("del"!==t.op){var e,i,r,c,h=n?o-t.left-t.width:t.left;if(s.data.topOrder=s.data.topOrder<t.zorder?t.zorder:s.data.topOrder,t.src)s.canvas.setImage(s,{id:s.canvas.shapeId(t.id,t.tick),tick:t.tick,width:t.width,height:t.height,top:t.top+l.top/s.table.zoomlevel,left:h+l.left/s.table.zoomlevel,"z-index":a+t.zorder,originAngle:t.originAngle,rotate:t.angle,imgType:t.type,zorder:t.zorder,scaleX:null!==(e=t.scaleX)&&void 0!==e?e:1,scaleY:null!==(i=t.scaleY)&&void 0!==i?i:1,fromOutside:null!==(r=t.fromOutside)&&void 0!==r&&r},t.src);else s.canvas.setImage(s,{id:s.canvas.shapeId(t.id,t.tick),tick:t.tick,width:t.width,height:t.height,top:t.top+l.top/s.table.zoomlevel,left:h+l.left/s.table.zoomlevel,"z-index":a+t.zorder,originAngle:t.originAngle,rotate:t.angle,imgType:t.type,zorder:t.zorder,fromOutside:null!==(c=t.fromOutside)&&void 0!==c&&c})}}))},a.fillImageSrc=function(){var t=e.sheet.data,i=t.images,n=t.shapes,r=t.sheetid,o=t.isImageOk,a=e.uniqueid,s=(e.imageDiv,e.imageUrl);e.basicZorder;if(!o&&void 0!==r&&(null!=n&&n.length>0||null!=i&&i.length>0)){var l=e,c=e.istestforimage?s+"/"+a+"."+r+"_batch.zip":s+"?uid="+a+"&id="+r+"_batch.zip";e.istestforimage?l.sheet.data.generatePicItems(i,n,c):$.get(c,(function(t){l.sheet.data.generatePicItems(i,n,t)}))}},a.fillImageOnebyOne=function(t,i){var n=new XMLHttpRequest,r=e.sheet,o=setInterval((function(){r.data.loadCount<=0&&(r.data.isImageOk=!0,clearInterval(o))}),200);n.onreadystatechange=function(){if(4==n.readyState){var t=n.response,e=new Uint8Array(t);JSZip.loadAsync(e).then((function(t){i.forEach((function(e,i,n){t.file(e.name).async("blob").then((function(t){var i=URL.createObjectURL(t),n=r.canvas.fabric.getObjects().find((function(t){return t.id===e.id}));n&&(n.setSrc(i,(function(t){var e;r.canvas.fabric.requestRenderAll(),r.canvas.saveCanvasData(r.data),null===(e=r.canvas.inFreeze)||void 0===e||e.loadFreezeImage()})),e.it.src=i),r.data.loadCount--}))}))}))}},n.open("GET",t,!0),n.responseType="arraybuffer",n.send()},a.loadConditionImage=function(){var t=e.sheet.data.conditionimg,i=e.imageDiv,n=e.basicZorder;t&&t.forEach((function(t){if(t.data){var e=a.createConditionImage(t,n);t.data=void 0,t.image=e,i.append(e)}else i.append(t.image)}))},a.insertConditionImage=function(t){var i=e.sheet.data.conditionimg,n=e.imageDiv,r=e.basicZorder;if(i)if(t.data){var o=a.createConditionImage(t,r);t.data=void 0,t.image=o,n.append(o),i.push(t)}else n.append(t.image)},a.reloadImagesShapes=function(){var t=e.imageDiv;null!=t&&(t.empty(),t.css("left",0),t.css("top",0),a.loadImages(),a.loadShapes(),a.loadConditionImage(),a.fillImageSrc())},a.scrollImagesShapes=function(){var t=e.imageDiv,i=e.sheet.canvas,n=e.sheet.data,r=n.scroll,o=n.displayRight2Left,a=n.zoomlevel;i.publishEvent("object:scroll",e.sheet.data),i.initFreeze(),null!=t&&(t.css("left",o?r.x*a:-r.x*a),t.css("top",-r.y*a))},this.datas.push(a),this.bottombar.addItem(o,i,n,r),this.sheetIndex+=1,this.isloading||this.sheet.data.addSheetOpr(o),a}},{key:"resetPagination",value:function(t){var e=t.rows.len,i=t.settings.row.len,n=e%i==0?e/i:Math.ceil(e/i);this.bottombar.addPagination(n)}},{key:"deleteSheet",value:function(){var t=this.bottombar.deleteItem(),e=r()(t,2),i=e[0],n=e[1];if(i>=0){var o=this.datas[i].name;this.sheet.data.delSheetOpr(o),this.datas.splice(i,1),n>=0&&this.sheet.resetData(this.datas[n])}}},{key:"renameSheet",value:function(t,e){var i=this.datas[t].name;this.datas[t].name=e,this.sheet.data.renameSheetOpr(i,e)}},{key:"loadData",value:function(t){this.isloading=!0;var e=Array.isArray(t)?t:[t];if(this.bottombar.clear(),this.datas=[],e.length>0)for(var i=0;i<e.length;i+=1){var n,o,a=e[i],s=this.addSheet(a.name,0===i,a.tabcolor,a.fontcolor);if(void 0!==a.merges)for(var l=0,c=a.merges.length;l<c;l++){var h=a.merges[l].split(":"),u=y(h[0]),f=r()(u,2),d=f[0],v=f[1],g=y(h[1]),p=r()(g,2),m=p[0],b=p[1];a.rows[v]&&a.rows[v].cells[d]&&(a.rows[v].cells[d].merge=[b-v,m-d])}null===(n=a.images)||void 0===n||n.forEach((function(t){Va(t)})),null===(o=a.shapes)||void 0===o||o.forEach((function(t){Va(t)})),s.setData(a)}return this.isloading=!1,this}},{key:"getData",value:function(){return this.datas.map((function(t){return t.getData()}))}},{key:"cellText",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return this.datas[n].setCellText(t,e,i,"finished"),this}},{key:"setActiveCell",value:function(t,e){return this.sheet.setActiveCell(t,e),this}},{key:"setActiveSheet",value:function(t){return this.bottombar.clickSwap2(this.bottombar.items[t]),this}},{key:"setActiveSheetByName",value:function(t){for(var e=0;e<this.bottombar.dataNames.length;e++)if(this.bottombar.dataNames[e]===t){this.bottombar.clickSwap2(this.bottombar.items[e]);break}return this}},{key:"cell",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.datas[i].getCell(t,e)}},{key:"cellStyle",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.datas[i].getCellStyle(t,e)}},{key:"reRender",value:function(){return this.sheet.table.render(),this}},{key:"showHighlights",value:function(t){this.sheet.showHighlights(t)}},{key:"hideHighlights",value:function(){this.sheet.hideHighlights()}},{key:"on",value:function(t,e){return this.sheet.on(t,e),this}},{key:"validate",value:function(){return this.data.validations.errors.size<=0}},{key:"change",value:function(t){return this.sheet.on("change",t),this}},{key:"updateServerError",value:function(t){return this.sheet.on("updateServerError",t),this}},{key:"updateCellError",value:function(t){return this.sheet.on("updateCellError",t),this}}],[{key:"locale",value:function(t,e){U(t,e)}}]),t}(),qa=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Ga(t,e)};window&&(window.x_spreadsheet=qa,window.x_spreadsheet.locale=function(t,e){return U(t,e)});e.default=Ga}]);
|