{"version":3,"file":"BEnqWaGb-legacy.js","sources":["../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Global.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Util.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Validators.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Factory.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Context.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Canvas.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/DragAndDrop.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Node.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Container.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/PointerEvents.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Shape.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Layer.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Group.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Animation.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/_CoreInternals.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Stage.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/FastLayer.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Tween.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Line.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Path.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/BezierFunctions.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Rect.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Text.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Transformer.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Blur.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Kaleidoscope.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Mask.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/_FullInternals.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Arc.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Arrow.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Circle.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Ellipse.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Image.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Label.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/RegularPolygon.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Ring.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Sprite.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Star.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/TextPath.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Wedge.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Brighten.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Contrast.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Emboss.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Enhance.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Grayscale.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/HSL.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/HSV.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Invert.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Noise.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Pixelate.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Posterize.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/RGB.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/RGBA.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Sepia.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Solarize.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Threshold.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._registerNode = exports.Konva = exports.glob = void 0;\nconst PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return (typeof window !== 'undefined' &&\n ({}.toString.call(window) === '[object Window]' ||\n {}.toString.call(window) === '[object global]'));\n}\nexports.glob = typeof global !== 'undefined'\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof WorkerGlobalScope !== 'undefined'\n ? self\n : {};\nexports.Konva = {\n _global: exports.glob,\n version: '9.3.18',\n isBrowser: detectBrowser(),\n isUnminified: /param/.test(function (param) { }.toString()),\n dblClickWindow: 400,\n getAngle(angle) {\n return exports.Konva.angleDeg ? angle * PI_OVER_180 : angle;\n },\n enableTrace: false,\n pointerEventsEnabled: true,\n autoDrawEnabled: true,\n hitOnDragEnabled: false,\n capturePointerEventsEnabled: false,\n _mouseListenClick: false,\n _touchListenClick: false,\n _pointerListenClick: false,\n _mouseInDblClickWindow: false,\n _touchInDblClickWindow: false,\n _pointerInDblClickWindow: false,\n _mouseDblClickPointerId: null,\n _touchDblClickPointerId: null,\n _pointerDblClickPointerId: null,\n _fixTextRendering: false,\n pixelRatio: (typeof window !== 'undefined' && window.devicePixelRatio) || 1,\n dragDistance: 3,\n angleDeg: true,\n showWarnings: true,\n dragButtons: [0, 1],\n isDragging() {\n return exports.Konva['DD'].isDragging;\n },\n isTransforming() {\n var _a;\n return (_a = exports.Konva['Transformer']) === null || _a === void 0 ? void 0 : _a.isTransforming();\n },\n isDragReady() {\n return !!exports.Konva['DD'].node;\n },\n releaseCanvasOnDestroy: true,\n document: exports.glob.document,\n _injectGlobal(Konva) {\n exports.glob.Konva = Konva;\n },\n};\nconst _registerNode = (NodeClass) => {\n exports.Konva[NodeClass.prototype.getClassName()] = NodeClass;\n};\nexports._registerNode = _registerNode;\nexports.Konva._injectGlobal(exports.Konva);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = exports.Transform = void 0;\nconst Global_1 = require(\"./Global\");\nclass Transform {\n constructor(m = [1, 0, 0, 1, 0, 0]) {\n this.dirty = false;\n this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];\n }\n reset() {\n this.m[0] = 1;\n this.m[1] = 0;\n this.m[2] = 0;\n this.m[3] = 1;\n this.m[4] = 0;\n this.m[5] = 0;\n }\n copy() {\n return new Transform(this.m);\n }\n copyInto(tr) {\n tr.m[0] = this.m[0];\n tr.m[1] = this.m[1];\n tr.m[2] = this.m[2];\n tr.m[3] = this.m[3];\n tr.m[4] = this.m[4];\n tr.m[5] = this.m[5];\n }\n point(point) {\n const m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5],\n };\n }\n translate(x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n }\n scale(sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n }\n rotate(rad) {\n const c = Math.cos(rad);\n const s = Math.sin(rad);\n const m11 = this.m[0] * c + this.m[2] * s;\n const m12 = this.m[1] * c + this.m[3] * s;\n const m21 = this.m[0] * -s + this.m[2] * c;\n const m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n getTranslation() {\n return {\n x: this.m[4],\n y: this.m[5],\n };\n }\n skew(sx, sy) {\n const m11 = this.m[0] + this.m[2] * sy;\n const m12 = this.m[1] + this.m[3] * sy;\n const m21 = this.m[2] + this.m[0] * sx;\n const m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n multiply(matrix) {\n const m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n const m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n const m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n const m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n const dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n const dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n }\n invert() {\n const d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n const m0 = this.m[3] * d;\n const m1 = -this.m[1] * d;\n const m2 = -this.m[2] * d;\n const m3 = this.m[0] * d;\n const m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n const m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n }\n getMatrix() {\n return this.m;\n }\n decompose() {\n const a = this.m[0];\n const b = this.m[1];\n const c = this.m[2];\n const d = this.m[3];\n const e = this.m[4];\n const f = this.m[5];\n const delta = a * d - b * c;\n const result = {\n x: e,\n y: f,\n rotation: 0,\n scaleX: 0,\n scaleY: 0,\n skewX: 0,\n skewY: 0,\n };\n if (a != 0 || b != 0) {\n const r = Math.sqrt(a * a + b * b);\n result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);\n result.scaleX = r;\n result.scaleY = delta / r;\n result.skewX = (a * c + b * d) / delta;\n result.skewY = 0;\n }\n else if (c != 0 || d != 0) {\n const s = Math.sqrt(c * c + d * d);\n result.rotation =\n Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));\n result.scaleX = delta / s;\n result.scaleY = s;\n result.skewX = 0;\n result.skewY = (a * c + b * d) / delta;\n }\n else {\n }\n result.rotation = exports.Util._getRotation(result.rotation);\n return result;\n }\n}\nexports.Transform = Transform;\nconst OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 132, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 255, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 203],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [119, 128, 144],\n slategrey: [119, 128, 144],\n snow: [255, 255, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 5],\n}, RGB_REGEX = /rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/;\nlet animQueue = [];\nconst req = (typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame) ||\n function (f) {\n setTimeout(f, 60);\n };\nexports.Util = {\n _isElement(obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject(obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber(obj) {\n return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&\n !isNaN(obj) &&\n isFinite(obj));\n },\n _isString(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject(val) {\n return val instanceof Object;\n },\n isValidSelector(selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n const firstChar = selector[0];\n return (firstChar === '#' ||\n firstChar === '.' ||\n firstChar === firstChar.toUpperCase());\n },\n _sign(number) {\n if (number === 0) {\n return 1;\n }\n if (number > 0) {\n return 1;\n }\n else {\n return -1;\n }\n },\n requestAnimFrame(callback) {\n animQueue.push(callback);\n if (animQueue.length === 1) {\n req(function () {\n const queue = animQueue;\n animQueue = [];\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n },\n createCanvasElement() {\n const canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n }\n catch (e) { }\n return canvas;\n },\n createImageElement() {\n return document.createElement('img');\n },\n _isInDocument(el) {\n while ((el = el.parentNode)) {\n if (el == document) {\n return true;\n }\n }\n return false;\n },\n _urlToImage(url, callback) {\n const imageObj = exports.Util.createImageElement();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex(r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb(hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n const bigint = parseInt(hex, 16);\n return {\n r: (bigint >> 16) & 255,\n g: (bigint >> 8) & 255,\n b: bigint & 255,\n };\n },\n getRandomColor() {\n let randColor = ((Math.random() * 0xffffff) << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n getRGB(color) {\n let rgb;\n if (color in COLORS) {\n rgb = COLORS[color];\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n };\n }\n else if (color[0] === HASH) {\n return this._hexToRgb(color.substring(1));\n }\n else if (color.substr(0, 4) === RGB_PAREN) {\n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));\n return {\n r: parseInt(rgb[1], 10),\n g: parseInt(rgb[2], 10),\n b: parseInt(rgb[3], 10),\n };\n }\n else {\n return {\n r: 0,\n g: 0,\n b: 0,\n };\n }\n },\n colorToRGBA(str) {\n str = str || 'black';\n return (exports.Util._namedColorToRBA(str) ||\n exports.Util._hex3ColorToRGBA(str) ||\n exports.Util._hex4ColorToRGBA(str) ||\n exports.Util._hex6ColorToRGBA(str) ||\n exports.Util._hex8ColorToRGBA(str) ||\n exports.Util._rgbColorToRGBA(str) ||\n exports.Util._rgbaColorToRGBA(str) ||\n exports.Util._hslColorToRGBA(str));\n },\n _namedColorToRBA(str) {\n const c = COLORS[str.toLowerCase()];\n if (!c) {\n return null;\n }\n return {\n r: c[0],\n g: c[1],\n b: c[2],\n a: 1,\n };\n },\n _rgbColorToRGBA(str) {\n if (str.indexOf('rgb(') === 0) {\n str = str.match(/rgb\\(([^)]+)\\)/)[1];\n const parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: 1,\n };\n }\n },\n _rgbaColorToRGBA(str) {\n if (str.indexOf('rgba(') === 0) {\n str = str.match(/rgba\\(([^)]+)\\)/)[1];\n const parts = str.split(/ *, */).map((n, index) => {\n if (n.slice(-1) === '%') {\n return index === 3 ? parseInt(n) / 100 : (parseInt(n) / 100) * 255;\n }\n return Number(n);\n });\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: parts[3],\n };\n }\n },\n _hex8ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 9) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: parseInt(str.slice(7, 9), 16) / 0xff,\n };\n }\n },\n _hex6ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 7) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: 1,\n };\n }\n },\n _hex4ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 5) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: parseInt(str[4] + str[4], 16) / 0xff,\n };\n }\n },\n _hex3ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 4) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: 1,\n };\n }\n },\n _hslColorToRGBA(str) {\n if (/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.test(str)) {\n const [_, ...hsl] = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(str);\n const h = Number(hsl[0]) / 360;\n const s = Number(hsl[1]) / 100;\n const l = Number(hsl[2]) / 100;\n let t2;\n let t3;\n let val;\n if (s === 0) {\n val = l * 255;\n return {\n r: Math.round(val),\n g: Math.round(val),\n b: Math.round(val),\n a: 1,\n };\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n }\n else {\n t2 = l + s - l * s;\n }\n const t1 = 2 * l - t2;\n const rgb = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n t3 = h + (1 / 3) * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n }\n else if (2 * t3 < 1) {\n val = t2;\n }\n else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n }\n else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return {\n r: Math.round(rgb[0]),\n g: Math.round(rgb[1]),\n b: Math.round(rgb[2]),\n a: 1,\n };\n }\n },\n haveIntersection(r1, r2) {\n return !(r2.x > r1.x + r1.width ||\n r2.x + r2.width < r1.x ||\n r2.y > r1.y + r1.height ||\n r2.y + r2.height < r1.y);\n },\n cloneObject(obj) {\n const retObj = {};\n for (const key in obj) {\n if (this._isPlainObject(obj[key])) {\n retObj[key] = this.cloneObject(obj[key]);\n }\n else if (this._isArray(obj[key])) {\n retObj[key] = this.cloneArray(obj[key]);\n }\n else {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n },\n cloneArray(arr) {\n return arr.slice(0);\n },\n degToRad(deg) {\n return deg * PI_OVER_DEG180;\n },\n radToDeg(rad) {\n return rad * DEG180_OVER_PI;\n },\n _degToRad(deg) {\n exports.Util.warn('Util._degToRad is removed. Please use public Util.degToRad instead.');\n return exports.Util.degToRad(deg);\n },\n _radToDeg(rad) {\n exports.Util.warn('Util._radToDeg is removed. Please use public Util.radToDeg instead.');\n return exports.Util.radToDeg(rad);\n },\n _getRotation(radians) {\n return Global_1.Konva.angleDeg ? exports.Util.radToDeg(radians) : radians;\n },\n _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n },\n throw(str) {\n throw new Error(KONVA_ERROR + str);\n },\n error(str) {\n console.error(KONVA_ERROR + str);\n },\n warn(str) {\n if (!Global_1.Konva.showWarnings) {\n return;\n }\n console.warn(KONVA_WARNING + str);\n },\n each(obj, func) {\n for (const key in obj) {\n func(key, obj[key]);\n }\n },\n _inRange(val, left, right) {\n return left <= val && val < right;\n },\n _getProjectionToSegment(x1, y1, x2, y2, x3, y3) {\n let x, y, dist;\n const pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n if (pd2 == 0) {\n x = x1;\n y = y1;\n dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);\n }\n else {\n const u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;\n if (u < 0) {\n x = x1;\n y = y1;\n dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);\n }\n else if (u > 1.0) {\n x = x2;\n y = y2;\n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);\n }\n else {\n x = x1 + u * (x2 - x1);\n y = y1 + u * (y2 - y1);\n dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);\n }\n }\n return [x, y, dist];\n },\n _getProjectionToLine(pt, line, isClosed) {\n const pc = exports.Util.cloneObject(pt);\n let dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n const p2 = line[(i + 1) % line.length];\n const proj = exports.Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n const px = proj[0], py = proj[1], pdist = proj[2];\n if (pdist < dist) {\n pc.x = px;\n pc.y = py;\n dist = pdist;\n }\n });\n return pc;\n },\n _prepareArrayForTween(startArray, endArray, isClosed) {\n const start = [], end = [];\n if (startArray.length > endArray.length) {\n const temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (let n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1],\n });\n }\n for (let n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1],\n });\n }\n const newStart = [];\n end.forEach(function (point) {\n const pr = exports.Util._getProjectionToLine(point, start, isClosed);\n newStart.push(pr.x);\n newStart.push(pr.y);\n });\n return newStart;\n },\n _prepareToStringify(obj) {\n let desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (const key in obj) {\n if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {\n continue;\n }\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (obj[key].visitedByCircularReferenceRemoval ||\n exports.Util._isElement(obj[key])) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n else if (exports.Util._prepareToStringify(obj[key]) === null) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n }\n delete obj.visitedByCircularReferenceRemoval;\n return obj;\n },\n _assign(target, source) {\n for (const key in source) {\n target[key] = source[key];\n }\n return target;\n },\n _getFirstPointerId(evt) {\n if (!evt.touches) {\n return evt.pointerId || 999;\n }\n else {\n return evt.changedTouches[0].identifier;\n }\n },\n releaseCanvas(...canvases) {\n if (!Global_1.Konva.releaseCanvasOnDestroy)\n return;\n canvases.forEach((c) => {\n c.width = 0;\n c.height = 0;\n });\n },\n drawRoundedRectPath(context, width, height, cornerRadius) {\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.moveTo(topLeft, 0);\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGBComponent = RGBComponent;\nexports.alphaComponent = alphaComponent;\nexports.getNumberValidator = getNumberValidator;\nexports.getNumberOrArrayOfNumbersValidator = getNumberOrArrayOfNumbersValidator;\nexports.getNumberOrAutoValidator = getNumberOrAutoValidator;\nexports.getStringValidator = getStringValidator;\nexports.getStringOrGradientValidator = getStringOrGradientValidator;\nexports.getFunctionValidator = getFunctionValidator;\nexports.getNumberArrayValidator = getNumberArrayValidator;\nexports.getBooleanValidator = getBooleanValidator;\nexports.getComponentValidator = getComponentValidator;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nfunction _formatValue(val) {\n if (Util_1.Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util_1.Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nfunction RGBComponent(val) {\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nfunction alphaComponent(val) {\n if (val > 1) {\n return 1;\n }\n else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nfunction getNumberValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isNumber(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nfunction getNumberOrArrayOfNumbersValidator(noOfElements) {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n let isNumber = Util_1.Util._isNumber(val);\n let isValidArray = Util_1.Util._isArray(val) && val.length == noOfElements;\n if (!isNumber && !isValidArray) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or Array(' +\n noOfElements +\n ')');\n }\n return val;\n };\n }\n}\nfunction getNumberOrAutoValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isNumber = Util_1.Util._isNumber(val);\n var isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nfunction getStringValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isString(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nfunction getStringOrGradientValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n const isString = Util_1.Util._isString(val);\n const isGradient = Object.prototype.toString.call(val) === '[object CanvasGradient]' ||\n (val && val['addColorStop']);\n if (!(isString || isGradient)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string or a native gradient.');\n }\n return val;\n };\n }\n}\nfunction getFunctionValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isFunction(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nfunction getNumberArrayValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n const TypedArray = Int8Array ? Object.getPrototypeOf(Int8Array) : null;\n if (TypedArray && val instanceof TypedArray) {\n return val;\n }\n if (!Util_1.Util._isArray(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a array of numbers.');\n }\n else {\n val.forEach(function (item) {\n if (!Util_1.Util._isNumber(item)) {\n Util_1.Util.warn('\"' +\n attr +\n '\" attribute has non numeric element ' +\n item +\n '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nfunction getBooleanValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isBool = val === true || val === false;\n if (!isBool) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nfunction getComponentValidator(components) {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (val === undefined || val === null) {\n return val;\n }\n if (!Util_1.Util.isObject(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be an object with properties ' +\n components);\n }\n return val;\n };\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Factory = void 0;\nconst Util_1 = require(\"./Util\");\nconst Validators_1 = require(\"./Validators\");\nconst GET = 'get';\nconst SET = 'set';\nexports.Factory = {\n addGetterSetter(constructor, attr, def, validator, after) {\n exports.Factory.addGetter(constructor, attr, def);\n exports.Factory.addSetter(constructor, attr, validator, after);\n exports.Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter(constructor, attr, def) {\n var method = GET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] =\n constructor.prototype[method] ||\n function () {\n const val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter(constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n exports.Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter(constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter(constructor, attr, components, validator, after) {\n const len = components.length, capitalize = Util_1.Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr);\n constructor.prototype[getter] = function () {\n const ret = {};\n for (let n = 0; n < len; n++) {\n const component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n const basicValidator = (0, Validators_1.getComponentValidator)(components);\n constructor.prototype[setter] = function (val) {\n const oldVal = this.attrs[attr];\n if (validator) {\n val = validator.call(this, val, attr);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (const key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n if (!val) {\n components.forEach((component) => {\n this._setAttr(attr + capitalize(component), undefined);\n });\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n exports.Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter(constructor, attr) {\n var capitalizedAttr = Util_1.Util._capitalize(attr), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter(constructor, attr, def, validator) {\n Util_1.Util.error('Adding deprecated ' + attr);\n const method = GET + Util_1.Util._capitalize(attr);\n const message = attr +\n ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util_1.Util.error(message);\n const val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n exports.Factory.addSetter(constructor, attr, validator, function () {\n Util_1.Util.error(message);\n });\n exports.Factory.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat(constructor, methods) {\n Util_1.Util.each(methods, function (oldMethodName, newMethodName) {\n const method = constructor.prototype[newMethodName];\n const oldGetter = GET + Util_1.Util._capitalize(oldMethodName);\n const oldSetter = SET + Util_1.Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util_1.Util.error('\"' +\n oldMethodName +\n '\" method is deprecated and will be removed soon. Use \"\"' +\n newMethodName +\n '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter() {\n this._filterUpToDate = false;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HitContext = exports.SceneContext = exports.Context = void 0;\nconst Util_1 = require(\"./Util\");\nconst Global_1 = require(\"./Global\");\nfunction simplifyArray(arr) {\n const retArr = [], len = arr.length, util = Util_1.Util;\n for (let n = 0; n < len; n++) {\n let val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n }\n else if (!util._isString(val)) {\n val = val + '';\n }\n retArr.push(val);\n }\n return retArr;\n}\nconst COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()', EQUALS = '=', CONTEXT_METHODS = [\n 'arc',\n 'arcTo',\n 'beginPath',\n 'bezierCurveTo',\n 'clearRect',\n 'clip',\n 'closePath',\n 'createLinearGradient',\n 'createPattern',\n 'createRadialGradient',\n 'drawImage',\n 'ellipse',\n 'fill',\n 'fillText',\n 'getImageData',\n 'createImageData',\n 'lineTo',\n 'moveTo',\n 'putImageData',\n 'quadraticCurveTo',\n 'rect',\n 'roundRect',\n 'restore',\n 'rotate',\n 'save',\n 'scale',\n 'setLineDash',\n 'setTransform',\n 'stroke',\n 'strokeText',\n 'transform',\n 'translate',\n];\nconst CONTEXT_PROPERTIES = [\n 'fillStyle',\n 'strokeStyle',\n 'shadowColor',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'letterSpacing',\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit',\n 'direction',\n 'font',\n 'textAlign',\n 'textBaseline',\n 'globalAlpha',\n 'globalCompositeOperation',\n 'imageSmoothingEnabled',\n];\nconst traceArrMax = 100;\nclass Context {\n constructor(canvas) {\n this.canvas = canvas;\n if (Global_1.Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n fillShape(shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n }\n _fill(shape) {\n }\n strokeShape(shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n }\n fillStrokeShape(shape) {\n if (shape.attrs.fillAfterStrokeEnabled) {\n this.strokeShape(shape);\n this.fillShape(shape);\n }\n else {\n this.fillShape(shape);\n this.strokeShape(shape);\n }\n }\n getTrace(relaxed, rounded) {\n let traceArr = this.traceArr, len = traceArr.length, str = '', n, trace, method, args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n }\n else {\n if (Util_1.Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n }\n else {\n if (rounded) {\n args = args.map((a) => typeof a === 'number' ? Math.floor(a) : a);\n }\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n }\n else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n }\n clearTrace() {\n this.traceArr = [];\n }\n _trace(str) {\n let traceArr = this.traceArr, len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n }\n reset() {\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n }\n getCanvas() {\n return this.canvas;\n }\n clear(bounds) {\n const canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n }\n else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n }\n _applyLineCap(shape) {\n const lineCap = shape.attrs.lineCap;\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n }\n _applyOpacity(shape) {\n const absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n }\n _applyLineJoin(shape) {\n const lineJoin = shape.attrs.lineJoin;\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n }\n setAttr(attr, val) {\n this._context[attr] = val;\n }\n arc(x, y, radius, startAngle, endAngle, counterClockwise) {\n this._context.arc(x, y, radius, startAngle, endAngle, counterClockwise);\n }\n arcTo(x1, y1, x2, y2, radius) {\n this._context.arcTo(x1, y1, x2, y2, radius);\n }\n beginPath() {\n this._context.beginPath();\n }\n bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n this._context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n }\n clearRect(x, y, width, height) {\n this._context.clearRect(x, y, width, height);\n }\n clip(...args) {\n this._context.clip.apply(this._context, args);\n }\n closePath() {\n this._context.closePath();\n }\n createImageData(width, height) {\n const a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(width, height);\n }\n else if (a.length === 1) {\n return this._context.createImageData(width);\n }\n }\n createLinearGradient(x0, y0, x1, y1) {\n return this._context.createLinearGradient(x0, y0, x1, y1);\n }\n createPattern(image, repetition) {\n return this._context.createPattern(image, repetition);\n }\n createRadialGradient(x0, y0, r0, x1, y1, r1) {\n return this._context.createRadialGradient(x0, y0, r0, x1, y1, r1);\n }\n drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) {\n const a = arguments, _context = this._context;\n if (a.length === 3) {\n _context.drawImage(image, sx, sy);\n }\n else if (a.length === 5) {\n _context.drawImage(image, sx, sy, sWidth, sHeight);\n }\n else if (a.length === 9) {\n _context.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);\n }\n }\n ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise) {\n this._context.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise);\n }\n isPointInPath(x, y, path, fillRule) {\n if (path) {\n return this._context.isPointInPath(path, x, y, fillRule);\n }\n return this._context.isPointInPath(x, y, fillRule);\n }\n fill(...args) {\n this._context.fill.apply(this._context, args);\n }\n fillRect(x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n }\n strokeRect(x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n }\n fillText(text, x, y, maxWidth) {\n if (maxWidth) {\n this._context.fillText(text, x, y, maxWidth);\n }\n else {\n this._context.fillText(text, x, y);\n }\n }\n measureText(text) {\n return this._context.measureText(text);\n }\n getImageData(sx, sy, sw, sh) {\n return this._context.getImageData(sx, sy, sw, sh);\n }\n lineTo(x, y) {\n this._context.lineTo(x, y);\n }\n moveTo(x, y) {\n this._context.moveTo(x, y);\n }\n rect(x, y, width, height) {\n this._context.rect(x, y, width, height);\n }\n roundRect(x, y, width, height, radii) {\n this._context.roundRect(x, y, width, height, radii);\n }\n putImageData(imageData, dx, dy) {\n this._context.putImageData(imageData, dx, dy);\n }\n quadraticCurveTo(cpx, cpy, x, y) {\n this._context.quadraticCurveTo(cpx, cpy, x, y);\n }\n restore() {\n this._context.restore();\n }\n rotate(angle) {\n this._context.rotate(angle);\n }\n save() {\n this._context.save();\n }\n scale(x, y) {\n this._context.scale(x, y);\n }\n setLineDash(segments) {\n if (this._context.setLineDash) {\n this._context.setLineDash(segments);\n }\n else if ('mozDash' in this._context) {\n this._context['mozDash'] = segments;\n }\n else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = segments;\n }\n }\n getLineDash() {\n return this._context.getLineDash();\n }\n setTransform(a, b, c, d, e, f) {\n this._context.setTransform(a, b, c, d, e, f);\n }\n stroke(path2d) {\n if (path2d) {\n this._context.stroke(path2d);\n }\n else {\n this._context.stroke();\n }\n }\n strokeText(text, x, y, maxWidth) {\n this._context.strokeText(text, x, y, maxWidth);\n }\n transform(a, b, c, d, e, f) {\n this._context.transform(a, b, c, d, e, f);\n }\n translate(x, y) {\n this._context.translate(x, y);\n }\n _enableTrace() {\n let that = this, len = CONTEXT_METHODS.length, origSetter = this.setAttr, n, args;\n const func = function (methodName) {\n let origMethod = that[methodName], ret;\n that[methodName] = function () {\n args = simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args,\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n const prop = arguments[0];\n let val = arguments[1];\n if (prop === 'shadowOffsetX' ||\n prop === 'shadowOffsetY' ||\n prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val,\n });\n };\n }\n _applyGlobalCompositeOperation(node) {\n const op = node.attrs.globalCompositeOperation;\n const def = !op || op === 'source-over';\n if (!def) {\n this.setAttr('globalCompositeOperation', op);\n }\n }\n}\nexports.Context = Context;\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get() {\n return this._context[prop];\n },\n set(val) {\n this._context[prop] = val;\n },\n });\n});\nclass SceneContext extends Context {\n constructor(canvas, { willReadFrequently = false } = {}) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently,\n });\n }\n _fillColor(shape) {\n const fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n }\n _fillPattern(shape) {\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n }\n _fillLinearGradient(shape) {\n const grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fillRadialGradient(shape) {\n const grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fill(shape) {\n const hasColor = shape.fill(), fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n const hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n const hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n const hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n }\n else if (hasPattern) {\n this._fillPattern(shape);\n }\n else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n }\n else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n }\n _strokeLinearGradient(shape) {\n const start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n }\n _stroke(shape) {\n const dash = shape.dash(), strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n const hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n }\n else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n _applyShadow(shape) {\n var _a, _b, _c;\n const color = (_a = shape.getShadowRGBA()) !== null && _a !== void 0 ? _a : 'black', blur = (_b = shape.getShadowBlur()) !== null && _b !== void 0 ? _b : 5, offset = (_c = shape.getShadowOffset()) !== null && _c !== void 0 ? _c : {\n x: 0,\n y: 0,\n }, scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n }\n}\nexports.SceneContext = SceneContext;\nclass HitContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently: true,\n });\n }\n _fill(shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n }\n strokeShape(shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n if (shape.hasHitStroke()) {\n const strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n const hitStrokeWidth = shape.hitStrokeWidth();\n const strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n}\nexports.HitContext = HitContext;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HitCanvas = exports.SceneCanvas = exports.Canvas = void 0;\nconst Util_1 = require(\"./Util\");\nconst Context_1 = require(\"./Context\");\nconst Global_1 = require(\"./Global\");\nconst Factory_1 = require(\"./Factory\");\nconst Validators_1 = require(\"./Validators\");\nlet _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n const canvas = Util_1.Util.createCanvasElement();\n const context = canvas.getContext('2d');\n _pixelRatio = (function () {\n const devicePixelRatio = Global_1.Konva._global.devicePixelRatio || 1, backingStoreRatio = context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n context.backingStorePixelRatio ||\n 1;\n return devicePixelRatio / backingStoreRatio;\n })();\n Util_1.Util.releaseCanvas(canvas);\n return _pixelRatio;\n}\nclass Canvas {\n constructor(config) {\n this.pixelRatio = 1;\n this.width = 0;\n this.height = 0;\n this.isCache = false;\n const conf = config || {};\n const pixelRatio = conf.pixelRatio || Global_1.Konva.pixelRatio || getDevicePixelRatio();\n this.pixelRatio = pixelRatio;\n this._canvas = Util_1.Util.createCanvasElement();\n this._canvas.style.padding = '0';\n this._canvas.style.margin = '0';\n this._canvas.style.border = '0';\n this._canvas.style.background = 'transparent';\n this._canvas.style.position = 'absolute';\n this._canvas.style.top = '0';\n this._canvas.style.left = '0';\n }\n getContext() {\n return this.context;\n }\n getPixelRatio() {\n return this.pixelRatio;\n }\n setPixelRatio(pixelRatio) {\n const previousRatio = this.pixelRatio;\n this.pixelRatio = pixelRatio;\n this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);\n }\n setWidth(width) {\n this.width = this._canvas.width = width * this.pixelRatio;\n this._canvas.style.width = width + 'px';\n const pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n setHeight(height) {\n this.height = this._canvas.height = height * this.pixelRatio;\n this._canvas.style.height = height + 'px';\n const pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n getWidth() {\n return this.width;\n }\n getHeight() {\n return this.height;\n }\n setSize(width, height) {\n this.setWidth(width || 0);\n this.setHeight(height || 0);\n }\n toDataURL(mimeType, quality) {\n try {\n return this._canvas.toDataURL(mimeType, quality);\n }\n catch (e) {\n try {\n return this._canvas.toDataURL();\n }\n catch (err) {\n Util_1.Util.error('Unable to get data URL. ' +\n err.message +\n ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n return '';\n }\n }\n }\n}\nexports.Canvas = Canvas;\nFactory_1.Factory.addGetterSetter(Canvas, 'pixelRatio', undefined, (0, Validators_1.getNumberValidator)());\nclass SceneCanvas extends Canvas {\n constructor(config = { width: 0, height: 0, willReadFrequently: false }) {\n super(config);\n this.context = new Context_1.SceneContext(this, {\n willReadFrequently: config.willReadFrequently,\n });\n this.setSize(config.width, config.height);\n }\n}\nexports.SceneCanvas = SceneCanvas;\nclass HitCanvas extends Canvas {\n constructor(config = { width: 0, height: 0 }) {\n super(config);\n this.hitCanvas = true;\n this.context = new Context_1.HitContext(this);\n this.setSize(config.width, config.height);\n }\n}\nexports.HitCanvas = HitCanvas;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DD = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nexports.DD = {\n get isDragging() {\n let flag = false;\n exports.DD._dragElements.forEach((elem) => {\n if (elem.dragStatus === 'dragging') {\n flag = true;\n }\n });\n return flag;\n },\n justDragged: false,\n get node() {\n let node;\n exports.DD._dragElements.forEach((elem) => {\n node = elem.node;\n });\n return node;\n },\n _dragElements: new Map(),\n _drag(evt) {\n const nodesToFireEvents = [];\n exports.DD._dragElements.forEach((elem, key) => {\n const { node } = elem;\n const stage = node.getStage();\n stage.setPointersPositions(evt);\n if (elem.pointerId === undefined) {\n elem.pointerId = Util_1.Util._getFirstPointerId(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus !== 'dragging') {\n const dragDistance = node.dragDistance();\n const distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));\n if (distance < dragDistance) {\n return;\n }\n node.startDrag({ evt });\n if (!node.isDragging()) {\n return;\n }\n }\n node._setDragPosition(evt, elem);\n nodesToFireEvents.push(node);\n });\n nodesToFireEvents.forEach((node) => {\n node.fire('dragmove', {\n type: 'dragmove',\n target: node,\n evt: evt,\n }, true);\n });\n },\n _endDragBefore(evt) {\n const drawNodes = [];\n exports.DD._dragElements.forEach((elem) => {\n const { node } = elem;\n const stage = node.getStage();\n if (evt) {\n stage.setPointersPositions(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {\n exports.DD.justDragged = true;\n Global_1.Konva._mouseListenClick = false;\n Global_1.Konva._touchListenClick = false;\n Global_1.Konva._pointerListenClick = false;\n elem.dragStatus = 'stopped';\n }\n const drawNode = elem.node.getLayer() ||\n (elem.node instanceof Global_1.Konva['Stage'] && elem.node);\n if (drawNode && drawNodes.indexOf(drawNode) === -1) {\n drawNodes.push(drawNode);\n }\n });\n drawNodes.forEach((drawNode) => {\n drawNode.draw();\n });\n },\n _endDragAfter(evt) {\n exports.DD._dragElements.forEach((elem, key) => {\n if (elem.dragStatus === 'stopped') {\n elem.node.fire('dragend', {\n type: 'dragend',\n target: elem.node,\n evt: evt,\n }, true);\n }\n if (elem.dragStatus !== 'dragging') {\n exports.DD._dragElements.delete(key);\n }\n });\n },\n};\nif (Global_1.Konva.isBrowser) {\n window.addEventListener('mouseup', exports.DD._endDragBefore, true);\n window.addEventListener('touchend', exports.DD._endDragBefore, true);\n window.addEventListener('touchcancel', exports.DD._endDragBefore, true);\n window.addEventListener('mousemove', exports.DD._drag);\n window.addEventListener('touchmove', exports.DD._drag);\n window.addEventListener('mouseup', exports.DD._endDragAfter, false);\n window.addEventListener('touchend', exports.DD._endDragAfter, false);\n window.addEventListener('touchcancel', exports.DD._endDragAfter, false);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Node = void 0;\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Canvas_1 = require(\"./Canvas\");\nconst Global_1 = require(\"./Global\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Validators_1 = require(\"./Validators\");\nconst ABSOLUTE_OPACITY = 'absoluteOpacity', ALL_LISTENERS = 'allEventListeners', ABSOLUTE_TRANSFORM = 'absoluteTransform', ABSOLUTE_SCALE = 'absoluteScale', CANVAS = 'canvas', CHANGE = 'Change', CHILDREN = 'children', KONVA = 'konva', LISTENING = 'listening', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', SET = 'set', SHAPE = 'Shape', SPACE = ' ', STAGE = 'stage', TRANSFORM = 'transform', UPPER_STAGE = 'Stage', VISIBLE = 'visible', TRANSFORM_CHANGE_STR = [\n 'xChange.konva',\n 'yChange.konva',\n 'scaleXChange.konva',\n 'scaleYChange.konva',\n 'skewXChange.konva',\n 'skewYChange.konva',\n 'rotationChange.konva',\n 'offsetXChange.konva',\n 'offsetYChange.konva',\n 'transformsEnabledChange.konva',\n].join(SPACE);\nlet idCounter = 1;\nclass Node {\n constructor(config) {\n this._id = idCounter++;\n this.eventListeners = {};\n this.attrs = {};\n this.index = 0;\n this._allEventListeners = null;\n this.parent = null;\n this._cache = new Map();\n this._attachedDepsListeners = new Map();\n this._lastPos = null;\n this._batchingTransformChange = false;\n this._needClearTransformCache = false;\n this._filterUpToDate = false;\n this._isUnderCache = false;\n this._dragEventId = null;\n this._shouldFireChangeEvents = false;\n this.setAttrs(config);\n this._shouldFireChangeEvents = true;\n }\n hasChildren() {\n return false;\n }\n _clearCache(attr) {\n if ((attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM) &&\n this._cache.get(attr)) {\n this._cache.get(attr).dirty = true;\n }\n else if (attr) {\n this._cache.delete(attr);\n }\n else {\n this._cache.clear();\n }\n }\n _getCache(attr, privateGetter) {\n let cache = this._cache.get(attr);\n const isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;\n const invalid = cache === undefined || (isTransform && cache.dirty === true);\n if (invalid) {\n cache = privateGetter.call(this);\n this._cache.set(attr, cache);\n }\n return cache;\n }\n _calculate(name, deps, getter) {\n if (!this._attachedDepsListeners.get(name)) {\n const depsString = deps.map((dep) => dep + 'Change.konva').join(SPACE);\n this.on(depsString, () => {\n this._clearCache(name);\n });\n this._attachedDepsListeners.set(name, true);\n }\n return this._getCache(name, getter);\n }\n _getCanvasCache() {\n return this._cache.get(CANVAS);\n }\n _clearSelfAndDescendantCache(attr) {\n this._clearCache(attr);\n if (attr === ABSOLUTE_TRANSFORM) {\n this.fire('absoluteTransformChange');\n }\n }\n clearCache() {\n if (this._cache.has(CANVAS)) {\n const { scene, filter, hit } = this._cache.get(CANVAS);\n Util_1.Util.releaseCanvas(scene, filter, hit);\n this._cache.delete(CANVAS);\n }\n this._clearSelfAndDescendantCache();\n this._requestDraw();\n return this;\n }\n cache(config) {\n const conf = config || {};\n let rect = {};\n if (conf.x === undefined ||\n conf.y === undefined ||\n conf.width === undefined ||\n conf.height === undefined) {\n rect = this.getClientRect({\n skipTransform: true,\n relativeTo: this.getParent() || undefined,\n });\n }\n let width = Math.ceil(conf.width || rect.width), height = Math.ceil(conf.height || rect.height), pixelRatio = conf.pixelRatio, x = conf.x === undefined ? Math.floor(rect.x) : conf.x, y = conf.y === undefined ? Math.floor(rect.y) : conf.y, offset = conf.offset || 0, drawBorder = conf.drawBorder || false, hitCanvasPixelRatio = conf.hitCanvasPixelRatio || 1;\n if (!width || !height) {\n Util_1.Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');\n return;\n }\n const extraPaddingX = Math.abs(Math.round(rect.x) - x) > 0.5 ? 1 : 0;\n const extraPaddingY = Math.abs(Math.round(rect.y) - y) > 0.5 ? 1 : 0;\n width += offset * 2 + extraPaddingX;\n height += offset * 2 + extraPaddingY;\n x -= offset;\n y -= offset;\n const cachedSceneCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height,\n }), cachedFilterCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: 0,\n height: 0,\n willReadFrequently: true,\n }), cachedHitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: hitCanvasPixelRatio,\n width: width,\n height: height,\n }), sceneContext = cachedSceneCanvas.getContext(), hitContext = cachedHitCanvas.getContext();\n cachedHitCanvas.isCache = true;\n cachedSceneCanvas.isCache = true;\n this._cache.delete(CANVAS);\n this._filterUpToDate = false;\n if (conf.imageSmoothingEnabled === false) {\n cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;\n }\n sceneContext.save();\n hitContext.save();\n sceneContext.translate(-x, -y);\n hitContext.translate(-x, -y);\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this);\n this.drawHit(cachedHitCanvas, this);\n this._isUnderCache = false;\n sceneContext.restore();\n hitContext.restore();\n if (drawBorder) {\n sceneContext.save();\n sceneContext.beginPath();\n sceneContext.rect(0, 0, width, height);\n sceneContext.closePath();\n sceneContext.setAttr('strokeStyle', 'red');\n sceneContext.setAttr('lineWidth', 5);\n sceneContext.stroke();\n sceneContext.restore();\n }\n this._cache.set(CANVAS, {\n scene: cachedSceneCanvas,\n filter: cachedFilterCanvas,\n hit: cachedHitCanvas,\n x: x,\n y: y,\n });\n this._requestDraw();\n return this;\n }\n isCached() {\n return this._cache.has(CANVAS);\n }\n getClientRect(config) {\n throw new Error('abstract \"getClientRect\" method call');\n }\n _transformedRect(rect, top) {\n const points = [\n { x: rect.x, y: rect.y },\n { x: rect.x + rect.width, y: rect.y },\n { x: rect.x + rect.width, y: rect.y + rect.height },\n { x: rect.x, y: rect.y + rect.height },\n ];\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n const trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n const transformed = trans.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n _drawCachedSceneCanvas(context) {\n context.save();\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n const canvasCache = this._getCanvasCache();\n context.translate(canvasCache.x, canvasCache.y);\n const cacheCanvas = this._getCachedSceneCanvas();\n const ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n }\n _drawCachedHitCanvas(context) {\n const canvasCache = this._getCanvasCache(), hitCanvas = canvasCache.hit;\n context.save();\n context.translate(canvasCache.x, canvasCache.y);\n context.drawImage(hitCanvas._canvas, 0, 0, hitCanvas.width / hitCanvas.pixelRatio, hitCanvas.height / hitCanvas.pixelRatio);\n context.restore();\n }\n _getCachedSceneCanvas() {\n let filters = this.filters(), cachedCanvas = this._getCanvasCache(), sceneCanvas = cachedCanvas.scene, filterCanvas = cachedCanvas.filter, filterContext = filterCanvas.getContext(), len, imageData, n, filter;\n if (filters) {\n if (!this._filterUpToDate) {\n const ratio = sceneCanvas.pixelRatio;\n filterCanvas.setSize(sceneCanvas.width / sceneCanvas.pixelRatio, sceneCanvas.height / sceneCanvas.pixelRatio);\n try {\n len = filters.length;\n filterContext.clear();\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());\n for (n = 0; n < len; n++) {\n filter = filters[n];\n if (typeof filter !== 'function') {\n Util_1.Util.error('Filter should be type of function, but got ' +\n typeof filter +\n ' instead. Please check correct filters');\n continue;\n }\n filter.call(this, imageData);\n filterContext.putImageData(imageData, 0, 0);\n }\n }\n catch (e) {\n Util_1.Util.error('Unable to apply filter. ' +\n e.message +\n ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n }\n this._filterUpToDate = true;\n }\n return filterCanvas;\n }\n return sceneCanvas;\n }\n on(evtStr, handler) {\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (arguments.length === 3) {\n return this._delegate.apply(this, arguments);\n }\n let events = evtStr.split(SPACE), len = events.length, n, event, parts, baseEvent, name;\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({\n name: name,\n handler: handler,\n });\n }\n return this;\n }\n off(evtStr, callback) {\n let events = (evtStr || '').split(SPACE), len = events.length, n, t, event, parts, baseEvent, name;\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (!evtStr) {\n for (t in this.eventListeners) {\n this._off(t);\n }\n }\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1];\n if (baseEvent) {\n if (this.eventListeners[baseEvent]) {\n this._off(baseEvent, name, callback);\n }\n }\n else {\n for (t in this.eventListeners) {\n this._off(t, name, callback);\n }\n }\n }\n return this;\n }\n dispatchEvent(evt) {\n const e = {\n target: this,\n type: evt.type,\n evt: evt,\n };\n this.fire(evt.type, e);\n return this;\n }\n addEventListener(type, handler) {\n this.on(type, function (evt) {\n handler.call(this, evt.evt);\n });\n return this;\n }\n removeEventListener(type) {\n this.off(type);\n return this;\n }\n _delegate(event, selector, handler) {\n const stopNode = this;\n this.on(event, function (evt) {\n const targets = evt.target.findAncestors(selector, true, stopNode);\n for (let i = 0; i < targets.length; i++) {\n evt = Util_1.Util.cloneObject(evt);\n evt.currentTarget = targets[i];\n handler.call(targets[i], evt);\n }\n });\n }\n remove() {\n if (this.isDragging()) {\n this.stopDrag();\n }\n DragAndDrop_1.DD._dragElements.delete(this._id);\n this._remove();\n return this;\n }\n _clearCaches() {\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this._clearSelfAndDescendantCache(STAGE);\n this._clearSelfAndDescendantCache(VISIBLE);\n this._clearSelfAndDescendantCache(LISTENING);\n }\n _remove() {\n this._clearCaches();\n const parent = this.getParent();\n if (parent && parent.children) {\n parent.children.splice(this.index, 1);\n parent._setChildrenIndices();\n this.parent = null;\n }\n }\n destroy() {\n this.remove();\n this.clearCache();\n return this;\n }\n getAttr(attr) {\n const method = 'get' + Util_1.Util._capitalize(attr);\n if (Util_1.Util._isFunction(this[method])) {\n return this[method]();\n }\n return this.attrs[attr];\n }\n getAncestors() {\n let parent = this.getParent(), ancestors = [];\n while (parent) {\n ancestors.push(parent);\n parent = parent.getParent();\n }\n return ancestors;\n }\n getAttrs() {\n return (this.attrs || {});\n }\n setAttrs(config) {\n this._batchTransformChanges(() => {\n let key, method;\n if (!config) {\n return this;\n }\n for (key in config) {\n if (key === CHILDREN) {\n continue;\n }\n method = SET + Util_1.Util._capitalize(key);\n if (Util_1.Util._isFunction(this[method])) {\n this[method](config[key]);\n }\n else {\n this._setAttr(key, config[key]);\n }\n }\n });\n return this;\n }\n isListening() {\n return this._getCache(LISTENING, this._isListening);\n }\n _isListening(relativeTo) {\n const listening = this.listening();\n if (!listening) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isListening(relativeTo);\n }\n else {\n return true;\n }\n }\n isVisible() {\n return this._getCache(VISIBLE, this._isVisible);\n }\n _isVisible(relativeTo) {\n const visible = this.visible();\n if (!visible) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isVisible(relativeTo);\n }\n else {\n return true;\n }\n }\n shouldDrawHit(top, skipDragCheck = false) {\n if (top) {\n return this._isVisible(top) && this._isListening(top);\n }\n const layer = this.getLayer();\n let layerUnderDrag = false;\n DragAndDrop_1.DD._dragElements.forEach((elem) => {\n if (elem.dragStatus !== 'dragging') {\n return;\n }\n else if (elem.node.nodeType === 'Stage') {\n layerUnderDrag = true;\n }\n else if (elem.node.getLayer() === layer) {\n layerUnderDrag = true;\n }\n });\n const dragSkip = !skipDragCheck &&\n !Global_1.Konva.hitOnDragEnabled &&\n (layerUnderDrag || Global_1.Konva.isTransforming());\n return this.isListening() && this.isVisible() && !dragSkip;\n }\n show() {\n this.visible(true);\n return this;\n }\n hide() {\n this.visible(false);\n return this;\n }\n getZIndex() {\n return this.index || 0;\n }\n getAbsoluteZIndex() {\n let depth = this.getDepth(), that = this, index = 0, nodes, len, n, child;\n function addChildren(children) {\n nodes = [];\n len = children.length;\n for (n = 0; n < len; n++) {\n child = children[n];\n index++;\n if (child.nodeType !== SHAPE) {\n nodes = nodes.concat(child.getChildren().slice());\n }\n if (child._id === that._id) {\n n = len;\n }\n }\n if (nodes.length > 0 && nodes[0].getDepth() <= depth) {\n addChildren(nodes);\n }\n }\n const stage = this.getStage();\n if (that.nodeType !== UPPER_STAGE && stage) {\n addChildren(stage.getChildren());\n }\n return index;\n }\n getDepth() {\n let depth = 0, parent = this.parent;\n while (parent) {\n depth++;\n parent = parent.parent;\n }\n return depth;\n }\n _batchTransformChanges(func) {\n this._batchingTransformChange = true;\n func();\n this._batchingTransformChange = false;\n if (this._needClearTransformCache) {\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n }\n this._needClearTransformCache = false;\n }\n setPosition(pos) {\n this._batchTransformChanges(() => {\n this.x(pos.x);\n this.y(pos.y);\n });\n return this;\n }\n getPosition() {\n return {\n x: this.x(),\n y: this.y(),\n };\n }\n getRelativePointerPosition() {\n const stage = this.getStage();\n if (!stage) {\n return null;\n }\n const pos = stage.getPointerPosition();\n if (!pos) {\n return null;\n }\n const transform = this.getAbsoluteTransform().copy();\n transform.invert();\n return transform.point(pos);\n }\n getAbsolutePosition(top) {\n let haveCachedParent = false;\n let parent = this.parent;\n while (parent) {\n if (parent.isCached()) {\n haveCachedParent = true;\n break;\n }\n parent = parent.parent;\n }\n if (haveCachedParent && !top) {\n top = true;\n }\n const absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(), absoluteTransform = new Util_1.Transform(), offset = this.offset();\n absoluteTransform.m = absoluteMatrix.slice();\n absoluteTransform.translate(offset.x, offset.y);\n return absoluteTransform.getTranslation();\n }\n setAbsolutePosition(pos) {\n const { x, y, ...origTrans } = this._clearTransform();\n this.attrs.x = x;\n this.attrs.y = y;\n this._clearCache(TRANSFORM);\n const it = this._getAbsoluteTransform().copy();\n it.invert();\n it.translate(pos.x, pos.y);\n pos = {\n x: this.attrs.x + it.getTranslation().x,\n y: this.attrs.y + it.getTranslation().y,\n };\n this._setTransform(origTrans);\n this.setPosition({ x: pos.x, y: pos.y });\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n return this;\n }\n _setTransform(trans) {\n let key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n }\n _clearTransform() {\n const trans = {\n x: this.x(),\n y: this.y(),\n rotation: this.rotation(),\n scaleX: this.scaleX(),\n scaleY: this.scaleY(),\n offsetX: this.offsetX(),\n offsetY: this.offsetY(),\n skewX: this.skewX(),\n skewY: this.skewY(),\n };\n this.attrs.x = 0;\n this.attrs.y = 0;\n this.attrs.rotation = 0;\n this.attrs.scaleX = 1;\n this.attrs.scaleY = 1;\n this.attrs.offsetX = 0;\n this.attrs.offsetY = 0;\n this.attrs.skewX = 0;\n this.attrs.skewY = 0;\n return trans;\n }\n move(change) {\n let changeX = change.x, changeY = change.y, x = this.x(), y = this.y();\n if (changeX !== undefined) {\n x += changeX;\n }\n if (changeY !== undefined) {\n y += changeY;\n }\n this.setPosition({ x: x, y: y });\n return this;\n }\n _eachAncestorReverse(func, top) {\n let family = [], parent = this.getParent(), len, n;\n if (top && top._id === this._id) {\n return;\n }\n family.unshift(this);\n while (parent && (!top || parent._id !== top._id)) {\n family.unshift(parent);\n parent = parent.parent;\n }\n len = family.length;\n for (n = 0; n < len; n++) {\n func(family[n]);\n }\n }\n rotate(theta) {\n this.rotation(this.rotation() + theta);\n return this;\n }\n moveToTop() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToTop function is ignored.');\n return false;\n }\n const index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.push(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveUp() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveUp function is ignored.');\n return false;\n }\n const index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index + 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveDown() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveDown function is ignored.');\n return false;\n }\n const index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index - 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToBottom function is ignored.');\n return false;\n }\n const index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.unshift(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n setZIndex(zIndex) {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. zIndex parameter is ignored.');\n return this;\n }\n if (zIndex < 0 || zIndex >= this.parent.children.length) {\n Util_1.Util.warn('Unexpected value ' +\n zIndex +\n ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +\n (this.parent.children.length - 1) +\n '.');\n }\n const index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.splice(zIndex, 0, this);\n this.parent._setChildrenIndices();\n return this;\n }\n getAbsoluteOpacity() {\n return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);\n }\n _getAbsoluteOpacity() {\n let absOpacity = this.opacity();\n const parent = this.getParent();\n if (parent && !parent._isUnderCache) {\n absOpacity *= parent.getAbsoluteOpacity();\n }\n return absOpacity;\n }\n moveTo(newContainer) {\n if (this.getParent() !== newContainer) {\n this._remove();\n newContainer.add(this);\n }\n return this;\n }\n toObject() {\n let attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;\n const obj = {\n attrs: {},\n className: this.getClassName(),\n };\n for (key in attrs) {\n val = attrs[key];\n nonPlainObject =\n Util_1.Util.isObject(val) && !Util_1.Util._isPlainObject(val) && !Util_1.Util._isArray(val);\n if (nonPlainObject) {\n continue;\n }\n getter = typeof this[key] === 'function' && this[key];\n delete attrs[key];\n defaultValue = getter ? getter.call(this) : null;\n attrs[key] = val;\n if (defaultValue !== val) {\n obj.attrs[key] = val;\n }\n }\n return Util_1.Util._prepareToStringify(obj);\n }\n toJSON() {\n return JSON.stringify(this.toObject());\n }\n getParent() {\n return this.parent;\n }\n findAncestors(selector, includeSelf, stopNode) {\n const res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n let ancestor = this.parent;\n while (ancestor) {\n if (ancestor === stopNode) {\n return res;\n }\n if (ancestor._isMatch(selector)) {\n res.push(ancestor);\n }\n ancestor = ancestor.parent;\n }\n return res;\n }\n isAncestorOf(node) {\n return false;\n }\n findAncestor(selector, includeSelf, stopNode) {\n return this.findAncestors(selector, includeSelf, stopNode)[0];\n }\n _isMatch(selector) {\n if (!selector) {\n return false;\n }\n if (typeof selector === 'function') {\n return selector(this);\n }\n let selectorArr = selector.replace(/ /g, '').split(','), len = selectorArr.length, n, sel;\n for (n = 0; n < len; n++) {\n sel = selectorArr[n];\n if (!Util_1.Util.isValidSelector(sel)) {\n Util_1.Util.warn('Selector \"' +\n sel +\n '\" is invalid. Allowed selectors examples are \"#foo\", \".bar\" or \"Group\".');\n Util_1.Util.warn('If you have a custom shape with such className, please change it to start with upper letter like \"Triangle\".');\n Util_1.Util.warn('Konva is awesome, right?');\n }\n if (sel.charAt(0) === '#') {\n if (this.id() === sel.slice(1)) {\n return true;\n }\n }\n else if (sel.charAt(0) === '.') {\n if (this.hasName(sel.slice(1))) {\n return true;\n }\n }\n else if (this.className === sel || this.nodeType === sel) {\n return true;\n }\n }\n return false;\n }\n getLayer() {\n const parent = this.getParent();\n return parent ? parent.getLayer() : null;\n }\n getStage() {\n return this._getCache(STAGE, this._getStage);\n }\n _getStage() {\n const parent = this.getParent();\n if (parent) {\n return parent.getStage();\n }\n else {\n return null;\n }\n }\n fire(eventType, evt = {}, bubble) {\n evt.target = evt.target || this;\n if (bubble) {\n this._fireAndBubble(eventType, evt);\n }\n else {\n this._fire(eventType, evt);\n }\n return this;\n }\n getAbsoluteTransform(top) {\n if (top) {\n return this._getAbsoluteTransform(top);\n }\n else {\n return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);\n }\n }\n _getAbsoluteTransform(top) {\n let at;\n if (top) {\n at = new Util_1.Transform();\n this._eachAncestorReverse(function (node) {\n const transformsEnabled = node.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(node.getTransform());\n }\n else if (transformsEnabled === 'position') {\n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());\n }\n }, top);\n return at;\n }\n else {\n at = this._cache.get(ABSOLUTE_TRANSFORM) || new Util_1.Transform();\n if (this.parent) {\n this.parent.getAbsoluteTransform().copyInto(at);\n }\n else {\n at.reset();\n }\n const transformsEnabled = this.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(this.getTransform());\n }\n else if (transformsEnabled === 'position') {\n const x = this.attrs.x || 0;\n const y = this.attrs.y || 0;\n const offsetX = this.attrs.offsetX || 0;\n const offsetY = this.attrs.offsetY || 0;\n at.translate(x - offsetX, y - offsetY);\n }\n at.dirty = false;\n return at;\n }\n }\n getAbsoluteScale(top) {\n let parent = this;\n while (parent) {\n if (parent._isUnderCache) {\n top = parent;\n }\n parent = parent.getParent();\n }\n const transform = this.getAbsoluteTransform(top);\n const attrs = transform.decompose();\n return {\n x: attrs.scaleX,\n y: attrs.scaleY,\n };\n }\n getAbsoluteRotation() {\n return this.getAbsoluteTransform().decompose().rotation;\n }\n getTransform() {\n return this._getCache(TRANSFORM, this._getTransform);\n }\n _getTransform() {\n var _a, _b;\n const m = this._cache.get(TRANSFORM) || new Util_1.Transform();\n m.reset();\n const x = this.x(), y = this.y(), rotation = Global_1.Konva.getAngle(this.rotation()), scaleX = (_a = this.attrs.scaleX) !== null && _a !== void 0 ? _a : 1, scaleY = (_b = this.attrs.scaleY) !== null && _b !== void 0 ? _b : 1, skewX = this.attrs.skewX || 0, skewY = this.attrs.skewY || 0, offsetX = this.attrs.offsetX || 0, offsetY = this.attrs.offsetY || 0;\n if (x !== 0 || y !== 0) {\n m.translate(x, y);\n }\n if (rotation !== 0) {\n m.rotate(rotation);\n }\n if (skewX !== 0 || skewY !== 0) {\n m.skew(skewX, skewY);\n }\n if (scaleX !== 1 || scaleY !== 1) {\n m.scale(scaleX, scaleY);\n }\n if (offsetX !== 0 || offsetY !== 0) {\n m.translate(-1 * offsetX, -1 * offsetY);\n }\n m.dirty = false;\n return m;\n }\n clone(obj) {\n let attrs = Util_1.Util.cloneObject(this.attrs), key, allListeners, len, n, listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n const node = new this.constructor(attrs);\n for (key in this.eventListeners) {\n allListeners = this.eventListeners[key];\n len = allListeners.length;\n for (n = 0; n < len; n++) {\n listener = allListeners[n];\n if (listener.name.indexOf(KONVA) < 0) {\n if (!node.eventListeners[key]) {\n node.eventListeners[key] = [];\n }\n node.eventListeners[key].push(listener);\n }\n }\n }\n return node;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n const box = this.getClientRect();\n const stage = this.getStage(), x = config.x !== undefined ? config.x : Math.floor(box.x), y = config.y !== undefined ? config.y : Math.floor(box.y), pixelRatio = config.pixelRatio || 1, canvas = new Canvas_1.SceneCanvas({\n width: config.width || Math.ceil(box.width) || (stage ? stage.width() : 0),\n height: config.height ||\n Math.ceil(box.height) ||\n (stage ? stage.height() : 0),\n pixelRatio: pixelRatio,\n }), context = canvas.getContext();\n const bufferCanvas = new Canvas_1.SceneCanvas({\n width: canvas.width / canvas.pixelRatio + Math.abs(x),\n height: canvas.height / canvas.pixelRatio + Math.abs(y),\n pixelRatio: canvas.pixelRatio,\n });\n if (config.imageSmoothingEnabled === false) {\n context._context.imageSmoothingEnabled = false;\n }\n context.save();\n if (x || y) {\n context.translate(-1 * x, -1 * y);\n }\n this.drawScene(canvas, undefined, bufferCanvas);\n context.restore();\n return canvas;\n }\n toCanvas(config) {\n return this._toKonvaCanvas(config)._canvas;\n }\n toDataURL(config) {\n config = config || {};\n const mimeType = config.mimeType || null, quality = config.quality || null;\n const url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);\n if (config.callback) {\n config.callback(url);\n }\n return url;\n }\n toImage(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n Util_1.Util._urlToImage(this.toDataURL(config), function (img) {\n resolve(img);\n callback === null || callback === void 0 ? void 0 : callback(img);\n });\n }\n catch (err) {\n reject(err);\n }\n });\n }\n toBlob(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n this.toCanvas(config).toBlob((blob) => {\n resolve(blob);\n callback === null || callback === void 0 ? void 0 : callback(blob);\n }, config === null || config === void 0 ? void 0 : config.mimeType, config === null || config === void 0 ? void 0 : config.quality);\n }\n catch (err) {\n reject(err);\n }\n });\n }\n setSize(size) {\n this.width(size.width);\n this.height(size.height);\n return this;\n }\n getSize() {\n return {\n width: this.width(),\n height: this.height(),\n };\n }\n getClassName() {\n return this.className || this.nodeType;\n }\n getType() {\n return this.nodeType;\n }\n getDragDistance() {\n if (this.attrs.dragDistance !== undefined) {\n return this.attrs.dragDistance;\n }\n else if (this.parent) {\n return this.parent.getDragDistance();\n }\n else {\n return Global_1.Konva.dragDistance;\n }\n }\n _off(type, name, callback) {\n let evtListeners = this.eventListeners[type], i, evtName, handler;\n for (i = 0; i < evtListeners.length; i++) {\n evtName = evtListeners[i].name;\n handler = evtListeners[i].handler;\n if ((evtName !== 'konva' || name === 'konva') &&\n (!name || evtName === name) &&\n (!callback || callback === handler)) {\n evtListeners.splice(i, 1);\n if (evtListeners.length === 0) {\n delete this.eventListeners[type];\n break;\n }\n i--;\n }\n }\n }\n _fireChangeEvent(attr, oldVal, newVal) {\n this._fire(attr + CHANGE, {\n oldVal: oldVal,\n newVal: newVal,\n });\n }\n addName(name) {\n if (!this.hasName(name)) {\n const oldName = this.name();\n const newName = oldName ? oldName + ' ' + name : name;\n this.name(newName);\n }\n return this;\n }\n hasName(name) {\n if (!name) {\n return false;\n }\n const fullName = this.name();\n if (!fullName) {\n return false;\n }\n const names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n }\n removeName(name) {\n const names = (this.name() || '').split(/\\s/g);\n const index = names.indexOf(name);\n if (index !== -1) {\n names.splice(index, 1);\n this.name(names.join(' '));\n }\n return this;\n }\n setAttr(attr, val) {\n const func = this[SET + Util_1.Util._capitalize(attr)];\n if (Util_1.Util._isFunction(func)) {\n func.call(this, val);\n }\n else {\n this._setAttr(attr, val);\n }\n return this;\n }\n _requestDraw() {\n if (Global_1.Konva.autoDrawEnabled) {\n const drawNode = this.getLayer() || this.getStage();\n drawNode === null || drawNode === void 0 ? void 0 : drawNode.batchDraw();\n }\n }\n _setAttr(key, val) {\n const oldVal = this.attrs[key];\n if (oldVal === val && !Util_1.Util.isObject(val)) {\n return;\n }\n if (val === undefined || val === null) {\n delete this.attrs[key];\n }\n else {\n this.attrs[key] = val;\n }\n if (this._shouldFireChangeEvents) {\n this._fireChangeEvent(key, oldVal, val);\n }\n this._requestDraw();\n }\n _setComponentAttr(key, component, val) {\n let oldVal;\n if (val !== undefined) {\n oldVal = this.attrs[key];\n if (!oldVal) {\n this.attrs[key] = this.getAttr(key);\n }\n this.attrs[key][component] = val;\n this._fireChangeEvent(key, oldVal, val);\n }\n }\n _fireAndBubble(eventType, evt, compareShape) {\n if (evt && this.nodeType === SHAPE) {\n evt.target = this;\n }\n const shouldStop = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n ((compareShape &&\n (this === compareShape ||\n (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||\n (this.nodeType === 'Stage' && !compareShape));\n if (!shouldStop) {\n this._fire(eventType, evt);\n const stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n compareShape &&\n compareShape.isAncestorOf &&\n compareShape.isAncestorOf(this) &&\n !compareShape.isAncestorOf(this.parent);\n if (((evt && !evt.cancelBubble) || !evt) &&\n this.parent &&\n this.parent.isListening() &&\n !stopBubble) {\n if (compareShape && compareShape.parent) {\n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);\n }\n else {\n this._fireAndBubble.call(this.parent, eventType, evt);\n }\n }\n }\n }\n _getProtoListeners(eventType) {\n var _a, _b, _c;\n const allListeners = (_a = this._cache.get(ALL_LISTENERS)) !== null && _a !== void 0 ? _a : {};\n let events = allListeners === null || allListeners === void 0 ? void 0 : allListeners[eventType];\n if (events === undefined) {\n events = [];\n let obj = Object.getPrototypeOf(this);\n while (obj) {\n const hierarchyEvents = (_c = (_b = obj.eventListeners) === null || _b === void 0 ? void 0 : _b[eventType]) !== null && _c !== void 0 ? _c : [];\n events.push(...hierarchyEvents);\n obj = Object.getPrototypeOf(obj);\n }\n allListeners[eventType] = events;\n this._cache.set(ALL_LISTENERS, allListeners);\n }\n return events;\n }\n _fire(eventType, evt) {\n evt = evt || {};\n evt.currentTarget = this;\n evt.type = eventType;\n const topListeners = this._getProtoListeners(eventType);\n if (topListeners) {\n for (var i = 0; i < topListeners.length; i++) {\n topListeners[i].handler.call(this, evt);\n }\n }\n const selfListeners = this.eventListeners[eventType];\n if (selfListeners) {\n for (var i = 0; i < selfListeners.length; i++) {\n selfListeners[i].handler.call(this, evt);\n }\n }\n }\n draw() {\n this.drawScene();\n this.drawHit();\n return this;\n }\n _createDragElement(evt) {\n const pointerId = evt ? evt.pointerId : undefined;\n const stage = this.getStage();\n const ap = this.getAbsolutePosition();\n if (!stage) {\n return;\n }\n const pos = stage._getPointerById(pointerId) ||\n stage._changedPointerPositions[0] ||\n ap;\n DragAndDrop_1.DD._dragElements.set(this._id, {\n node: this,\n startPointerPos: pos,\n offset: {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n },\n dragStatus: 'ready',\n pointerId,\n });\n }\n startDrag(evt, bubbleEvent = true) {\n if (!DragAndDrop_1.DD._dragElements.has(this._id)) {\n this._createDragElement(evt);\n }\n const elem = DragAndDrop_1.DD._dragElements.get(this._id);\n elem.dragStatus = 'dragging';\n this.fire('dragstart', {\n type: 'dragstart',\n target: this,\n evt: evt && evt.evt,\n }, bubbleEvent);\n }\n _setDragPosition(evt, elem) {\n const pos = this.getStage()._getPointerById(elem.pointerId);\n if (!pos) {\n return;\n }\n let newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y,\n };\n const dbf = this.dragBoundFunc();\n if (dbf !== undefined) {\n const bounded = dbf.call(this, newNodePos, evt);\n if (!bounded) {\n Util_1.Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');\n }\n else {\n newNodePos = bounded;\n }\n }\n if (!this._lastPos ||\n this._lastPos.x !== newNodePos.x ||\n this._lastPos.y !== newNodePos.y) {\n this.setAbsolutePosition(newNodePos);\n this._requestDraw();\n }\n this._lastPos = newNodePos;\n }\n stopDrag(evt) {\n const elem = DragAndDrop_1.DD._dragElements.get(this._id);\n if (elem) {\n elem.dragStatus = 'stopped';\n }\n DragAndDrop_1.DD._endDragBefore(evt);\n DragAndDrop_1.DD._endDragAfter(evt);\n }\n setDraggable(draggable) {\n this._setAttr('draggable', draggable);\n this._dragChange();\n }\n isDragging() {\n const elem = DragAndDrop_1.DD._dragElements.get(this._id);\n return elem ? elem.dragStatus === 'dragging' : false;\n }\n _listenDrag() {\n this._dragCleanup();\n this.on('mousedown.konva touchstart.konva', function (evt) {\n const shouldCheckButton = evt.evt['button'] !== undefined;\n const canDrag = !shouldCheckButton || Global_1.Konva.dragButtons.indexOf(evt.evt['button']) >= 0;\n if (!canDrag) {\n return;\n }\n if (this.isDragging()) {\n return;\n }\n let hasDraggingChild = false;\n DragAndDrop_1.DD._dragElements.forEach((elem) => {\n if (this.isAncestorOf(elem.node)) {\n hasDraggingChild = true;\n }\n });\n if (!hasDraggingChild) {\n this._createDragElement(evt);\n }\n });\n }\n _dragChange() {\n if (this.attrs.draggable) {\n this._listenDrag();\n }\n else {\n this._dragCleanup();\n const stage = this.getStage();\n if (!stage) {\n return;\n }\n const dragElement = DragAndDrop_1.DD._dragElements.get(this._id);\n const isDragging = dragElement && dragElement.dragStatus === 'dragging';\n const isReady = dragElement && dragElement.dragStatus === 'ready';\n if (isDragging) {\n this.stopDrag();\n }\n else if (isReady) {\n DragAndDrop_1.DD._dragElements.delete(this._id);\n }\n }\n }\n _dragCleanup() {\n this.off('mousedown.konva');\n this.off('touchstart.konva');\n }\n isClientRectOnScreen(margin = { x: 0, y: 0 }) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const screenRect = {\n x: -margin.x,\n y: -margin.y,\n width: stage.width() + 2 * margin.x,\n height: stage.height() + 2 * margin.y,\n };\n return Util_1.Util.haveIntersection(screenRect, this.getClientRect());\n }\n static create(data, container) {\n if (Util_1.Util._isString(data)) {\n data = JSON.parse(data);\n }\n return this._createNode(data, container);\n }\n static _createNode(obj, container) {\n let className = Node.prototype.getClassName.call(obj), children = obj.children, no, len, n;\n if (container) {\n obj.attrs.container = container;\n }\n if (!Global_1.Konva[className]) {\n Util_1.Util.warn('Can not find a node with class name \"' +\n className +\n '\". Fallback to \"Shape\".');\n className = 'Shape';\n }\n const Class = Global_1.Konva[className];\n no = new Class(obj.attrs);\n if (children) {\n len = children.length;\n for (n = 0; n < len; n++) {\n no.add(Node._createNode(children[n]));\n }\n }\n return no;\n }\n}\nexports.Node = Node;\nNode.prototype.nodeType = 'Node';\nNode.prototype._attrsAffectingSize = [];\nNode.prototype.eventListeners = {};\nNode.prototype.on.call(Node.prototype, TRANSFORM_CHANGE_STR, function () {\n if (this._batchingTransformChange) {\n this._needClearTransformCache = true;\n return;\n }\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n});\nNode.prototype.on.call(Node.prototype, 'visibleChange.konva', function () {\n this._clearSelfAndDescendantCache(VISIBLE);\n});\nNode.prototype.on.call(Node.prototype, 'listeningChange.konva', function () {\n this._clearSelfAndDescendantCache(LISTENING);\n});\nNode.prototype.on.call(Node.prototype, 'opacityChange.konva', function () {\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n});\nconst addGetterSetter = Factory_1.Factory.addGetterSetter;\naddGetterSetter(Node, 'zIndex');\naddGetterSetter(Node, 'absolutePosition');\naddGetterSetter(Node, 'position');\naddGetterSetter(Node, 'x', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'y', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'globalCompositeOperation', 'source-over', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'opacity', 1, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'name', '', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'id', '', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'rotation', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);\naddGetterSetter(Node, 'scaleX', 1, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'scaleY', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);\naddGetterSetter(Node, 'skewX', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'skewY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);\naddGetterSetter(Node, 'offsetX', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'offsetY', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'dragDistance', undefined, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'width', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'height', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'listening', true, (0, Validators_1.getBooleanValidator)());\naddGetterSetter(Node, 'preventDefault', true, (0, Validators_1.getBooleanValidator)());\naddGetterSetter(Node, 'filters', undefined, function (val) {\n this._filterUpToDate = false;\n return val;\n});\naddGetterSetter(Node, 'visible', true, (0, Validators_1.getBooleanValidator)());\naddGetterSetter(Node, 'transformsEnabled', 'all', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'size');\naddGetterSetter(Node, 'dragBoundFunc');\naddGetterSetter(Node, 'draggable', false, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.backCompat(Node, {\n rotateDeg: 'rotate',\n setRotationDeg: 'setRotation',\n getRotationDeg: 'getRotation',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Container = void 0;\nconst Factory_1 = require(\"./Factory\");\nconst Node_1 = require(\"./Node\");\nconst Validators_1 = require(\"./Validators\");\nclass Container extends Node_1.Node {\n constructor() {\n super(...arguments);\n this.children = [];\n }\n getChildren(filterFunc) {\n if (!filterFunc) {\n return this.children || [];\n }\n const children = this.children || [];\n const results = [];\n children.forEach(function (child) {\n if (filterFunc(child)) {\n results.push(child);\n }\n });\n return results;\n }\n hasChildren() {\n return this.getChildren().length > 0;\n }\n removeChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.remove();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n destroyChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.destroy();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n add(...children) {\n if (children.length === 0) {\n return this;\n }\n if (children.length > 1) {\n for (let i = 0; i < children.length; i++) {\n this.add(children[i]);\n }\n return this;\n }\n const child = children[0];\n if (child.getParent()) {\n child.moveTo(this);\n return this;\n }\n this._validateAdd(child);\n child.index = this.getChildren().length;\n child.parent = this;\n child._clearCaches();\n this.getChildren().push(child);\n this._fire('add', {\n child: child,\n });\n this._requestDraw();\n return this;\n }\n destroy() {\n if (this.hasChildren()) {\n this.destroyChildren();\n }\n super.destroy();\n return this;\n }\n find(selector) {\n return this._generalFind(selector, false);\n }\n findOne(selector) {\n const result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n }\n _generalFind(selector, findOne) {\n const retArr = [];\n this._descendants((node) => {\n const valid = node._isMatch(selector);\n if (valid) {\n retArr.push(node);\n }\n if (valid && findOne) {\n return true;\n }\n return false;\n });\n return retArr;\n }\n _descendants(fn) {\n let shouldStop = false;\n const children = this.getChildren();\n for (const child of children) {\n shouldStop = fn(child);\n if (shouldStop) {\n return true;\n }\n if (!child.hasChildren()) {\n continue;\n }\n shouldStop = child._descendants(fn);\n if (shouldStop) {\n return true;\n }\n }\n return false;\n }\n toObject() {\n const obj = Node_1.Node.prototype.toObject.call(this);\n obj.children = [];\n this.getChildren().forEach((child) => {\n obj.children.push(child.toObject());\n });\n return obj;\n }\n isAncestorOf(node) {\n let parent = node.getParent();\n while (parent) {\n if (parent._id === this._id) {\n return true;\n }\n parent = parent.getParent();\n }\n return false;\n }\n clone(obj) {\n const node = Node_1.Node.prototype.clone.call(this, obj);\n this.getChildren().forEach(function (no) {\n node.add(no.clone());\n });\n return node;\n }\n getAllIntersections(pos) {\n const arr = [];\n this.find('Shape').forEach((shape) => {\n if (shape.isVisible() && shape.intersects(pos)) {\n arr.push(shape);\n }\n });\n return arr;\n }\n _clearSelfAndDescendantCache(attr) {\n var _a;\n super._clearSelfAndDescendantCache(attr);\n if (this.isCached()) {\n return;\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (node) {\n node._clearSelfAndDescendantCache(attr);\n });\n }\n _setChildrenIndices() {\n var _a;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child, n) {\n child.index = n;\n });\n this._requestDraw();\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n const caching = canvas && canvas.isCache;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedSceneCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawScene', canvas, top, bufferCanvas);\n }\n return this;\n }\n drawHit(can, top) {\n if (!this.shouldDrawHit(top)) {\n return this;\n }\n const layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (cachedHitCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawHit', canvas, top);\n }\n return this;\n }\n _drawChildren(drawMethod, canvas, top, bufferCanvas) {\n var _a;\n const context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (typeof clipWidth === 'number' && typeof clipHeight === 'number') ||\n clipFunc;\n const selfCache = top === this;\n if (hasClip) {\n context.save();\n const transform = this.getAbsoluteTransform(top);\n let m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n let clipArgs;\n if (clipFunc) {\n clipArgs = clipFunc.call(this, context, this);\n }\n else {\n const clipX = this.clipX();\n const clipY = this.clipY();\n context.rect(clipX || 0, clipY || 0, clipWidth, clipHeight);\n }\n context.clip.apply(context, clipArgs);\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n const hasComposition = !selfCache &&\n this.globalCompositeOperation() !== 'source-over' &&\n drawMethod === 'drawScene';\n if (hasComposition) {\n context.save();\n context._applyGlobalCompositeOperation(this);\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n child[drawMethod](canvas, top, bufferCanvas);\n });\n if (hasComposition) {\n context.restore();\n }\n if (hasClip) {\n context.restore();\n }\n }\n getClientRect(config = {}) {\n var _a;\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo;\n let minX, minY, maxX, maxY;\n let selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0,\n };\n const that = this;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n if (!child.visible()) {\n return;\n }\n const rect = child.getClientRect({\n relativeTo: that,\n skipShadow: config.skipShadow,\n skipStroke: config.skipStroke,\n });\n if (rect.width === 0 && rect.height === 0) {\n return;\n }\n if (minX === undefined) {\n minX = rect.x;\n minY = rect.y;\n maxX = rect.x + rect.width;\n maxY = rect.y + rect.height;\n }\n else {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n });\n const shapes = this.find('Shape');\n let hasVisible = false;\n for (let i = 0; i < shapes.length; i++) {\n const shape = shapes[i];\n if (shape._isVisible(this)) {\n hasVisible = true;\n break;\n }\n }\n if (hasVisible && minX !== undefined) {\n selfRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n else {\n selfRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n if (!skipTransform) {\n return this._transformedRect(selfRect, relativeTo);\n }\n return selfRect;\n }\n}\nexports.Container = Container;\nFactory_1.Factory.addComponentsGetterSetter(Container, 'clip', [\n 'x',\n 'y',\n 'width',\n 'height',\n]);\nFactory_1.Factory.addGetterSetter(Container, 'clipX', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipY', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipWidth', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipHeight', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipFunc');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCapturedShape = getCapturedShape;\nexports.createEvent = createEvent;\nexports.hasPointerCapture = hasPointerCapture;\nexports.setPointerCapture = setPointerCapture;\nexports.releaseCapture = releaseCapture;\nconst Global_1 = require(\"./Global\");\nconst Captures = new Map();\nconst SUPPORT_POINTER_EVENTS = Global_1.Konva._global['PointerEvent'] !== undefined;\nfunction getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nfunction createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nfunction hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nfunction setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n const stage = shape.getStage();\n if (!stage)\n return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nfunction releaseCapture(pointerId, target) {\n const shape = Captures.get(pointerId);\n if (!shape)\n return;\n const stage = shape.getStage();\n if (stage && stage.content) {\n }\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Shape = exports.shapes = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Node_1 = require(\"./Node\");\nconst Validators_1 = require(\"./Validators\");\nconst Global_2 = require(\"./Global\");\nconst PointerEvents = require(\"./PointerEvents\");\nconst HAS_SHADOW = 'hasShadow';\nconst SHADOW_RGBA = 'shadowRGBA';\nconst patternImage = 'patternImage';\nconst linearGradient = 'linearGradient';\nconst radialGradient = 'radialGradient';\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexports.shapes = {};\nfunction _fillFunc(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nclass Shape extends Node_1.Node {\n constructor(config) {\n super(config);\n let key;\n while (true) {\n key = Util_1.Util.getRandomColor();\n if (key && !(key in exports.shapes)) {\n break;\n }\n }\n this.colorKey = key;\n exports.shapes[key] = this;\n }\n getContext() {\n Util_1.Util.warn('shape.getContext() method is deprecated. Please do not use it.');\n return this.getLayer().getContext();\n }\n getCanvas() {\n Util_1.Util.warn('shape.getCanvas() method is deprecated. Please do not use it.');\n return this.getLayer().getCanvas();\n }\n getSceneFunc() {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n }\n getHitFunc() {\n return this.attrs.hitFunc || this['_hitFunc'];\n }\n hasShadow() {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n }\n _hasShadow() {\n return (this.shadowEnabled() &&\n this.shadowOpacity() !== 0 &&\n !!(this.shadowColor() ||\n this.shadowBlur() ||\n this.shadowOffsetX() ||\n this.shadowOffsetY()));\n }\n _getFillPattern() {\n return this._getCache(patternImage, this.__getFillPattern);\n }\n __getFillPattern() {\n if (this.fillPatternImage()) {\n const ctx = getDummyContext();\n const pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n if (pattern && pattern.setTransform) {\n const tr = new Util_1.Transform();\n tr.translate(this.fillPatternX(), this.fillPatternY());\n tr.rotate(Global_1.Konva.getAngle(this.fillPatternRotation()));\n tr.scale(this.fillPatternScaleX(), this.fillPatternScaleY());\n tr.translate(-1 * this.fillPatternOffsetX(), -1 * this.fillPatternOffsetY());\n const m = tr.getMatrix();\n const matrix = typeof DOMMatrix === 'undefined'\n ? {\n a: m[0],\n b: m[1],\n c: m[2],\n d: m[3],\n e: m[4],\n f: m[5],\n }\n : new DOMMatrix(m);\n pattern.setTransform(matrix);\n }\n return pattern;\n }\n }\n _getLinearGradient() {\n return this._getCache(linearGradient, this.__getLinearGradient);\n }\n __getLinearGradient() {\n const colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillLinearGradientStartPoint();\n const end = this.fillLinearGradientEndPoint();\n const grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n _getRadialGradient() {\n return this._getCache(radialGradient, this.__getRadialGradient);\n }\n __getRadialGradient() {\n const colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillRadialGradientStartPoint();\n const end = this.fillRadialGradientEndPoint();\n const grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n getShadowRGBA() {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n }\n _getShadowRGBA() {\n if (!this.hasShadow()) {\n return;\n }\n const rgba = Util_1.Util.colorToRGBA(this.shadowColor());\n if (rgba) {\n return ('rgba(' +\n rgba.r +\n ',' +\n rgba.g +\n ',' +\n rgba.b +\n ',' +\n rgba.a * (this.shadowOpacity() || 1) +\n ')');\n }\n }\n hasFill() {\n return this._calculate('hasFill', [\n 'fillEnabled',\n 'fill',\n 'fillPatternImage',\n 'fillLinearGradientColorStops',\n 'fillRadialGradientColorStops',\n ], () => {\n return (this.fillEnabled() &&\n !!(this.fill() ||\n this.fillPatternImage() ||\n this.fillLinearGradientColorStops() ||\n this.fillRadialGradientColorStops()));\n });\n }\n hasStroke() {\n return this._calculate('hasStroke', [\n 'strokeEnabled',\n 'strokeWidth',\n 'stroke',\n 'strokeLinearGradientColorStops',\n ], () => {\n return (this.strokeEnabled() &&\n this.strokeWidth() &&\n !!(this.stroke() || this.strokeLinearGradientColorStops()));\n });\n }\n hasHitStroke() {\n const width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n }\n intersects(point) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const bufferHitCanvas = stage.bufferHitCanvas;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas, undefined, true);\n const p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n }\n destroy() {\n Node_1.Node.prototype.destroy.call(this);\n delete exports.shapes[this.colorKey];\n delete this.colorKey;\n return this;\n }\n _useBufferCanvas(forceFill) {\n var _a;\n const perfectDrawEnabled = (_a = this.attrs.perfectDrawEnabled) !== null && _a !== void 0 ? _a : true;\n if (!perfectDrawEnabled) {\n return false;\n }\n const hasFill = forceFill || this.hasFill();\n const hasStroke = this.hasStroke();\n const isTransparent = this.getAbsoluteOpacity() !== 1;\n if (hasFill && hasStroke && isTransparent) {\n return true;\n }\n const hasShadow = this.hasShadow();\n const strokeForShadow = this.shadowForStrokeEnabled();\n if (hasFill && hasStroke && hasShadow && strokeForShadow) {\n return true;\n }\n return false;\n }\n setStrokeHitEnabled(val) {\n Util_1.Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n }\n else {\n this.hitStrokeWidth(0);\n }\n }\n getStrokeHitEnabled() {\n if (this.hitStrokeWidth() === 0) {\n return false;\n }\n else {\n return true;\n }\n }\n getSelfRect() {\n const size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height,\n };\n }\n getClientRect(config = {}) {\n let hasCachedParent = false;\n let parent = this.getParent();\n while (parent) {\n if (parent.isCached()) {\n hasCachedParent = true;\n break;\n }\n parent = parent.getParent();\n }\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo || (hasCachedParent && this.getStage()) || undefined;\n const fillRect = this.getSelfRect();\n const applyStroke = !config.skipStroke && this.hasStroke();\n const strokeWidth = (applyStroke && this.strokeWidth()) || 0;\n const fillAndStrokeWidth = fillRect.width + strokeWidth;\n const fillAndStrokeHeight = fillRect.height + strokeWidth;\n const applyShadow = !config.skipShadow && this.hasShadow();\n const shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n const shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n const preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n const preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n const blurRadius = (applyShadow && this.shadowBlur()) || 0;\n const width = preWidth + blurRadius * 2;\n const height = preHeight + blurRadius * 2;\n const rect = {\n width: width,\n height: height,\n x: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetX, 0) +\n fillRect.x,\n y: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetY, 0) +\n fillRect.y,\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer();\n let canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow(), stage, bufferContext;\n const skipBuffer = canvas.isCache;\n const cachingSelf = top === this;\n if (!this.isVisible() && !cachingSelf) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n if (this._useBufferCanvas() && !skipBuffer) {\n stage = this.getStage();\n const bc = bufferCanvas || stage.bufferCanvas;\n bufferContext = bc.getContext();\n bufferContext.clear();\n bufferContext.save();\n bufferContext._applyLineJoin(this);\n var o = this.getAbsoluteTransform(top).getMatrix();\n bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n drawFunc.call(this, bufferContext, this);\n bufferContext.restore();\n const ratio = bc.pixelRatio;\n if (hasShadow) {\n context._applyShadow(this);\n }\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bc._canvas, 0, 0, bc.width / ratio, bc.height / ratio);\n }\n else {\n context._applyLineJoin(this);\n if (!cachingSelf) {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n if (hasShadow) {\n context._applyShadow(this);\n }\n drawFunc.call(this, context, this);\n }\n context.restore();\n return this;\n }\n drawHit(can, top, skipDragCheck = false) {\n if (!this.shouldDrawHit(top, skipDragCheck)) {\n return this;\n }\n const layer = this.getLayer(), canvas = can || layer.hitCanvas, context = canvas && canvas.getContext(), drawFunc = this.hitFunc() || this.sceneFunc(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (!this.colorKey) {\n Util_1.Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()');\n }\n if (cachedHitCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n context._applyLineJoin(this);\n const selfCache = this === top;\n if (!selfCache) {\n const o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n drawFunc.call(this, context, this);\n context.restore();\n return this;\n }\n drawHitFromCache(alphaThreshold = 0) {\n const cachedCanvas = this._getCanvasCache(), sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = cachedCanvas.hit, hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight();\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n const hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n const hitData = hitImageData.data;\n const len = hitData.length;\n const rgbColorKey = Util_1.Util._hexToRgb(this.colorKey);\n for (let i = 0; i < len; i += 4) {\n const alpha = hitData[i + 3];\n if (alpha > alphaThreshold) {\n hitData[i] = rgbColorKey.r;\n hitData[i + 1] = rgbColorKey.g;\n hitData[i + 2] = rgbColorKey.b;\n hitData[i + 3] = 255;\n }\n else {\n hitData[i + 3] = 0;\n }\n }\n hitContext.putImageData(hitImageData, 0, 0);\n }\n catch (e) {\n Util_1.Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);\n }\n return this;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n}\nexports.Shape = Shape;\nShape.prototype._fillFunc = _fillFunc;\nShape.prototype._strokeFunc = _strokeFunc;\nShape.prototype._fillFuncHit = _fillFuncHit;\nShape.prototype._strokeFuncHit = _strokeFuncHit;\nShape.prototype._centroid = false;\nShape.prototype.nodeType = 'Shape';\n(0, Global_2._registerNode)(Shape);\nShape.prototype.eventListeners = {};\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva', _clearFillPatternCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);\nFactory_1.Factory.addGetterSetter(Shape, 'stroke', undefined, (0, Validators_1.getStringOrGradientValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeWidth', 2, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillAfterStrokeEnabled', false);\nFactory_1.Factory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', (0, Validators_1.getNumberOrAutoValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeHitEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'perfectDrawEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'lineJoin');\nFactory_1.Factory.addGetterSetter(Shape, 'lineCap');\nFactory_1.Factory.addGetterSetter(Shape, 'sceneFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'hitFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'dash');\nFactory_1.Factory.addGetterSetter(Shape, 'dashOffset', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowColor', undefined, (0, Validators_1.getStringValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowBlur', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOpacity', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternImage');\nFactory_1.Factory.addGetterSetter(Shape, 'fill', undefined, (0, Validators_1.getStringOrGradientValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');\nFactory_1.Factory.addGetterSetter(Shape, 'fillEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'dashEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeScaleEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPriority', 'color');\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleX', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleY', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRotation', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRule', undefined, (0, Validators_1.getStringValidator)());\nFactory_1.Factory.backCompat(Shape, {\n dashArray: 'dash',\n getDashArray: 'getDash',\n setDashArray: 'getDash',\n drawFunc: 'sceneFunc',\n getDrawFunc: 'getSceneFunc',\n setDrawFunc: 'setSceneFunc',\n drawHitFunc: 'hitFunc',\n getDrawHitFunc: 'getHitFunc',\n setDrawHitFunc: 'setHitFunc',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Layer = void 0;\nconst Util_1 = require(\"./Util\");\nconst Container_1 = require(\"./Container\");\nconst Node_1 = require(\"./Node\");\nconst Factory_1 = require(\"./Factory\");\nconst Canvas_1 = require(\"./Canvas\");\nconst Validators_1 = require(\"./Validators\");\nconst Shape_1 = require(\"./Shape\");\nconst Global_1 = require(\"./Global\");\nconst HASH = '#', BEFORE_DRAW = 'beforeDraw', DRAW = 'draw', INTERSECTION_OFFSETS = [\n { x: 0, y: 0 },\n { x: -1, y: -1 },\n { x: 1, y: -1 },\n { x: 1, y: 1 },\n { x: -1, y: 1 },\n], INTERSECTION_OFFSETS_LEN = INTERSECTION_OFFSETS.length;\nclass Layer extends Container_1.Container {\n constructor(config) {\n super(config);\n this.canvas = new Canvas_1.SceneCanvas();\n this.hitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1,\n });\n this._waitingForDraw = false;\n this.on('visibleChange.konva', this._checkVisibility);\n this._checkVisibility();\n this.on('imageSmoothingEnabledChange.konva', this._setSmoothEnabled);\n this._setSmoothEnabled();\n }\n createPNGStream() {\n const c = this.canvas._canvas;\n return c.createPNGStream();\n }\n getCanvas() {\n return this.canvas;\n }\n getNativeCanvasElement() {\n return this.canvas._canvas;\n }\n getHitCanvas() {\n return this.hitCanvas;\n }\n getContext() {\n return this.getCanvas().getContext();\n }\n clear(bounds) {\n this.getContext().clear(bounds);\n this.getHitCanvas().getContext().clear(bounds);\n return this;\n }\n setZIndex(index) {\n super.setZIndex(index);\n const stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n if (index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n }\n return this;\n }\n moveToTop() {\n Node_1.Node.prototype.moveToTop.call(this);\n const stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveUp() {\n const moved = Node_1.Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n const stage = this.getStage();\n if (!stage || !stage.content) {\n return false;\n }\n stage.content.removeChild(this.getNativeCanvasElement());\n if (this.index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[this.index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveDown() {\n if (Node_1.Node.prototype.moveDown.call(this)) {\n const stage = this.getStage();\n if (stage) {\n const children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[this.index + 1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (Node_1.Node.prototype.moveToBottom.call(this)) {\n const stage = this.getStage();\n if (stage) {\n const children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n getLayer() {\n return this;\n }\n remove() {\n const _canvas = this.getNativeCanvasElement();\n Node_1.Node.prototype.remove.call(this);\n if (_canvas && _canvas.parentNode && Util_1.Util._isInDocument(_canvas)) {\n _canvas.parentNode.removeChild(_canvas);\n }\n return this;\n }\n getStage() {\n return this.parent;\n }\n setSize({ width, height }) {\n this.canvas.setSize(width, height);\n this.hitCanvas.setSize(width, height);\n this._setSmoothEnabled();\n return this;\n }\n _validateAdd(child) {\n const type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to a layer.');\n }\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.width = config.width || this.getWidth();\n config.height = config.height || this.getHeight();\n config.x = config.x !== undefined ? config.x : this.x();\n config.y = config.y !== undefined ? config.y : this.y();\n return Node_1.Node.prototype._toKonvaCanvas.call(this, config);\n }\n _checkVisibility() {\n const visible = this.visible();\n if (visible) {\n this.canvas._canvas.style.display = 'block';\n }\n else {\n this.canvas._canvas.style.display = 'none';\n }\n }\n _setSmoothEnabled() {\n this.getContext()._context.imageSmoothingEnabled =\n this.imageSmoothingEnabled();\n }\n getWidth() {\n if (this.parent) {\n return this.parent.width();\n }\n }\n setWidth() {\n Util_1.Util.warn('Can not change width of layer. Use \"stage.width(value)\" function instead.');\n }\n getHeight() {\n if (this.parent) {\n return this.parent.height();\n }\n }\n setHeight() {\n Util_1.Util.warn('Can not change height of layer. Use \"stage.height(value)\" function instead.');\n }\n batchDraw() {\n if (!this._waitingForDraw) {\n this._waitingForDraw = true;\n Util_1.Util.requestAnimFrame(() => {\n this.draw();\n this._waitingForDraw = false;\n });\n }\n return this;\n }\n getIntersection(pos) {\n if (!this.isListening() || !this.isVisible()) {\n return null;\n }\n let spiralSearchDistance = 1;\n let continueSearch = false;\n while (true) {\n for (let i = 0; i < INTERSECTION_OFFSETS_LEN; i++) {\n const intersectionOffset = INTERSECTION_OFFSETS[i];\n const obj = this._getIntersection({\n x: pos.x + intersectionOffset.x * spiralSearchDistance,\n y: pos.y + intersectionOffset.y * spiralSearchDistance,\n });\n const shape = obj.shape;\n if (shape) {\n return shape;\n }\n continueSearch = !!obj.antialiased;\n if (!obj.antialiased) {\n break;\n }\n }\n if (continueSearch) {\n spiralSearchDistance += 1;\n }\n else {\n return null;\n }\n }\n }\n _getIntersection(pos) {\n const ratio = this.hitCanvas.pixelRatio;\n const p = this.hitCanvas.context.getImageData(Math.round(pos.x * ratio), Math.round(pos.y * ratio), 1, 1).data;\n const p3 = p[3];\n if (p3 === 255) {\n const colorKey = Util_1.Util._rgbToHex(p[0], p[1], p[2]);\n const shape = Shape_1.shapes[HASH + colorKey];\n if (shape) {\n return {\n shape: shape,\n };\n }\n return {\n antialiased: true,\n };\n }\n else if (p3 > 0) {\n return {\n antialiased: true,\n };\n }\n return {};\n }\n drawScene(can, top) {\n const layer = this.getLayer(), canvas = can || (layer && layer.getCanvas());\n this._fire(BEFORE_DRAW, {\n node: this,\n });\n if (this.clearBeforeDraw()) {\n canvas.getContext().clear();\n }\n Container_1.Container.prototype.drawScene.call(this, canvas, top);\n this._fire(DRAW, {\n node: this,\n });\n return this;\n }\n drawHit(can, top) {\n const layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas);\n if (layer && layer.clearBeforeDraw()) {\n layer.getHitCanvas().getContext().clear();\n }\n Container_1.Container.prototype.drawHit.call(this, canvas, top);\n return this;\n }\n enableHitGraph() {\n this.hitGraphEnabled(true);\n return this;\n }\n disableHitGraph() {\n this.hitGraphEnabled(false);\n return this;\n }\n setHitGraphEnabled(val) {\n Util_1.Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n this.listening(val);\n }\n getHitGraphEnabled(val) {\n Util_1.Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n return this.listening();\n }\n toggleHitCanvas() {\n if (!this.parent || !this.parent['content']) {\n return;\n }\n const parent = this.parent;\n const added = !!this.hitCanvas._canvas.parentNode;\n if (added) {\n parent.content.removeChild(this.hitCanvas._canvas);\n }\n else {\n parent.content.appendChild(this.hitCanvas._canvas);\n }\n }\n destroy() {\n Util_1.Util.releaseCanvas(this.getNativeCanvasElement(), this.getHitCanvas()._canvas);\n return super.destroy();\n }\n}\nexports.Layer = Layer;\nLayer.prototype.nodeType = 'Layer';\n(0, Global_1._registerNode)(Layer);\nFactory_1.Factory.addGetterSetter(Layer, 'imageSmoothingEnabled', true);\nFactory_1.Factory.addGetterSetter(Layer, 'clearBeforeDraw', true);\nFactory_1.Factory.addGetterSetter(Layer, 'hitGraphEnabled', true, (0, Validators_1.getBooleanValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Group = void 0;\nconst Util_1 = require(\"./Util\");\nconst Container_1 = require(\"./Container\");\nconst Global_1 = require(\"./Global\");\nclass Group extends Container_1.Container {\n _validateAdd(child) {\n const type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to groups.');\n }\n }\n}\nexports.Group = Group;\nGroup.prototype.nodeType = 'Group';\n(0, Global_1._registerNode)(Group);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Animation = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst now = (function () {\n if (Global_1.glob.performance && Global_1.glob.performance.now) {\n return function () {\n return Global_1.glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n})();\nclass Animation {\n constructor(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0,\n };\n this.func = func;\n this.setLayers(layers);\n }\n setLayers(layers) {\n let lays = [];\n if (layers) {\n lays = Array.isArray(layers) ? layers : [layers];\n }\n this.layers = lays;\n return this;\n }\n getLayers() {\n return this.layers;\n }\n addLayer(layer) {\n const layers = this.layers;\n const len = layers.length;\n for (let n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n }\n isRunning() {\n const a = Animation;\n const animations = a.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n }\n start() {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n }\n stop() {\n Animation._removeAnimation(this);\n return this;\n }\n _updateFrameObject(time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n }\n static _addAnimation(anim) {\n this.animations.push(anim);\n this._handleAnimation();\n }\n static _removeAnimation(anim) {\n const id = anim.id;\n const animations = this.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n }\n static _runFrames() {\n const layerHash = {};\n const animations = this.animations;\n for (let n = 0; n < animations.length; n++) {\n const anim = animations[n];\n const layers = anim.layers;\n const func = anim.func;\n anim._updateFrameObject(now());\n const layersLen = layers.length;\n let needRedraw;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n }\n else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (let i = 0; i < layersLen; i++) {\n const layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (const key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].batchDraw();\n }\n }\n static _animationLoop() {\n const Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n Util_1.Util.requestAnimFrame(Anim._animationLoop);\n }\n else {\n Anim.animRunning = false;\n }\n }\n static _handleAnimation() {\n if (!this.animRunning) {\n this.animRunning = true;\n Util_1.Util.requestAnimFrame(this._animationLoop);\n }\n }\n}\nexports.Animation = Animation;\nAnimation.animations = [];\nAnimation.animIdCounter = 0;\nAnimation.animRunning = false;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Konva = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst Node_1 = require(\"./Node\");\nconst Container_1 = require(\"./Container\");\nconst Stage_1 = require(\"./Stage\");\nconst Layer_1 = require(\"./Layer\");\nconst FastLayer_1 = require(\"./FastLayer\");\nconst Group_1 = require(\"./Group\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Shape_1 = require(\"./Shape\");\nconst Animation_1 = require(\"./Animation\");\nconst Tween_1 = require(\"./Tween\");\nconst Context_1 = require(\"./Context\");\nconst Canvas_1 = require(\"./Canvas\");\nexports.Konva = Util_1.Util._assign(Global_1.Konva, {\n Util: Util_1.Util,\n Transform: Util_1.Transform,\n Node: Node_1.Node,\n Container: Container_1.Container,\n Stage: Stage_1.Stage,\n stages: Stage_1.stages,\n Layer: Layer_1.Layer,\n FastLayer: FastLayer_1.FastLayer,\n Group: Group_1.Group,\n DD: DragAndDrop_1.DD,\n Shape: Shape_1.Shape,\n shapes: Shape_1.shapes,\n Animation: Animation_1.Animation,\n Tween: Tween_1.Tween,\n Easings: Tween_1.Easings,\n Context: Context_1.Context,\n Canvas: Canvas_1.Canvas,\n});\nexports.default = exports.Konva;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stage = exports.stages = void 0;\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Container_1 = require(\"./Container\");\nconst Global_1 = require(\"./Global\");\nconst Canvas_1 = require(\"./Canvas\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Global_2 = require(\"./Global\");\nconst PointerEvents = require(\"./PointerEvents\");\nconst STAGE = 'Stage', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup', POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', POINTEROUT = 'pointerout', POINTERLEAVE = 'pointerleave', POINTEROVER = 'pointerover', POINTERENTER = 'pointerenter', CONTEXTMENU = 'contextmenu', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TOUCHMOVE = 'touchmove', TOUCHCANCEL = 'touchcancel', WHEEL = 'wheel', MAX_LAYERS_NUMBER = 5, EVENTS = [\n [MOUSEENTER, '_pointerenter'],\n [MOUSEDOWN, '_pointerdown'],\n [MOUSEMOVE, '_pointermove'],\n [MOUSEUP, '_pointerup'],\n [MOUSELEAVE, '_pointerleave'],\n [TOUCHSTART, '_pointerdown'],\n [TOUCHMOVE, '_pointermove'],\n [TOUCHEND, '_pointerup'],\n [TOUCHCANCEL, '_pointercancel'],\n [MOUSEOVER, '_pointerover'],\n [WHEEL, '_wheel'],\n [CONTEXTMENU, '_contextmenu'],\n [POINTERDOWN, '_pointerdown'],\n [POINTERMOVE, '_pointermove'],\n [POINTERUP, '_pointerup'],\n [POINTERCANCEL, '_pointercancel'],\n [LOSTPOINTERCAPTURE, '_lostpointercapture'],\n];\nconst EVENTS_MAP = {\n mouse: {\n [POINTEROUT]: MOUSEOUT,\n [POINTERLEAVE]: MOUSELEAVE,\n [POINTEROVER]: MOUSEOVER,\n [POINTERENTER]: MOUSEENTER,\n [POINTERMOVE]: MOUSEMOVE,\n [POINTERDOWN]: MOUSEDOWN,\n [POINTERUP]: MOUSEUP,\n [POINTERCANCEL]: 'mousecancel',\n pointerclick: 'click',\n pointerdblclick: 'dblclick',\n },\n touch: {\n [POINTEROUT]: 'touchout',\n [POINTERLEAVE]: 'touchleave',\n [POINTEROVER]: 'touchover',\n [POINTERENTER]: 'touchenter',\n [POINTERMOVE]: TOUCHMOVE,\n [POINTERDOWN]: TOUCHSTART,\n [POINTERUP]: TOUCHEND,\n [POINTERCANCEL]: TOUCHCANCEL,\n pointerclick: 'tap',\n pointerdblclick: 'dbltap',\n },\n pointer: {\n [POINTEROUT]: POINTEROUT,\n [POINTERLEAVE]: POINTERLEAVE,\n [POINTEROVER]: POINTEROVER,\n [POINTERENTER]: POINTERENTER,\n [POINTERMOVE]: POINTERMOVE,\n [POINTERDOWN]: POINTERDOWN,\n [POINTERUP]: POINTERUP,\n [POINTERCANCEL]: POINTERCANCEL,\n pointerclick: 'pointerclick',\n pointerdblclick: 'pointerdblclick',\n },\n};\nconst getEventType = (type) => {\n if (type.indexOf('pointer') >= 0) {\n return 'pointer';\n }\n if (type.indexOf('touch') >= 0) {\n return 'touch';\n }\n return 'mouse';\n};\nconst getEventsMap = (eventType) => {\n const type = getEventType(eventType);\n if (type === 'pointer') {\n return Global_1.Konva.pointerEventsEnabled && EVENTS_MAP.pointer;\n }\n if (type === 'touch') {\n return EVENTS_MAP.touch;\n }\n if (type === 'mouse') {\n return EVENTS_MAP.mouse;\n }\n};\nfunction checkNoClip(attrs = {}) {\n if (attrs.clipFunc || attrs.clipWidth || attrs.clipHeight) {\n Util_1.Util.warn('Stage does not support clipping. Please use clip for Layers or Groups.');\n }\n return attrs;\n}\nconst NO_POINTERS_MESSAGE = `Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`;\nexports.stages = [];\nclass Stage extends Container_1.Container {\n constructor(config) {\n super(checkNoClip(config));\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n this._buildDOM();\n this._bindContentEvents();\n exports.stages.push(this);\n this.on('widthChange.konva heightChange.konva', this._resizeDOM);\n this.on('visibleChange.konva', this._checkVisibility);\n this.on('clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva', () => {\n checkNoClip(this.attrs);\n });\n this._checkVisibility();\n }\n _validateAdd(child) {\n const isLayer = child.getType() === 'Layer';\n const isFastLayer = child.getType() === 'FastLayer';\n const valid = isLayer || isFastLayer;\n if (!valid) {\n Util_1.Util.throw('You may only add layers to the stage.');\n }\n }\n _checkVisibility() {\n if (!this.content) {\n return;\n }\n const style = this.visible() ? '' : 'none';\n this.content.style.display = style;\n }\n setContainer(container) {\n if (typeof container === STRING) {\n if (container.charAt(0) === '.') {\n const className = container.slice(1);\n container = document.getElementsByClassName(className)[0];\n }\n else {\n var id;\n if (container.charAt(0) !== '#') {\n id = container;\n }\n else {\n id = container.slice(1);\n }\n container = document.getElementById(id);\n }\n if (!container) {\n throw 'Can not find container in document with id ' + id;\n }\n }\n this._setAttr('container', container);\n if (this.content) {\n if (this.content.parentElement) {\n this.content.parentElement.removeChild(this.content);\n }\n container.appendChild(this.content);\n }\n return this;\n }\n shouldDrawHit() {\n return true;\n }\n clear() {\n const layers = this.children, len = layers.length;\n for (let n = 0; n < len; n++) {\n layers[n].clear();\n }\n return this;\n }\n clone(obj) {\n if (!obj) {\n obj = {};\n }\n obj.container =\n typeof document !== 'undefined' && document.createElement('div');\n return Container_1.Container.prototype.clone.call(this, obj);\n }\n destroy() {\n super.destroy();\n const content = this.content;\n if (content && Util_1.Util._isInDocument(content)) {\n this.container().removeChild(content);\n }\n const index = exports.stages.indexOf(this);\n if (index > -1) {\n exports.stages.splice(index, 1);\n }\n Util_1.Util.releaseCanvas(this.bufferCanvas._canvas, this.bufferHitCanvas._canvas);\n return this;\n }\n getPointerPosition() {\n const pos = this._pointerPositions[0] || this._changedPointerPositions[0];\n if (!pos) {\n Util_1.Util.warn(NO_POINTERS_MESSAGE);\n return null;\n }\n return {\n x: pos.x,\n y: pos.y,\n };\n }\n _getPointerById(id) {\n return this._pointerPositions.find((p) => p.id === id);\n }\n getPointersPositions() {\n return this._pointerPositions;\n }\n getStage() {\n return this;\n }\n getContent() {\n return this.content;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.x = config.x || 0;\n config.y = config.y || 0;\n config.width = config.width || this.width();\n config.height = config.height || this.height();\n const canvas = new Canvas_1.SceneCanvas({\n width: config.width,\n height: config.height,\n pixelRatio: config.pixelRatio || 1,\n });\n const _context = canvas.getContext()._context;\n const layers = this.children;\n if (config.x || config.y) {\n _context.translate(-1 * config.x, -1 * config.y);\n }\n layers.forEach(function (layer) {\n if (!layer.isVisible()) {\n return;\n }\n const layerCanvas = layer._toKonvaCanvas(config);\n _context.drawImage(layerCanvas._canvas, config.x, config.y, layerCanvas.getWidth() / layerCanvas.getPixelRatio(), layerCanvas.getHeight() / layerCanvas.getPixelRatio());\n });\n return canvas;\n }\n getIntersection(pos) {\n if (!pos) {\n return null;\n }\n const layers = this.children, len = layers.length, end = len - 1;\n for (let n = end; n >= 0; n--) {\n const shape = layers[n].getIntersection(pos);\n if (shape) {\n return shape;\n }\n }\n return null;\n }\n _resizeDOM() {\n const width = this.width();\n const height = this.height();\n if (this.content) {\n this.content.style.width = width + PX;\n this.content.style.height = height + PX;\n }\n this.bufferCanvas.setSize(width, height);\n this.bufferHitCanvas.setSize(width, height);\n this.children.forEach((layer) => {\n layer.setSize({ width, height });\n layer.draw();\n });\n }\n add(layer, ...rest) {\n if (arguments.length > 1) {\n for (let i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n super.add(layer);\n const length = this.children.length;\n if (length > MAX_LAYERS_NUMBER) {\n Util_1.Util.warn('The stage has ' +\n length +\n ' layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.');\n }\n layer.setSize({ width: this.width(), height: this.height() });\n layer.draw();\n if (Global_1.Konva.isBrowser) {\n this.content.appendChild(layer.canvas._canvas);\n }\n return this;\n }\n getParent() {\n return null;\n }\n getLayer() {\n return null;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n getLayers() {\n return this.children;\n }\n _bindContentEvents() {\n if (!Global_1.Konva.isBrowser) {\n return;\n }\n EVENTS.forEach(([event, methodName]) => {\n this.content.addEventListener(event, (evt) => {\n this[methodName](evt);\n }, { passive: false });\n });\n }\n _pointerenter(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n if (events) {\n this._fire(events.pointerenter, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointerover(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n if (events) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _getTargetShape(evenType) {\n let shape = this[evenType + 'targetShape'];\n if (shape && !shape.getStage()) {\n shape = null;\n }\n return shape;\n }\n _pointerleave(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const targetShape = this._getTargetShape(eventType);\n const eventsEnabled = !(Global_1.Konva.isDragging() || Global_1.Konva.isTransforming()) || Global_1.Konva.hitOnDragEnabled;\n if (targetShape && eventsEnabled) {\n targetShape._fireAndBubble(events.pointerout, { evt: evt });\n targetShape._fireAndBubble(events.pointerleave, { evt: evt });\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this[eventType + 'targetShape'] = null;\n }\n else if (eventsEnabled) {\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this._fire(events.pointerout, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n this.pointerPos = null;\n this._pointerPositions = [];\n }\n _pointerdown(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n let triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = this.getIntersection(pos);\n DragAndDrop_1.DD.justDragged = false;\n Global_1.Konva['_' + eventType + 'ListenClick'] = true;\n if (!shape || !shape.isListening()) {\n this[eventType + 'ClickStartShape'] = undefined;\n return;\n }\n if (Global_1.Konva.capturePointerEventsEnabled) {\n shape.setPointerCapture(pos.id);\n }\n this[eventType + 'ClickStartShape'] = shape;\n shape._fireAndBubble(events.pointerdown, {\n evt: evt,\n pointerId: pos.id,\n });\n triggeredOnShape = true;\n const isTouch = evt.type.indexOf('touch') >= 0;\n if (shape.preventDefault() && evt.cancelable && isTouch) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerdown, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._pointerPositions[0].id,\n });\n }\n }\n _pointermove(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n if (Global_1.Konva.isDragging() && DragAndDrop_1.DD.node.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n this.setPointersPositions(evt);\n const eventsEnabled = !(Global_1.Konva.isDragging() || Global_1.Konva.isTransforming()) || Global_1.Konva.hitOnDragEnabled;\n if (!eventsEnabled) {\n return;\n }\n const processedShapesIds = {};\n let triggeredOnShape = false;\n const targetShape = this._getTargetShape(eventType);\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n const differentTarget = targetShape !== shape;\n if (differentTarget && targetShape) {\n targetShape._fireAndBubble(events.pointerout, { ...event }, shape);\n targetShape._fireAndBubble(events.pointerleave, { ...event }, shape);\n }\n if (shape) {\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n if (differentTarget) {\n shape._fireAndBubble(events.pointerover, { ...event }, targetShape);\n shape._fireAndBubble(events.pointerenter, { ...event }, targetShape);\n this[eventType + 'targetShape'] = shape;\n }\n shape._fireAndBubble(events.pointermove, { ...event });\n }\n else {\n if (targetShape) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n this[eventType + 'targetShape'] = null;\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointermove, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n }\n _pointerup(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const clickStartShape = this[eventType + 'ClickStartShape'];\n const clickEndShape = this[eventType + 'ClickEndShape'];\n const processedShapesIds = {};\n let triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n if (shape) {\n shape.releaseCapture(pos.id);\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n let fireDblClick = false;\n if (Global_1.Konva['_' + eventType + 'InDblClickWindow']) {\n fireDblClick = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n else if (!DragAndDrop_1.DD.justDragged) {\n Global_1.Konva['_' + eventType + 'InDblClickWindow'] = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n this[eventType + 'DblTimeout'] = setTimeout(function () {\n Global_1.Konva['_' + eventType + 'InDblClickWindow'] = false;\n }, Global_1.Konva.dblClickWindow);\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n this[eventType + 'ClickEndShape'] = shape;\n shape._fireAndBubble(events.pointerup, { ...event });\n if (Global_1.Konva['_' + eventType + 'ListenClick'] &&\n clickStartShape &&\n clickStartShape === shape) {\n shape._fireAndBubble(events.pointerclick, { ...event });\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n shape._fireAndBubble(events.pointerdblclick, { ...event });\n }\n }\n }\n else {\n this[eventType + 'ClickEndShape'] = null;\n if (Global_1.Konva['_' + eventType + 'ListenClick']) {\n this._fire(events.pointerclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n if (fireDblClick) {\n this._fire(events.pointerdblclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerup, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n Global_1.Konva['_' + eventType + 'ListenClick'] = false;\n if (evt.cancelable && eventType !== 'touch' && eventType !== 'pointer') {\n evt.preventDefault();\n }\n }\n _contextmenu(evt) {\n this.setPointersPositions(evt);\n const shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(CONTEXTMENU, { evt: evt });\n }\n else {\n this._fire(CONTEXTMENU, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _wheel(evt) {\n this.setPointersPositions(evt);\n const shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(WHEEL, { evt: evt });\n }\n else {\n this._fire(WHEEL, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointercancel(evt) {\n this.setPointersPositions(evt);\n const shape = PointerEvents.getCapturedShape(evt.pointerId) ||\n this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERUP, PointerEvents.createEvent(evt));\n }\n PointerEvents.releaseCapture(evt.pointerId);\n }\n _lostpointercapture(evt) {\n PointerEvents.releaseCapture(evt.pointerId);\n }\n setPointersPositions(evt) {\n const contentPosition = this._getContentPosition();\n let x = null, y = null;\n evt = evt ? evt : window.event;\n if (evt.touches !== undefined) {\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n Array.prototype.forEach.call(evt.touches, (touch) => {\n this._pointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n Array.prototype.forEach.call(evt.changedTouches || evt.touches, (touch) => {\n this._changedPointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n }\n else {\n x = (evt.clientX - contentPosition.left) / contentPosition.scaleX;\n y = (evt.clientY - contentPosition.top) / contentPosition.scaleY;\n this.pointerPos = {\n x: x,\n y: y,\n };\n this._pointerPositions = [{ x, y, id: Util_1.Util._getFirstPointerId(evt) }];\n this._changedPointerPositions = [\n { x, y, id: Util_1.Util._getFirstPointerId(evt) },\n ];\n }\n }\n _setPointerPosition(evt) {\n Util_1.Util.warn('Method _setPointerPosition is deprecated. Use \"stage.setPointersPositions(event)\" instead.');\n this.setPointersPositions(evt);\n }\n _getContentPosition() {\n if (!this.content || !this.content.getBoundingClientRect) {\n return {\n top: 0,\n left: 0,\n scaleX: 1,\n scaleY: 1,\n };\n }\n const rect = this.content.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n scaleX: rect.width / this.content.clientWidth || 1,\n scaleY: rect.height / this.content.clientHeight || 1,\n };\n }\n _buildDOM() {\n this.bufferCanvas = new Canvas_1.SceneCanvas({\n width: this.width(),\n height: this.height(),\n });\n this.bufferHitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1,\n width: this.width(),\n height: this.height(),\n });\n if (!Global_1.Konva.isBrowser) {\n return;\n }\n const container = this.container();\n if (!container) {\n throw 'Stage has no container. A container is required.';\n }\n container.innerHTML = '';\n this.content = document.createElement('div');\n this.content.style.position = 'relative';\n this.content.style.userSelect = 'none';\n this.content.className = 'konvajs-content';\n this.content.setAttribute('role', 'presentation');\n container.appendChild(this.content);\n this._resizeDOM();\n }\n cache() {\n Util_1.Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.');\n return this;\n }\n clearCache() {\n return this;\n }\n batchDraw() {\n this.getChildren().forEach(function (layer) {\n layer.batchDraw();\n });\n return this;\n }\n}\nexports.Stage = Stage;\nStage.prototype.nodeType = STAGE;\n(0, Global_2._registerNode)(Stage);\nFactory_1.Factory.addGetterSetter(Stage, 'container');\nif (Global_1.Konva.isBrowser) {\n document.addEventListener('visibilitychange', () => {\n exports.stages.forEach((stage) => {\n stage.batchDraw();\n });\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FastLayer = void 0;\nconst Util_1 = require(\"./Util\");\nconst Layer_1 = require(\"./Layer\");\nconst Global_1 = require(\"./Global\");\nclass FastLayer extends Layer_1.Layer {\n constructor(attrs) {\n super(attrs);\n this.listening(false);\n Util_1.Util.warn('Konva.Fast layer is deprecated. Please use \"new Konva.Layer({ listening: false })\" instead.');\n }\n}\nexports.FastLayer = FastLayer;\nFastLayer.prototype.nodeType = 'FastLayer';\n(0, Global_1._registerNode)(FastLayer);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Easings = exports.Tween = void 0;\nconst Util_1 = require(\"./Util\");\nconst Animation_1 = require(\"./Animation\");\nconst Node_1 = require(\"./Node\");\nconst Global_1 = require(\"./Global\");\nconst blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1,\n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, colorAttrs = ['fill', 'stroke', 'shadowColor'];\nlet idCounter = 0;\nclass TweenEngine {\n constructor(prop, propFunc, func, begin, finish, duration, yoyo) {\n this.prop = prop;\n this.propFunc = propFunc;\n this.begin = begin;\n this._pos = begin;\n this.duration = duration;\n this._change = 0;\n this.prevPos = 0;\n this.yoyo = yoyo;\n this._time = 0;\n this._position = 0;\n this._startTime = 0;\n this._finish = 0;\n this.func = func;\n this._change = finish - this.begin;\n this.pause();\n }\n fire(str) {\n const handler = this[str];\n if (handler) {\n handler();\n }\n }\n setTime(t) {\n if (t > this.duration) {\n if (this.yoyo) {\n this._time = this.duration;\n this.reverse();\n }\n else {\n this.finish();\n }\n }\n else if (t < 0) {\n if (this.yoyo) {\n this._time = 0;\n this.play();\n }\n else {\n this.reset();\n }\n }\n else {\n this._time = t;\n this.update();\n }\n }\n getTime() {\n return this._time;\n }\n setPosition(p) {\n this.prevPos = this._pos;\n this.propFunc(p);\n this._pos = p;\n }\n getPosition(t) {\n if (t === undefined) {\n t = this._time;\n }\n return this.func(t, this.begin, this._change, this.duration);\n }\n play() {\n this.state = PLAYING;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onPlay');\n }\n reverse() {\n this.state = REVERSING;\n this._time = this.duration - this._time;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onReverse');\n }\n seek(t) {\n this.pause();\n this._time = t;\n this.update();\n this.fire('onSeek');\n }\n reset() {\n this.pause();\n this._time = 0;\n this.update();\n this.fire('onReset');\n }\n finish() {\n this.pause();\n this._time = this.duration;\n this.update();\n this.fire('onFinish');\n }\n update() {\n this.setPosition(this.getPosition(this._time));\n this.fire('onUpdate');\n }\n onEnterFrame() {\n const t = this.getTimer() - this._startTime;\n if (this.state === PLAYING) {\n this.setTime(t);\n }\n else if (this.state === REVERSING) {\n this.setTime(this.duration - t);\n }\n }\n pause() {\n this.state = PAUSED;\n this.fire('onPause');\n }\n getTimer() {\n return new Date().getTime();\n }\n}\nclass Tween {\n constructor(config) {\n const that = this, node = config.node, nodeId = node._id, easing = config.easing || exports.Easings.Linear, yoyo = !!config.yoyo;\n let duration, key;\n if (typeof config.duration === 'undefined') {\n duration = 0.3;\n }\n else if (config.duration === 0) {\n duration = 0.001;\n }\n else {\n duration = config.duration;\n }\n this.node = node;\n this._id = idCounter++;\n const layers = node.getLayer() ||\n (node instanceof Global_1.Konva['Stage'] ? node.getLayers() : null);\n if (!layers) {\n Util_1.Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');\n }\n this.anim = new Animation_1.Animation(function () {\n that.tween.onEnterFrame();\n }, layers);\n this.tween = new TweenEngine(key, function (i) {\n that._tweenFunc(i);\n }, easing, 0, 1, duration * 1000, yoyo);\n this._addListeners();\n if (!Tween.attrs[nodeId]) {\n Tween.attrs[nodeId] = {};\n }\n if (!Tween.attrs[nodeId][this._id]) {\n Tween.attrs[nodeId][this._id] = {};\n }\n if (!Tween.tweens[nodeId]) {\n Tween.tweens[nodeId] = {};\n }\n for (key in config) {\n if (blacklist[key] === undefined) {\n this._addAttr(key, config[key]);\n }\n }\n this.reset();\n this.onFinish = config.onFinish;\n this.onReset = config.onReset;\n this.onUpdate = config.onUpdate;\n }\n _addAttr(key, end) {\n const node = this.node, nodeId = node._id;\n let diff, len, trueEnd, trueStart, endRGBA;\n const tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n let start = node.getAttr(key);\n if (Util_1.Util._isArray(end)) {\n diff = [];\n len = Math.max(end.length, start.length);\n if (key === 'points' && end.length !== start.length) {\n if (end.length > start.length) {\n trueStart = start;\n start = Util_1.Util._prepareArrayForTween(start, end, node.closed());\n }\n else {\n trueEnd = end;\n end = Util_1.Util._prepareArrayForTween(end, start, node.closed());\n }\n }\n if (key.indexOf('fill') === 0) {\n for (let n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n }\n else {\n const startRGBA = Util_1.Util.colorToRGBA(start[n]);\n endRGBA = Util_1.Util.colorToRGBA(end[n]);\n start[n] = startRGBA;\n diff.push({\n r: endRGBA.r - startRGBA.r,\n g: endRGBA.g - startRGBA.g,\n b: endRGBA.b - startRGBA.b,\n a: endRGBA.a - startRGBA.a,\n });\n }\n }\n }\n else {\n for (let n = 0; n < len; n++) {\n diff.push(end[n] - start[n]);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n start = Util_1.Util.colorToRGBA(start);\n endRGBA = Util_1.Util.colorToRGBA(end);\n diff = {\n r: endRGBA.r - start.r,\n g: endRGBA.g - start.g,\n b: endRGBA.b - start.b,\n a: endRGBA.a - start.a,\n };\n }\n else {\n diff = end - start;\n }\n Tween.attrs[nodeId][this._id][key] = {\n start: start,\n diff: diff,\n end: end,\n trueEnd: trueEnd,\n trueStart: trueStart,\n };\n Tween.tweens[nodeId][key] = this._id;\n }\n _tweenFunc(i) {\n const node = this.node, attrs = Tween.attrs[node._id][this._id];\n let key, attr, start, diff, newVal, n, len, end;\n for (key in attrs) {\n attr = attrs[key];\n start = attr.start;\n diff = attr.diff;\n end = attr.end;\n if (Util_1.Util._isArray(start)) {\n newVal = [];\n len = Math.max(start.length, end.length);\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n else {\n newVal.push('rgba(' +\n Math.round(start[n].r + diff[n].r * i) +\n ',' +\n Math.round(start[n].g + diff[n].g * i) +\n ',' +\n Math.round(start[n].b + diff[n].b * i) +\n ',' +\n (start[n].a + diff[n].a * i) +\n ')');\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n newVal =\n 'rgba(' +\n Math.round(start.r + diff.r * i) +\n ',' +\n Math.round(start.g + diff.g * i) +\n ',' +\n Math.round(start.b + diff.b * i) +\n ',' +\n (start.a + diff.a * i) +\n ')';\n }\n else {\n newVal = start + diff * i;\n }\n node.setAttr(key, newVal);\n }\n }\n _addListeners() {\n this.tween.onPlay = () => {\n this.anim.start();\n };\n this.tween.onReverse = () => {\n this.anim.start();\n };\n this.tween.onPause = () => {\n this.anim.stop();\n };\n this.tween.onFinish = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueEnd) {\n node.setAttr('points', attrs.points.trueEnd);\n }\n if (this.onFinish) {\n this.onFinish.call(this);\n }\n };\n this.tween.onReset = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueStart) {\n node.points(attrs.points.trueStart);\n }\n if (this.onReset) {\n this.onReset();\n }\n };\n this.tween.onUpdate = () => {\n if (this.onUpdate) {\n this.onUpdate.call(this);\n }\n };\n }\n play() {\n this.tween.play();\n return this;\n }\n reverse() {\n this.tween.reverse();\n return this;\n }\n reset() {\n this.tween.reset();\n return this;\n }\n seek(t) {\n this.tween.seek(t * 1000);\n return this;\n }\n pause() {\n this.tween.pause();\n return this;\n }\n finish() {\n this.tween.finish();\n return this;\n }\n destroy() {\n const nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId];\n this.pause();\n for (const key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n }\n}\nexports.Tween = Tween;\nTween.attrs = {};\nTween.tweens = {};\nNode_1.Node.prototype.to = function (params) {\n const onFinish = params.onFinish;\n params.node = this;\n params.onFinish = function () {\n this.destroy();\n if (onFinish) {\n onFinish();\n }\n };\n const tween = new Tween(params);\n tween.play();\n};\nexports.Easings = {\n BackEaseIn(t, b, c, d) {\n const s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n BackEaseOut(t, b, c, d) {\n const s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n BackEaseInOut(t, b, c, d) {\n let s = 1.70158;\n if ((t /= d / 2) < 1) {\n return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n },\n ElasticEaseIn(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (-(a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b);\n },\n ElasticEaseOut(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +\n c +\n b);\n },\n ElasticEaseInOut(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n if (t < 1) {\n return (-0.5 *\n (a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +\n b);\n }\n return (a *\n Math.pow(2, -10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p) *\n 0.5 +\n c +\n b);\n },\n BounceEaseOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n }\n else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n BounceEaseIn(t, b, c, d) {\n return c - exports.Easings.BounceEaseOut(d - t, 0, c, d) + b;\n },\n BounceEaseInOut(t, b, c, d) {\n if (t < d / 2) {\n return exports.Easings.BounceEaseIn(t * 2, 0, c, d) * 0.5 + b;\n }\n else {\n return exports.Easings.BounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n },\n EaseIn(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n EaseOut(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n EaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t + b;\n }\n return (-c / 2) * (--t * (t - 2) - 1) + b;\n },\n StrongEaseIn(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n },\n StrongEaseOut(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n StrongEaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t * t * t * t + b;\n }\n return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;\n },\n Linear(t, b, c, d) {\n return (c * t) / d + b;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Line = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Global_1 = require(\"../Global\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nfunction getControlPoints(x0, y0, x1, y1, x2, y2, t) {\n const d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)), d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), fa = (t * d01) / (d01 + d12), fb = (t * d12) / (d01 + d12), p1x = x1 - fa * (x2 - x0), p1y = y1 - fa * (y2 - y0), p2x = x1 + fb * (x2 - x0), p2y = y1 + fb * (y2 - y0);\n return [p1x, p1y, p2x, p2y];\n}\nfunction expandPoints(p, tension) {\n const len = p.length, allPoints = [];\n for (let n = 2; n < len - 2; n += 2) {\n const cp = getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);\n if (isNaN(cp[0])) {\n continue;\n }\n allPoints.push(cp[0]);\n allPoints.push(cp[1]);\n allPoints.push(p[n]);\n allPoints.push(p[n + 1]);\n allPoints.push(cp[2]);\n allPoints.push(cp[3]);\n }\n return allPoints;\n}\nclass Line extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {\n this._clearCache('tensionPoints');\n });\n }\n _sceneFunc(context) {\n let points = this.points(), length = points.length, tension = this.tension(), closed = this.closed(), bezier = this.bezier(), tp, len, n;\n if (!length) {\n return;\n }\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (tension !== 0 && length > 4) {\n tp = this.getTensionPoints();\n len = tp.length;\n n = closed ? 0 : 4;\n if (!closed) {\n context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);\n }\n while (n < len - 2) {\n context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);\n }\n if (!closed) {\n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n }\n else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n }\n else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n }\n else {\n context.strokeShape(this);\n }\n }\n getTensionPoints() {\n return this._getCache('tensionPoints', this._getTensionPoints);\n }\n _getTensionPoints() {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n }\n else {\n return expandPoints(this.points(), this.tension());\n }\n }\n _getTensionPointsClosed() {\n const p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension), lastControlPoints = getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension), middle = expandPoints(p, tension), tp = [firstControlPoints[2], firstControlPoints[3]]\n .concat(middle)\n .concat([\n lastControlPoints[0],\n lastControlPoints[1],\n p[len - 2],\n p[len - 1],\n lastControlPoints[2],\n lastControlPoints[3],\n firstControlPoints[0],\n firstControlPoints[1],\n p[0],\n p[1],\n ]);\n return tp;\n }\n getWidth() {\n return this.getSelfRect().width;\n }\n getHeight() {\n return this.getSelfRect().height;\n }\n getSelfRect() {\n let points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0,\n };\n }\n if (this.tension() !== 0) {\n points = [\n points[0],\n points[1],\n ...this._getTensionPoints(),\n points[points.length - 2],\n points[points.length - 1],\n ];\n }\n else {\n points = this.points();\n }\n let minX = points[0];\n let maxX = points[0];\n let minY = points[1];\n let maxY = points[1];\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n}\nexports.Line = Line;\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\n(0, Global_1._registerNode)(Line);\nFactory_1.Factory.addGetterSetter(Line, 'closed', false);\nFactory_1.Factory.addGetterSetter(Line, 'bezier', false);\nFactory_1.Factory.addGetterSetter(Line, 'tension', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Line, 'points', [], (0, Validators_1.getNumberArrayValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Path = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst BezierFunctions_1 = require(\"../BezierFunctions\");\nclass Path extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this.dataArray = [];\n this.pathLength = 0;\n this._readDataAttribute();\n this.on('dataChange.konva', function () {\n this._readDataAttribute();\n });\n }\n _readDataAttribute() {\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = Path.getPathLength(this.dataArray);\n }\n _sceneFunc(context) {\n const ca = this.dataArray;\n context.beginPath();\n let isClosed = false;\n for (let n = 0; n < ca.length; n++) {\n const c = ca[n].command;\n const p = ca[n].points;\n switch (c) {\n case 'L':\n context.lineTo(p[0], p[1]);\n break;\n case 'M':\n context.moveTo(p[0], p[1]);\n break;\n case 'C':\n context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);\n break;\n case 'Q':\n context.quadraticCurveTo(p[0], p[1], p[2], p[3]);\n break;\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6], fs = p[7];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(psi);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-psi);\n context.translate(-cx, -cy);\n break;\n case 'z':\n isClosed = true;\n context.closePath();\n break;\n }\n }\n if (!isClosed && !this.hasFill()) {\n context.strokeShape(this);\n }\n else {\n context.fillStrokeShape(this);\n }\n }\n getSelfRect() {\n let points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n const start = data.points[4];\n const dTheta = data.points[5];\n const end = data.points[4] + dTheta;\n let inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n if (dTheta < 0) {\n for (let t = start - inc; t > end; t -= inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n else {\n for (let t = start + inc; t < end; t += inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n }\n else if (data.command === 'C') {\n for (let t = 0.0; t <= 1; t += 0.01) {\n const point = Path.getPointOnCubicBezier(t, data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]);\n points.push(point.x, point.y);\n }\n }\n else {\n points = points.concat(data.points);\n }\n });\n let minX = points[0];\n let maxX = points[0];\n let minY = points[1];\n let maxY = points[1];\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n if (!isNaN(x)) {\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n }\n if (!isNaN(y)) {\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getLength() {\n return this.pathLength;\n }\n getPointAtLength(length) {\n return Path.getPointAtLengthOfDataArray(length, this.dataArray);\n }\n static getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n static getPathLength(dataArray) {\n let pathLength = 0;\n for (let i = 0; i < dataArray.length; ++i) {\n pathLength += dataArray[i].pathLength;\n }\n return pathLength;\n }\n static getPointAtLengthOfDataArray(length, dataArray) {\n let points, i = 0, ii = dataArray.length;\n if (!ii) {\n return null;\n }\n while (i < ii && length > dataArray[i].pathLength) {\n length -= dataArray[i].pathLength;\n ++i;\n }\n if (i === ii) {\n points = dataArray[i - 1].points.slice(-2);\n return {\n x: points[0],\n y: points[1],\n };\n }\n if (length < 0.01) {\n points = dataArray[i].points.slice(0, 2);\n return {\n x: points[0],\n y: points[1],\n };\n }\n const cp = dataArray[i];\n const p = cp.points;\n switch (cp.command) {\n case 'L':\n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);\n case 'C':\n return Path.getPointOnCubicBezier((0, BezierFunctions_1.t2length)(length, Path.getPathLength(dataArray), (i) => {\n return (0, BezierFunctions_1.getCubicArcLength)([cp.start.x, p[0], p[2], p[4]], [cp.start.y, p[1], p[3], p[5]], i);\n }), cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);\n case 'Q':\n return Path.getPointOnQuadraticBezier((0, BezierFunctions_1.t2length)(length, Path.getPathLength(dataArray), (i) => {\n return (0, BezierFunctions_1.getQuadraticArcLength)([cp.start.x, p[0], p[2]], [cp.start.y, p[1], p[3]], i);\n }), cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6];\n theta += (dTheta * length) / cp.pathLength;\n return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);\n }\n return null;\n }\n static getPointOnLine(dist, P1x, P1y, P2x, P2y, fromX, fromY) {\n fromX = fromX !== null && fromX !== void 0 ? fromX : P1x;\n fromY = fromY !== null && fromY !== void 0 ? fromY : P1y;\n const len = this.getLineLength(P1x, P1y, P2x, P2y);\n if (len < 1e-10) {\n return { x: P1x, y: P1y };\n }\n if (P2x === P1x) {\n return { x: fromX, y: fromY + (P2y > P1y ? dist : -dist) };\n }\n const m = (P2y - P1y) / (P2x - P1x);\n const run = Math.sqrt((dist * dist) / (1 + m * m)) * (P2x < P1x ? -1 : 1);\n const rise = m * run;\n if (Math.abs(fromY - P1y - m * (fromX - P1x)) < 1e-10) {\n return { x: fromX + run, y: fromY + rise };\n }\n const u = ((fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y)) / (len * len);\n const ix = P1x + u * (P2x - P1x);\n const iy = P1y + u * (P2y - P1y);\n const pRise = this.getLineLength(fromX, fromY, ix, iy);\n const pRun = Math.sqrt(dist * dist - pRise * pRise);\n const adjustedRun = Math.sqrt((pRun * pRun) / (1 + m * m)) * (P2x < P1x ? -1 : 1);\n const adjustedRise = m * adjustedRun;\n return { x: ix + adjustedRun, y: iy + adjustedRise };\n }\n static getPointOnCubicBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n const x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n const y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnQuadraticBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y) {\n function QB1(t) {\n return t * t;\n }\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n const x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n const y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n const cosPsi = Math.cos(psi), sinPsi = Math.sin(psi);\n const pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta),\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi),\n };\n }\n static parsePathData(data) {\n if (!data) {\n return [];\n }\n let cs = data;\n const cc = [\n 'm',\n 'M',\n 'l',\n 'L',\n 'v',\n 'V',\n 'h',\n 'H',\n 'z',\n 'Z',\n 'c',\n 'C',\n 'q',\n 'Q',\n 't',\n 'T',\n 's',\n 'S',\n 'a',\n 'A',\n ];\n cs = cs.replace(new RegExp(' ', 'g'), ',');\n for (var n = 0; n < cc.length; n++) {\n cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n }\n const arr = cs.split('|');\n const ca = [];\n const coords = [];\n let cpx = 0;\n let cpy = 0;\n const re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n let match;\n for (n = 1; n < arr.length; n++) {\n let str = arr[n];\n let c = str.charAt(0);\n str = str.slice(1);\n coords.length = 0;\n while ((match = re.exec(str))) {\n coords.push(match[0]);\n }\n const p = [];\n for (let j = 0, jlen = coords.length; j < jlen; j++) {\n if (coords[j] === '00') {\n p.push(0, 0);\n continue;\n }\n const parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n p.push(parsed);\n }\n else {\n p.push(0);\n }\n }\n while (p.length > 0) {\n if (isNaN(p[0])) {\n break;\n }\n let cmd = '';\n let points = [];\n const startX = cpx, startY = cpy;\n var prevCmd, ctlPtx, ctlPty;\n var rx, ry, psi, fa, fs, x1, y1;\n switch (c) {\n case 'l':\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'L':\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'm':\n var dx = p.shift();\n var dy = p.shift();\n cpx += dx;\n cpy += dy;\n cmd = 'M';\n if (ca.length > 2 && ca[ca.length - 1].command === 'z') {\n for (let idx = ca.length - 2; idx >= 0; idx--) {\n if (ca[idx].command === 'M') {\n cpx = ca[idx].points[0] + dx;\n cpy = ca[idx].points[1] + dy;\n break;\n }\n }\n }\n points.push(cpx, cpy);\n c = 'l';\n break;\n case 'M':\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'M';\n points.push(cpx, cpy);\n c = 'L';\n break;\n case 'h':\n cpx += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'H':\n cpx = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'v':\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'V':\n cpy = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'C':\n points.push(p.shift(), p.shift(), p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'c':\n points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'Q':\n points.push(p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'q':\n points.push(cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n case 'a':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n }\n ca.push({\n command: cmd || c,\n points: points,\n start: {\n x: startX,\n y: startY,\n },\n pathLength: this.calcLength(startX, startY, cmd || c, points),\n });\n }\n if (c === 'z' || c === 'Z') {\n ca.push({\n command: 'z',\n points: [],\n start: undefined,\n pathLength: 0,\n });\n }\n }\n return ca;\n }\n static calcLength(x, y, cmd, points) {\n let len, p1, p2, t;\n const path = Path;\n switch (cmd) {\n case 'L':\n return path.getLineLength(x, y, points[0], points[1]);\n case 'C':\n return (0, BezierFunctions_1.getCubicArcLength)([x, points[0], points[2], points[4]], [y, points[1], points[3], points[5]], 1);\n case 'Q':\n return (0, BezierFunctions_1.getQuadraticArcLength)([x, points[0], points[2]], [y, points[1], points[3]], 1);\n case 'A':\n len = 0.0;\n var start = points[4];\n var dTheta = points[5];\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n if (dTheta < 0) {\n for (t = start - inc; t > end; t -= inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n else {\n for (t = start + inc; t < end; t += inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n return 0;\n }\n static convertEndpointToCenterParameterization(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {\n const psi = psiDeg * (Math.PI / 180.0);\n const xp = (Math.cos(psi) * (x1 - x2)) / 2.0 + (Math.sin(psi) * (y1 - y2)) / 2.0;\n const yp = (-1 * Math.sin(psi) * (x1 - x2)) / 2.0 +\n (Math.cos(psi) * (y1 - y2)) / 2.0;\n const lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n let f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) /\n (rx * rx * (yp * yp) + ry * ry * (xp * xp)));\n if (fa === fs) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n const cxp = (f * rx * yp) / ry;\n const cyp = (f * -ry * xp) / rx;\n const cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n const cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n const vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n const vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n const vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n const theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n const u = [(xp - cxp) / rx, (yp - cyp) / ry];\n const v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n let dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return [cx, cy, rx, ry, theta, dTheta, psi, fs];\n }\n}\nexports.Path = Path;\nPath.prototype.className = 'Path';\nPath.prototype._attrsAffectingSize = ['data'];\n(0, Global_1._registerNode)(Path);\nFactory_1.Factory.addGetterSetter(Path, 'data');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.t2length = exports.getQuadraticArcLength = exports.getCubicArcLength = exports.binomialCoefficients = exports.cValues = exports.tValues = void 0;\nexports.tValues = [\n [],\n [],\n [\n -0.5773502691896257645091487805019574556476,\n 0.5773502691896257645091487805019574556476,\n ],\n [\n 0, -0.7745966692414833770358530799564799221665,\n 0.7745966692414833770358530799564799221665,\n ],\n [\n -0.3399810435848562648026657591032446872005,\n 0.3399810435848562648026657591032446872005,\n -0.8611363115940525752239464888928095050957,\n 0.8611363115940525752239464888928095050957,\n ],\n [\n 0, -0.5384693101056830910363144207002088049672,\n 0.5384693101056830910363144207002088049672,\n -0.9061798459386639927976268782993929651256,\n 0.9061798459386639927976268782993929651256,\n ],\n [\n 0.6612093864662645136613995950199053470064,\n -0.6612093864662645136613995950199053470064,\n -0.2386191860831969086305017216807119354186,\n 0.2386191860831969086305017216807119354186,\n -0.9324695142031520278123015544939946091347,\n 0.9324695142031520278123015544939946091347,\n ],\n [\n 0, 0.4058451513773971669066064120769614633473,\n -0.4058451513773971669066064120769614633473,\n -0.7415311855993944398638647732807884070741,\n 0.7415311855993944398638647732807884070741,\n -0.9491079123427585245261896840478512624007,\n 0.9491079123427585245261896840478512624007,\n ],\n [\n -0.1834346424956498049394761423601839806667,\n 0.1834346424956498049394761423601839806667,\n -0.5255324099163289858177390491892463490419,\n 0.5255324099163289858177390491892463490419,\n -0.7966664774136267395915539364758304368371,\n 0.7966664774136267395915539364758304368371,\n -0.9602898564975362316835608685694729904282,\n 0.9602898564975362316835608685694729904282,\n ],\n [\n 0, -0.8360311073266357942994297880697348765441,\n 0.8360311073266357942994297880697348765441,\n -0.9681602395076260898355762029036728700494,\n 0.9681602395076260898355762029036728700494,\n -0.3242534234038089290385380146433366085719,\n 0.3242534234038089290385380146433366085719,\n -0.6133714327005903973087020393414741847857,\n 0.6133714327005903973087020393414741847857,\n ],\n [\n -0.1488743389816312108848260011297199846175,\n 0.1488743389816312108848260011297199846175,\n -0.4333953941292471907992659431657841622,\n 0.4333953941292471907992659431657841622,\n -0.6794095682990244062343273651148735757692,\n 0.6794095682990244062343273651148735757692,\n -0.8650633666889845107320966884234930485275,\n 0.8650633666889845107320966884234930485275,\n -0.9739065285171717200779640120844520534282,\n 0.9739065285171717200779640120844520534282,\n ],\n [\n 0, -0.2695431559523449723315319854008615246796,\n 0.2695431559523449723315319854008615246796,\n -0.5190961292068118159257256694586095544802,\n 0.5190961292068118159257256694586095544802,\n -0.7301520055740493240934162520311534580496,\n 0.7301520055740493240934162520311534580496,\n -0.8870625997680952990751577693039272666316,\n 0.8870625997680952990751577693039272666316,\n -0.9782286581460569928039380011228573907714,\n 0.9782286581460569928039380011228573907714,\n ],\n [\n -0.1252334085114689154724413694638531299833,\n 0.1252334085114689154724413694638531299833,\n -0.3678314989981801937526915366437175612563,\n 0.3678314989981801937526915366437175612563,\n -0.587317954286617447296702418940534280369,\n 0.587317954286617447296702418940534280369,\n -0.7699026741943046870368938332128180759849,\n 0.7699026741943046870368938332128180759849,\n -0.9041172563704748566784658661190961925375,\n 0.9041172563704748566784658661190961925375,\n -0.9815606342467192506905490901492808229601,\n 0.9815606342467192506905490901492808229601,\n ],\n [\n 0, -0.2304583159551347940655281210979888352115,\n 0.2304583159551347940655281210979888352115,\n -0.4484927510364468528779128521276398678019,\n 0.4484927510364468528779128521276398678019,\n -0.6423493394403402206439846069955156500716,\n 0.6423493394403402206439846069955156500716,\n -0.8015780907333099127942064895828598903056,\n 0.8015780907333099127942064895828598903056,\n -0.9175983992229779652065478365007195123904,\n 0.9175983992229779652065478365007195123904,\n -0.9841830547185881494728294488071096110649,\n 0.9841830547185881494728294488071096110649,\n ],\n [\n -0.1080549487073436620662446502198347476119,\n 0.1080549487073436620662446502198347476119,\n -0.3191123689278897604356718241684754668342,\n 0.3191123689278897604356718241684754668342,\n -0.5152486363581540919652907185511886623088,\n 0.5152486363581540919652907185511886623088,\n -0.6872929048116854701480198030193341375384,\n 0.6872929048116854701480198030193341375384,\n -0.8272013150697649931897947426503949610397,\n 0.8272013150697649931897947426503949610397,\n -0.928434883663573517336391139377874264477,\n 0.928434883663573517336391139377874264477,\n -0.986283808696812338841597266704052801676,\n 0.986283808696812338841597266704052801676,\n ],\n [\n 0, -0.2011940939974345223006283033945962078128,\n 0.2011940939974345223006283033945962078128,\n -0.3941513470775633698972073709810454683627,\n 0.3941513470775633698972073709810454683627,\n -0.5709721726085388475372267372539106412383,\n 0.5709721726085388475372267372539106412383,\n -0.7244177313601700474161860546139380096308,\n 0.7244177313601700474161860546139380096308,\n -0.8482065834104272162006483207742168513662,\n 0.8482065834104272162006483207742168513662,\n -0.9372733924007059043077589477102094712439,\n 0.9372733924007059043077589477102094712439,\n -0.9879925180204854284895657185866125811469,\n 0.9879925180204854284895657185866125811469,\n ],\n [\n -0.0950125098376374401853193354249580631303,\n 0.0950125098376374401853193354249580631303,\n -0.281603550779258913230460501460496106486,\n 0.281603550779258913230460501460496106486,\n -0.45801677765722738634241944298357757354,\n 0.45801677765722738634241944298357757354,\n -0.6178762444026437484466717640487910189918,\n 0.6178762444026437484466717640487910189918,\n -0.7554044083550030338951011948474422683538,\n 0.7554044083550030338951011948474422683538,\n -0.8656312023878317438804678977123931323873,\n 0.8656312023878317438804678977123931323873,\n -0.9445750230732325760779884155346083450911,\n 0.9445750230732325760779884155346083450911,\n -0.9894009349916499325961541734503326274262,\n 0.9894009349916499325961541734503326274262,\n ],\n [\n 0, -0.1784841814958478558506774936540655574754,\n 0.1784841814958478558506774936540655574754,\n -0.3512317634538763152971855170953460050405,\n 0.3512317634538763152971855170953460050405,\n -0.5126905370864769678862465686295518745829,\n 0.5126905370864769678862465686295518745829,\n -0.6576711592166907658503022166430023351478,\n 0.6576711592166907658503022166430023351478,\n -0.7815140038968014069252300555204760502239,\n 0.7815140038968014069252300555204760502239,\n -0.8802391537269859021229556944881556926234,\n 0.8802391537269859021229556944881556926234,\n -0.9506755217687677612227169578958030214433,\n 0.9506755217687677612227169578958030214433,\n -0.9905754753144173356754340199406652765077,\n 0.9905754753144173356754340199406652765077,\n ],\n [\n -0.0847750130417353012422618529357838117333,\n 0.0847750130417353012422618529357838117333,\n -0.2518862256915055095889728548779112301628,\n 0.2518862256915055095889728548779112301628,\n -0.4117511614628426460359317938330516370789,\n 0.4117511614628426460359317938330516370789,\n -0.5597708310739475346078715485253291369276,\n 0.5597708310739475346078715485253291369276,\n -0.6916870430603532078748910812888483894522,\n 0.6916870430603532078748910812888483894522,\n -0.8037049589725231156824174550145907971032,\n 0.8037049589725231156824174550145907971032,\n -0.8926024664975557392060605911271455154078,\n 0.8926024664975557392060605911271455154078,\n -0.9558239495713977551811958929297763099728,\n 0.9558239495713977551811958929297763099728,\n -0.9915651684209309467300160047061507702525,\n 0.9915651684209309467300160047061507702525,\n ],\n [\n 0, -0.1603586456402253758680961157407435495048,\n 0.1603586456402253758680961157407435495048,\n -0.3165640999636298319901173288498449178922,\n 0.3165640999636298319901173288498449178922,\n -0.4645707413759609457172671481041023679762,\n 0.4645707413759609457172671481041023679762,\n -0.6005453046616810234696381649462392798683,\n 0.6005453046616810234696381649462392798683,\n -0.7209661773352293786170958608237816296571,\n 0.7209661773352293786170958608237816296571,\n -0.8227146565371428249789224867127139017745,\n 0.8227146565371428249789224867127139017745,\n -0.9031559036148179016426609285323124878093,\n 0.9031559036148179016426609285323124878093,\n -0.960208152134830030852778840687651526615,\n 0.960208152134830030852778840687651526615,\n -0.9924068438435844031890176702532604935893,\n 0.9924068438435844031890176702532604935893,\n ],\n [\n -0.0765265211334973337546404093988382110047,\n 0.0765265211334973337546404093988382110047,\n -0.227785851141645078080496195368574624743,\n 0.227785851141645078080496195368574624743,\n -0.3737060887154195606725481770249272373957,\n 0.3737060887154195606725481770249272373957,\n -0.5108670019508270980043640509552509984254,\n 0.5108670019508270980043640509552509984254,\n -0.6360536807265150254528366962262859367433,\n 0.6360536807265150254528366962262859367433,\n -0.7463319064601507926143050703556415903107,\n 0.7463319064601507926143050703556415903107,\n -0.8391169718222188233945290617015206853296,\n 0.8391169718222188233945290617015206853296,\n -0.9122344282513259058677524412032981130491,\n 0.9122344282513259058677524412032981130491,\n -0.963971927277913791267666131197277221912,\n 0.963971927277913791267666131197277221912,\n -0.9931285991850949247861223884713202782226,\n 0.9931285991850949247861223884713202782226,\n ],\n [\n 0, -0.1455618541608950909370309823386863301163,\n 0.1455618541608950909370309823386863301163,\n -0.288021316802401096600792516064600319909,\n 0.288021316802401096600792516064600319909,\n -0.4243421202074387835736688885437880520964,\n 0.4243421202074387835736688885437880520964,\n -0.551618835887219807059018796724313286622,\n 0.551618835887219807059018796724313286622,\n -0.667138804197412319305966669990339162597,\n 0.667138804197412319305966669990339162597,\n -0.7684399634756779086158778513062280348209,\n 0.7684399634756779086158778513062280348209,\n -0.8533633645833172836472506385875676702761,\n 0.8533633645833172836472506385875676702761,\n -0.9200993341504008287901871337149688941591,\n 0.9200993341504008287901871337149688941591,\n -0.9672268385663062943166222149076951614246,\n 0.9672268385663062943166222149076951614246,\n -0.9937521706203895002602420359379409291933,\n 0.9937521706203895002602420359379409291933,\n ],\n [\n -0.0697392733197222212138417961186280818222,\n 0.0697392733197222212138417961186280818222,\n -0.2078604266882212854788465339195457342156,\n 0.2078604266882212854788465339195457342156,\n -0.3419358208920842251581474204273796195591,\n 0.3419358208920842251581474204273796195591,\n -0.4693558379867570264063307109664063460953,\n 0.4693558379867570264063307109664063460953,\n -0.5876404035069115929588769276386473488776,\n 0.5876404035069115929588769276386473488776,\n -0.6944872631866827800506898357622567712673,\n 0.6944872631866827800506898357622567712673,\n -0.7878168059792081620042779554083515213881,\n 0.7878168059792081620042779554083515213881,\n -0.8658125777203001365364256370193787290847,\n 0.8658125777203001365364256370193787290847,\n -0.9269567721871740005206929392590531966353,\n 0.9269567721871740005206929392590531966353,\n -0.9700604978354287271239509867652687108059,\n 0.9700604978354287271239509867652687108059,\n -0.994294585482399292073031421161298980393,\n 0.994294585482399292073031421161298980393,\n ],\n [\n 0, -0.1332568242984661109317426822417661370104,\n 0.1332568242984661109317426822417661370104,\n -0.264135680970344930533869538283309602979,\n 0.264135680970344930533869538283309602979,\n -0.390301038030290831421488872880605458578,\n 0.390301038030290831421488872880605458578,\n -0.5095014778460075496897930478668464305448,\n 0.5095014778460075496897930478668464305448,\n -0.6196098757636461563850973116495956533871,\n 0.6196098757636461563850973116495956533871,\n -0.7186613631319501944616244837486188483299,\n 0.7186613631319501944616244837486188483299,\n -0.8048884016188398921511184069967785579414,\n 0.8048884016188398921511184069967785579414,\n -0.8767523582704416673781568859341456716389,\n 0.8767523582704416673781568859341456716389,\n -0.9329710868260161023491969890384229782357,\n 0.9329710868260161023491969890384229782357,\n -0.9725424712181152319560240768207773751816,\n 0.9725424712181152319560240768207773751816,\n -0.9947693349975521235239257154455743605736,\n 0.9947693349975521235239257154455743605736,\n ],\n [\n -0.0640568928626056260850430826247450385909,\n 0.0640568928626056260850430826247450385909,\n -0.1911188674736163091586398207570696318404,\n 0.1911188674736163091586398207570696318404,\n -0.3150426796961633743867932913198102407864,\n 0.3150426796961633743867932913198102407864,\n -0.4337935076260451384870842319133497124524,\n 0.4337935076260451384870842319133497124524,\n -0.5454214713888395356583756172183723700107,\n 0.5454214713888395356583756172183723700107,\n -0.6480936519369755692524957869107476266696,\n 0.6480936519369755692524957869107476266696,\n -0.7401241915785543642438281030999784255232,\n 0.7401241915785543642438281030999784255232,\n -0.8200019859739029219539498726697452080761,\n 0.8200019859739029219539498726697452080761,\n -0.8864155270044010342131543419821967550873,\n 0.8864155270044010342131543419821967550873,\n -0.9382745520027327585236490017087214496548,\n 0.9382745520027327585236490017087214496548,\n -0.9747285559713094981983919930081690617411,\n 0.9747285559713094981983919930081690617411,\n -0.9951872199970213601799974097007368118745,\n 0.9951872199970213601799974097007368118745,\n ],\n];\nexports.cValues = [\n [],\n [],\n [1.0, 1.0],\n [\n 0.8888888888888888888888888888888888888888,\n 0.5555555555555555555555555555555555555555,\n 0.5555555555555555555555555555555555555555,\n ],\n [\n 0.6521451548625461426269360507780005927646,\n 0.6521451548625461426269360507780005927646,\n 0.3478548451374538573730639492219994072353,\n 0.3478548451374538573730639492219994072353,\n ],\n [\n 0.5688888888888888888888888888888888888888,\n 0.4786286704993664680412915148356381929122,\n 0.4786286704993664680412915148356381929122,\n 0.2369268850561890875142640407199173626432,\n 0.2369268850561890875142640407199173626432,\n ],\n [\n 0.3607615730481386075698335138377161116615,\n 0.3607615730481386075698335138377161116615,\n 0.4679139345726910473898703439895509948116,\n 0.4679139345726910473898703439895509948116,\n 0.1713244923791703450402961421727328935268,\n 0.1713244923791703450402961421727328935268,\n ],\n [\n 0.4179591836734693877551020408163265306122,\n 0.3818300505051189449503697754889751338783,\n 0.3818300505051189449503697754889751338783,\n 0.2797053914892766679014677714237795824869,\n 0.2797053914892766679014677714237795824869,\n 0.1294849661688696932706114326790820183285,\n 0.1294849661688696932706114326790820183285,\n ],\n [\n 0.3626837833783619829651504492771956121941,\n 0.3626837833783619829651504492771956121941,\n 0.3137066458778872873379622019866013132603,\n 0.3137066458778872873379622019866013132603,\n 0.2223810344533744705443559944262408844301,\n 0.2223810344533744705443559944262408844301,\n 0.1012285362903762591525313543099621901153,\n 0.1012285362903762591525313543099621901153,\n ],\n [\n 0.3302393550012597631645250692869740488788,\n 0.1806481606948574040584720312429128095143,\n 0.1806481606948574040584720312429128095143,\n 0.0812743883615744119718921581105236506756,\n 0.0812743883615744119718921581105236506756,\n 0.3123470770400028400686304065844436655987,\n 0.3123470770400028400686304065844436655987,\n 0.2606106964029354623187428694186328497718,\n 0.2606106964029354623187428694186328497718,\n ],\n [\n 0.295524224714752870173892994651338329421,\n 0.295524224714752870173892994651338329421,\n 0.2692667193099963550912269215694693528597,\n 0.2692667193099963550912269215694693528597,\n 0.2190863625159820439955349342281631924587,\n 0.2190863625159820439955349342281631924587,\n 0.1494513491505805931457763396576973324025,\n 0.1494513491505805931457763396576973324025,\n 0.0666713443086881375935688098933317928578,\n 0.0666713443086881375935688098933317928578,\n ],\n [\n 0.272925086777900630714483528336342189156,\n 0.2628045445102466621806888698905091953727,\n 0.2628045445102466621806888698905091953727,\n 0.2331937645919904799185237048431751394317,\n 0.2331937645919904799185237048431751394317,\n 0.1862902109277342514260976414316558916912,\n 0.1862902109277342514260976414316558916912,\n 0.1255803694649046246346942992239401001976,\n 0.1255803694649046246346942992239401001976,\n 0.0556685671161736664827537204425485787285,\n 0.0556685671161736664827537204425485787285,\n ],\n [\n 0.2491470458134027850005624360429512108304,\n 0.2491470458134027850005624360429512108304,\n 0.2334925365383548087608498989248780562594,\n 0.2334925365383548087608498989248780562594,\n 0.2031674267230659217490644558097983765065,\n 0.2031674267230659217490644558097983765065,\n 0.160078328543346226334652529543359071872,\n 0.160078328543346226334652529543359071872,\n 0.1069393259953184309602547181939962242145,\n 0.1069393259953184309602547181939962242145,\n 0.047175336386511827194615961485017060317,\n 0.047175336386511827194615961485017060317,\n ],\n [\n 0.2325515532308739101945895152688359481566,\n 0.2262831802628972384120901860397766184347,\n 0.2262831802628972384120901860397766184347,\n 0.2078160475368885023125232193060527633865,\n 0.2078160475368885023125232193060527633865,\n 0.1781459807619457382800466919960979955128,\n 0.1781459807619457382800466919960979955128,\n 0.1388735102197872384636017768688714676218,\n 0.1388735102197872384636017768688714676218,\n 0.0921214998377284479144217759537971209236,\n 0.0921214998377284479144217759537971209236,\n 0.0404840047653158795200215922009860600419,\n 0.0404840047653158795200215922009860600419,\n ],\n [\n 0.2152638534631577901958764433162600352749,\n 0.2152638534631577901958764433162600352749,\n 0.2051984637212956039659240656612180557103,\n 0.2051984637212956039659240656612180557103,\n 0.1855383974779378137417165901251570362489,\n 0.1855383974779378137417165901251570362489,\n 0.1572031671581935345696019386238421566056,\n 0.1572031671581935345696019386238421566056,\n 0.1215185706879031846894148090724766259566,\n 0.1215185706879031846894148090724766259566,\n 0.0801580871597602098056332770628543095836,\n 0.0801580871597602098056332770628543095836,\n 0.0351194603317518630318328761381917806197,\n 0.0351194603317518630318328761381917806197,\n ],\n [\n 0.2025782419255612728806201999675193148386,\n 0.1984314853271115764561183264438393248186,\n 0.1984314853271115764561183264438393248186,\n 0.1861610000155622110268005618664228245062,\n 0.1861610000155622110268005618664228245062,\n 0.1662692058169939335532008604812088111309,\n 0.1662692058169939335532008604812088111309,\n 0.1395706779261543144478047945110283225208,\n 0.1395706779261543144478047945110283225208,\n 0.1071592204671719350118695466858693034155,\n 0.1071592204671719350118695466858693034155,\n 0.0703660474881081247092674164506673384667,\n 0.0703660474881081247092674164506673384667,\n 0.0307532419961172683546283935772044177217,\n 0.0307532419961172683546283935772044177217,\n ],\n [\n 0.1894506104550684962853967232082831051469,\n 0.1894506104550684962853967232082831051469,\n 0.1826034150449235888667636679692199393835,\n 0.1826034150449235888667636679692199393835,\n 0.1691565193950025381893120790303599622116,\n 0.1691565193950025381893120790303599622116,\n 0.1495959888165767320815017305474785489704,\n 0.1495959888165767320815017305474785489704,\n 0.1246289712555338720524762821920164201448,\n 0.1246289712555338720524762821920164201448,\n 0.0951585116824927848099251076022462263552,\n 0.0951585116824927848099251076022462263552,\n 0.0622535239386478928628438369943776942749,\n 0.0622535239386478928628438369943776942749,\n 0.0271524594117540948517805724560181035122,\n 0.0271524594117540948517805724560181035122,\n ],\n [\n 0.1794464703562065254582656442618856214487,\n 0.1765627053669926463252709901131972391509,\n 0.1765627053669926463252709901131972391509,\n 0.1680041021564500445099706637883231550211,\n 0.1680041021564500445099706637883231550211,\n 0.1540457610768102880814315948019586119404,\n 0.1540457610768102880814315948019586119404,\n 0.1351363684685254732863199817023501973721,\n 0.1351363684685254732863199817023501973721,\n 0.1118838471934039710947883856263559267358,\n 0.1118838471934039710947883856263559267358,\n 0.0850361483171791808835353701910620738504,\n 0.0850361483171791808835353701910620738504,\n 0.0554595293739872011294401653582446605128,\n 0.0554595293739872011294401653582446605128,\n 0.0241483028685479319601100262875653246916,\n 0.0241483028685479319601100262875653246916,\n ],\n [\n 0.1691423829631435918406564701349866103341,\n 0.1691423829631435918406564701349866103341,\n 0.1642764837458327229860537764659275904123,\n 0.1642764837458327229860537764659275904123,\n 0.1546846751262652449254180038363747721932,\n 0.1546846751262652449254180038363747721932,\n 0.1406429146706506512047313037519472280955,\n 0.1406429146706506512047313037519472280955,\n 0.1225552067114784601845191268002015552281,\n 0.1225552067114784601845191268002015552281,\n 0.1009420441062871655628139849248346070628,\n 0.1009420441062871655628139849248346070628,\n 0.0764257302548890565291296776166365256053,\n 0.0764257302548890565291296776166365256053,\n 0.0497145488949697964533349462026386416808,\n 0.0497145488949697964533349462026386416808,\n 0.0216160135264833103133427102664524693876,\n 0.0216160135264833103133427102664524693876,\n ],\n [\n 0.1610544498487836959791636253209167350399,\n 0.1589688433939543476499564394650472016787,\n 0.1589688433939543476499564394650472016787,\n 0.152766042065859666778855400897662998461,\n 0.152766042065859666778855400897662998461,\n 0.1426067021736066117757461094419029724756,\n 0.1426067021736066117757461094419029724756,\n 0.1287539625393362276755157848568771170558,\n 0.1287539625393362276755157848568771170558,\n 0.1115666455473339947160239016817659974813,\n 0.1115666455473339947160239016817659974813,\n 0.0914900216224499994644620941238396526609,\n 0.0914900216224499994644620941238396526609,\n 0.0690445427376412265807082580060130449618,\n 0.0690445427376412265807082580060130449618,\n 0.0448142267656996003328381574019942119517,\n 0.0448142267656996003328381574019942119517,\n 0.0194617882297264770363120414644384357529,\n 0.0194617882297264770363120414644384357529,\n ],\n [\n 0.1527533871307258506980843319550975934919,\n 0.1527533871307258506980843319550975934919,\n 0.1491729864726037467878287370019694366926,\n 0.1491729864726037467878287370019694366926,\n 0.1420961093183820513292983250671649330345,\n 0.1420961093183820513292983250671649330345,\n 0.1316886384491766268984944997481631349161,\n 0.1316886384491766268984944997481631349161,\n 0.118194531961518417312377377711382287005,\n 0.118194531961518417312377377711382287005,\n 0.1019301198172404350367501354803498761666,\n 0.1019301198172404350367501354803498761666,\n 0.0832767415767047487247581432220462061001,\n 0.0832767415767047487247581432220462061001,\n 0.0626720483341090635695065351870416063516,\n 0.0626720483341090635695065351870416063516,\n 0.040601429800386941331039952274932109879,\n 0.040601429800386941331039952274932109879,\n 0.0176140071391521183118619623518528163621,\n 0.0176140071391521183118619623518528163621,\n ],\n [\n 0.1460811336496904271919851476833711882448,\n 0.1445244039899700590638271665537525436099,\n 0.1445244039899700590638271665537525436099,\n 0.1398873947910731547221334238675831108927,\n 0.1398873947910731547221334238675831108927,\n 0.132268938633337461781052574496775604329,\n 0.132268938633337461781052574496775604329,\n 0.1218314160537285341953671771257335983563,\n 0.1218314160537285341953671771257335983563,\n 0.1087972991671483776634745780701056420336,\n 0.1087972991671483776634745780701056420336,\n 0.0934444234560338615532897411139320884835,\n 0.0934444234560338615532897411139320884835,\n 0.0761001136283793020170516533001831792261,\n 0.0761001136283793020170516533001831792261,\n 0.0571344254268572082836358264724479574912,\n 0.0571344254268572082836358264724479574912,\n 0.0369537897708524937999506682993296661889,\n 0.0369537897708524937999506682993296661889,\n 0.0160172282577743333242246168584710152658,\n 0.0160172282577743333242246168584710152658,\n ],\n [\n 0.1392518728556319933754102483418099578739,\n 0.1392518728556319933754102483418099578739,\n 0.1365414983460151713525738312315173965863,\n 0.1365414983460151713525738312315173965863,\n 0.1311735047870623707329649925303074458757,\n 0.1311735047870623707329649925303074458757,\n 0.1232523768105124242855609861548144719594,\n 0.1232523768105124242855609861548144719594,\n 0.1129322960805392183934006074217843191142,\n 0.1129322960805392183934006074217843191142,\n 0.1004141444428809649320788378305362823508,\n 0.1004141444428809649320788378305362823508,\n 0.0859416062170677274144436813727028661891,\n 0.0859416062170677274144436813727028661891,\n 0.0697964684245204880949614189302176573987,\n 0.0697964684245204880949614189302176573987,\n 0.0522933351526832859403120512732112561121,\n 0.0522933351526832859403120512732112561121,\n 0.0337749015848141547933022468659129013491,\n 0.0337749015848141547933022468659129013491,\n 0.0146279952982722006849910980471854451902,\n 0.0146279952982722006849910980471854451902,\n ],\n [\n 0.1336545721861061753514571105458443385831,\n 0.132462039404696617371642464703316925805,\n 0.132462039404696617371642464703316925805,\n 0.1289057221880821499785953393997936532597,\n 0.1289057221880821499785953393997936532597,\n 0.1230490843067295304675784006720096548158,\n 0.1230490843067295304675784006720096548158,\n 0.1149966402224113649416435129339613014914,\n 0.1149966402224113649416435129339613014914,\n 0.1048920914645414100740861850147438548584,\n 0.1048920914645414100740861850147438548584,\n 0.0929157660600351474770186173697646486034,\n 0.0929157660600351474770186173697646486034,\n 0.0792814117767189549228925247420432269137,\n 0.0792814117767189549228925247420432269137,\n 0.0642324214085258521271696151589109980391,\n 0.0642324214085258521271696151589109980391,\n 0.0480376717310846685716410716320339965612,\n 0.0480376717310846685716410716320339965612,\n 0.0309880058569794443106942196418845053837,\n 0.0309880058569794443106942196418845053837,\n 0.0134118594871417720813094934586150649766,\n 0.0134118594871417720813094934586150649766,\n ],\n [\n 0.1279381953467521569740561652246953718517,\n 0.1279381953467521569740561652246953718517,\n 0.1258374563468282961213753825111836887264,\n 0.1258374563468282961213753825111836887264,\n 0.121670472927803391204463153476262425607,\n 0.121670472927803391204463153476262425607,\n 0.1155056680537256013533444839067835598622,\n 0.1155056680537256013533444839067835598622,\n 0.1074442701159656347825773424466062227946,\n 0.1074442701159656347825773424466062227946,\n 0.0976186521041138882698806644642471544279,\n 0.0976186521041138882698806644642471544279,\n 0.086190161531953275917185202983742667185,\n 0.086190161531953275917185202983742667185,\n 0.0733464814110803057340336152531165181193,\n 0.0733464814110803057340336152531165181193,\n 0.0592985849154367807463677585001085845412,\n 0.0592985849154367807463677585001085845412,\n 0.0442774388174198061686027482113382288593,\n 0.0442774388174198061686027482113382288593,\n 0.0285313886289336631813078159518782864491,\n 0.0285313886289336631813078159518782864491,\n 0.0123412297999871995468056670700372915759,\n 0.0123412297999871995468056670700372915759,\n ],\n];\nexports.binomialCoefficients = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]];\nconst getCubicArcLength = (xs, ys, t) => {\n let sum;\n let correctedT;\n const n = 20;\n const z = t / 2;\n sum = 0;\n for (let i = 0; i < n; i++) {\n correctedT = z * exports.tValues[n][i] + z;\n sum += exports.cValues[n][i] * BFunc(xs, ys, correctedT);\n }\n return z * sum;\n};\nexports.getCubicArcLength = getCubicArcLength;\nconst getQuadraticArcLength = (xs, ys, t) => {\n if (t === undefined) {\n t = 1;\n }\n const ax = xs[0] - 2 * xs[1] + xs[2];\n const ay = ys[0] - 2 * ys[1] + ys[2];\n const bx = 2 * xs[1] - 2 * xs[0];\n const by = 2 * ys[1] - 2 * ys[0];\n const A = 4 * (ax * ax + ay * ay);\n const B = 4 * (ax * bx + ay * by);\n const C = bx * bx + by * by;\n if (A === 0) {\n return (t * Math.sqrt(Math.pow(xs[2] - xs[0], 2) + Math.pow(ys[2] - ys[0], 2)));\n }\n const b = B / (2 * A);\n const c = C / A;\n const u = t + b;\n const k = c - b * b;\n const uuk = u * u + k > 0 ? Math.sqrt(u * u + k) : 0;\n const bbk = b * b + k > 0 ? Math.sqrt(b * b + k) : 0;\n const term = b + Math.sqrt(b * b + k) !== 0\n ? k * Math.log(Math.abs((u + uuk) / (b + bbk)))\n : 0;\n return (Math.sqrt(A) / 2) * (u * uuk - b * bbk + term);\n};\nexports.getQuadraticArcLength = getQuadraticArcLength;\nfunction BFunc(xs, ys, t) {\n const xbase = getDerivative(1, t, xs);\n const ybase = getDerivative(1, t, ys);\n const combined = xbase * xbase + ybase * ybase;\n return Math.sqrt(combined);\n}\nconst getDerivative = (derivative, t, vs) => {\n const n = vs.length - 1;\n let _vs;\n let value;\n if (n === 0) {\n return 0;\n }\n if (derivative === 0) {\n value = 0;\n for (let k = 0; k <= n; k++) {\n value +=\n exports.binomialCoefficients[n][k] *\n Math.pow(1 - t, n - k) *\n Math.pow(t, k) *\n vs[k];\n }\n return value;\n }\n else {\n _vs = new Array(n);\n for (let k = 0; k < n; k++) {\n _vs[k] = n * (vs[k + 1] - vs[k]);\n }\n return getDerivative(derivative - 1, t, _vs);\n }\n};\nconst t2length = (length, totalLength, func) => {\n let error = 1;\n let t = length / totalLength;\n let step = (length - func(t)) / totalLength;\n let numIterations = 0;\n while (error > 0.001) {\n const increasedTLength = func(t + step);\n const increasedTError = Math.abs(length - increasedTLength) / totalLength;\n if (increasedTError < error) {\n error = increasedTError;\n t += step;\n }\n else {\n const decreasedTLength = func(t - step);\n const decreasedTError = Math.abs(length - decreasedTLength) / totalLength;\n if (decreasedTError < error) {\n error = decreasedTError;\n t -= step;\n }\n else {\n step /= 2;\n }\n }\n numIterations++;\n if (numIterations > 500) {\n break;\n }\n }\n return t;\n};\nexports.t2length = t2length;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rect = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Util_1 = require(\"../Util\");\nconst Validators_1 = require(\"../Validators\");\nclass Rect extends Shape_1.Shape {\n _sceneFunc(context) {\n const cornerRadius = this.cornerRadius(), width = this.width(), height = this.height();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util_1.Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n}\nexports.Rect = Rect;\nRect.prototype.className = 'Rect';\n(0, Global_1._registerNode)(Rect);\nFactory_1.Factory.addGetterSetter(Rect, 'cornerRadius', 0, (0, Validators_1.getNumberOrArrayOfNumbersValidator)(4));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Text = void 0;\nexports.stringToArray = stringToArray;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_2 = require(\"../Global\");\nfunction stringToArray(string) {\n return [...string].reduce((acc, char, index, array) => {\n if (/\\p{Emoji}/u.test(char)) {\n const nextChar = array[index + 1];\n if (nextChar && /\\p{Emoji_Modifier}|\\u200D/u.test(nextChar)) {\n acc.push(char + nextChar);\n array[index + 1] = '';\n }\n else {\n acc.push(char);\n }\n }\n else if (/\\p{Regional_Indicator}{2}/u.test(char + (array[index + 1] || ''))) {\n acc.push(char + array[index + 1]);\n }\n else if (index > 0 && /\\p{Mn}|\\p{Me}|\\p{Mc}/u.test(char)) {\n acc[acc.length - 1] += char;\n }\n else if (char) {\n acc.push(char);\n }\n return acc;\n }, []);\n}\nconst AUTO = 'auto', CENTER = 'center', INHERIT = 'inherit', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', RTL = 'rtl', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [\n 'direction',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontVariant',\n 'padding',\n 'align',\n 'verticalAlign',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'wrap',\n 'ellipsis',\n 'letterSpacing',\n], attrChangeListLen = ATTR_CHANGE_LIST.length;\nfunction normalizeFontFamily(fontFamily) {\n return fontFamily\n .split(',')\n .map((family) => {\n family = family.trim();\n const hasSpace = family.indexOf(' ') >= 0;\n const hasQuotes = family.indexOf('\"') >= 0 || family.indexOf(\"'\") >= 0;\n if (hasSpace && !hasQuotes) {\n family = `\"${family}\"`;\n }\n return family;\n })\n .join(', ');\n}\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext(CONTEXT_2D);\n return dummyContext;\n}\nfunction _fillFunc(context) {\n context.fillText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction _strokeFunc(context) {\n context.setAttr('miterLimit', 2);\n context.strokeText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction checkDefaultFill(config) {\n config = config || {};\n if (!config.fillLinearGradientColorStops &&\n !config.fillRadialGradientColorStops &&\n !config.fillPatternImage) {\n config.fill = config.fill || 'black';\n }\n return config;\n}\nclass Text extends Shape_1.Shape {\n constructor(config) {\n super(checkDefaultFill(config));\n this._partialTextX = 0;\n this._partialTextY = 0;\n for (let n = 0; n < attrChangeListLen; n++) {\n this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, this._setTextData);\n }\n this._setTextData();\n }\n _sceneFunc(context) {\n const textArr = this.textArr, textArrLen = textArr.length;\n if (!this.text()) {\n return;\n }\n let padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), direction = this.direction(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;\n direction = direction === INHERIT ? context.direction : direction;\n let translateY = lineHeightPx / 2;\n let baseline = MIDDLE;\n if (Global_1.Konva._fixTextRendering) {\n const metrics = this.measureSize('M');\n baseline = 'alphabetic';\n translateY =\n (metrics.fontBoundingBoxAscent - metrics.fontBoundingBoxDescent) / 2 +\n lineHeightPx / 2;\n }\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n if (direction === RTL) {\n context.setAttr('direction', direction);\n }\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', baseline);\n context.setAttr('textAlign', LEFT);\n if (verticalAlign === MIDDLE) {\n alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;\n }\n else if (verticalAlign === BOTTOM) {\n alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;\n }\n context.translate(padding, alignY + padding);\n for (n = 0; n < textArrLen; n++) {\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n var obj = textArr[n], text = obj.text, width = obj.width, lastLine = obj.lastInParagraph, spacesNumber, oneWord, lineWidth;\n context.save();\n if (align === RIGHT) {\n lineTranslateX += totalWidth - width - padding * 2;\n }\n else if (align === CENTER) {\n lineTranslateX += (totalWidth - width - padding * 2) / 2;\n }\n if (shouldUnderline) {\n context.save();\n context.beginPath();\n const yOffset = Global_1.Konva._fixTextRendering\n ? Math.round(fontSize / 4)\n : Math.round(fontSize / 2);\n const x = lineTranslateX;\n const y = translateY + lineTranslateY + yOffset;\n context.moveTo(x, y);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && !lastLine ? totalWidth - padding * 2 : width;\n context.lineTo(x + Math.round(lineWidth), y);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n if (shouldLineThrough) {\n context.save();\n context.beginPath();\n const yOffset = Global_1.Konva._fixTextRendering ? -Math.round(fontSize / 4) : 0;\n context.moveTo(lineTranslateX, translateY + lineTranslateY + yOffset);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && !lastLine ? totalWidth - padding * 2 : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY + yOffset);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n if (direction !== RTL && (letterSpacing !== 0 || align === JUSTIFY)) {\n spacesNumber = text.split(' ').length - 1;\n const array = stringToArray(text);\n for (let li = 0; li < array.length; li++) {\n const letter = array[li];\n if (letter === ' ' && !lastLine && align === JUSTIFY) {\n lineTranslateX += (totalWidth - padding * 2 - width) / spacesNumber;\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = letter;\n context.fillStrokeShape(this);\n lineTranslateX += this.measureSize(letter).width + letterSpacing;\n }\n }\n else {\n if (letterSpacing !== 0) {\n context.setAttr('letterSpacing', `${letterSpacing}px`);\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = text;\n context.fillStrokeShape(this);\n }\n context.restore();\n if (textArrLen > 1) {\n translateY += lineHeightPx;\n }\n }\n }\n _hitFunc(context) {\n const width = this.getWidth(), height = this.getHeight();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n setText(text) {\n const str = Util_1.Util._isString(text)\n ? text\n : text === null || text === undefined\n ? ''\n : text + '';\n this._setAttr(TEXT, str);\n return this;\n }\n getWidth() {\n const isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n }\n getHeight() {\n const isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;\n return isAuto\n ? this.fontSize() * this.textArr.length * this.lineHeight() +\n this.padding() * 2\n : this.attrs.height;\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util_1.Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n measureSize(text) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n let _context = getDummyContext(), fontSize = this.fontSize(), metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n const scaleFactor = fontSize / 100;\n return {\n actualBoundingBoxAscent: (_a = metrics.actualBoundingBoxAscent) !== null && _a !== void 0 ? _a : 71.58203125 * scaleFactor,\n actualBoundingBoxDescent: (_b = metrics.actualBoundingBoxDescent) !== null && _b !== void 0 ? _b : 0,\n actualBoundingBoxLeft: (_c = metrics.actualBoundingBoxLeft) !== null && _c !== void 0 ? _c : -7.421875 * scaleFactor,\n actualBoundingBoxRight: (_d = metrics.actualBoundingBoxRight) !== null && _d !== void 0 ? _d : 75.732421875 * scaleFactor,\n alphabeticBaseline: (_e = metrics.alphabeticBaseline) !== null && _e !== void 0 ? _e : 0,\n emHeightAscent: (_f = metrics.emHeightAscent) !== null && _f !== void 0 ? _f : 100 * scaleFactor,\n emHeightDescent: (_g = metrics.emHeightDescent) !== null && _g !== void 0 ? _g : -20 * scaleFactor,\n fontBoundingBoxAscent: (_h = metrics.fontBoundingBoxAscent) !== null && _h !== void 0 ? _h : 91 * scaleFactor,\n fontBoundingBoxDescent: (_j = metrics.fontBoundingBoxDescent) !== null && _j !== void 0 ? _j : 21 * scaleFactor,\n hangingBaseline: (_k = metrics.hangingBaseline) !== null && _k !== void 0 ? _k : 72.80000305175781 * scaleFactor,\n ideographicBaseline: (_l = metrics.ideographicBaseline) !== null && _l !== void 0 ? _l : -21 * scaleFactor,\n width: metrics.width,\n height: fontSize,\n };\n }\n _getContextFont() {\n return (this.fontStyle() +\n SPACE +\n this.fontVariant() +\n SPACE +\n (this.fontSize() + PX_SPACE) +\n normalizeFontFamily(this.fontFamily()));\n }\n _addTextLine(line) {\n const align = this.align();\n if (align === JUSTIFY) {\n line = line.trim();\n }\n const width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width,\n lastInParagraph: false,\n });\n }\n _getTextWidth(text) {\n const letterSpacing = this.letterSpacing();\n const length = text.length;\n return getDummyContext().measureText(text).width + letterSpacing * length;\n }\n _setTextData() {\n let lines = this.text().split('\\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis();\n this.textArr = [];\n getDummyContext().font = this._getContextFont();\n const additionalWidth = shouldAddEllipsis\n ? this._getTextWidth(ELLIPSIS)\n : 0;\n for (let i = 0, max = lines.length; i < max; ++i) {\n let line = lines[i];\n let lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n let low = 0, high = stringToArray(line).length, match = '', matchWidth = 0;\n while (low < high) {\n const mid = (low + high) >>> 1, lineArray = stringToArray(line), substr = lineArray.slice(0, mid + 1).join(''), substrWidth = this._getTextWidth(substr) + additionalWidth;\n if (substrWidth <= maxWidth) {\n low = mid + 1;\n match = substr;\n matchWidth = substrWidth;\n }\n else {\n high = mid;\n }\n }\n if (match) {\n if (wrapAtWord) {\n const lineArray = stringToArray(line);\n const matchArray = stringToArray(match);\n const nextChar = lineArray[matchArray.length];\n const nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n let wrapIndex;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = matchArray.length;\n }\n else {\n const lastSpaceIndex = matchArray.lastIndexOf(SPACE);\n const lastDashIndex = matchArray.lastIndexOf(DASH);\n wrapIndex = Math.max(lastSpaceIndex, lastDashIndex) + 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = lineArray.slice(0, low).join('');\n matchWidth = this._getTextWidth(match);\n }\n }\n match = match.trimRight();\n this._addTextLine(match);\n textWidth = Math.max(textWidth, matchWidth);\n currentHeightPx += lineHeightPx;\n const shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);\n if (shouldHandleEllipsis) {\n this._tryToAddEllipsisToLastLine();\n break;\n }\n const lineArray = stringToArray(line);\n line = lineArray.slice(low).join('').trimLeft();\n if (line.length > 0) {\n lineWidth = this._getTextWidth(line);\n if (lineWidth <= maxWidth) {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n break;\n }\n }\n }\n else {\n break;\n }\n }\n }\n else {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n if (this._shouldHandleEllipsis(currentHeightPx) && i < max - 1) {\n this._tryToAddEllipsisToLastLine();\n }\n }\n if (this.textArr[this.textArr.length - 1]) {\n this.textArr[this.textArr.length - 1].lastInParagraph = true;\n }\n if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n }\n this.textHeight = fontSize;\n this.textWidth = textWidth;\n }\n _shouldHandleEllipsis(currentHeightPx) {\n const fontSize = +this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, height = this.attrs.height, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxHeightPx = height - padding * 2, wrap = this.wrap(), shouldWrap = wrap !== NONE;\n return (!shouldWrap ||\n (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx));\n }\n _tryToAddEllipsisToLastLine() {\n const width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();\n const lastLine = this.textArr[this.textArr.length - 1];\n if (!lastLine || !shouldAddEllipsis) {\n return;\n }\n if (fixedWidth) {\n const haveSpace = this._getTextWidth(lastLine.text + ELLIPSIS) < maxWidth;\n if (!haveSpace) {\n lastLine.text = lastLine.text.slice(0, lastLine.text.length - 3);\n }\n }\n this.textArr.splice(this.textArr.length - 1, 1);\n this._addTextLine(lastLine.text + ELLIPSIS);\n }\n getStrokeScaleEnabled() {\n return true;\n }\n _useBufferCanvas() {\n const hasLine = this.textDecoration().indexOf('underline') !== -1 ||\n this.textDecoration().indexOf('line-through') !== -1;\n const hasShadow = this.hasShadow();\n if (hasLine && hasShadow) {\n return true;\n }\n return super._useBufferCanvas();\n }\n}\nexports.Text = Text;\nText.prototype._fillFunc = _fillFunc;\nText.prototype._strokeFunc = _strokeFunc;\nText.prototype.className = TEXT_UPPER;\nText.prototype._attrsAffectingSize = [\n 'text',\n 'fontSize',\n 'padding',\n 'wrap',\n 'lineHeight',\n 'letterSpacing',\n];\n(0, Global_2._registerNode)(Text);\nFactory_1.Factory.overWriteSetter(Text, 'width', (0, Validators_1.getNumberOrAutoValidator)());\nFactory_1.Factory.overWriteSetter(Text, 'height', (0, Validators_1.getNumberOrAutoValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'direction', INHERIT);\nFactory_1.Factory.addGetterSetter(Text, 'fontFamily', 'Arial');\nFactory_1.Factory.addGetterSetter(Text, 'fontSize', 12, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'fontStyle', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'fontVariant', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'padding', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'align', LEFT);\nFactory_1.Factory.addGetterSetter(Text, 'verticalAlign', TOP);\nFactory_1.Factory.addGetterSetter(Text, 'lineHeight', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'wrap', WORD);\nFactory_1.Factory.addGetterSetter(Text, 'ellipsis', false, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'letterSpacing', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'text', '', (0, Validators_1.getStringValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'textDecoration', '');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Transformer = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Shape_1 = require(\"../Shape\");\nconst Rect_1 = require(\"./Rect\");\nconst Group_1 = require(\"../Group\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_2 = require(\"../Global\");\nconst EVENTS_NAME = 'tr-konva';\nconst ATTR_CHANGE_LIST = [\n 'resizeEnabledChange',\n 'rotateAnchorOffsetChange',\n 'rotateEnabledChange',\n 'enabledAnchorsChange',\n 'anchorSizeChange',\n 'borderEnabledChange',\n 'borderStrokeChange',\n 'borderStrokeWidthChange',\n 'borderDashChange',\n 'anchorStrokeChange',\n 'anchorStrokeWidthChange',\n 'anchorFillChange',\n 'anchorCornerRadiusChange',\n 'ignoreStrokeChange',\n 'anchorStyleFuncChange',\n]\n .map((e) => e + `.${EVENTS_NAME}`)\n .join(' ');\nconst NODES_RECT = 'nodesRect';\nconst TRANSFORM_CHANGE_STR = [\n 'widthChange',\n 'heightChange',\n 'scaleXChange',\n 'scaleYChange',\n 'skewXChange',\n 'skewYChange',\n 'rotationChange',\n 'offsetXChange',\n 'offsetYChange',\n 'transformsEnabledChange',\n 'strokeWidthChange',\n];\nconst ANGLES = {\n 'top-left': -45,\n 'top-center': 0,\n 'top-right': 45,\n 'middle-right': -90,\n 'middle-left': 90,\n 'bottom-left': -135,\n 'bottom-center': 180,\n 'bottom-right': 135,\n};\nconst TOUCH_DEVICE = 'ontouchstart' in Global_1.Konva._global;\nfunction getCursor(anchorName, rad, rotateCursor) {\n if (anchorName === 'rotater') {\n return rotateCursor;\n }\n rad += Util_1.Util.degToRad(ANGLES[anchorName] || 0);\n const angle = ((Util_1.Util.radToDeg(rad) % 360) + 360) % 360;\n if (Util_1.Util._inRange(angle, 315 + 22.5, 360) || Util_1.Util._inRange(angle, 0, 22.5)) {\n return 'ns-resize';\n }\n else if (Util_1.Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util_1.Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util_1.Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {\n return 'nwse-resize';\n }\n else if (Util_1.Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {\n return 'ns-resize';\n }\n else if (Util_1.Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util_1.Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util_1.Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {\n return 'nwse-resize';\n }\n else {\n Util_1.Util.error('Transformer has unknown angle for cursor detection: ' + angle);\n return 'pointer';\n }\n}\nconst ANCHORS_NAMES = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'middle-right',\n 'middle-left',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n];\nconst MAX_SAFE_INTEGER = 100000000;\nfunction getCenter(shape) {\n return {\n x: shape.x +\n (shape.width / 2) * Math.cos(shape.rotation) +\n (shape.height / 2) * Math.sin(-shape.rotation),\n y: shape.y +\n (shape.height / 2) * Math.cos(shape.rotation) +\n (shape.width / 2) * Math.sin(shape.rotation),\n };\n}\nfunction rotateAroundPoint(shape, angleRad, point) {\n const x = point.x +\n (shape.x - point.x) * Math.cos(angleRad) -\n (shape.y - point.y) * Math.sin(angleRad);\n const y = point.y +\n (shape.x - point.x) * Math.sin(angleRad) +\n (shape.y - point.y) * Math.cos(angleRad);\n return {\n ...shape,\n rotation: shape.rotation + angleRad,\n x,\n y,\n };\n}\nfunction rotateAroundCenter(shape, deltaRad) {\n const center = getCenter(shape);\n return rotateAroundPoint(shape, deltaRad, center);\n}\nfunction getSnap(snaps, newRotationRad, tol) {\n let snapped = newRotationRad;\n for (let i = 0; i < snaps.length; i++) {\n const angle = Global_1.Konva.getAngle(snaps[i]);\n const absDiff = Math.abs(angle - newRotationRad) % (Math.PI * 2);\n const dif = Math.min(absDiff, Math.PI * 2 - absDiff);\n if (dif < tol) {\n snapped = angle;\n }\n }\n return snapped;\n}\nlet activeTransformersCount = 0;\nclass Transformer extends Group_1.Group {\n constructor(config) {\n super(config);\n this._movingAnchorName = null;\n this._transforming = false;\n this._createElements();\n this._handleMouseMove = this._handleMouseMove.bind(this);\n this._handleMouseUp = this._handleMouseUp.bind(this);\n this.update = this.update.bind(this);\n this.on(ATTR_CHANGE_LIST, this.update);\n if (this.getNode()) {\n this.update();\n }\n }\n attachTo(node) {\n this.setNode(node);\n return this;\n }\n setNode(node) {\n Util_1.Util.warn('tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.');\n return this.setNodes([node]);\n }\n getNode() {\n return this._nodes && this._nodes[0];\n }\n _getEventNamespace() {\n return EVENTS_NAME + this._id;\n }\n setNodes(nodes = []) {\n if (this._nodes && this._nodes.length) {\n this.detach();\n }\n const filteredNodes = nodes.filter((node) => {\n if (node.isAncestorOf(this)) {\n Util_1.Util.error('Konva.Transformer cannot be an a child of the node you are trying to attach');\n return false;\n }\n return true;\n });\n this._nodes = nodes = filteredNodes;\n if (nodes.length === 1 && this.useSingleNodeRotation()) {\n this.rotation(nodes[0].getAbsoluteRotation());\n }\n else {\n this.rotation(0);\n }\n this._nodes.forEach((node) => {\n const onChange = () => {\n if (this.nodes().length === 1 && this.useSingleNodeRotation()) {\n this.rotation(this.nodes()[0].getAbsoluteRotation());\n }\n this._resetTransformCache();\n if (!this._transforming && !this.isDragging()) {\n this.update();\n }\n };\n const additionalEvents = node._attrsAffectingSize\n .map((prop) => prop + 'Change.' + this._getEventNamespace())\n .join(' ');\n node.on(additionalEvents, onChange);\n node.on(TRANSFORM_CHANGE_STR.map((e) => e + `.${this._getEventNamespace()}`).join(' '), onChange);\n node.on(`absoluteTransformChange.${this._getEventNamespace()}`, onChange);\n this._proxyDrag(node);\n });\n this._resetTransformCache();\n const elementsCreated = !!this.findOne('.top-left');\n if (elementsCreated) {\n this.update();\n }\n return this;\n }\n _proxyDrag(node) {\n let lastPos;\n node.on(`dragstart.${this._getEventNamespace()}`, (e) => {\n lastPos = node.getAbsolutePosition();\n if (!this.isDragging() && node !== this.findOne('.back')) {\n this.startDrag(e, false);\n }\n });\n node.on(`dragmove.${this._getEventNamespace()}`, (e) => {\n if (!lastPos) {\n return;\n }\n const abs = node.getAbsolutePosition();\n const dx = abs.x - lastPos.x;\n const dy = abs.y - lastPos.y;\n this.nodes().forEach((otherNode) => {\n if (otherNode === node) {\n return;\n }\n if (otherNode.isDragging()) {\n return;\n }\n const otherAbs = otherNode.getAbsolutePosition();\n otherNode.setAbsolutePosition({\n x: otherAbs.x + dx,\n y: otherAbs.y + dy,\n });\n otherNode.startDrag(e);\n });\n lastPos = null;\n });\n }\n getNodes() {\n return this._nodes || [];\n }\n getActiveAnchor() {\n return this._movingAnchorName;\n }\n detach() {\n if (this._nodes) {\n this._nodes.forEach((node) => {\n node.off('.' + this._getEventNamespace());\n });\n }\n this._nodes = [];\n this._resetTransformCache();\n }\n _resetTransformCache() {\n this._clearCache(NODES_RECT);\n this._clearCache('transform');\n this._clearSelfAndDescendantCache('absoluteTransform');\n }\n _getNodeRect() {\n return this._getCache(NODES_RECT, this.__getNodeRect);\n }\n __getNodeShape(node, rot = this.rotation(), relative) {\n const rect = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n const absScale = node.getAbsoluteScale(relative);\n const absPos = node.getAbsolutePosition(relative);\n const dx = rect.x * absScale.x - node.offsetX() * absScale.x;\n const dy = rect.y * absScale.y - node.offsetY() * absScale.y;\n const rotation = (Global_1.Konva.getAngle(node.getAbsoluteRotation()) + Math.PI * 2) %\n (Math.PI * 2);\n const box = {\n x: absPos.x + dx * Math.cos(rotation) + dy * Math.sin(-rotation),\n y: absPos.y + dy * Math.cos(rotation) + dx * Math.sin(rotation),\n width: rect.width * absScale.x,\n height: rect.height * absScale.y,\n rotation: rotation,\n };\n return rotateAroundPoint(box, -Global_1.Konva.getAngle(rot), {\n x: 0,\n y: 0,\n });\n }\n __getNodeRect() {\n const node = this.getNode();\n if (!node) {\n return {\n x: -MAX_SAFE_INTEGER,\n y: -MAX_SAFE_INTEGER,\n width: 0,\n height: 0,\n rotation: 0,\n };\n }\n const totalPoints = [];\n this.nodes().map((node) => {\n const box = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n const points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n const trans = node.getAbsoluteTransform();\n points.forEach(function (point) {\n const transformed = trans.point(point);\n totalPoints.push(transformed);\n });\n });\n const tr = new Util_1.Transform();\n tr.rotate(-Global_1.Konva.getAngle(this.rotation()));\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n totalPoints.forEach(function (point) {\n const transformed = tr.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n tr.invert();\n const p = tr.point({ x: minX, y: minY });\n return {\n x: p.x,\n y: p.y,\n width: maxX - minX,\n height: maxY - minY,\n rotation: Global_1.Konva.getAngle(this.rotation()),\n };\n }\n getX() {\n return this._getNodeRect().x;\n }\n getY() {\n return this._getNodeRect().y;\n }\n getWidth() {\n return this._getNodeRect().width;\n }\n getHeight() {\n return this._getNodeRect().height;\n }\n _createElements() {\n this._createBack();\n ANCHORS_NAMES.forEach((name) => {\n this._createAnchor(name);\n });\n this._createAnchor('rotater');\n }\n _createAnchor(name) {\n const anchor = new Rect_1.Rect({\n stroke: 'rgb(0, 161, 255)',\n fill: 'white',\n strokeWidth: 1,\n name: name + ' _anchor',\n dragDistance: 0,\n draggable: true,\n hitStrokeWidth: TOUCH_DEVICE ? 10 : 'auto',\n });\n const self = this;\n anchor.on('mousedown touchstart', function (e) {\n self._handleMouseDown(e);\n });\n anchor.on('dragstart', (e) => {\n anchor.stopDrag();\n e.cancelBubble = true;\n });\n anchor.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n anchor.on('mouseenter', () => {\n const rad = Global_1.Konva.getAngle(this.rotation());\n const rotateCursor = this.rotateAnchorCursor();\n const cursor = getCursor(name, rad, rotateCursor);\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = cursor);\n this._cursorChange = true;\n });\n anchor.on('mouseout', () => {\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = '');\n this._cursorChange = false;\n });\n this.add(anchor);\n }\n _createBack() {\n const back = new Shape_1.Shape({\n name: 'back',\n width: 0,\n height: 0,\n draggable: true,\n sceneFunc(ctx, shape) {\n const tr = shape.getParent();\n const padding = tr.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);\n ctx.moveTo(shape.width() / 2, -padding);\n if (tr.rotateEnabled() && tr.rotateLineVisible()) {\n ctx.lineTo(shape.width() / 2, -tr.rotateAnchorOffset() * Util_1.Util._sign(shape.height()) - padding);\n }\n ctx.fillStrokeShape(shape);\n },\n hitFunc: (ctx, shape) => {\n if (!this.shouldOverdrawWholeArea()) {\n return;\n }\n const padding = this.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);\n ctx.fillStrokeShape(shape);\n },\n });\n this.add(back);\n this._proxyDrag(back);\n back.on('dragstart', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragmove', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n this.on('dragmove', (e) => {\n this.update();\n });\n }\n _handleMouseDown(e) {\n if (this._transforming) {\n return;\n }\n this._movingAnchorName = e.target.name().split(' ')[0];\n const attrs = this._getNodeRect();\n const width = attrs.width;\n const height = attrs.height;\n const hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\n this.sin = Math.abs(height / hypotenuse);\n this.cos = Math.abs(width / hypotenuse);\n if (typeof window !== 'undefined') {\n window.addEventListener('mousemove', this._handleMouseMove);\n window.addEventListener('touchmove', this._handleMouseMove);\n window.addEventListener('mouseup', this._handleMouseUp, true);\n window.addEventListener('touchend', this._handleMouseUp, true);\n }\n this._transforming = true;\n const ap = e.target.getAbsolutePosition();\n const pos = e.target.getStage().getPointerPosition();\n this._anchorDragOffset = {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n };\n activeTransformersCount++;\n this._fire('transformstart', { evt: e.evt, target: this.getNode() });\n this._nodes.forEach((target) => {\n target._fire('transformstart', { evt: e.evt, target });\n });\n }\n _handleMouseMove(e) {\n let x, y, newHypotenuse;\n const anchorNode = this.findOne('.' + this._movingAnchorName);\n const stage = anchorNode.getStage();\n stage.setPointersPositions(e);\n const pp = stage.getPointerPosition();\n let newNodePos = {\n x: pp.x - this._anchorDragOffset.x,\n y: pp.y - this._anchorDragOffset.y,\n };\n const oldAbs = anchorNode.getAbsolutePosition();\n if (this.anchorDragBoundFunc()) {\n newNodePos = this.anchorDragBoundFunc()(oldAbs, newNodePos, e);\n }\n anchorNode.setAbsolutePosition(newNodePos);\n const newAbs = anchorNode.getAbsolutePosition();\n if (oldAbs.x === newAbs.x && oldAbs.y === newAbs.y) {\n return;\n }\n if (this._movingAnchorName === 'rotater') {\n const attrs = this._getNodeRect();\n x = anchorNode.x() - attrs.width / 2;\n y = -anchorNode.y() + attrs.height / 2;\n let delta = Math.atan2(-y, x) + Math.PI / 2;\n if (attrs.height < 0) {\n delta -= Math.PI;\n }\n const oldRotation = Global_1.Konva.getAngle(this.rotation());\n const newRotation = oldRotation + delta;\n const tol = Global_1.Konva.getAngle(this.rotationSnapTolerance());\n const snappedRot = getSnap(this.rotationSnaps(), newRotation, tol);\n const diff = snappedRot - attrs.rotation;\n const shape = rotateAroundCenter(attrs, diff);\n this._fitNodesInto(shape, e);\n return;\n }\n const shiftBehavior = this.shiftBehavior();\n let keepProportion;\n if (shiftBehavior === 'inverted') {\n keepProportion = this.keepRatio() && !e.shiftKey;\n }\n else if (shiftBehavior === 'none') {\n keepProportion = this.keepRatio();\n }\n else {\n keepProportion = this.keepRatio() || e.shiftKey;\n }\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (this._movingAnchorName === 'top-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-right').x(),\n y: this.findOne('.bottom-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-left').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-left').x(comparePoint.x - x);\n this.findOne('.top-left').y(comparePoint.y - y);\n }\n }\n else if (this._movingAnchorName === 'top-center') {\n this.findOne('.top-left').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'top-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-left').x(),\n y: this.findOne('.bottom-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-right').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-right').x(comparePoint.x + x);\n this.findOne('.top-right').y(comparePoint.y - y);\n }\n var pos = anchorNode.position();\n this.findOne('.top-left').y(pos.y);\n this.findOne('.bottom-right').x(pos.x);\n }\n else if (this._movingAnchorName === 'middle-left') {\n this.findOne('.top-left').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'middle-right') {\n this.findOne('.bottom-right').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'bottom-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-right').x(),\n y: this.findOne('.top-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;\n var reverseY = anchorNode.y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n anchorNode.x(comparePoint.x - x);\n anchorNode.y(comparePoint.y + y);\n }\n pos = anchorNode.position();\n this.findOne('.top-left').x(pos.x);\n this.findOne('.bottom-right').y(pos.y);\n }\n else if (this._movingAnchorName === 'bottom-center') {\n this.findOne('.bottom-right').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'bottom-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-left').x(),\n y: this.findOne('.top-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.bottom-right').y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.bottom-right').x(comparePoint.x + x);\n this.findOne('.bottom-right').y(comparePoint.y + y);\n }\n }\n else {\n console.error(new Error('Wrong position argument of selection resizer: ' +\n this._movingAnchorName));\n }\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (centeredScaling) {\n const topLeft = this.findOne('.top-left');\n const bottomRight = this.findOne('.bottom-right');\n const topOffsetX = topLeft.x();\n const topOffsetY = topLeft.y();\n const bottomOffsetX = this.getWidth() - bottomRight.x();\n const bottomOffsetY = this.getHeight() - bottomRight.y();\n bottomRight.move({\n x: -topOffsetX,\n y: -topOffsetY,\n });\n topLeft.move({\n x: bottomOffsetX,\n y: bottomOffsetY,\n });\n }\n const absPos = this.findOne('.top-left').getAbsolutePosition();\n x = absPos.x;\n y = absPos.y;\n const width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();\n const height = this.findOne('.bottom-right').y() - this.findOne('.top-left').y();\n this._fitNodesInto({\n x: x,\n y: y,\n width: width,\n height: height,\n rotation: Global_1.Konva.getAngle(this.rotation()),\n }, e);\n }\n _handleMouseUp(e) {\n this._removeEvents(e);\n }\n getAbsoluteTransform() {\n return this.getTransform();\n }\n _removeEvents(e) {\n var _a;\n if (this._transforming) {\n this._transforming = false;\n if (typeof window !== 'undefined') {\n window.removeEventListener('mousemove', this._handleMouseMove);\n window.removeEventListener('touchmove', this._handleMouseMove);\n window.removeEventListener('mouseup', this._handleMouseUp, true);\n window.removeEventListener('touchend', this._handleMouseUp, true);\n }\n const node = this.getNode();\n activeTransformersCount--;\n this._fire('transformend', { evt: e, target: node });\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n if (node) {\n this._nodes.forEach((target) => {\n var _a;\n target._fire('transformend', { evt: e, target });\n (_a = target.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n }\n this._movingAnchorName = null;\n }\n }\n _fitNodesInto(newAttrs, evt) {\n const oldAttrs = this._getNodeRect();\n const minSize = 1;\n if (Util_1.Util._inRange(newAttrs.width, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n if (Util_1.Util._inRange(newAttrs.height, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n const t = new Util_1.Transform();\n t.rotate(Global_1.Konva.getAngle(this.rotation()));\n if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('left') >= 0) {\n const offset = t.point({\n x: -this.padding() * 2,\n y: 0,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n newAttrs.width += this.padding() * 2;\n this._movingAnchorName = this._movingAnchorName.replace('left', 'right');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n }\n else if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('right') >= 0) {\n const offset = t.point({\n x: this.padding() * 2,\n y: 0,\n });\n this._movingAnchorName = this._movingAnchorName.replace('right', 'left');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.width += this.padding() * 2;\n }\n if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('top') >= 0) {\n const offset = t.point({\n x: 0,\n y: -this.padding() * 2,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n this._movingAnchorName = this._movingAnchorName.replace('top', 'bottom');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n }\n else if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('bottom') >= 0) {\n const offset = t.point({\n x: 0,\n y: this.padding() * 2,\n });\n this._movingAnchorName = this._movingAnchorName.replace('bottom', 'top');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n }\n if (this.boundBoxFunc()) {\n const bounded = this.boundBoxFunc()(oldAttrs, newAttrs);\n if (bounded) {\n newAttrs = bounded;\n }\n else {\n Util_1.Util.warn('boundBoxFunc returned falsy. You should return new bound rect from it!');\n }\n }\n const baseSize = 10000000;\n const oldTr = new Util_1.Transform();\n oldTr.translate(oldAttrs.x, oldAttrs.y);\n oldTr.rotate(oldAttrs.rotation);\n oldTr.scale(oldAttrs.width / baseSize, oldAttrs.height / baseSize);\n const newTr = new Util_1.Transform();\n const newScaleX = newAttrs.width / baseSize;\n const newScaleY = newAttrs.height / baseSize;\n if (this.flipEnabled() === false) {\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.translate(newAttrs.width < 0 ? newAttrs.width : 0, newAttrs.height < 0 ? newAttrs.height : 0);\n newTr.scale(Math.abs(newScaleX), Math.abs(newScaleY));\n }\n else {\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.scale(newScaleX, newScaleY);\n }\n const delta = newTr.multiply(oldTr.invert());\n this._nodes.forEach((node) => {\n var _a;\n const parentTransform = node.getParent().getAbsoluteTransform();\n const localTransform = node.getTransform().copy();\n localTransform.translate(node.offsetX(), node.offsetY());\n const newLocalTransform = new Util_1.Transform();\n newLocalTransform\n .multiply(parentTransform.copy().invert())\n .multiply(delta)\n .multiply(parentTransform)\n .multiply(localTransform);\n const attrs = newLocalTransform.decompose();\n node.setAttrs(attrs);\n (_a = node.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n this.rotation(Util_1.Util._getRotation(newAttrs.rotation));\n this._nodes.forEach((node) => {\n this._fire('transform', { evt: evt, target: node });\n node._fire('transform', { evt: evt, target: node });\n });\n this._resetTransformCache();\n this.update();\n this.getLayer().batchDraw();\n }\n forceUpdate() {\n this._resetTransformCache();\n this.update();\n }\n _batchChangeChild(selector, attrs) {\n const anchor = this.findOne(selector);\n anchor.setAttrs(attrs);\n }\n update() {\n var _a;\n const attrs = this._getNodeRect();\n this.rotation(Util_1.Util._getRotation(attrs.rotation));\n const width = attrs.width;\n const height = attrs.height;\n const enabledAnchors = this.enabledAnchors();\n const resizeEnabled = this.resizeEnabled();\n const padding = this.padding();\n const anchorSize = this.anchorSize();\n const anchors = this.find('._anchor');\n anchors.forEach((node) => {\n node.setAttrs({\n width: anchorSize,\n height: anchorSize,\n offsetX: anchorSize / 2,\n offsetY: anchorSize / 2,\n stroke: this.anchorStroke(),\n strokeWidth: this.anchorStrokeWidth(),\n fill: this.anchorFill(),\n cornerRadius: this.anchorCornerRadius(),\n });\n });\n this._batchChangeChild('.top-left', {\n x: 0,\n y: 0,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0,\n });\n this._batchChangeChild('.top-center', {\n x: width / 2,\n y: 0,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0,\n });\n this._batchChangeChild('.top-right', {\n x: width,\n y: 0,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0,\n });\n this._batchChangeChild('.middle-left', {\n x: 0,\n y: height / 2,\n offsetX: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0,\n });\n this._batchChangeChild('.middle-right', {\n x: width,\n y: height / 2,\n offsetX: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0,\n });\n this._batchChangeChild('.bottom-left', {\n x: 0,\n y: height,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0,\n });\n this._batchChangeChild('.bottom-center', {\n x: width / 2,\n y: height,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0,\n });\n this._batchChangeChild('.bottom-right', {\n x: width,\n y: height,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0,\n });\n this._batchChangeChild('.rotater', {\n x: width / 2,\n y: -this.rotateAnchorOffset() * Util_1.Util._sign(height) - padding,\n visible: this.rotateEnabled(),\n });\n this._batchChangeChild('.back', {\n width: width,\n height: height,\n visible: this.borderEnabled(),\n stroke: this.borderStroke(),\n strokeWidth: this.borderStrokeWidth(),\n dash: this.borderDash(),\n x: 0,\n y: 0,\n });\n const styleFunc = this.anchorStyleFunc();\n if (styleFunc) {\n anchors.forEach((node) => {\n styleFunc(node);\n });\n }\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n }\n isTransforming() {\n return this._transforming;\n }\n stopTransform() {\n if (this._transforming) {\n this._removeEvents();\n const anchorNode = this.findOne('.' + this._movingAnchorName);\n if (anchorNode) {\n anchorNode.stopDrag();\n }\n }\n }\n destroy() {\n if (this.getStage() && this._cursorChange) {\n this.getStage().content && (this.getStage().content.style.cursor = '');\n }\n Group_1.Group.prototype.destroy.call(this);\n this.detach();\n this._removeEvents();\n return this;\n }\n toObject() {\n return Node_1.Node.prototype.toObject.call(this);\n }\n clone(obj) {\n const node = Node_1.Node.prototype.clone.call(this, obj);\n return node;\n }\n getClientRect() {\n if (this.nodes().length > 0) {\n return super.getClientRect();\n }\n else {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n }\n}\nexports.Transformer = Transformer;\nTransformer.isTransforming = () => {\n return activeTransformersCount > 0;\n};\nfunction validateAnchors(val) {\n if (!(val instanceof Array)) {\n Util_1.Util.warn('enabledAnchors value should be an array');\n }\n if (val instanceof Array) {\n val.forEach(function (name) {\n if (ANCHORS_NAMES.indexOf(name) === -1) {\n Util_1.Util.warn('Unknown anchor name: ' +\n name +\n '. Available names are: ' +\n ANCHORS_NAMES.join(', '));\n }\n });\n }\n return val || [];\n}\nTransformer.prototype.className = 'Transformer';\n(0, Global_2._registerNode)(Transformer);\nFactory_1.Factory.addGetterSetter(Transformer, 'enabledAnchors', ANCHORS_NAMES, validateAnchors);\nFactory_1.Factory.addGetterSetter(Transformer, 'flipEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'resizeEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorSize', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateLineVisible', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotationSnaps', []);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateAnchorCursor', 'crosshair');\nFactory_1.Factory.addGetterSetter(Transformer, 'rotationSnapTolerance', 5, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStroke', 'rgb(0, 161, 255)');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStrokeWidth', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorFill', 'white');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorCornerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderStroke', 'rgb(0, 161, 255)');\nFactory_1.Factory.addGetterSetter(Transformer, 'borderStrokeWidth', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderDash');\nFactory_1.Factory.addGetterSetter(Transformer, 'keepRatio', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'shiftBehavior', 'default');\nFactory_1.Factory.addGetterSetter(Transformer, 'centeredScaling', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'ignoreStroke', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'padding', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'nodes');\nFactory_1.Factory.addGetterSetter(Transformer, 'node');\nFactory_1.Factory.addGetterSetter(Transformer, 'boundBoxFunc');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorDragBoundFunc');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStyleFunc');\nFactory_1.Factory.addGetterSetter(Transformer, 'shouldOverdrawWholeArea', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'useSingleNodeRotation', true);\nFactory_1.Factory.backCompat(Transformer, {\n lineEnabled: 'borderEnabled',\n rotateHandlerOffset: 'rotateAnchorOffset',\n enabledHandlers: 'enabledAnchors',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Blur = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nfunction BlurStack() {\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n}\nconst mul_table = [\n 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292,\n 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292,\n 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259,\n 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292,\n 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373,\n 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259,\n 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381,\n 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292,\n 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461,\n 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373,\n 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309,\n 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259,\n 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442,\n 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381,\n 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332,\n 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\n 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259,\n];\nconst shg_table = [\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17,\n 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19,\n 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24,\n];\nfunction filterGaussBlurRGBA(imageData, radius) {\n const pixels = imageData.data, width = imageData.width, height = imageData.height;\n let x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, r_out_sum, g_out_sum, b_out_sum, a_out_sum, r_in_sum, g_in_sum, b_in_sum, a_in_sum, pr, pg, pb, pa, rbs;\n const div = radius + radius + 1, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), mul_sum = mul_table[radius], shg_sum = shg_table[radius];\n let stackEnd = null, stack = stackStart, stackIn = null, stackOut = null;\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n yw = yi = 0;\n for (y = 0; y < height; y++) {\n r_in_sum =\n g_in_sum =\n b_in_sum =\n a_in_sum =\n r_sum =\n g_sum =\n b_sum =\n a_sum =\n 0;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[p + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[p + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[p + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n }\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa !== 0) {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n r_in_sum += stackIn.r = pixels[p];\n g_in_sum += stackIn.g = pixels[p + 1];\n b_in_sum += stackIn.b = pixels[p + 2];\n a_in_sum += stackIn.a = pixels[p + 3];\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += 4;\n }\n yw += width;\n }\n for (x = 0; x < width; x++) {\n g_in_sum =\n b_in_sum =\n a_in_sum =\n r_in_sum =\n g_sum =\n b_sum =\n a_sum =\n r_sum =\n 0;\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n yp = width;\n for (i = 1; i <= radius; i++) {\n yi = (yp + x) << 2;\n r_sum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[yi + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[yi + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[yi + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n if (i < heightMinus1) {\n yp += width;\n }\n }\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p =\n (x +\n ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width) <<\n 2;\n r_sum += r_in_sum += stackIn.r = pixels[p];\n g_sum += g_in_sum += stackIn.g = pixels[p + 1];\n b_sum += b_in_sum += stackIn.b = pixels[p + 2];\n a_sum += a_in_sum += stackIn.a = pixels[p + 3];\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n}\nconst Blur = function Blur(imageData) {\n const radius = Math.round(this.blurRadius());\n if (radius > 0) {\n filterGaussBlurRGBA(imageData, radius);\n }\n};\nexports.Blur = Blur;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blurRadius', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Kaleidoscope = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Util_1 = require(\"../Util\");\nconst Validators_1 = require(\"../Validators\");\nconst ToPolar = function (src, dst, opt) {\n const srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2;\n let rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n let x = xSize - xMid;\n let y = ySize - yMid;\n const rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n const rSize = ySize, tSize = xSize;\n const conversion = ((360 / tSize) * Math.PI) / 180;\n for (let theta = 0; theta < tSize; theta += 1) {\n const sin = Math.sin(theta * conversion);\n const cos = Math.cos(theta * conversion);\n for (let radius = 0; radius < rSize; radius += 1) {\n x = Math.floor(xMid + ((rMax * radius) / rSize) * cos);\n y = Math.floor(yMid + ((rMax * radius) / rSize) * sin);\n let i = (y * xSize + x) * 4;\n const r = srcPixels[i + 0];\n const g = srcPixels[i + 1];\n const b = srcPixels[i + 2];\n const a = srcPixels[i + 3];\n i = (theta + radius * xSize) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nconst FromPolar = function (src, dst, opt) {\n const srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2;\n let rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n let x = xSize - xMid;\n let y = ySize - yMid;\n const rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n const rSize = ySize, tSize = xSize, phaseShift = opt.polarRotation || 0;\n let x1, y1;\n for (x = 0; x < xSize; x += 1) {\n for (y = 0; y < ySize; y += 1) {\n const dx = x - xMid;\n const dy = y - yMid;\n const radius = (Math.sqrt(dx * dx + dy * dy) * rSize) / rMax;\n let theta = ((Math.atan2(dy, dx) * 180) / Math.PI + 360 + phaseShift) % 360;\n theta = (theta * tSize) / 360;\n x1 = Math.floor(theta);\n y1 = Math.floor(radius);\n let i = (y1 * xSize + x1) * 4;\n const r = srcPixels[i + 0];\n const g = srcPixels[i + 1];\n const b = srcPixels[i + 2];\n const a = srcPixels[i + 3];\n i = (y * xSize + x) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nconst Kaleidoscope = function (imageData) {\n const xSize = imageData.width, ySize = imageData.height;\n let x, y, xoff, i, r, g, b, a, srcPos, dstPos;\n let power = Math.round(this.kaleidoscopePower());\n const angle = Math.round(this.kaleidoscopeAngle());\n const offset = Math.floor((xSize * (angle % 360)) / 360);\n if (power < 1) {\n return;\n }\n const tempCanvas = Util_1.Util.createCanvasElement();\n tempCanvas.width = xSize;\n tempCanvas.height = ySize;\n const scratchData = tempCanvas\n .getContext('2d')\n .getImageData(0, 0, xSize, ySize);\n Util_1.Util.releaseCanvas(tempCanvas);\n ToPolar(imageData, scratchData, {\n polarCenterX: xSize / 2,\n polarCenterY: ySize / 2,\n });\n let minSectionSize = xSize / Math.pow(2, power);\n while (minSectionSize <= 8) {\n minSectionSize = minSectionSize * 2;\n power -= 1;\n }\n minSectionSize = Math.ceil(minSectionSize);\n let sectionSize = minSectionSize;\n let xStart = 0, xEnd = sectionSize, xDelta = 1;\n if (offset + minSectionSize > xSize) {\n xStart = sectionSize;\n xEnd = 0;\n xDelta = -1;\n }\n for (y = 0; y < ySize; y += 1) {\n for (x = xStart; x !== xEnd; x += xDelta) {\n xoff = Math.round(x + offset) % xSize;\n srcPos = (xSize * y + xoff) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + x) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n }\n for (y = 0; y < ySize; y += 1) {\n sectionSize = Math.floor(minSectionSize);\n for (i = 0; i < power; i += 1) {\n for (x = 0; x < sectionSize + 1; x += 1) {\n srcPos = (xSize * y + x) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + sectionSize * 2 - x - 1) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n sectionSize *= 2;\n }\n }\n FromPolar(scratchData, imageData, { polarRotation: 0 });\n};\nexports.Kaleidoscope = Kaleidoscope;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopePower', 2, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopeAngle', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mask = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nfunction pixelAt(idata, x, y) {\n let idx = (y * idata.width + x) * 4;\n const d = [];\n d.push(idata.data[idx++], idata.data[idx++], idata.data[idx++], idata.data[idx++]);\n return d;\n}\nfunction rgbDistance(p1, p2) {\n return Math.sqrt(Math.pow(p1[0] - p2[0], 2) +\n Math.pow(p1[1] - p2[1], 2) +\n Math.pow(p1[2] - p2[2], 2));\n}\nfunction rgbMean(pTab) {\n const m = [0, 0, 0];\n for (let i = 0; i < pTab.length; i++) {\n m[0] += pTab[i][0];\n m[1] += pTab[i][1];\n m[2] += pTab[i][2];\n }\n m[0] /= pTab.length;\n m[1] /= pTab.length;\n m[2] /= pTab.length;\n return m;\n}\nfunction backgroundMask(idata, threshold) {\n const rgbv_no = pixelAt(idata, 0, 0);\n const rgbv_ne = pixelAt(idata, idata.width - 1, 0);\n const rgbv_so = pixelAt(idata, 0, idata.height - 1);\n const rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);\n const thres = threshold || 10;\n if (rgbDistance(rgbv_no, rgbv_ne) < thres &&\n rgbDistance(rgbv_ne, rgbv_se) < thres &&\n rgbDistance(rgbv_se, rgbv_so) < thres &&\n rgbDistance(rgbv_so, rgbv_no) < thres) {\n const mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);\n const mask = [];\n for (let i = 0; i < idata.width * idata.height; i++) {\n const d = rgbDistance(mean, [\n idata.data[i * 4],\n idata.data[i * 4 + 1],\n idata.data[i * 4 + 2],\n ]);\n mask[i] = d < thres ? 0 : 255;\n }\n return mask;\n }\n}\nfunction applyMask(idata, mask) {\n for (let i = 0; i < idata.width * idata.height; i++) {\n idata.data[4 * i + 3] = mask[i];\n }\n}\nfunction erodeMask(mask, sw, sh) {\n const weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a === 255 * 8 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction dilateMask(mask, sw, sh) {\n const weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a >= 255 * 4 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction smoothEdgeMask(mask, sw, sh) {\n const weights = [1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a;\n }\n }\n return maskResult;\n}\nconst Mask = function (imageData) {\n const threshold = this.threshold();\n let mask = backgroundMask(imageData, threshold);\n if (mask) {\n mask = erodeMask(mask, imageData.width, imageData.height);\n mask = dilateMask(mask, imageData.width, imageData.height);\n mask = smoothEdgeMask(mask, imageData.width, imageData.height);\n applyMask(imageData, mask);\n }\n return imageData;\n};\nexports.Mask = Mask;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Konva = void 0;\nconst _CoreInternals_1 = require(\"./_CoreInternals\");\nconst Arc_1 = require(\"./shapes/Arc\");\nconst Arrow_1 = require(\"./shapes/Arrow\");\nconst Circle_1 = require(\"./shapes/Circle\");\nconst Ellipse_1 = require(\"./shapes/Ellipse\");\nconst Image_1 = require(\"./shapes/Image\");\nconst Label_1 = require(\"./shapes/Label\");\nconst Line_1 = require(\"./shapes/Line\");\nconst Path_1 = require(\"./shapes/Path\");\nconst Rect_1 = require(\"./shapes/Rect\");\nconst RegularPolygon_1 = require(\"./shapes/RegularPolygon\");\nconst Ring_1 = require(\"./shapes/Ring\");\nconst Sprite_1 = require(\"./shapes/Sprite\");\nconst Star_1 = require(\"./shapes/Star\");\nconst Text_1 = require(\"./shapes/Text\");\nconst TextPath_1 = require(\"./shapes/TextPath\");\nconst Transformer_1 = require(\"./shapes/Transformer\");\nconst Wedge_1 = require(\"./shapes/Wedge\");\nconst Blur_1 = require(\"./filters/Blur\");\nconst Brighten_1 = require(\"./filters/Brighten\");\nconst Contrast_1 = require(\"./filters/Contrast\");\nconst Emboss_1 = require(\"./filters/Emboss\");\nconst Enhance_1 = require(\"./filters/Enhance\");\nconst Grayscale_1 = require(\"./filters/Grayscale\");\nconst HSL_1 = require(\"./filters/HSL\");\nconst HSV_1 = require(\"./filters/HSV\");\nconst Invert_1 = require(\"./filters/Invert\");\nconst Kaleidoscope_1 = require(\"./filters/Kaleidoscope\");\nconst Mask_1 = require(\"./filters/Mask\");\nconst Noise_1 = require(\"./filters/Noise\");\nconst Pixelate_1 = require(\"./filters/Pixelate\");\nconst Posterize_1 = require(\"./filters/Posterize\");\nconst RGB_1 = require(\"./filters/RGB\");\nconst RGBA_1 = require(\"./filters/RGBA\");\nconst Sepia_1 = require(\"./filters/Sepia\");\nconst Solarize_1 = require(\"./filters/Solarize\");\nconst Threshold_1 = require(\"./filters/Threshold\");\nexports.Konva = _CoreInternals_1.Konva.Util._assign(_CoreInternals_1.Konva, {\n Arc: Arc_1.Arc,\n Arrow: Arrow_1.Arrow,\n Circle: Circle_1.Circle,\n Ellipse: Ellipse_1.Ellipse,\n Image: Image_1.Image,\n Label: Label_1.Label,\n Tag: Label_1.Tag,\n Line: Line_1.Line,\n Path: Path_1.Path,\n Rect: Rect_1.Rect,\n RegularPolygon: RegularPolygon_1.RegularPolygon,\n Ring: Ring_1.Ring,\n Sprite: Sprite_1.Sprite,\n Star: Star_1.Star,\n Text: Text_1.Text,\n TextPath: TextPath_1.TextPath,\n Transformer: Transformer_1.Transformer,\n Wedge: Wedge_1.Wedge,\n Filters: {\n Blur: Blur_1.Blur,\n Brighten: Brighten_1.Brighten,\n Contrast: Contrast_1.Contrast,\n Emboss: Emboss_1.Emboss,\n Enhance: Enhance_1.Enhance,\n Grayscale: Grayscale_1.Grayscale,\n HSL: HSL_1.HSL,\n HSV: HSV_1.HSV,\n Invert: Invert_1.Invert,\n Kaleidoscope: Kaleidoscope_1.Kaleidoscope,\n Mask: Mask_1.Mask,\n Noise: Noise_1.Noise,\n Pixelate: Pixelate_1.Pixelate,\n Posterize: Posterize_1.Posterize,\n RGB: RGB_1.RGB,\n RGBA: RGBA_1.RGBA,\n Sepia: Sepia_1.Sepia,\n Solarize: Solarize_1.Solarize,\n Threshold: Threshold_1.Threshold,\n },\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Arc = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_2 = require(\"../Global\");\nclass Arc extends Shape_1.Shape {\n _sceneFunc(context) {\n const angle = Global_1.Konva.getAngle(this.angle()), clockwise = this.clockwise();\n context.beginPath();\n context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);\n context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n getSelfRect() {\n const innerRadius = this.innerRadius();\n const outerRadius = this.outerRadius();\n const clockwise = this.clockwise();\n const angle = Global_1.Konva.getAngle(clockwise ? 360 - this.angle() : this.angle());\n const boundLeftRatio = Math.cos(Math.min(angle, Math.PI));\n const boundRightRatio = 1;\n const boundTopRatio = Math.sin(Math.min(Math.max(Math.PI, angle), (3 * Math.PI) / 2));\n const boundBottomRatio = Math.sin(Math.min(angle, Math.PI / 2));\n const boundLeft = boundLeftRatio * (boundLeftRatio > 0 ? innerRadius : outerRadius);\n const boundRight = boundRightRatio * (boundRightRatio > 0 ? outerRadius : innerRadius);\n const boundTop = boundTopRatio * (boundTopRatio > 0 ? innerRadius : outerRadius);\n const boundBottom = boundBottomRatio * (boundBottomRatio > 0 ? outerRadius : innerRadius);\n return {\n x: boundLeft,\n y: clockwise ? -1 * boundBottom : boundTop,\n width: boundRight - boundLeft,\n height: boundBottom - boundTop,\n };\n }\n}\nexports.Arc = Arc;\nArc.prototype._centroid = true;\nArc.prototype.className = 'Arc';\nArc.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n(0, Global_2._registerNode)(Arc);\nFactory_1.Factory.addGetterSetter(Arc, 'innerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'outerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'angle', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'clockwise', false, (0, Validators_1.getBooleanValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Arrow = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Line_1 = require(\"./Line\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst Path_1 = require(\"./Path\");\nclass Arrow extends Line_1.Line {\n _sceneFunc(ctx) {\n super._sceneFunc(ctx);\n const PI2 = Math.PI * 2;\n const points = this.points();\n let tp = points;\n const fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n const length = this.pointerLength();\n const n = points.length;\n let dx, dy;\n if (fromTension) {\n const lp = [\n tp[tp.length - 4],\n tp[tp.length - 3],\n tp[tp.length - 2],\n tp[tp.length - 1],\n points[n - 2],\n points[n - 1],\n ];\n const lastLength = Path_1.Path.calcLength(tp[tp.length - 4], tp[tp.length - 3], 'C', lp);\n const previous = Path_1.Path.getPointOnQuadraticBezier(Math.min(1, 1 - length / lastLength), lp[0], lp[1], lp[2], lp[3], lp[4], lp[5]);\n dx = points[n - 2] - previous.x;\n dy = points[n - 1] - previous.y;\n }\n else {\n dx = points[n - 2] - points[n - 4];\n dy = points[n - 1] - points[n - 3];\n }\n const radians = (Math.atan2(dy, dx) + PI2) % PI2;\n const width = this.pointerWidth();\n if (this.pointerAtEnding()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[n - 2], points[n - 1]);\n ctx.rotate(radians);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n if (this.pointerAtBeginning()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[0], points[1]);\n if (fromTension) {\n dx = (tp[0] + tp[2]) / 2 - points[0];\n dy = (tp[1] + tp[3]) / 2 - points[1];\n }\n else {\n dx = points[2] - points[0];\n dy = points[3] - points[1];\n }\n ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n }\n __fillStroke(ctx) {\n const isDashEnabled = this.dashEnabled();\n if (isDashEnabled) {\n this.attrs.dashEnabled = false;\n ctx.setLineDash([]);\n }\n ctx.fillStrokeShape(this);\n if (isDashEnabled) {\n this.attrs.dashEnabled = true;\n }\n }\n getSelfRect() {\n const lineRect = super.getSelfRect();\n const offset = this.pointerWidth() / 2;\n return {\n x: lineRect.x,\n y: lineRect.y - offset,\n width: lineRect.width,\n height: lineRect.height + offset * 2,\n };\n }\n}\nexports.Arrow = Arrow;\nArrow.prototype.className = 'Arrow';\n(0, Global_1._registerNode)(Arrow);\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerLength', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerWidth', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerAtBeginning', false);\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerAtEnding', true);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Circle = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Circle extends Shape_1.Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.attrs.radius || 0, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n if (this.radius() !== width / 2) {\n this.radius(width / 2);\n }\n }\n setHeight(height) {\n if (this.radius() !== height / 2) {\n this.radius(height / 2);\n }\n }\n}\nexports.Circle = Circle;\nCircle.prototype._centroid = true;\nCircle.prototype.className = 'Circle';\nCircle.prototype._attrsAffectingSize = ['radius'];\n(0, Global_1._registerNode)(Circle);\nFactory_1.Factory.addGetterSetter(Circle, 'radius', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ellipse = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Ellipse extends Shape_1.Shape {\n _sceneFunc(context) {\n const rx = this.radiusX(), ry = this.radiusY();\n context.beginPath();\n context.save();\n if (rx !== ry) {\n context.scale(1, ry / rx);\n }\n context.arc(0, 0, rx, 0, Math.PI * 2, false);\n context.restore();\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radiusX() * 2;\n }\n getHeight() {\n return this.radiusY() * 2;\n }\n setWidth(width) {\n this.radiusX(width / 2);\n }\n setHeight(height) {\n this.radiusY(height / 2);\n }\n}\nexports.Ellipse = Ellipse;\nEllipse.prototype.className = 'Ellipse';\nEllipse.prototype._centroid = true;\nEllipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];\n(0, Global_1._registerNode)(Ellipse);\nFactory_1.Factory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusY', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Image = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nclass Image extends Shape_1.Shape {\n constructor(attrs) {\n super(attrs);\n this.on('imageChange.konva', () => {\n this._setImageLoad();\n });\n this._setImageLoad();\n }\n _setImageLoad() {\n const image = this.image();\n if (image && image.complete) {\n return;\n }\n if (image && image.readyState === 4) {\n return;\n }\n if (image && image['addEventListener']) {\n image['addEventListener']('load', () => {\n this._requestDraw();\n });\n }\n }\n _useBufferCanvas() {\n const hasCornerRadius = !!this.cornerRadius();\n const hasShadow = this.hasShadow();\n if (hasCornerRadius && hasShadow) {\n return true;\n }\n return super._useBufferCanvas(true);\n }\n _sceneFunc(context) {\n const width = this.getWidth();\n const height = this.getHeight();\n const cornerRadius = this.cornerRadius();\n const image = this.attrs.image;\n let params;\n if (image) {\n const cropWidth = this.attrs.cropWidth;\n const cropHeight = this.attrs.cropHeight;\n if (cropWidth && cropHeight) {\n params = [\n image,\n this.cropX(),\n this.cropY(),\n cropWidth,\n cropHeight,\n 0,\n 0,\n width,\n height,\n ];\n }\n else {\n params = [image, 0, 0, width, height];\n }\n }\n if (this.hasFill() || this.hasStroke() || cornerRadius) {\n context.beginPath();\n cornerRadius\n ? Util_1.Util.drawRoundedRectPath(context, width, height, cornerRadius)\n : context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (cornerRadius) {\n context.clip();\n }\n context.drawImage.apply(context, params);\n }\n }\n _hitFunc(context) {\n const width = this.width(), height = this.height(), cornerRadius = this.cornerRadius();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util_1.Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n var _a, _b;\n return (_a = this.attrs.width) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.width;\n }\n getHeight() {\n var _a, _b;\n return (_a = this.attrs.height) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.height;\n }\n static fromURL(url, callback, onError = null) {\n const img = Util_1.Util.createImageElement();\n img.onload = function () {\n const image = new Image({\n image: img,\n });\n callback(image);\n };\n img.onerror = onError;\n img.crossOrigin = 'Anonymous';\n img.src = url;\n }\n}\nexports.Image = Image;\nImage.prototype.className = 'Image';\n(0, Global_1._registerNode)(Image);\nFactory_1.Factory.addGetterSetter(Image, 'cornerRadius', 0, (0, Validators_1.getNumberOrArrayOfNumbersValidator)(4));\nFactory_1.Factory.addGetterSetter(Image, 'image');\nFactory_1.Factory.addComponentsGetterSetter(Image, 'crop', ['x', 'y', 'width', 'height']);\nFactory_1.Factory.addGetterSetter(Image, 'cropX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Image, 'cropY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Image, 'cropWidth', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Image, 'cropHeight', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tag = exports.Label = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Group_1 = require(\"../Group\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst ATTR_CHANGE_LIST = [\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'padding',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'pointerDirection',\n 'pointerWidth',\n 'pointerHeight',\n], CHANGE_KONVA = 'Change.konva', NONE = 'none', UP = 'up', RIGHT = 'right', DOWN = 'down', LEFT = 'left', attrChangeListLen = ATTR_CHANGE_LIST.length;\nclass Label extends Group_1.Group {\n constructor(config) {\n super(config);\n this.on('add.konva', function (evt) {\n this._addListeners(evt.child);\n this._sync();\n });\n }\n getText() {\n return this.find('Text')[0];\n }\n getTag() {\n return this.find('Tag')[0];\n }\n _addListeners(text) {\n let that = this, n;\n const func = function () {\n that._sync();\n };\n for (n = 0; n < attrChangeListLen; n++) {\n text.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, func);\n }\n }\n getWidth() {\n return this.getText().width();\n }\n getHeight() {\n return this.getText().height();\n }\n _sync() {\n let text = this.getText(), tag = this.getTag(), width, height, pointerDirection, pointerWidth, x, y, pointerHeight;\n if (text && tag) {\n width = text.width();\n height = text.height();\n pointerDirection = tag.pointerDirection();\n pointerWidth = tag.pointerWidth();\n pointerHeight = tag.pointerHeight();\n x = 0;\n y = 0;\n switch (pointerDirection) {\n case UP:\n x = width / 2;\n y = -1 * pointerHeight;\n break;\n case RIGHT:\n x = width + pointerWidth;\n y = height / 2;\n break;\n case DOWN:\n x = width / 2;\n y = height + pointerHeight;\n break;\n case LEFT:\n x = -1 * pointerWidth;\n y = height / 2;\n break;\n }\n tag.setAttrs({\n x: -1 * x,\n y: -1 * y,\n width: width,\n height: height,\n });\n text.setAttrs({\n x: -1 * x,\n y: -1 * y,\n });\n }\n }\n}\nexports.Label = Label;\nLabel.prototype.className = 'Label';\n(0, Global_1._registerNode)(Label);\nclass Tag extends Shape_1.Shape {\n _sceneFunc(context) {\n const width = this.width(), height = this.height(), pointerDirection = this.pointerDirection(), pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), cornerRadius = this.cornerRadius();\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.beginPath();\n context.moveTo(topLeft, 0);\n if (pointerDirection === UP) {\n context.lineTo((width - pointerWidth) / 2, 0);\n context.lineTo(width / 2, -1 * pointerHeight);\n context.lineTo((width + pointerWidth) / 2, 0);\n }\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n if (pointerDirection === RIGHT) {\n context.lineTo(width, (height - pointerHeight) / 2);\n context.lineTo(width + pointerWidth, height / 2);\n context.lineTo(width, (height + pointerHeight) / 2);\n }\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n if (pointerDirection === DOWN) {\n context.lineTo((width + pointerWidth) / 2, height);\n context.lineTo(width / 2, height + pointerHeight);\n context.lineTo((width - pointerWidth) / 2, height);\n }\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n if (pointerDirection === LEFT) {\n context.lineTo(0, (height + pointerHeight) / 2);\n context.lineTo(-1 * pointerWidth, height / 2);\n context.lineTo(0, (height - pointerHeight) / 2);\n }\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getSelfRect() {\n let x = 0, y = 0, pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), direction = this.pointerDirection(), width = this.width(), height = this.height();\n if (direction === UP) {\n y -= pointerHeight;\n height += pointerHeight;\n }\n else if (direction === DOWN) {\n height += pointerHeight;\n }\n else if (direction === LEFT) {\n x -= pointerWidth * 1.5;\n width += pointerWidth;\n }\n else if (direction === RIGHT) {\n width += pointerWidth * 1.5;\n }\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n };\n }\n}\nexports.Tag = Tag;\nTag.prototype.className = 'Tag';\n(0, Global_1._registerNode)(Tag);\nFactory_1.Factory.addGetterSetter(Tag, 'pointerDirection', NONE);\nFactory_1.Factory.addGetterSetter(Tag, 'pointerWidth', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Tag, 'pointerHeight', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Tag, 'cornerRadius', 0, (0, Validators_1.getNumberOrArrayOfNumbersValidator)(4));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegularPolygon = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass RegularPolygon extends Shape_1.Shape {\n _sceneFunc(context) {\n const points = this._getPoints();\n context.beginPath();\n context.moveTo(points[0].x, points[0].y);\n for (let n = 1; n < points.length; n++) {\n context.lineTo(points[n].x, points[n].y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n _getPoints() {\n const sides = this.attrs.sides;\n const radius = this.attrs.radius || 0;\n const points = [];\n for (let n = 0; n < sides; n++) {\n points.push({\n x: radius * Math.sin((n * 2 * Math.PI) / sides),\n y: -1 * radius * Math.cos((n * 2 * Math.PI) / sides),\n });\n }\n return points;\n }\n getSelfRect() {\n const points = this._getPoints();\n let minX = points[0].x;\n let maxX = points[0].y;\n let minY = points[0].x;\n let maxY = points[0].y;\n points.forEach((point) => {\n minX = Math.min(minX, point.x);\n maxX = Math.max(maxX, point.x);\n minY = Math.min(minY, point.y);\n maxY = Math.max(maxY, point.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nexports.RegularPolygon = RegularPolygon;\nRegularPolygon.prototype.className = 'RegularPolygon';\nRegularPolygon.prototype._centroid = true;\nRegularPolygon.prototype._attrsAffectingSize = ['radius'];\n(0, Global_1._registerNode)(RegularPolygon);\nFactory_1.Factory.addGetterSetter(RegularPolygon, 'radius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(RegularPolygon, 'sides', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ring = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst PIx2 = Math.PI * 2;\nclass Ring extends Shape_1.Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.innerRadius(), 0, PIx2, false);\n context.moveTo(this.outerRadius(), 0);\n context.arc(0, 0, this.outerRadius(), PIx2, 0, true);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nexports.Ring = Ring;\nRing.prototype.className = 'Ring';\nRing.prototype._centroid = true;\nRing.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n(0, Global_1._registerNode)(Ring);\nFactory_1.Factory.addGetterSetter(Ring, 'innerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Ring, 'outerRadius', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sprite = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Animation_1 = require(\"../Animation\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Sprite extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this._updated = true;\n this.anim = new Animation_1.Animation(() => {\n const updated = this._updated;\n this._updated = false;\n return updated;\n });\n this.on('animationChange.konva', function () {\n this.frameIndex(0);\n });\n this.on('frameIndexChange.konva', function () {\n this._updated = true;\n });\n this.on('frameRateChange.konva', function () {\n if (!this.anim.isRunning()) {\n return;\n }\n clearInterval(this.interval);\n this._setInterval();\n });\n }\n _sceneFunc(context) {\n const anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), x = set[ix4 + 0], y = set[ix4 + 1], width = set[ix4 + 2], height = set[ix4 + 3], image = this.image();\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (offsets) {\n const offset = offsets[anim], ix2 = index * 2;\n context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.drawImage(image, x, y, width, height, 0, 0, width, height);\n }\n }\n }\n _hitFunc(context) {\n const anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), width = set[ix4 + 2], height = set[ix4 + 3];\n context.beginPath();\n if (offsets) {\n const offset = offsets[anim];\n const ix2 = index * 2;\n context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.rect(0, 0, width, height);\n }\n context.closePath();\n context.fillShape(this);\n }\n _useBufferCanvas() {\n return super._useBufferCanvas(true);\n }\n _setInterval() {\n const that = this;\n this.interval = setInterval(function () {\n that._updateIndex();\n }, 1000 / this.frameRate());\n }\n start() {\n if (this.isRunning()) {\n return;\n }\n const layer = this.getLayer();\n this.anim.setLayers(layer);\n this._setInterval();\n this.anim.start();\n }\n stop() {\n this.anim.stop();\n clearInterval(this.interval);\n }\n isRunning() {\n return this.anim.isRunning();\n }\n _updateIndex() {\n const index = this.frameIndex(), animation = this.animation(), animations = this.animations(), anim = animations[animation], len = anim.length / 4;\n if (index < len - 1) {\n this.frameIndex(index + 1);\n }\n else {\n this.frameIndex(0);\n }\n }\n}\nexports.Sprite = Sprite;\nSprite.prototype.className = 'Sprite';\n(0, Global_1._registerNode)(Sprite);\nFactory_1.Factory.addGetterSetter(Sprite, 'animation');\nFactory_1.Factory.addGetterSetter(Sprite, 'animations');\nFactory_1.Factory.addGetterSetter(Sprite, 'frameOffsets');\nFactory_1.Factory.addGetterSetter(Sprite, 'image');\nFactory_1.Factory.addGetterSetter(Sprite, 'frameIndex', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Sprite, 'frameRate', 17, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.backCompat(Sprite, {\n index: 'frameIndex',\n getIndex: 'getFrameIndex',\n setIndex: 'setFrameIndex',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Star = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Star extends Shape_1.Shape {\n _sceneFunc(context) {\n const innerRadius = this.innerRadius(), outerRadius = this.outerRadius(), numPoints = this.numPoints();\n context.beginPath();\n context.moveTo(0, 0 - outerRadius);\n for (let n = 1; n < numPoints * 2; n++) {\n const radius = n % 2 === 0 ? outerRadius : innerRadius;\n const x = radius * Math.sin((n * Math.PI) / numPoints);\n const y = -1 * radius * Math.cos((n * Math.PI) / numPoints);\n context.lineTo(x, y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nexports.Star = Star;\nStar.prototype.className = 'Star';\nStar.prototype._centroid = true;\nStar.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n(0, Global_1._registerNode)(Star);\nFactory_1.Factory.addGetterSetter(Star, 'numPoints', 5, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Star, 'innerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Star, 'outerRadius', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TextPath = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Path_1 = require(\"./Path\");\nconst Text_1 = require(\"./Text\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst EMPTY_STRING = '', NORMAL = 'normal';\nfunction _fillFunc(context) {\n context.fillText(this.partialText, 0, 0);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this.partialText, 0, 0);\n}\nclass TextPath extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this.dummyCanvas = Util_1.Util.createCanvasElement();\n this.dataArray = [];\n this._readDataAttribute();\n this.on('dataChange.konva', function () {\n this._readDataAttribute();\n this._setTextData();\n });\n this.on('textChange.konva alignChange.konva letterSpacingChange.konva kerningFuncChange.konva fontSizeChange.konva fontFamilyChange.konva', this._setTextData);\n this._setTextData();\n }\n _getTextPathLength() {\n return Path_1.Path.getPathLength(this.dataArray);\n }\n _getPointAtLength(length) {\n if (!this.attrs.data) {\n return null;\n }\n const totalLength = this.pathLength;\n if (length - 1 > totalLength) {\n return null;\n }\n return Path_1.Path.getPointAtLengthOfDataArray(length, this.dataArray);\n }\n _readDataAttribute() {\n this.dataArray = Path_1.Path.parsePathData(this.attrs.data);\n this.pathLength = this._getTextPathLength();\n }\n _sceneFunc(context) {\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', this.textBaseline());\n context.setAttr('textAlign', 'left');\n context.save();\n const textDecoration = this.textDecoration();\n const fill = this.fill();\n const fontSize = this.fontSize();\n const glyphInfo = this.glyphInfo;\n if (textDecoration === 'underline') {\n context.beginPath();\n }\n for (let i = 0; i < glyphInfo.length; i++) {\n context.save();\n const p0 = glyphInfo[i].p0;\n context.translate(p0.x, p0.y);\n context.rotate(glyphInfo[i].rotation);\n this.partialText = glyphInfo[i].text;\n context.fillStrokeShape(this);\n if (textDecoration === 'underline') {\n if (i === 0) {\n context.moveTo(0, fontSize / 2 + 1);\n }\n context.lineTo(fontSize, fontSize / 2 + 1);\n }\n context.restore();\n }\n if (textDecoration === 'underline') {\n context.strokeStyle = fill;\n context.lineWidth = fontSize / 20;\n context.stroke();\n }\n context.restore();\n }\n _hitFunc(context) {\n context.beginPath();\n const glyphInfo = this.glyphInfo;\n if (glyphInfo.length >= 1) {\n const p0 = glyphInfo[0].p0;\n context.moveTo(p0.x, p0.y);\n }\n for (let i = 0; i < glyphInfo.length; i++) {\n const p1 = glyphInfo[i].p1;\n context.lineTo(p1.x, p1.y);\n }\n context.setAttr('lineWidth', this.fontSize());\n context.setAttr('strokeStyle', this.colorKey);\n context.stroke();\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util_1.Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n setText(text) {\n return Text_1.Text.prototype.setText.call(this, text);\n }\n _getContextFont() {\n return Text_1.Text.prototype._getContextFont.call(this);\n }\n _getTextSize(text) {\n const dummyCanvas = this.dummyCanvas;\n const _context = dummyCanvas.getContext('2d');\n _context.save();\n _context.font = this._getContextFont();\n const metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: parseInt(`${this.fontSize()}`, 10),\n };\n }\n _setTextData() {\n const { width, height } = this._getTextSize(this.attrs.text);\n this.textWidth = width;\n this.textHeight = height;\n this.glyphInfo = [];\n if (!this.attrs.data) {\n return null;\n }\n const letterSpacing = this.letterSpacing();\n const align = this.align();\n const kerningFunc = this.kerningFunc();\n const textWidth = Math.max(this.textWidth + ((this.attrs.text || '').length - 1) * letterSpacing, 0);\n let offset = 0;\n if (align === 'center') {\n offset = Math.max(0, this.pathLength / 2 - textWidth / 2);\n }\n if (align === 'right') {\n offset = Math.max(0, this.pathLength - textWidth);\n }\n const charArr = (0, Text_1.stringToArray)(this.text());\n let offsetToGlyph = offset;\n for (let i = 0; i < charArr.length; i++) {\n const charStartPoint = this._getPointAtLength(offsetToGlyph);\n if (!charStartPoint)\n return;\n let glyphWidth = this._getTextSize(charArr[i]).width + letterSpacing;\n if (charArr[i] === ' ' && align === 'justify') {\n const numberOfSpaces = this.text().split(' ').length - 1;\n glyphWidth += (this.pathLength - textWidth) / numberOfSpaces;\n }\n const charEndPoint = this._getPointAtLength(offsetToGlyph + glyphWidth);\n if (!charEndPoint)\n return;\n const width = Path_1.Path.getLineLength(charStartPoint.x, charStartPoint.y, charEndPoint.x, charEndPoint.y);\n let kern = 0;\n if (kerningFunc) {\n try {\n kern = kerningFunc(charArr[i - 1], charArr[i]) * this.fontSize();\n }\n catch (e) {\n kern = 0;\n }\n }\n charStartPoint.x += kern;\n charEndPoint.x += kern;\n this.textWidth += kern;\n const midpoint = Path_1.Path.getPointOnLine(kern + width / 2.0, charStartPoint.x, charStartPoint.y, charEndPoint.x, charEndPoint.y);\n const rotation = Math.atan2(charEndPoint.y - charStartPoint.y, charEndPoint.x - charStartPoint.x);\n this.glyphInfo.push({\n transposeX: midpoint.x,\n transposeY: midpoint.y,\n text: charArr[i],\n rotation: rotation,\n p0: charStartPoint,\n p1: charEndPoint,\n });\n offsetToGlyph += glyphWidth;\n }\n }\n getSelfRect() {\n if (!this.glyphInfo.length) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n const points = [];\n this.glyphInfo.forEach(function (info) {\n points.push(info.p0.x);\n points.push(info.p0.y);\n points.push(info.p1.x);\n points.push(info.p1.y);\n });\n let minX = points[0] || 0;\n let maxX = points[0] || 0;\n let minY = points[1] || 0;\n let maxY = points[1] || 0;\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n const fontSize = this.fontSize();\n return {\n x: minX - fontSize / 2,\n y: minY - fontSize / 2,\n width: maxX - minX + fontSize,\n height: maxY - minY + fontSize,\n };\n }\n destroy() {\n Util_1.Util.releaseCanvas(this.dummyCanvas);\n return super.destroy();\n }\n}\nexports.TextPath = TextPath;\nTextPath.prototype._fillFunc = _fillFunc;\nTextPath.prototype._strokeFunc = _strokeFunc;\nTextPath.prototype._fillFuncHit = _fillFunc;\nTextPath.prototype._strokeFuncHit = _strokeFunc;\nTextPath.prototype.className = 'TextPath';\nTextPath.prototype._attrsAffectingSize = ['text', 'fontSize', 'data'];\n(0, Global_1._registerNode)(TextPath);\nFactory_1.Factory.addGetterSetter(TextPath, 'data');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontFamily', 'Arial');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontSize', 12, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(TextPath, 'fontStyle', NORMAL);\nFactory_1.Factory.addGetterSetter(TextPath, 'align', 'left');\nFactory_1.Factory.addGetterSetter(TextPath, 'letterSpacing', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(TextPath, 'textBaseline', 'middle');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontVariant', NORMAL);\nFactory_1.Factory.addGetterSetter(TextPath, 'text', EMPTY_STRING);\nFactory_1.Factory.addGetterSetter(TextPath, 'textDecoration', '');\nFactory_1.Factory.addGetterSetter(TextPath, 'kerningFunc', undefined);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wedge = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_2 = require(\"../Global\");\nclass Wedge extends Shape_1.Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.radius(), 0, Global_1.Konva.getAngle(this.angle()), this.clockwise());\n context.lineTo(0, 0);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nexports.Wedge = Wedge;\nWedge.prototype.className = 'Wedge';\nWedge.prototype._centroid = true;\nWedge.prototype._attrsAffectingSize = ['radius'];\n(0, Global_2._registerNode)(Wedge);\nFactory_1.Factory.addGetterSetter(Wedge, 'radius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Wedge, 'angle', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Wedge, 'clockwise', false);\nFactory_1.Factory.backCompat(Wedge, {\n angleDeg: 'angle',\n getAngleDeg: 'getAngle',\n setAngleDeg: 'setAngle',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Brighten = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Brighten = function (imageData) {\n const brightness = this.brightness() * 255, data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n data[i] += brightness;\n data[i + 1] += brightness;\n data[i + 2] += brightness;\n }\n};\nexports.Brighten = Brighten;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'brightness', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contrast = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Contrast = function (imageData) {\n const adjust = Math.pow((this.contrast() + 100) / 100, 2);\n const data = imageData.data, nPixels = data.length;\n let red = 150, green = 150, blue = 150;\n for (let i = 0; i < nPixels; i += 4) {\n red = data[i];\n green = data[i + 1];\n blue = data[i + 2];\n red /= 255;\n red -= 0.5;\n red *= adjust;\n red += 0.5;\n red *= 255;\n green /= 255;\n green -= 0.5;\n green *= adjust;\n green += 0.5;\n green *= 255;\n blue /= 255;\n blue -= 0.5;\n blue *= adjust;\n blue += 0.5;\n blue *= 255;\n red = red < 0 ? 0 : red > 255 ? 255 : red;\n green = green < 0 ? 0 : green > 255 ? 255 : green;\n blue = blue < 0 ? 0 : blue > 255 ? 255 : blue;\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n }\n};\nexports.Contrast = Contrast;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'contrast', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emboss = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Util_1 = require(\"../Util\");\nconst Validators_1 = require(\"../Validators\");\nconst Emboss = function (imageData) {\n const strength = this.embossStrength() * 10, greyLevel = this.embossWhiteLevel() * 255, direction = this.embossDirection(), blend = this.embossBlend(), data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4;\n let dirY = 0, dirX = 0, y = h;\n switch (direction) {\n case 'top-left':\n dirY = -1;\n dirX = -1;\n break;\n case 'top':\n dirY = -1;\n dirX = 0;\n break;\n case 'top-right':\n dirY = -1;\n dirX = 1;\n break;\n case 'right':\n dirY = 0;\n dirX = 1;\n break;\n case 'bottom-right':\n dirY = 1;\n dirX = 1;\n break;\n case 'bottom':\n dirY = 1;\n dirX = 0;\n break;\n case 'bottom-left':\n dirY = 1;\n dirX = -1;\n break;\n case 'left':\n dirY = 0;\n dirX = -1;\n break;\n default:\n Util_1.Util.error('Unknown emboss direction: ' + direction);\n }\n do {\n const offsetY = (y - 1) * w4;\n let otherY = dirY;\n if (y + otherY < 1) {\n otherY = 0;\n }\n if (y + otherY > h) {\n otherY = 0;\n }\n const offsetYOther = (y - 1 + otherY) * w * 4;\n let x = w;\n do {\n const offset = offsetY + (x - 1) * 4;\n let otherX = dirX;\n if (x + otherX < 1) {\n otherX = 0;\n }\n if (x + otherX > w) {\n otherX = 0;\n }\n const offsetOther = offsetYOther + (x - 1 + otherX) * 4;\n const dR = data[offset] - data[offsetOther];\n const dG = data[offset + 1] - data[offsetOther + 1];\n const dB = data[offset + 2] - data[offsetOther + 2];\n let dif = dR;\n const absDif = dif > 0 ? dif : -dif;\n const absG = dG > 0 ? dG : -dG;\n const absB = dB > 0 ? dB : -dB;\n if (absG > absDif) {\n dif = dG;\n }\n if (absB > absDif) {\n dif = dB;\n }\n dif *= strength;\n if (blend) {\n const r = data[offset] + dif;\n const g = data[offset + 1] + dif;\n const b = data[offset + 2] + dif;\n data[offset] = r > 255 ? 255 : r < 0 ? 0 : r;\n data[offset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n data[offset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n }\n else {\n let grey = greyLevel - dif;\n if (grey < 0) {\n grey = 0;\n }\n else if (grey > 255) {\n grey = 255;\n }\n data[offset] = data[offset + 1] = data[offset + 2] = grey;\n }\n } while (--x);\n } while (--y);\n};\nexports.Emboss = Emboss;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossStrength', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossWhiteLevel', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossDirection', 'top-left', undefined, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossBlend', false, undefined, Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enhance = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nfunction remap(fromValue, fromMin, fromMax, toMin, toMax) {\n const fromRange = fromMax - fromMin, toRange = toMax - toMin;\n if (fromRange === 0) {\n return toMin + toRange / 2;\n }\n if (toRange === 0) {\n return toMin;\n }\n let toValue = (fromValue - fromMin) / fromRange;\n toValue = toRange * toValue + toMin;\n return toValue;\n}\nconst Enhance = function (imageData) {\n const data = imageData.data, nSubPixels = data.length;\n let rMin = data[0], rMax = rMin, r, gMin = data[1], gMax = gMin, g, bMin = data[2], bMax = bMin, b;\n const enhanceAmount = this.enhance();\n if (enhanceAmount === 0) {\n return;\n }\n for (let i = 0; i < nSubPixels; i += 4) {\n r = data[i + 0];\n if (r < rMin) {\n rMin = r;\n }\n else if (r > rMax) {\n rMax = r;\n }\n g = data[i + 1];\n if (g < gMin) {\n gMin = g;\n }\n else if (g > gMax) {\n gMax = g;\n }\n b = data[i + 2];\n if (b < bMin) {\n bMin = b;\n }\n else if (b > bMax) {\n bMax = b;\n }\n }\n if (rMax === rMin) {\n rMax = 255;\n rMin = 0;\n }\n if (gMax === gMin) {\n gMax = 255;\n gMin = 0;\n }\n if (bMax === bMin) {\n bMax = 255;\n bMin = 0;\n }\n let rMid, rGoalMax, rGoalMin, gMid, gGoalMax, gGoalMin, bMid, bGoalMax, bGoalMin;\n if (enhanceAmount > 0) {\n rGoalMax = rMax + enhanceAmount * (255 - rMax);\n rGoalMin = rMin - enhanceAmount * (rMin - 0);\n gGoalMax = gMax + enhanceAmount * (255 - gMax);\n gGoalMin = gMin - enhanceAmount * (gMin - 0);\n bGoalMax = bMax + enhanceAmount * (255 - bMax);\n bGoalMin = bMin - enhanceAmount * (bMin - 0);\n }\n else {\n rMid = (rMax + rMin) * 0.5;\n rGoalMax = rMax + enhanceAmount * (rMax - rMid);\n rGoalMin = rMin + enhanceAmount * (rMin - rMid);\n gMid = (gMax + gMin) * 0.5;\n gGoalMax = gMax + enhanceAmount * (gMax - gMid);\n gGoalMin = gMin + enhanceAmount * (gMin - gMid);\n bMid = (bMax + bMin) * 0.5;\n bGoalMax = bMax + enhanceAmount * (bMax - bMid);\n bGoalMin = bMin + enhanceAmount * (bMin - bMid);\n }\n for (let i = 0; i < nSubPixels; i += 4) {\n data[i + 0] = remap(data[i + 0], rMin, rMax, rGoalMin, rGoalMax);\n data[i + 1] = remap(data[i + 1], gMin, gMax, gGoalMin, gGoalMax);\n data[i + 2] = remap(data[i + 2], bMin, bMax, bGoalMin, bGoalMax);\n }\n};\nexports.Enhance = Enhance;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'enhance', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grayscale = void 0;\nconst Grayscale = function (imageData) {\n const data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n const brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];\n data[i] = brightness;\n data[i + 1] = brightness;\n data[i + 2] = brightness;\n }\n};\nexports.Grayscale = Grayscale;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HSL = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'luminance', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nconst HSL = function (imageData) {\n const data = imageData.data, nPixels = data.length, v = 1, s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, l = this.luminance() * 127;\n const vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n const rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n const gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n const br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n let r, g, b, a;\n for (let i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b + l;\n data[i + 1] = gr * r + gg * g + gb * b + l;\n data[i + 2] = br * r + bg * g + bb * b + l;\n data[i + 3] = a;\n }\n};\nexports.HSL = HSL;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HSV = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst HSV = function (imageData) {\n const data = imageData.data, nPixels = data.length, v = Math.pow(2, this.value()), s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360;\n const vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n const rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n const gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n const br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n let r, g, b, a;\n for (let i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b;\n data[i + 1] = gr * r + gg * g + gb * b;\n data[i + 2] = br * r + bg * g + bb * b;\n data[i + 3] = a;\n }\n};\nexports.HSV = HSV;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'value', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Invert = void 0;\nconst Invert = function (imageData) {\n const data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n};\nexports.Invert = Invert;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Noise = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Noise = function (imageData) {\n const amount = this.noise() * 255, data = imageData.data, nPixels = data.length, half = amount / 2;\n for (let i = 0; i < nPixels; i += 4) {\n data[i + 0] += half - 2 * half * Math.random();\n data[i + 1] += half - 2 * half * Math.random();\n data[i + 2] += half - 2 * half * Math.random();\n }\n};\nexports.Noise = Noise;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'noise', 0.2, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pixelate = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Util_1 = require(\"../Util\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Pixelate = function (imageData) {\n let pixelSize = Math.ceil(this.pixelSize()), width = imageData.width, height = imageData.height, x, y, i, red, green, blue, alpha, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), xBinStart, xBinEnd, yBinStart, yBinEnd, xBin, yBin, pixelsInBin, data = imageData.data;\n if (pixelSize <= 0) {\n Util_1.Util.error('pixelSize value can not be <= 0');\n return;\n }\n for (xBin = 0; xBin < nBinsX; xBin += 1) {\n for (yBin = 0; yBin < nBinsY; yBin += 1) {\n red = 0;\n green = 0;\n blue = 0;\n alpha = 0;\n xBinStart = xBin * pixelSize;\n xBinEnd = xBinStart + pixelSize;\n yBinStart = yBin * pixelSize;\n yBinEnd = yBinStart + pixelSize;\n pixelsInBin = 0;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n red += data[i + 0];\n green += data[i + 1];\n blue += data[i + 2];\n alpha += data[i + 3];\n pixelsInBin += 1;\n }\n }\n red = red / pixelsInBin;\n green = green / pixelsInBin;\n blue = blue / pixelsInBin;\n alpha = alpha / pixelsInBin;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n data[i + 0] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = alpha;\n }\n }\n }\n }\n};\nexports.Pixelate = Pixelate;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'pixelSize', 8, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Posterize = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Posterize = function (imageData) {\n const levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels;\n for (let i = 0; i < len; i += 1) {\n data[i] = Math.floor(data[i] / scale) * scale;\n }\n};\nexports.Posterize = Posterize;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'levels', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGB = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst RGB = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue();\n for (let i = 0; i < nPixels; i += 4) {\n const brightness = (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;\n data[i] = brightness * red;\n data[i + 1] = brightness * green;\n data[i + 2] = brightness * blue;\n data[i + 3] = data[i + 3];\n }\n};\nexports.RGB = RGB;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGBA = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst RGBA = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha();\n for (let i = 0; i < nPixels; i += 4) {\n const ia = 1 - alpha;\n data[i] = red * alpha + data[i] * ia;\n data[i + 1] = green * alpha + data[i + 1] * ia;\n data[i + 2] = blue * alpha + data[i + 2] * ia;\n }\n};\nexports.RGBA = RGBA;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'alpha', 1, function (val) {\n this._filterUpToDate = false;\n if (val > 1) {\n return 1;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return val;\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sepia = void 0;\nconst Sepia = function (imageData) {\n const data = imageData.data, nPixels = data.length;\n for (let i = 0; i < nPixels; i += 4) {\n const r = data[i + 0];\n const g = data[i + 1];\n const b = data[i + 2];\n data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);\n data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);\n data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);\n }\n};\nexports.Sepia = Sepia;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Solarize = void 0;\nconst Solarize = function (imageData) {\n const data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4;\n let y = h;\n do {\n const offsetY = (y - 1) * w4;\n let x = w;\n do {\n const offset = offsetY + (x - 1) * 4;\n let r = data[offset];\n let g = data[offset + 1];\n let b = data[offset + 2];\n if (r > 127) {\n r = 255 - r;\n }\n if (g > 127) {\n g = 255 - g;\n }\n if (b > 127) {\n b = 255 - b;\n }\n data[offset] = r;\n data[offset + 1] = g;\n data[offset + 2] = b;\n } while (--x);\n } while (--y);\n};\nexports.Solarize = Solarize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Threshold = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Threshold = function (imageData) {\n const level = this.threshold() * 255, data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 1) {\n data[i] = data[i] < level ? 0 : 255;\n }\n};\nexports.Threshold = Threshold;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _FullInternals_1 = require(\"./_FullInternals\");\nmodule.exports = _FullInternals_1.Konva;\n"],"names":["Object","defineProperty","exports","value","_registerNode","Konva","glob","PI_OVER_180","Math","PI","global","window","WorkerGlobalScope","self","_global","version","isBrowser","toString","call","isUnminified","test","param","dblClickWindow","getAngle","angle","angleDeg","enableTrace","pointerEventsEnabled","autoDrawEnabled","hitOnDragEnabled","capturePointerEventsEnabled","_mouseListenClick","_touchListenClick","_pointerListenClick","_mouseInDblClickWindow","_touchInDblClickWindow","_pointerInDblClickWindow","_mouseDblClickPointerId","_touchDblClickPointerId","_pointerDblClickPointerId","_fixTextRendering","pixelRatio","devicePixelRatio","dragDistance","showWarnings","dragButtons","isDragging","isTransforming","_a","isDragReady","node","releaseCanvasOnDestroy","document","_injectGlobal","NodeClass","prototype","getClassName","Util","Transform","Global_1","require$$0","m","arguments","length","undefined","_classCallCheck","this","dirty","slice","_createClass","key","tr","point","x","y","sx","sy","rad","c","cos","s","sin","m11","m12","m21","m22","matrix","dx","dy","d","m0","m1","m2","m3","m4","m5","a","b","delta","result","rotation","scaleX","scaleY","skewX","skewY","r","sqrt","acos","_getRotation","PI_OVER_DEG180","DEG180_OVER_PI","KONVA_ERROR","COLORS","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","transparent","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","RGB_REGEX","animQueue","req","requestAnimationFrame","f","setTimeout","_isElement","obj","nodeType","_isFunction","constructor","apply","_isPlainObject","_isArray","_isNumber","isNaN","isFinite","_isString","_isBoolean","isObject","val","isValidSelector","selector","firstChar","toUpperCase","_sign","number","requestAnimFrame","callback","push","queue","forEach","cb","createCanvasElement","canvas","createElement","style","e","createImageElement","_isInDocument","el","parentNode","_urlToImage","url","imageObj","onload","src","_rgbToHex","g","_hexToRgb","hex","replace","bigint","parseInt","getRandomColor","randColor","random","getRGB","color","rgb","substring","substr","exec","colorToRGBA","str","_namedColorToRBA","_hex3ColorToRGBA","_hex4ColorToRGBA","_hex6ColorToRGBA","_hex8ColorToRGBA","_rgbColorToRGBA","_rgbaColorToRGBA","_hslColorToRGBA","toLowerCase","indexOf","parts","match","split","map","Number","n","index","t2","t3","_exec","_exec2","hsl","h","l","round","t1","i","haveIntersection","r1","r2","width","height","cloneObject","retObj","cloneArray","arr","degToRad","deg","radToDeg","_degToRad","warn","_radToDeg","radians","_capitalize","charAt","throw","Error","error","console","each","func","_inRange","left","right","_getProjectionToSegment","x1","y1","x2","y2","x3","y3","dist","pd2","u","_getProjectionToLine","pt","line","isClosed","pc","MAX_VALUE","p1","p2","proj","px","py","pdist","_prepareArrayForTween","startArray","endArray","start","end","temp","newStart","pr","_prepareToStringify","desc","visitedByCircularReferenceRemoval","hasOwnProperty","_typeof","getOwnPropertyDescriptor","configurable","_assign","target","source","_getFirstPointerId","evt","touches","changedTouches","identifier","pointerId","releaseCanvas","_len","canvases","Array","_key","drawRoundedRectPath","context","cornerRadius","topLeft","topRight","bottomLeft","bottomRight","min","moveTo","lineTo","arc","Validators","RGBComponent","alphaComponent","getNumberValidator","attr","Util_1","_formatValue","getNumberOrArrayOfNumbersValidator","noOfElements","isNumber","isValidArray","getNumberOrAutoValidator","getStringValidator","getStringOrGradientValidator","isString","isGradient","getFunctionValidator","getNumberArrayValidator","TypedArray","Int8Array","getPrototypeOf","item","getBooleanValidator","getComponentValidator","components","require$$1","Factory","Validators_1","GET","SET","addGetterSetter","def","validator","after","addGetter","addSetter","addOverloadedGetterSetter","method","attrs","overWriteSetter","_setAttr","addComponentsGetterSetter","len","capitalize","getter","setter","ret","component","getAttr","basicValidator","_this","oldVal","_fireChangeEvent","capitalizedAttr","addDeprecatedGetterSetter","message","backCompat","methods","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","afterSetFilter","_filterUpToDate","Context_1","HitContext","SceneContext","Context","CONTEXT_METHODS","Context$1","traceArr","_enableTrace","shape","fillEnabled","_fill","hasStroke","_stroke","fillAfterStrokeEnabled","strokeShape","fillShape","relaxed","rounded","trace","args","join","floor","property","shift","getCanvas","getPixelRatio","setTransform","bounds","clearRect","getWidth","getHeight","lineCap","setAttr","absOpacity","getAbsoluteOpacity","lineJoin","_context","radius","startAngle","endAngle","counterClockwise","arcTo","beginPath","cp1x","cp1y","cp2x","cp2y","bezierCurveTo","_len2","_key2","clip","closePath","createImageData","x0","y0","createLinearGradient","image","repetition","createPattern","r0","createRadialGradient","sWidth","sHeight","dWidth","dHeight","drawImage","radiusX","radiusY","counterclockwise","ellipse","path","fillRule","isPointInPath","_len3","_key3","fill","fillRect","strokeRect","text","maxWidth","fillText","measureText","sw","sh","getImageData","rect","radii","roundRect","imageData","putImageData","cpx","cpy","quadraticCurveTo","restore","rotate","save","scale","segments","setLineDash","getLineDash","path2d","stroke","strokeText","transform","translate","that","origSetter","methodName","origMethod","retArr","util","simplifyArray","_trace","prop","op","globalCompositeOperation","get","set","_Context$","_this2","_ref$willReadFrequent","willReadFrequently","_callSuper","_canvas","getContext","_inherits","_fillFunc","_getFillPattern","grd","_getLinearGradient","_getRadialGradient","hasColor","fillPriority","getFillPriority","_fillColor","hasPattern","getFillPatternImage","_fillPattern","hasLinearGradient","getFillLinearGradientColorStops","_fillLinearGradient","hasRadialGradient","getFillRadialGradientColorStops","_fillRadialGradient","getStrokeLinearGradientStartPoint","getStrokeLinearGradientEndPoint","colorStops","getStrokeLinearGradientColorStops","addColorStop","dash","strokeScaleEnabled","getStrokeScaleEnabled","_applyLineCap","dashEnabled","dashOffset","strokeWidth","getShadowForStrokeEnabled","_strokeLinearGradient","_strokeFunc","_b","_c","getShadowRGBA","blur","getShadowBlur","offset","getShadowOffset","getAbsoluteScale","ratio","abs","_Context$2","_this3","colorKey","_fillFuncHit","hasHitStroke","hitStrokeWidth","_strokeFuncHit","Canvas_1","HitCanvas","SceneCanvas","Canvas","_pixelRatio","require$$2","Factory_1","require$$3","require$$4","Canvas$1","config","isCache","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getDevicePixelRatio","padding","margin","border","background","position","top","previousRatio","setSize","setWidth","setHeight","mimeType","quality","toDataURL","err","_Canvas$","_this4","_Canvas$2","_this5","hitCanvas","DD","flag","_dragElements","elem","dragStatus","justDragged","Map","_drag","nodesToFireEvents","stage","getStage","setPointersPositions","pos","_changedPointerPositions","find","id","max","startPointerPos","startDrag","_setDragPosition","fire","type","_endDragBefore","drawNodes","drawNode","getLayer","draw","_endDragAfter","delete","addEventListener","Node_1","Node","DragAndDrop_1","require$$5","ABSOLUTE_OPACITY","ALL_LISTENERS","ABSOLUTE_TRANSFORM","ABSOLUTE_SCALE","CANVAS","LISTENING","MOUSEENTER","MOUSELEAVE","SHAPE","SPACE","STAGE","TRANSFORM","VISIBLE","TRANSFORM_CHANGE_STR","idCounter","Node$1","_id","eventListeners","_allEventListeners","parent","_cache","_attachedDepsListeners","_lastPos","_batchingTransformChange","_needClearTransformCache","_isUnderCache","_dragEventId","_shouldFireChangeEvents","setAttrs","clear","privateGetter","cache","name","deps","_this6","depsString","dep","on","_clearCache","_getCache","has","_this$_cache$get","scene","filter","hit","_clearSelfAndDescendantCache","_requestDraw","conf","getClientRect","skipTransform","relativeTo","getParent","ceil","drawBorder","hitCanvasPixelRatio","cachedSceneCanvas","cachedFilterCanvas","cachedHitCanvas","sceneContext","hitContext","imageSmoothingEnabled","drawScene","drawHit","points","minX","Infinity","minY","maxX","maxY","trans","getAbsoluteTransform","transformed","_applyOpacity","_applyGlobalCompositeOperation","canvasCache","_getCanvasCache","cacheCanvas","_getCachedSceneCanvas","filters","cachedCanvas","sceneCanvas","filterCanvas","filterContext","evtStr","handler","_delegate","baseEvent","events","t","_off","off","event","stopNode","targets","findAncestors","currentTarget","stopDrag","_remove","_clearCaches","children","splice","_setChildrenIndices","remove","clearCache","ancestors","_this7","_batchTransformChanges","_isListening","listening","_isVisible","visible","skipDragCheck","layer","layerUnderDrag","dragSkip","isListening","isVisible","nodes","child","depth","getDepth","addChildren","concat","getChildren","_this8","getPointerPosition","copy","invert","haveCachedParent","isCached","absoluteMatrix","getMatrix","absoluteTransform","getTranslation","_this$_clearTransform","_clearTransform","origTrans","_objectWithoutProperties","_excluded","it","_getAbsoluteTransform","_setTransform","setPosition","offsetX","offsetY","change","changeX","changeY","family","unshift","theta","zIndex","_getAbsoluteOpacity","opacity","newContainer","add","defaultValue","getAttrs","className","JSON","stringify","toObject","includeSelf","res","_isMatch","ancestor","sel","selectorArr","hasName","_getStage","eventType","bubble","_fireAndBubble","_fire","at","_eachAncestorReverse","transformsEnabled","multiply","getTransform","copyInto","reset","decompose","_getTransform","skew","allListeners","listener","box","bufferCanvas","_toKonvaCanvas","_this9","Promise","resolve","reject","img","_this10","toCanvas","toBlob","blob","size","getDragDistance","evtName","evtListeners","newVal","oldName","newName","fullName","names","batchDraw","compareShape","isAncestorOf","stopBubble","cancelBubble","_events","hierarchyEvents","_toConsumableArray","topListeners","_getProtoListeners","selfListeners","ap","getAbsolutePosition","_getPointerById","bubbleEvent","_createDragElement","newNodePos","dbf","dragBoundFunc","bounded","setAbsolutePosition","draggable","_dragChange","_dragCleanup","_this11","hasDraggingChild","_listenDrag","dragElement","isReady","screenRect","data","container","parse","_createNode","no","Class","_attrsAffectingSize","rotateDeg","setRotationDeg","getRotationDeg","Container_1","Container","Container$1","_Node_1$Node","_this12","filterFunc","results","destroy","_validateAdd","hasChildren","destroyChildren","_superPropGet","_generalFind","findOne","_descendants","valid","fn","_step","_iterator","_createForOfIteratorHelper","done","clone","intersects","can","caching","_drawCachedSceneCanvas","_drawChildren","shouldDrawHit","_drawCachedHitCanvas","drawMethod","clipWidth","clipHeight","clipFunc","hasClip","selfCache","clipArgs","clipX","clipY","hasComposition","selfRect","skipShadow","skipStroke","shapes","hasVisible","_transformedRect","PointerEvents","getCapturedShape","Captures","createEvent","hasPointerCapture","setPointerCapture","releaseCapture","SUPPORT_POINTER_EVENTS","PointerEvent","content","Shape","dummyContext","Global_2","HAS_SHADOW","SHADOW_RGBA","patternImage","linearGradient","radialGradient","getDummyContext","_Node_1$Node2","_this19","sceneFunc","hitFunc","_hasShadow","shadowEnabled","shadowOpacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","__getFillPattern","fillPatternImage","pattern","fillPatternRepeat","fillPatternX","fillPatternY","fillPatternRotation","fillPatternScaleX","fillPatternScaleY","fillPatternOffsetX","fillPatternOffsetY","DOMMatrix","__getLinearGradient","fillLinearGradientColorStops","ctx","fillLinearGradientStartPoint","fillLinearGradientEndPoint","__getRadialGradient","fillRadialGradientColorStops","fillRadialGradientStartPoint","fillRadialGradientEndPoint","fillRadialGradientStartRadius","fillRadialGradientEndRadius","_getShadowRGBA","hasShadow","rgba","_this20","_calculate","_this21","strokeEnabled","strokeLinearGradientColorStops","bufferHitCanvas","forceFill","perfectDrawEnabled","hasFill","isTransparent","strokeForShadow","shadowForStrokeEnabled","_centroid","hasCachedParent","getSelfRect","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","preWidth","preHeight","blurRadius","bufferContext","drawFunc","getSceneFunc","skipBuffer","cachingSelf","_useBufferCanvas","bc","_applyLineJoin","o","_applyShadow","alphaThreshold","hitWidth","hitHeight","hitImageData","hitData","rgbColorKey","dashArray","getDashArray","setDashArray","getDrawFunc","setDrawFunc","drawHitFunc","getDrawHitFunc","setDrawHitFunc","Layer_1","Layer","Shape_1","require$$6","require$$7","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","Layer$1","_Container_1$Containe2","_this22","_waitingForDraw","_checkVisibility","_setSmoothEnabled","createPNGStream","getHitCanvas","removeChild","getNativeCanvasElement","insertBefore","appendChild","moveToTop","moveUp","moveDown","moveToBottom","_ref4","getType","display","_this23","spiralSearchDistance","continueSearch","intersectionOffset","_getIntersection","antialiased","p","p3","clearBeforeDraw","hitGraphEnabled","Group_1","Group","Group$1","_Container_1$Containe3","Animation_1","Animation","now","performance","Date","getTime","Animation$1","layers","animIdCounter","frame","time","timeDiff","lastTime","frameRate","setLayers","lays","isArray","animations","stop","_addAnimation","_removeAnimation","anim","_handleAnimation","layerHash","_updateFrameObject","layersLen","Anim","_runFrames","_animationLoop","animRunning","Stage_1","Stage","stages","MOUSEOVER","MOUSEMOVE","MOUSEDOWN","MOUSEUP","POINTERMOVE","POINTERDOWN","POINTERUP","POINTERCANCEL","POINTEROUT","POINTERLEAVE","POINTEROVER","POINTERENTER","CONTEXTMENU","TOUCHSTART","TOUCHEND","TOUCHMOVE","TOUCHCANCEL","WHEEL","EVENTS","EVENTS_MAP","mouse","_defineProperty","touch","pointer","getEventType","getEventsMap","checkNoClip","_Container_1$Containe","_this13","_pointerPositions","_buildDOM","_bindContentEvents","_resizeDOM","isLayer","isFastLayer","getElementsByClassName","getElementById","parentElement","layerCanvas","getIntersection","_len4","rest","_key4","_this14","_ref2","_ref3","_slicedToArray","passive","pointerenter","pointerover","evenType","targetShape","_getTargetShape","eventsEnabled","pointerout","pointerleave","pointerPos","_this15","triggeredOnShape","pointerdown","isTouch","preventDefault","cancelable","_this16","processedShapesIds","differentTarget","_objectSpread","pointermove","_this17","clickStartShape","clickEndShape","fireDblClick","clearTimeout","pointerup","pointerclick","pointerdblclick","_this18","contentPosition","_getContentPosition","clientX","clientY","getBoundingClientRect","clientWidth","clientHeight","innerHTML","userSelect","setAttribute","FastLayer_1","FastLayer","FastLayer$1","_Layer_1$Layer","_this24","require$$8","require$$9","require$$10","Tween_1","Easings","Tween","blacklist","duration","easing","onFinish","yoyo","colorAttrs","TweenEngine","propFunc","begin","finish","_pos","_change","prevPos","_time","_position","_startTime","_finish","pause","reverse","play","update","state","getTimer","onEnterFrame","getPosition","setTime","nodeId","Linear","getLayers","tween","_tweenFunc","_addListeners","tweens","_addAttr","onReset","onUpdate","diff","trueEnd","trueStart","endRGBA","tweenId","closed","startRGBA","_this25","onPlay","onReverse","onPause","seek","thisId","to","params","BackEaseIn","BackEaseOut","BackEaseInOut","ElasticEaseIn","asin","pow","ElasticEaseOut","ElasticEaseInOut","BounceEaseOut","BounceEaseIn","BounceEaseInOut","EaseIn","EaseOut","EaseInOut","StrongEaseIn","StrongEaseOut","StrongEaseInOut","require$$12","require$$13","default","Line_1","Line","getControlPoints","d01","d12","fa","fb","expandPoints","tension","allPoints","cp","Line$1","_Shape_1$Shape2","_this26","tp","bezier","getTensionPoints","fillStrokeShape","_getTensionPoints","_getTensionPointsClosed","firstControlPoints","lastControlPoints","middle","Path_1","Path","BezierFunctions_1","BFunc","xs","ys","xbase","getDerivative","ybase","combined","t2length","getCubicArcLength","binomialCoefficients","cValues","tValues","sum","correctedT","z","getQuadraticArcLength","ax","ay","bx","by","A","B","C","k","uuk","bbk","term","log","derivative","vs","_vs","totalLength","step","numIterations","increasedTLength","increasedTError","decreasedTLength","decreasedTError","Path$1","_Shape_1$Shape3","_this27","dataArray","pathLength","_readDataAttribute","parsePathData","getPathLength","ca","command","cx","cy","rx","ry","dTheta","psi","fs","inc","getPointOnEllipticalArc","getPointOnCubicBezier","getPointAtLengthOfDataArray","ii","getPointOnLine","getPointOnQuadraticBezier","P1x","P1y","P2x","P2y","fromX","fromY","getLineLength","run","rise","ix","iy","pRise","pRun","adjustedRun","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cs","cc","RegExp","coords","re","j","jlen","parsed","parseFloat","prevCmd","ctlPtx","ctlPty","cmd","startX","startY","idx","convertEndpointToCenterParameterization","calcLength","psiDeg","xp","yp","lambda","cxp","cyp","vMag","v","vRatio","vAngle","Rect_1","Rect","Rect$1","_Shape_1$Shape8","Text_1","Text","stringToArray","string","reduce","acc","char","array","nextChar","AUTO","INHERIT","JUSTIFY","LEFT","MIDDLE","NORMAL","NONE","ATTR_CHANGE_LIST","attrChangeListLen","checkDefaultFill","Text$1","_Shape_1$Shape13","_this32","_partialTextX","_partialTextY","_setTextData","textArr","textArrLen","fontSize","lineHeightPx","lineHeight","verticalAlign","direction","alignY","align","totalWidth","letterSpacing","textDecoration","shouldUnderline","shouldLineThrough","translateY","baseline","metrics","measureSize","fontBoundingBoxAscent","fontBoundingBoxDescent","lineTranslateX","lineTranslateY","_getContextFont","spacesNumber","lineWidth","lastLine","lastInParagraph","gradient","strokeStyle","yOffset","_partialText","li","letter","getTextWidth","textWidth","textHeight","_d","_e","_f","_g","_h","_j","_k","_l","font","scaleFactor","actualBoundingBoxAscent","actualBoundingBoxDescent","actualBoundingBoxLeft","actualBoundingBoxRight","alphabeticBaseline","emHeightAscent","emHeightDescent","hangingBaseline","ideographicBaseline","fontStyle","fontVariant","fontFamily","hasSpace","trim","hasQuotes","_getTextWidth","lines","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","wrap","wrapAtWord","shouldAddEllipsis","ellipsis","additionalWidth","low","high","matchWidth","mid","substrWidth","lineArray","matchArray","wrapIndex","lastSpaceIndex","lastIndexOf","lastDashIndex","trimRight","_addTextLine","_shouldHandleEllipsis","_tryToAddEllipsisToLastLine","trimLeft","hasLine","Transformer_1","Transformer","EVENTS_NAME","NODES_RECT","ANGLES","TOUCH_DEVICE","ANCHORS_NAMES","rotateAroundPoint","angleRad","rotateAroundCenter","deltaRad","center","getCenter","activeTransformersCount","Transformer$1","_Group_1$Group2","_this34","_movingAnchorName","_transforming","_createElements","_handleMouseMove","bind","_handleMouseUp","getNode","setNode","setNodes","_nodes","_this35","detach","filteredNodes","useSingleNodeRotation","getAbsoluteRotation","onChange","_resetTransformCache","additionalEvents","_getEventNamespace","_proxyDrag","_this36","lastPos","otherNode","otherAbs","_this37","__getNodeRect","rot","relative","ignoreStroke","absScale","absPos","_this38","totalPoints","_getNodeRect","_this39","_createBack","_createAnchor","_this40","anchor","_handleMouseDown","rotateCursor","rotateAnchorCursor","cursor","anchorName","getCursor","_cursorChange","_this41","back","rotateEnabled","rotateLineVisible","rotateAnchorOffset","shouldOverdrawWholeArea","hypotenuse","_anchorDragOffset","newHypotenuse","anchorNode","pp","oldAbs","anchorDragBoundFunc","newAbs","keepProportion","shiftBehavior","keepRatio","shiftKey","centeredScaling","altKey","comparePoint","reverseX","reverseY","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","move","_fitNodesInto","atan2","newRotation","tol","rotationSnapTolerance","snappedRot","snaps","newRotationRad","snapped","absDiff","getSnap","rotationSnaps","_removeEvents","removeEventListener","newAttrs","_this42","oldAttrs","boundBoxFunc","baseSize","oldTr","newTr","newScaleX","newScaleY","flipEnabled","parentTransform","localTransform","newLocalTransform","_this43","enabledAnchors","resizeEnabled","anchorSize","anchors","anchorStroke","anchorStrokeWidth","anchorFill","anchorCornerRadius","_batchChangeChild","borderEnabled","borderStroke","borderStrokeWidth","borderDash","styleFunc","anchorStyleFunc","lineEnabled","rotateHandlerOffset","enabledHandlers","Blur_1","Blur","BlurStack","next","mul_table","shg_table","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pg","pb","pa","rbs","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","mul_sum","shg_sum","stackEnd","stack","stackIn","stackOut","filterGaussBlurRGBA","Kaleidoscope_1","Kaleidoscope","srcPos","dstPos","xSize","ySize","power","kaleidoscopePower","kaleidoscopeAngle","tempCanvas","scratchData","dst","opt","srcPixels","dstPixels","xMid","polarCenterX","yMid","polarCenterY","rMax","rSize","tSize","conversion","ToPolar","minSectionSize","sectionSize","xStart","xEnd","xDelta","FromPolar","Mask_1","Mask","pixelAt","idata","rgbDistance","mask","threshold","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","pTab","rgbMean","backgroundMask","applyMask","weights","side","halfSide","maskResult","so","scy","scx","wt","smoothEdgeMask","dilateMask","erodeMask","_FullInternals","_CoreInternals_1","Arc_1","Arc","Arc$1","_Shape_1$Shape","clockwise","outerRadius","innerRadius","boundLeftRatio","boundTopRatio","boundBottomRatio","boundLeft","boundTop","boundBottom","Arrow_1","Arrow","Arrow$1","_Line_1$Line","PI2","fromTension","pointerLength","lp","lastLength","previous","pointerWidth","pointerAtEnding","__fillStroke","pointerAtBeginning","isDashEnabled","lineRect","Circle_1","Circle","Circle$1","_Shape_1$Shape4","Ellipse_1","Ellipse","Ellipse$1","_Shape_1$Shape5","Image_1","Image","Image$1","_Shape_1$Shape6","_this28","_setImageLoad","_this29","complete","readyState","hasCornerRadius","cropWidth","cropHeight","cropX","cropY","onError","onerror","crossOrigin","Label_1","Tag","Label","UP","RIGHT","DOWN","Label$1","_Group_1$Group","_this30","_sync","getText","pointerDirection","pointerHeight","tag","getTag","_Shape_1$Shape7","RegularPolygon_1","RegularPolygon","RegularPolygon$1","_Shape_1$Shape9","_getPoints","sides","Ring_1","Ring","PIx2","Ring$1","_Shape_1$Shape10","require$$11","Sprite_1","Sprite","Sprite$1","_Shape_1$Shape11","_this31","_updated","updated","frameIndex","isRunning","clearInterval","interval","_setInterval","animation","ix4","offsets","frameOffsets","ix2","setInterval","_updateIndex","getIndex","setIndex","Star_1","Star","Star$1","_Shape_1$Shape12","numPoints","require$$14","TextPath_1","TextPath","partialText","TextPath$1","_Shape_1$Shape14","_this33","dummyCanvas","_getTextPathLength","textBaseline","glyphInfo","p0","setText","_this$_getTextSize","_getTextSize","kerningFunc","charArr","offsetToGlyph","charStartPoint","_getPointAtLength","glyphWidth","numberOfSpaces","charEndPoint","kern","midpoint","transposeX","transposeY","info","require$$15","require$$16","Wedge_1","Wedge","Wedge$1","_Shape_1$Shape15","getAngleDeg","setAngleDeg","require$$17","require$$18","Brighten_1","Brighten","brightness","require$$19","Contrast_1","Contrast","adjust","contrast","nPixels","require$$20","Emboss_1","Emboss","strength","embossStrength","greyLevel","embossWhiteLevel","embossDirection","blend","embossBlend","w","w4","dirY","dirX","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","dif","absDif","require$$21","Enhance_1","Enhance","remap","fromValue","fromMin","fromMax","toMin","toMax","fromRange","toRange","toValue","nSubPixels","rMin","gMin","gMax","bMin","bMax","enhanceAmount","enhance","rMid","rGoalMax","rGoalMin","gMid","gGoalMax","gGoalMin","bMid","bGoalMax","bGoalMin","require$$22","Grayscale_1","Grayscale","HSL_1","HSL","saturation","hue","luminance","vsu","vsw","rr","rg","rb","gr","gg","gb","br","bg","bb","require$$24","HSV_1","HSV","require$$25","Invert_1","Invert","require$$27","require$$28","Noise_1","Noise","amount","noise","half","require$$29","Pixelate_1","Pixelate","alpha","xBinStart","xBinEnd","yBinStart","yBinEnd","xBin","yBin","pixelsInBin","pixelSize","nBinsX","nBinsY","require$$30","Posterize_1","Posterize","levels","require$$31","RGB_1","RGB","require$$32","RGBA_1","RGBA","ia","require$$33","Sepia_1","Sepia","Solarize_1","Solarize","Threshold_1","Threshold","level","require$$36","Filters","lib","_FullInternals_1","libModule"],"mappings":"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BACA,kBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBAEJ,CACI,iBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,gBACA,gBACA,mBACA,mBACA,kBACA,kBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,oBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,mBAEJ,CACI,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,kBACA,oBAGRh5C,EAAA+4C,qBAA+B,CAAC,CAAC,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAalE/4C,EAAA84C,kBAZ0B,SAACP,EAAIC,EAAI/jB,GAC/B,IAAIykB,EACAC,EAEEC,EAAI3kB,EAAI,EACdykB,EAAM,EACN,IAAK,IAAInjC,EAAI,EAAGA,EAHN,GAGaA,IACnBojC,EAAaC,EAAIp5C,EAAQi5C,QAJnB,IAI8BljC,GAAKqjC,EACzCF,GAAOl5C,EAAQg5C,QALT,IAKoBjjC,GAAKuiC,EAAMC,EAAIC,EAAIW,GAEjD,OAAOC,EAAIF,CACd,EA2BDl5C,EAAAq5C,sBAzB8B,SAACd,EAAIC,EAAI/jB,QACzB3wB,IAAN2wB,IACAA,EAAI,GAER,IAAM6kB,EAAKf,EAAG,GAAK,EAAIA,EAAG,GAAKA,EAAG,GAC5BgB,EAAKf,EAAG,GAAK,EAAIA,EAAG,GAAKA,EAAG,GAC5BgB,EAAK,EAAIjB,EAAG,GAAK,EAAIA,EAAG,GACxBkB,EAAK,EAAIjB,EAAG,G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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAEpEC,EAAY,CACd,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3E,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}