{"version":3,"file":"vendor-konva-0s9j9UXq.js","sources":["../../../../node_modules/konva/lib/Global.js","../../../../node_modules/konva/lib/Util.js","../../../../node_modules/konva/lib/Validators.js","../../../../node_modules/konva/lib/Factory.js","../../../../node_modules/konva/lib/Context.js","../../../../node_modules/konva/lib/Canvas.js","../../../../node_modules/konva/lib/DragAndDrop.js","../../../../node_modules/konva/lib/Node.js","../../../../node_modules/konva/lib/Container.js","../../../../node_modules/konva/lib/PointerEvents.js","../../../../node_modules/konva/lib/Stage.js","../../../../node_modules/konva/lib/Shape.js","../../../../node_modules/konva/lib/Layer.js","../../../../node_modules/konva/lib/FastLayer.js","../../../../node_modules/konva/lib/Group.js","../../../../node_modules/konva/lib/Animation.js","../../../../node_modules/konva/lib/Tween.js","../../../../node_modules/konva/lib/_CoreInternals.js","../../../../node_modules/konva/lib/shapes/Arc.js","../../../../node_modules/konva/lib/shapes/Line.js","../../../../node_modules/konva/lib/BezierFunctions.js","../../../../node_modules/konva/lib/shapes/Path.js","../../../../node_modules/konva/lib/shapes/Arrow.js","../../../../node_modules/konva/lib/shapes/Circle.js","../../../../node_modules/konva/lib/shapes/Ellipse.js","../../../../node_modules/konva/lib/shapes/Image.js","../../../../node_modules/konva/lib/shapes/Label.js","../../../../node_modules/konva/lib/shapes/Rect.js","../../../../node_modules/konva/lib/shapes/RegularPolygon.js","../../../../node_modules/konva/lib/shapes/Ring.js","../../../../node_modules/konva/lib/shapes/Sprite.js","../../../../node_modules/konva/lib/shapes/Star.js","../../../../node_modules/konva/lib/shapes/Text.js","../../../../node_modules/konva/lib/shapes/TextPath.js","../../../../node_modules/konva/lib/shapes/Transformer.js","../../../../node_modules/konva/lib/shapes/Wedge.js","../../../../node_modules/konva/lib/filters/Blur.js","../../../../node_modules/konva/lib/filters/Brighten.js","../../../../node_modules/konva/lib/filters/Contrast.js","../../../../node_modules/konva/lib/filters/Emboss.js","../../../../node_modules/konva/lib/filters/Enhance.js","../../../../node_modules/konva/lib/filters/Grayscale.js","../../../../node_modules/konva/lib/filters/HSL.js","../../../../node_modules/konva/lib/filters/HSV.js","../../../../node_modules/konva/lib/filters/Invert.js","../../../../node_modules/konva/lib/filters/Kaleidoscope.js","../../../../node_modules/konva/lib/filters/Mask.js","../../../../node_modules/konva/lib/filters/Noise.js","../../../../node_modules/konva/lib/filters/Pixelate.js","../../../../node_modules/konva/lib/filters/Posterize.js","../../../../node_modules/konva/lib/filters/RGB.js","../../../../node_modules/konva/lib/filters/RGBA.js","../../../../node_modules/konva/lib/filters/Sepia.js","../../../../node_modules/konva/lib/filters/Solarize.js","../../../../node_modules/konva/lib/filters/Threshold.js","../../../../node_modules/konva/lib/_FullInternals.js","../../../../node_modules/konva/lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._registerNode = exports.Konva = exports.glob = void 0;\nvar 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.0.1',\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 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 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 var 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 var c = Math.cos(rad);\n var s = Math.sin(rad);\n var m11 = this.m[0] * c + this.m[2] * s;\n var m12 = this.m[1] * c + this.m[3] * s;\n var m21 = this.m[0] * -s + this.m[2] * c;\n var 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 var m11 = this.m[0] + this.m[2] * sy;\n var m12 = this.m[1] + this.m[3] * sy;\n var m21 = this.m[2] + this.m[0] * sx;\n var 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 var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n var 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 var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n var m0 = this.m[3] * d;\n var m1 = -this.m[1] * d;\n var m2 = -this.m[2] * d;\n var m3 = this.m[0] * d;\n var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n var 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 var a = this.m[0];\n var b = this.m[1];\n var c = this.m[2];\n var d = this.m[3];\n var e = this.m[4];\n var f = this.m[5];\n var delta = a * d - b * c;\n let 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 var 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 var 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;\nvar 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})\\)/, 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 var 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 var 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 var 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 var 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 var 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 var 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 var 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 var 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 var 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 var retObj = {};\n for (var 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 (var 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 var x, y, dist;\n var 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 var 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 var pc = exports.Util.cloneObject(pt);\n var dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n var p2 = line[(i + 1) % line.length];\n var proj = exports.Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n var 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 var n, start = [], end = [];\n if (startArray.length > endArray.length) {\n var temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1],\n });\n }\n for (n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1],\n });\n }\n var newStart = [];\n end.forEach(function (point) {\n var 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 var desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (var 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 (var 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 = topRight = bottomLeft = bottomRight = 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.getComponentValidator = exports.getBooleanValidator = exports.getNumberArrayValidator = exports.getFunctionValidator = exports.getStringOrGradientValidator = exports.getStringValidator = exports.getNumberOrAutoValidator = exports.getNumberOrArrayOfNumbersValidator = exports.getNumberValidator = exports.alphaComponent = exports.RGBComponent = void 0;\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}\nexports.RGBComponent = RGBComponent;\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}\nexports.alphaComponent = alphaComponent;\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}\nexports.getNumberValidator = getNumberValidator;\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}\nexports.getNumberOrArrayOfNumbersValidator = getNumberOrArrayOfNumbersValidator;\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}\nexports.getNumberOrAutoValidator = getNumberOrAutoValidator;\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}\nexports.getStringValidator = getStringValidator;\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}\nexports.getStringOrGradientValidator = getStringOrGradientValidator;\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}\nexports.getFunctionValidator = getFunctionValidator;\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}\nexports.getNumberArrayValidator = getNumberArrayValidator;\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}\nexports.getBooleanValidator = getBooleanValidator;\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}\nexports.getComponentValidator = getComponentValidator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Factory = void 0;\nconst Util_1 = require(\"./Util\");\nconst Validators_1 = require(\"./Validators\");\nvar GET = 'get', 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 var 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 var len = components.length, capitalize = Util_1.Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr), n, component;\n constructor.prototype[getter] = function () {\n var ret = {};\n for (n = 0; n < len; n++) {\n component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n var basicValidator = (0, Validators_1.getComponentValidator)(components);\n constructor.prototype[setter] = function (val) {\n var oldVal = this.attrs[attr], key;\n if (validator) {\n val = validator.call(this, val);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (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 var method = GET + Util_1.Util._capitalize(attr);\n var 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 var 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 var method = constructor.prototype[newMethodName];\n var oldGetter = GET + Util_1.Util._capitalize(oldMethodName);\n var 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 var retArr = [], len = arr.length, util = Util_1.Util, n, val;\n for (n = 0; n < len; n++) {\n 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}\nvar 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 'restore',\n 'rotate',\n 'save',\n 'scale',\n 'setLineDash',\n 'setTransform',\n 'stroke',\n 'strokeText',\n 'transform',\n 'translate',\n];\nvar CONTEXT_PROPERTIES = [\n 'fillStyle',\n 'strokeStyle',\n 'shadowColor',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit',\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 var 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 var traceArr = this.traceArr, len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n }\n reset() {\n var 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 var 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 var 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(a0, a1, a2, a3, a4, a5) {\n this._context.arc(a0, a1, a2, a3, a4, a5);\n }\n arcTo(a0, a1, a2, a3, a4) {\n this._context.arcTo(a0, a1, a2, a3, a4);\n }\n beginPath() {\n this._context.beginPath();\n }\n bezierCurveTo(a0, a1, a2, a3, a4, a5) {\n this._context.bezierCurveTo(a0, a1, a2, a3, a4, a5);\n }\n clearRect(a0, a1, a2, a3) {\n this._context.clearRect(a0, a1, a2, a3);\n }\n clip() {\n this._context.clip();\n }\n closePath() {\n this._context.closePath();\n }\n createImageData(a0, a1) {\n var a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(a0, a1);\n }\n else if (a.length === 1) {\n return this._context.createImageData(a0);\n }\n }\n createLinearGradient(a0, a1, a2, a3) {\n return this._context.createLinearGradient(a0, a1, a2, a3);\n }\n createPattern(a0, a1) {\n return this._context.createPattern(a0, a1);\n }\n createRadialGradient(a0, a1, a2, a3, a4, a5) {\n return this._context.createRadialGradient(a0, a1, a2, a3, a4, a5);\n }\n drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n var a = arguments, _context = this._context;\n if (a.length === 3) {\n _context.drawImage(a0, a1, a2);\n }\n else if (a.length === 5) {\n _context.drawImage(a0, a1, a2, a3, a4);\n }\n else if (a.length === 9) {\n _context.drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8);\n }\n }\n ellipse(a0, a1, a2, a3, a4, a5, a6, a7) {\n this._context.ellipse(a0, a1, a2, a3, a4, a5, a6, a7);\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(path2d) {\n if (path2d) {\n this._context.fill(path2d);\n }\n else {\n this._context.fill();\n }\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(a0, a1, a2, a3) {\n return this._context.getImageData(a0, a1, a2, a3);\n }\n lineTo(a0, a1) {\n this._context.lineTo(a0, a1);\n }\n moveTo(a0, a1) {\n this._context.moveTo(a0, a1);\n }\n rect(a0, a1, a2, a3) {\n this._context.rect(a0, a1, a2, a3);\n }\n putImageData(a0, a1, a2) {\n this._context.putImageData(a0, a1, a2);\n }\n quadraticCurveTo(a0, a1, a2, a3) {\n this._context.quadraticCurveTo(a0, a1, a2, a3);\n }\n restore() {\n this._context.restore();\n }\n rotate(a0) {\n this._context.rotate(a0);\n }\n save() {\n this._context.save();\n }\n scale(a0, a1) {\n this._context.scale(a0, a1);\n }\n setLineDash(a0) {\n if (this._context.setLineDash) {\n this._context.setLineDash(a0);\n }\n else if ('mozDash' in this._context) {\n this._context['mozDash'] = a0;\n }\n else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = a0;\n }\n }\n getLineDash() {\n return this._context.getLineDash();\n }\n setTransform(a0, a1, a2, a3, a4, a5) {\n this._context.setTransform(a0, a1, a2, a3, a4, a5);\n }\n stroke(path2d) {\n if (path2d) {\n this._context.stroke(path2d);\n }\n else {\n this._context.stroke();\n }\n }\n strokeText(a0, a1, a2, a3) {\n this._context.strokeText(a0, a1, a2, a3);\n }\n transform(a0, a1, a2, a3, a4, a5) {\n this._context.transform(a0, a1, a2, a3, a4, a5);\n }\n translate(a0, a1) {\n this._context.translate(a0, a1);\n }\n _enableTrace() {\n var that = this, len = CONTEXT_METHODS.length, origSetter = this.setAttr, n, args;\n var func = function (methodName) {\n var 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 var prop = arguments[0];\n var 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 var 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 var 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 var 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 (var 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 var dash = shape.dash(), strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n var 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 var 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 var 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 var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n var hitStrokeWidth = shape.hitStrokeWidth();\n var 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\");\nvar _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n var canvas = Util_1.Util.createCanvasElement();\n var context = canvas.getContext('2d');\n _pixelRatio = (function () {\n var 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 var conf = config || {};\n var 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 var 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 var 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 var 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 var 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 var 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 var dragDistance = node.dragDistance();\n var 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('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}\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\");\nvar 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 var cache = this._cache.get(attr);\n var isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;\n var 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 var conf = config || {};\n var 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(),\n });\n }\n var 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 width += offset * 2 + 1;\n height += offset * 2 + 1;\n x -= offset;\n y -= offset;\n var 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 var 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 var minX, minY, maxX, maxY;\n var trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n var 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 var cacheCanvas = this._getCachedSceneCanvas();\n var ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n }\n _drawCachedHitCanvas(context) {\n var 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 var 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 var 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 var 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 var 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 var 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 var stopNode = this;\n this.on(event, function (evt) {\n var targets = evt.target.findAncestors(selector, true, stopNode);\n for (var 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 var 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 var 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 var 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 var 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 var layer = this.getLayer();\n var 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 var dragSkip = !skipDragCheck && !Global_1.Konva.hitOnDragEnabled && layerUnderDrag;\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 var 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 if (that.nodeType !== UPPER_STAGE) {\n addChildren(that.getStage().getChildren());\n }\n return index;\n }\n getDepth() {\n var 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 if (!this.getStage()) {\n return null;\n }\n var pos = this.getStage().getPointerPosition();\n if (!pos) {\n return null;\n }\n var 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 var 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 var origTrans = this._clearTransform();\n this.attrs.x = origTrans.x;\n this.attrs.y = origTrans.y;\n delete origTrans.x;\n delete origTrans.y;\n this._clearCache(TRANSFORM);\n var 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 var key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n }\n _clearTransform() {\n var 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 var 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 var 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 var 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 var 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 var 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 var 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 var 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 var absOpacity = this.opacity();\n var 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 var obj = {}, attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;\n obj.attrs = {};\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 obj.className = this.getClassName();\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 var res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n var 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 var 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 var parent = this.getParent();\n return parent ? parent.getLayer() : null;\n }\n getStage() {\n return this._getCache(STAGE, this._getStage);\n }\n _getStage() {\n var parent = this.getParent();\n if (parent) {\n return parent.getStage();\n }\n else {\n return undefined;\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 var at;\n if (top) {\n at = new Util_1.Transform();\n this._eachAncestorReverse(function (node) {\n var 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 var 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 var 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 var m = this._cache.get(TRANSFORM) || new Util_1.Transform();\n m.reset();\n var 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 var attrs = Util_1.Util.cloneObject(this.attrs), key, allListeners, len, n, listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n var 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 var box = this.getClientRect();\n var 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 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);\n context.restore();\n return canvas;\n }\n toCanvas(config) {\n return this._toKonvaCanvas(config)._canvas;\n }\n toDataURL(config) {\n config = config || {};\n var mimeType = config.mimeType || null, quality = config.quality || null;\n var 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 });\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 var 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 var oldName = this.name();\n var 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 var names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n }\n removeName(name) {\n var names = (this.name() || '').split(/\\s/g);\n var 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 var 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 var 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 var 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 var 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 var 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 var pointerId = evt ? evt.pointerId : undefined;\n var stage = this.getStage();\n var ap = this.getAbsolutePosition();\n var 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 var newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y,\n };\n var 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 var shouldCheckButton = evt.evt['button'] !== undefined;\n var 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 var 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 var 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 var 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', null, (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', null, 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 var 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 (var 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 var result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n }\n _generalFind(selector, findOne) {\n var 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 var 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 var 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 var 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 var arr = [];\n this.find('Shape').forEach(function (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) {\n var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n var caching = canvas && canvas.isCache;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedSceneCanvas) {\n context.save();\n var 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);\n }\n return this;\n }\n drawHit(can, top) {\n if (!this.shouldDrawHit(top)) {\n return this;\n }\n var 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 var 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) {\n var _a;\n var context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (clipWidth && clipHeight) || clipFunc;\n const selfCache = top === this;\n if (hasClip) {\n context.save();\n var transform = this.getAbsoluteTransform(top);\n var m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n if (clipFunc) {\n clipFunc.call(this, context, this);\n }\n else {\n var clipX = this.clipX();\n var clipY = this.clipY();\n context.rect(clipX, clipY, clipWidth, clipHeight);\n }\n context.clip();\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n var 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);\n });\n if (hasComposition) {\n context.restore();\n }\n if (hasClip) {\n context.restore();\n }\n }\n getClientRect(config) {\n var _a;\n config = config || {};\n var skipTransform = config.skipTransform;\n var relativeTo = config.relativeTo;\n var minX, minY, maxX, maxY;\n var selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0,\n };\n var that = this;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n if (!child.visible()) {\n return;\n }\n var 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 var shapes = this.find('Shape');\n var hasVisible = false;\n for (var i = 0; i < shapes.length; i++) {\n var 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.releaseCapture = exports.setPointerCapture = exports.hasPointerCapture = exports.createEvent = exports.getCapturedShape = void 0;\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}\nexports.getCapturedShape = getCapturedShape;\nfunction createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nexports.createEvent = createEvent;\nfunction hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nexports.hasPointerCapture = hasPointerCapture;\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}\nexports.setPointerCapture = setPointerCapture;\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}\nexports.releaseCapture = releaseCapture;\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\");\nvar 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 var 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 var layers = this.children, len = layers.length, n;\n for (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 var content = this.content;\n if (content && Util_1.Util._isInDocument(content)) {\n this.container().removeChild(content);\n }\n var 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 var canvas = new Canvas_1.SceneCanvas({\n width: config.width,\n height: config.height,\n pixelRatio: config.pixelRatio || 1,\n });\n var _context = canvas.getContext()._context;\n var 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 var 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 var layers = this.children, len = layers.length, end = len - 1, n;\n for (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 var width = this.width();\n var 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 (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n super.add(layer);\n var 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 this._fire(events.pointerenter, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n _pointerover(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\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 var targetShape = this._getTargetShape(eventType);\n var eventsEnabled = !DragAndDrop_1.DD.isDragging || 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 = undefined;\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 var triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n var shape = this.getIntersection(pos);\n DragAndDrop_1.DD.justDragged = false;\n Global_1.Konva['_' + eventType + 'ListenClick'] = true;\n const hasShape = shape && shape.isListening();\n if (!hasShape) {\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 (DragAndDrop_1.DD.isDragging && DragAndDrop_1.DD.node.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n this.setPointersPositions(evt);\n var eventsEnabled = !DragAndDrop_1.DD.isDragging || Global_1.Konva.hitOnDragEnabled;\n if (!eventsEnabled) {\n return;\n }\n var processedShapesIds = {};\n let triggeredOnShape = false;\n var 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 var differentTarget = targetShape !== shape;\n if (differentTarget && targetShape) {\n targetShape._fireAndBubble(events.pointerout, Object.assign({}, event), shape);\n targetShape._fireAndBubble(events.pointerleave, Object.assign({}, 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, Object.assign({}, event), targetShape);\n shape._fireAndBubble(events.pointerenter, Object.assign({}, event), targetShape);\n this[eventType + 'targetShape'] = shape;\n }\n shape._fireAndBubble(events.pointermove, Object.assign({}, 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 var 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, Object.assign({}, event));\n if (Global_1.Konva['_' + eventType + 'ListenClick'] &&\n clickStartShape &&\n clickStartShape === shape) {\n shape._fireAndBubble(events.pointerclick, Object.assign({}, event));\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n shape._fireAndBubble(events.pointerdblclick, Object.assign({}, 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') {\n evt.preventDefault();\n }\n }\n _contextmenu(evt) {\n this.setPointersPositions(evt);\n var 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 var 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 var contentPosition = this._getContentPosition(), 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 var 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 var 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');\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\");\nvar HAS_SHADOW = 'hasShadow';\nvar SHADOW_RGBA = 'shadowRGBA';\nvar patternImage = 'patternImage';\nvar linearGradient = 'linearGradient';\nvar 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 context.fill();\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n context.fill();\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 var 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 var colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillLinearGradientStartPoint();\n var end = this.fillLinearGradientEndPoint();\n var grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (var 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 var colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillRadialGradientStartPoint();\n var end = this.fillRadialGradientEndPoint();\n var grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (var 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 var 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 var stage = this.getStage(), bufferHitCanvas = stage.bufferHitCanvas, p;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas, null, true);\n 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 if (!this.getStage()) {\n return false;\n }\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 var 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 const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo;\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) {\n var layer = this.getLayer(), canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow(), stage, bufferCanvas, bufferContext;\n var skipBuffer = canvas.isCache;\n var cachingSelf = top === this;\n if (!this.isVisible() && !cachingSelf) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n var 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 bufferCanvas = stage.bufferCanvas;\n bufferContext = bufferCanvas.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 var ratio = bufferCanvas.pixelRatio;\n if (hasShadow) {\n context._applyShadow(this);\n }\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.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 var 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 var 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 var 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 var cachedCanvas = this._getCanvasCache(), sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = cachedCanvas.hit, hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight(), hitImageData, hitData, len, rgbColorKey, i, alpha;\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n hitData = hitImageData.data;\n len = hitData.length;\n rgbColorKey = Util_1.Util._hexToRgb(this.colorKey);\n for (i = 0; i < len; i += 4) {\n 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.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\");\nvar 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 var 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 var 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 var moved = Node_1.Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n var 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 var stage = this.getStage();\n if (stage) {\n var 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 var stage = this.getStage();\n if (stage) {\n var 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 var _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 var 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 var spiralSearchDistance = 1;\n var 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 var 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 var 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 var parent = this.parent;\n var 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.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.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 var 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\");\nvar 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 var lays = [];\n if (!layers) {\n lays = [];\n }\n else if (layers.length > 0) {\n lays = layers;\n }\n else {\n lays = [layers];\n }\n this.layers = lays;\n return this;\n }\n getLayers() {\n return this.layers;\n }\n addLayer(layer) {\n var layers = this.layers, len = layers.length, n;\n for (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 var a = Animation, animations = a.animations, len = animations.length, n;\n for (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 var id = anim.id, animations = this.animations, len = animations.length, n;\n for (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 var layerHash = {}, animations = this.animations, anim, layers, func, n, i, layersLen, layer, key, needRedraw;\n for (n = 0; n < animations.length; n++) {\n anim = animations[n];\n layers = anim.layers;\n func = anim.func;\n anim._updateFrameObject(now());\n layersLen = layers.length;\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 (i = 0; i < layersLen; i++) {\n layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].batchDraw();\n }\n }\n static _animationLoop() {\n var 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}\nAnimation.animations = [];\nAnimation.animIdCounter = 0;\nAnimation.animRunning = false;\nexports.Animation = Animation;\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\");\nvar blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1,\n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, idCounter = 0, colorAttrs = ['fill', 'stroke', 'shadowColor'];\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 var 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 var 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 var that = this, node = config.node, nodeId = node._id, duration, easing = config.easing || exports.Easings.Linear, yoyo = !!config.yoyo, 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 var 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 var node = this.node, nodeId = node._id, start, diff, tweenId, n, len, trueEnd, trueStart, endRGBA;\n tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n 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 (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n }\n else {\n var 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 (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 var node = this.node, attrs = Tween.attrs[node._id][this._id], 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 var node = this.node;\n var 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 var node = this.node;\n var 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 var nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId], key;\n this.pause();\n for (key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n }\n}\nTween.attrs = {};\nTween.tweens = {};\nexports.Tween = Tween;\nNode_1.Node.prototype.to = function (params) {\n var onFinish = params.onFinish;\n params.node = this;\n params.onFinish = function () {\n this.destroy();\n if (onFinish) {\n onFinish();\n }\n };\n var tween = new Tween(params);\n tween.play();\n};\nexports.Easings = {\n BackEaseIn(t, b, c, d) {\n var s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n BackEaseOut(t, b, c, d) {\n var 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 var 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 var 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 var 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 var 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.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.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 var 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.Line = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nfunction getControlPoints(x0, y0, x1, y1, x2, y2, t) {\n var 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 var len = p.length, allPoints = [], n, cp;\n for (n = 2; n < len - 2; n += 2) {\n 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 var 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 var 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 var 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 var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var 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.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 z;\n let sum;\n let correctedT;\n const n = 20;\n 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.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 var ca = this.dataArray;\n context.beginPath();\n var isClosed = false;\n for (var n = 0; n < ca.length; n++) {\n var c = ca[n].command;\n var 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 var points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n var start = data.points[4];\n var dTheta = data.points[5];\n var end = data.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 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 var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var 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 (var i = 0; i < dataArray.length; ++i) {\n pathLength += dataArray[i].pathLength;\n }\n return pathLength;\n }\n static getPointAtLengthOfDataArray(length, dataArray) {\n var point, 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 point = dataArray[i - 1].points.slice(-2);\n return {\n x: point[0],\n y: point[1],\n };\n }\n if (length < 0.01) {\n point = dataArray[i].points.slice(0, 2);\n return {\n x: point[0],\n y: point[1],\n };\n }\n var cp = dataArray[i];\n var 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 if (fromX === undefined) {\n fromX = P1x;\n }\n if (fromY === undefined) {\n fromY = P1y;\n }\n var m = (P2y - P1y) / (P2x - P1x + 0.00000001);\n var run = Math.sqrt((dist * dist) / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n var rise = m * run;\n var pt;\n if (P2x === P1x) {\n pt = {\n x: fromX,\n y: fromY + rise,\n };\n }\n else if ((fromY - P1y) / (fromX - P1x + 0.00000001) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise,\n };\n }\n else {\n var ix, iy;\n var len = this.getLineLength(P1x, P1y, P2x, P2y);\n var u = (fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y);\n u = u / (len * len);\n ix = P1x + u * (P2x - P1x);\n iy = P1y + u * (P2y - P1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt((pRun * pRun) / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise,\n };\n }\n return pt;\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 var x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n var 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 var x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n var 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 var cosPsi = Math.cos(psi), sinPsi = Math.sin(psi);\n var 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 var cs = data;\n var 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 var arr = cs.split('|');\n var ca = [];\n var coords = [];\n var cpx = 0;\n var cpy = 0;\n var re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n var match;\n for (n = 1; n < arr.length; n++) {\n var str = arr[n];\n var 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 var p = [];\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n if (coords[j] === '00') {\n p.push(0, 0);\n continue;\n }\n var 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 var cmd = null;\n var points = [];\n var 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 (var 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 var len, p1, p2, t;\n var 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 var psi = psiDeg * (Math.PI / 180.0);\n var xp = (Math.cos(psi) * (x1 - x2)) / 2.0 + (Math.sin(psi) * (y1 - y2)) / 2.0;\n var yp = (-1 * Math.sin(psi) * (x1 - x2)) / 2.0 +\n (Math.cos(psi) * (y1 - y2)) / 2.0;\n var 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 var 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 var cxp = (f * rx * yp) / ry;\n var cyp = (f * -ry * xp) / rx;\n var cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n var vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n var vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n var vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var 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.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 var PI2 = Math.PI * 2;\n var points = this.points();\n var tp = points;\n var fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n var length = this.pointerLength();\n var n = points.length;\n var 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 var radians = (Math.atan2(dy, dx) + PI2) % PI2;\n var 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 var 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 - offset,\n y: lineRect.y - offset,\n width: lineRect.width + offset * 2,\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 var 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 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 var 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 var img = Util_1.Util.createImageElement();\n img.onload = function () {\n var 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\");\nvar 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 var that = this, n;\n var 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 var 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 var 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 var 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.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 var 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.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 (var 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 (var 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 var minX = points[0].x;\n var maxX = points[0].y;\n var minY = points[0].x;\n var 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\");\nvar 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 var 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 var 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 var 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 var 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 var offset = offsets[anim];\n var 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 var 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 var 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 var 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 var innerRadius = this.innerRadius(), outerRadius = this.outerRadius(), numPoints = this.numPoints();\n context.beginPath();\n context.moveTo(0, 0 - outerRadius);\n for (var n = 1; n < numPoints * 2; n++) {\n var radius = n % 2 === 0 ? outerRadius : innerRadius;\n var x = radius * Math.sin((n * Math.PI) / numPoints);\n var 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.Text = exports.stringToArray = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nfunction stringToArray(string) {\n return Array.from(string);\n}\nexports.stringToArray = stringToArray;\nvar AUTO = 'auto', CENTER = 'center', 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', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [\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}\nvar 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.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 (var 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 var textArr = this.textArr, textArrLen = textArr.length;\n if (!this.text()) {\n return;\n }\n var padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), 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 var translateY = 0;\n var translateY = lineHeightPx / 2;\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', MIDDLE);\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 context.moveTo(lineTranslateX, translateY + lineTranslateY + Math.round(fontSize / 2));\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 + Math.round(fontSize / 2));\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 context.moveTo(lineTranslateX, translateY + lineTranslateY);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && lastLine && !oneWord\n ? totalWidth - padding * 2\n : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n if (letterSpacing !== 0 || align === JUSTIFY) {\n spacesNumber = text.split(' ').length - 1;\n var array = stringToArray(text);\n for (var li = 0; li < array.length; li++) {\n var 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 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 var 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 var 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 var isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n }\n getHeight() {\n var 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 _context = getDummyContext(), fontSize = this.fontSize(), metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n return {\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 var width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width,\n lastInParagraph: false,\n });\n }\n _getTextWidth(text) {\n var letterSpacing = this.letterSpacing();\n var length = text.length;\n return (getDummyContext().measureText(text).width +\n (length ? letterSpacing * (length - 1) : 0));\n }\n _setTextData() {\n var 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 var additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;\n for (var i = 0, max = lines.length; i < max; ++i) {\n var line = lines[i];\n var lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n var low = 0, high = line.length, match = '', matchWidth = 0;\n while (low < high) {\n var mid = (low + high) >>> 1, substr = line.slice(0, mid + 1), 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 var wrapIndex;\n var nextChar = line[match.length];\n var nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = match.length;\n }\n else {\n wrapIndex =\n Math.max(match.lastIndexOf(SPACE), match.lastIndexOf(DASH)) +\n 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = match.slice(0, low);\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 var shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);\n if (shouldHandleEllipsis) {\n this._tryToAddEllipsisToLastLine();\n break;\n }\n line = line.slice(low);\n line = line.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 var 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 var width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();\n var lastLine = this.textArr[this.textArr.length - 1];\n if (!lastLine || !shouldAddEllipsis) {\n return;\n }\n if (fixedWidth) {\n var 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}\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_1._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, '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.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\");\nvar 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 var textDecoration = this.textDecoration();\n var fill = this.fill();\n var fontSize = this.fontSize();\n var glyphInfo = this.glyphInfo;\n if (textDecoration === 'underline') {\n context.beginPath();\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n context.save();\n var 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 var glyphInfo = this.glyphInfo;\n if (glyphInfo.length >= 1) {\n var p0 = glyphInfo[0].p0;\n context.moveTo(p0.x, p0.y);\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n var 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 var dummyCanvas = this.dummyCanvas;\n var _context = dummyCanvas.getContext('2d');\n _context.save();\n _context.font = this._getContextFont();\n var 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 (var 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 var 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 var minX = points[0] || 0;\n var maxX = points[0] || 0;\n var minY = points[1] || 0;\n var maxY = points[1] || 0;\n var x, y;\n for (var 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 var 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', null);\nFactory_1.Factory.addGetterSetter(TextPath, 'kerningFunc', null);\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\");\nvar EVENTS_NAME = 'tr-konva';\nvar 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]\n .map((e) => e + `.${EVENTS_NAME}`)\n .join(' ');\nvar NODES_RECT = 'nodesRect';\nvar 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];\nvar 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) {\n if (anchorName === 'rotater') {\n return 'crosshair';\n }\n rad += Util_1.Util.degToRad(ANGLES[anchorName] || 0);\n var 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}\nvar 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];\nvar 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 Object.assign(Object.assign({}, shape), { rotation: shape.rotation + angleRad, x,\n y });\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}\nclass Transformer extends Group_1.Group {\n constructor(config) {\n super(config);\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 var 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 var rect = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n var absScale = node.getAbsoluteScale(relative);\n var absPos = node.getAbsolutePosition(relative);\n var dx = rect.x * absScale.x - node.offsetX() * absScale.x;\n var 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 var 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 var 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 var trans = node.getAbsoluteTransform();\n points.forEach(function (point) {\n var 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 var minX, minY, maxX, maxY;\n totalPoints.forEach(function (point) {\n var 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(function (name) {\n this._createAnchor(name);\n }.bind(this));\n this._createAnchor('rotater');\n }\n _createAnchor(name) {\n var 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 var 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 var rad = Global_1.Konva.getAngle(this.rotation());\n var cursor = getCursor(name, rad);\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 var back = new Shape_1.Shape({\n name: 'back',\n width: 0,\n height: 0,\n draggable: true,\n sceneFunc(ctx) {\n var tr = this.getParent();\n var padding = tr.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, this.width() + padding * 2, this.height() + padding * 2);\n ctx.moveTo(this.width() / 2, -padding);\n if (tr.rotateEnabled()) {\n ctx.lineTo(this.width() / 2, -tr.rotateAnchorOffset() * Util_1.Util._sign(this.height()) - padding);\n }\n ctx.fillStrokeShape(this);\n },\n hitFunc: (ctx, shape) => {\n if (!this.shouldOverdrawWholeArea()) {\n return;\n }\n var 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 this._movingAnchorName = e.target.name().split(' ')[0];\n var attrs = this._getNodeRect();\n var width = attrs.width;\n var height = attrs.height;\n var 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 var ap = e.target.getAbsolutePosition();\n var pos = e.target.getStage().getPointerPosition();\n this._anchorDragOffset = {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n };\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 var x, y, newHypotenuse;\n var anchorNode = this.findOne('.' + this._movingAnchorName);\n var 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 var 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 var 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 var shiftBehavior = this.shiftBehavior();\n var 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 var topLeft = this.findOne('.top-left');\n var bottomRight = this.findOne('.bottom-right');\n var topOffsetX = topLeft.x();\n var topOffsetY = topLeft.y();\n var bottomOffsetX = this.getWidth() - bottomRight.x();\n var 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 var absPos = this.findOne('.top-left').getAbsolutePosition();\n x = absPos.x;\n y = absPos.y;\n var width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();\n var 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 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 var node = this.getNode();\n this._fire('transformend', { evt: e, target: node });\n if (node) {\n this._nodes.forEach((target) => {\n target._fire('transformend', { evt: e, target });\n });\n }\n this._movingAnchorName = null;\n }\n }\n _fitNodesInto(newAttrs, evt) {\n var 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 allowNegativeScale = this.flipEnabled();\n var 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 if (!allowNegativeScale) {\n this.update();\n return;\n }\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 if (!allowNegativeScale) {\n this.update();\n return;\n }\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 if (!allowNegativeScale) {\n this.update();\n return;\n }\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 if (!allowNegativeScale) {\n this.update();\n return;\n }\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 newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.scale(newAttrs.width / baseSize, newAttrs.height / baseSize);\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 this._fire('transform', { evt: evt, target: node });\n node._fire('transform', { evt: evt, target: node });\n (_a = node.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n this.rotation(Util_1.Util._getRotation(newAttrs.rotation));\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 var attrs = this._getNodeRect();\n this.rotation(Util_1.Util._getRotation(attrs.rotation));\n var width = attrs.width;\n var height = attrs.height;\n var enabledAnchors = this.enabledAnchors();\n var resizeEnabled = this.resizeEnabled();\n var padding = this.padding();\n var anchorSize = this.anchorSize();\n this.find('._anchor').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 (_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 var 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 var 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;\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, 'rotationSnaps', []);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, (0, Validators_1.getNumberValidator)());\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, 'node');\nFactory_1.Factory.addGetterSetter(Transformer, 'nodes');\nFactory_1.Factory.addGetterSetter(Transformer, 'boundBoxFunc');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorDragBoundFunc');\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.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.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}\nvar mul_table = [\n 512,\n 512,\n 456,\n 512,\n 328,\n 456,\n 335,\n 512,\n 405,\n 328,\n 271,\n 456,\n 388,\n 335,\n 292,\n 512,\n 454,\n 405,\n 364,\n 328,\n 298,\n 271,\n 496,\n 456,\n 420,\n 388,\n 360,\n 335,\n 312,\n 292,\n 273,\n 512,\n 482,\n 454,\n 428,\n 405,\n 383,\n 364,\n 345,\n 328,\n 312,\n 298,\n 284,\n 271,\n 259,\n 496,\n 475,\n 456,\n 437,\n 420,\n 404,\n 388,\n 374,\n 360,\n 347,\n 335,\n 323,\n 312,\n 302,\n 292,\n 282,\n 273,\n 265,\n 512,\n 497,\n 482,\n 468,\n 454,\n 441,\n 428,\n 417,\n 405,\n 394,\n 383,\n 373,\n 364,\n 354,\n 345,\n 337,\n 328,\n 320,\n 312,\n 305,\n 298,\n 291,\n 284,\n 278,\n 271,\n 265,\n 259,\n 507,\n 496,\n 485,\n 475,\n 465,\n 456,\n 446,\n 437,\n 428,\n 420,\n 412,\n 404,\n 396,\n 388,\n 381,\n 374,\n 367,\n 360,\n 354,\n 347,\n 341,\n 335,\n 329,\n 323,\n 318,\n 312,\n 307,\n 302,\n 297,\n 292,\n 287,\n 282,\n 278,\n 273,\n 269,\n 265,\n 261,\n 512,\n 505,\n 497,\n 489,\n 482,\n 475,\n 468,\n 461,\n 454,\n 447,\n 441,\n 435,\n 428,\n 422,\n 417,\n 411,\n 405,\n 399,\n 394,\n 389,\n 383,\n 378,\n 373,\n 368,\n 364,\n 359,\n 354,\n 350,\n 345,\n 341,\n 337,\n 332,\n 328,\n 324,\n 320,\n 316,\n 312,\n 309,\n 305,\n 301,\n 298,\n 294,\n 291,\n 287,\n 284,\n 281,\n 278,\n 274,\n 271,\n 268,\n 265,\n 262,\n 259,\n 257,\n 507,\n 501,\n 496,\n 491,\n 485,\n 480,\n 475,\n 470,\n 465,\n 460,\n 456,\n 451,\n 446,\n 442,\n 437,\n 433,\n 428,\n 424,\n 420,\n 416,\n 412,\n 408,\n 404,\n 400,\n 396,\n 392,\n 388,\n 385,\n 381,\n 377,\n 374,\n 370,\n 367,\n 363,\n 360,\n 357,\n 354,\n 350,\n 347,\n 344,\n 341,\n 338,\n 335,\n 332,\n 329,\n 326,\n 323,\n 320,\n 318,\n 315,\n 312,\n 310,\n 307,\n 304,\n 302,\n 299,\n 297,\n 294,\n 292,\n 289,\n 287,\n 285,\n 282,\n 280,\n 278,\n 275,\n 273,\n 271,\n 269,\n 267,\n 265,\n 263,\n 261,\n 259,\n];\nvar shg_table = [\n 9,\n 11,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 16,\n 17,\n 17,\n 17,\n 17,\n 17,\n 17,\n 17,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n];\nfunction filterGaussBlurRGBA(imageData, radius) {\n var pixels = imageData.data, width = imageData.width, height = imageData.height;\n var 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 var div = radius + radius + 1, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), stackEnd = null, stack = stackStart, stackIn = null, stackOut = null, mul_sum = mul_table[radius], shg_sum = shg_table[radius];\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 = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 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 = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 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 var 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.Brighten = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Brighten = function (imageData) {\n var brightness = this.brightness() * 255, data = imageData.data, len = data.length, i;\n for (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 var adjust = Math.pow((this.contrast() + 100) / 100, 2);\n var data = imageData.data, nPixels = data.length, red = 150, green = 150, blue = 150, i;\n for (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 var strength = this.embossStrength() * 10, greyLevel = this.embossWhiteLevel() * 255, direction = this.embossDirection(), blend = this.embossBlend(), dirY = 0, dirX = 0, data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, 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 var offsetY = (y - 1) * w4;\n var otherY = dirY;\n if (y + otherY < 1) {\n otherY = 0;\n }\n if (y + otherY > h) {\n otherY = 0;\n }\n var offsetYOther = (y - 1 + otherY) * w * 4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var otherX = dirX;\n if (x + otherX < 1) {\n otherX = 0;\n }\n if (x + otherX > w) {\n otherX = 0;\n }\n var offsetOther = offsetYOther + (x - 1 + otherX) * 4;\n var dR = data[offset] - data[offsetOther];\n var dG = data[offset + 1] - data[offsetOther + 1];\n var dB = data[offset + 2] - data[offsetOther + 2];\n var dif = dR;\n var absDif = dif > 0 ? dif : -dif;\n var absG = dG > 0 ? dG : -dG;\n var 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 var r = data[offset] + dif;\n var g = data[offset + 1] + dif;\n var 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 var 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', null, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossBlend', false, null, 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 var fromRange = fromMax - fromMin, toRange = toMax - toMin, toValue;\n if (fromRange === 0) {\n return toMin + toRange / 2;\n }\n if (toRange === 0) {\n return toMin;\n }\n toValue = (fromValue - fromMin) / fromRange;\n toValue = toRange * toValue + toMin;\n return toValue;\n}\nconst Enhance = function (imageData) {\n var data = imageData.data, nSubPixels = data.length, rMin = data[0], rMax = rMin, r, gMin = data[1], gMax = gMin, g, bMin = data[2], bMax = bMin, b, i;\n var enhanceAmount = this.enhance();\n if (enhanceAmount === 0) {\n return;\n }\n for (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 var 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 (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 var data = imageData.data, len = data.length, i, brightness;\n for (i = 0; i < len; i += 4) {\n 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 var 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, i;\n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n var 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 var 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 var 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 var r, g, b, a;\n for (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 var 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, i;\n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n var 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 var 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 var 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 var r, g, b, a;\n for (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 var data = imageData.data, len = data.length, i;\n for (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.Kaleidoscope = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Util_1 = require(\"../Util\");\nconst Validators_1 = require(\"../Validators\");\nvar ToPolar = function (src, dst, opt) {\n var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, r = 0, g = 0, b = 0, a = 0;\n var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize, tSize = xSize, radius, theta;\n var conversion = ((360 / tSize) * Math.PI) / 180, sin, cos;\n for (theta = 0; theta < tSize; theta += 1) {\n sin = Math.sin(theta * conversion);\n cos = Math.cos(theta * conversion);\n for (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 i = (y * xSize + x) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n 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};\nvar FromPolar = function (src, dst, opt) {\n var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, dx, dy, r = 0, g = 0, b = 0, a = 0;\n var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize, tSize = xSize, radius, theta, phaseShift = opt.polarRotation || 0;\n var x1, y1;\n for (x = 0; x < xSize; x += 1) {\n for (y = 0; y < ySize; y += 1) {\n dx = x - xMid;\n dy = y - yMid;\n radius = (Math.sqrt(dx * dx + dy * dy) * rSize) / rMax;\n 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 i = (y1 * xSize + x1) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n 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 var xSize = imageData.width, ySize = imageData.height;\n var x, y, xoff, i, r, g, b, a, srcPos, dstPos;\n var power = Math.round(this.kaleidoscopePower());\n var angle = Math.round(this.kaleidoscopeAngle());\n var offset = Math.floor((xSize * (angle % 360)) / 360);\n if (power < 1) {\n return;\n }\n var tempCanvas = Util_1.Util.createCanvasElement();\n tempCanvas.width = xSize;\n tempCanvas.height = ySize;\n var 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 var minSectionSize = xSize / Math.pow(2, power);\n while (minSectionSize <= 8) {\n minSectionSize = minSectionSize * 2;\n power -= 1;\n }\n minSectionSize = Math.ceil(minSectionSize);\n var sectionSize = minSectionSize;\n var 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 var idx = (y * idata.width + x) * 4;\n var 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 var m = [0, 0, 0];\n for (var 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 var rgbv_no = pixelAt(idata, 0, 0);\n var rgbv_ne = pixelAt(idata, idata.width - 1, 0);\n var rgbv_so = pixelAt(idata, 0, idata.height - 1);\n var rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);\n var 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 var mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);\n var mask = [];\n for (var i = 0; i < idata.width * idata.height; i++) {\n var 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 (var i = 0; i < idata.width * idata.height; i++) {\n idata.data[4 * i + 3] = mask[i];\n }\n}\nfunction erodeMask(mask, sw, sh) {\n var weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var 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 var weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var 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 var weights = [1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var 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 var threshold = this.threshold(), 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.Noise = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Noise = function (imageData) {\n var amount = this.noise() * 255, data = imageData.data, nPixels = data.length, half = amount / 2, i;\n for (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 var 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 var levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels, i;\n for (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 var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), i, brightness;\n for (i = 0; i < nPixels; i += 4) {\n brightness =\n (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 var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha(), i, ia;\n for (i = 0; i < nPixels; i += 4) {\n 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 var data = imageData.data, nPixels = data.length, i, r, g, b;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n 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 var data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, y = h;\n do {\n var offsetY = (y - 1) * w4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var r = data[offset];\n var g = data[offset + 1];\n var 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 var level = this.threshold() * 255, data = imageData.data, len = data.length, i;\n for (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 });\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 });\nconst _FullInternals_1 = require(\"./_FullInternals\");\nmodule.exports = _FullInternals_1.Konva;\n"],"names":["exports","PI_OVER_180","detectBrowser","global","param","angle","Konva","_registerNode","NodeClass","Global_1","require$$0","Transform","m","tr","point","x","sx","sy","rad","c","s","m11","m12","m21","m22","matrix","dx","dy","d","m0","m1","m2","m3","m4","m5","a","b","e","f","delta","result","r","OBJECT_ARRAY","OBJECT_NUMBER","OBJECT_STRING","OBJECT_BOOLEAN","PI_OVER_DEG180","DEG180_OVER_PI","HASH","EMPTY_STRING","ZERO","KONVA_WARNING","KONVA_ERROR","RGB_PAREN","COLORS","RGB_REGEX","animQueue","req","obj","val","selector","firstChar","number","callback","queue","cb","canvas","el","url","imageObj","hex","bigint","randColor","color","rgb","str","parts","n","index","_","hsl","h","l","t2","t3","t1","i","r1","r2","retObj","key","arr","deg","radians","func","left","right","x1","y1","x2","y2","x3","y3","y","dist","pd2","u","pt","line","isClosed","pc","p1","p2","proj","px","py","pdist","startArray","endArray","start","end","temp","newStart","pr","desc","target","source","evt","canvases","context","width","height","cornerRadius","topLeft","topRight","bottomLeft","bottomRight","Validators","Util_1","require$$1","_formatValue","RGBComponent","alphaComponent","getNumberValidator","attr","getNumberOrArrayOfNumbersValidator","noOfElements","isNumber","isValidArray","getNumberOrAutoValidator","isAuto","getStringValidator","getStringOrGradientValidator","isString","isGradient","getFunctionValidator","getNumberArrayValidator","TypedArray","item","getBooleanValidator","isBool","getComponentValidator","components","Validators_1","GET","SET","constructor","def","validator","after","method","len","capitalize","getter","setter","component","ret","basicValidator","oldVal","capitalizedAttr","message","methods","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","Context_1","simplifyArray","retArr","util","COMMA","OPEN_PAREN","CLOSE_PAREN","OPEN_PAREN_BRACKET","CLOSE_BRACKET_PAREN","SEMICOLON","DOUBLE_PAREN","EQUALS","CONTEXT_METHODS","CONTEXT_PROPERTIES","traceArrMax","Context","shape","relaxed","rounded","traceArr","trace","args","pixelRatio","bounds","lineCap","absOpacity","lineJoin","a0","a1","a2","a3","a4","a5","a6","a7","a8","_context","path","fillRule","path2d","text","maxWidth","that","origSetter","methodName","origMethod","prop","node","op","SceneContext","willReadFrequently","fill","grd","hasColor","fillPriority","hasPattern","hasLinearGradient","hasRadialGradient","colorStops","dash","strokeScaleEnabled","_a","_b","_c","blur","offset","scale","ratio","scaleX","scaleY","HitContext","hitStrokeWidth","strokeWidth","Canvas_1","require$$2","Factory_1","require$$3","require$$4","_pixelRatio","getDevicePixelRatio","devicePixelRatio","backingStoreRatio","Canvas","config","conf","previousRatio","mimeType","quality","err","SceneCanvas","HitCanvas","flag","elem","nodesToFireEvents","stage","pos","dragDistance","distance","drawNodes","drawNode","Node_1","DragAndDrop_1","require$$5","ABSOLUTE_OPACITY","ALL_LISTENERS","ABSOLUTE_TRANSFORM","ABSOLUTE_SCALE","CANVAS","CHANGE","CHILDREN","KONVA","LISTENING","MOUSEENTER","MOUSELEAVE","SHAPE","SPACE","STAGE","TRANSFORM","UPPER_STAGE","VISIBLE","TRANSFORM_CHANGE_STR","idCounter","Node","privateGetter","cache","isTransform","invalid","name","deps","depsString","dep","scene","filter","hit","rect","drawBorder","hitCanvasPixelRatio","cachedSceneCanvas","cachedFilterCanvas","cachedHitCanvas","sceneContext","hitContext","top","points","minX","minY","maxX","maxY","trans","transformed","canvasCache","cacheCanvas","hitCanvas","filters","cachedCanvas","sceneCanvas","filterCanvas","filterContext","imageData","evtStr","handler","events","event","baseEvent","t","type","stopNode","targets","parent","ancestors","relativeTo","skipDragCheck","layer","layerUnderDrag","dragSkip","depth","nodes","child","addChildren","children","transform","haveCachedParent","absoluteMatrix","absoluteTransform","origTrans","it","change","changeX","changeY","family","theta","zIndex","newContainer","attrs","defaultValue","nonPlainObject","includeSelf","res","ancestor","selectorArr","sel","eventType","bubble","at","transformsEnabled","offsetX","offsetY","rotation","skewX","skewY","allListeners","listener","box","resolve","reject","img","blob","size","evtListeners","evtName","newVal","oldName","newName","fullName","names","compareShape","shouldStop","stopBubble","hierarchyEvents","topListeners","selfListeners","pointerId","ap","bubbleEvent","newNodePos","dbf","bounded","draggable","shouldCheckButton","canDrag","hasDraggingChild","dragElement","isDragging","isReady","margin","screenRect","data","container","className","no","Class","addGetterSetter","Container_1","Container","filterFunc","results","findOne","valid","fn","can","caching","drawMethod","clipWidth","clipHeight","clipFunc","hasClip","selfCache","clipX","clipY","hasComposition","skipTransform","selfRect","shapes","hasVisible","PointerEvents","Captures","SUPPORT_POINTER_EVENTS","getCapturedShape","createEvent","hasPointerCapture","setPointerCapture","releaseCapture","Global_2","require$$6","STRING","PX","MOUSEOUT","MOUSEOVER","MOUSEMOVE","MOUSEDOWN","MOUSEUP","POINTERMOVE","POINTERDOWN","POINTERUP","POINTERCANCEL","LOSTPOINTERCAPTURE","POINTEROUT","POINTERLEAVE","POINTEROVER","POINTERENTER","CONTEXTMENU","TOUCHSTART","TOUCHEND","TOUCHMOVE","TOUCHCANCEL","WHEEL","MAX_LAYERS_NUMBER","EVENTS","EVENTS_MAP","getEventType","getEventsMap","checkNoClip","NO_POINTERS_MESSAGE","Stage","isLayer","isFastLayer","style","id","layers","content","p","layerCanvas","rest","length","evenType","targetShape","eventsEnabled","triggeredOnShape","isTouch","processedShapesIds","differentTarget","clickStartShape","clickEndShape","fireDblClick","contentPosition","touch","HAS_SHADOW","SHADOW_RGBA","patternImage","linearGradient","radialGradient","dummyContext","getDummyContext","_fillFunc","_strokeFunc","_fillFuncHit","_strokeFuncHit","_clearHasShadowCache","_clearGetShadowRGBACache","_clearFillPatternCache","_clearLinearGradientCache","_clearRadialGradientCache","Shape","ctx","pattern","rgba","bufferHitCanvas","forceFill","hasFill","hasStroke","isTransparent","hasShadow","strokeForShadow","fillRect","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","shadowOffsetX","shadowOffsetY","preWidth","preHeight","blurRadius","drawFunc","bufferCanvas","bufferContext","skipBuffer","cachingSelf","o","alphaThreshold","hitWidth","hitHeight","hitImageData","hitData","rgbColorKey","alpha","Layer_1","Shape_1","require$$7","BEFORE_DRAW","DRAW","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","Layer","moved","_canvas","spiralSearchDistance","continueSearch","intersectionOffset","p3","colorKey","added","FastLayer_1","FastLayer","Group_1","Group","Animation_1","now","Animation","lays","animations","time","anim","layerHash","layersLen","needRedraw","Anim","blacklist","PAUSED","PLAYING","REVERSING","colorAttrs","TweenEngine","propFunc","begin","finish","duration","yoyo","Tween","nodeId","easing","diff","tweenId","trueEnd","trueStart","endRGBA","startRGBA","thisId","params","onFinish","tween","Stage_1","require$$8","require$$9","require$$10","Tween_1","require$$11","require$$12","require$$13","Arc_1","Arc","clockwise","innerRadius","outerRadius","boundLeftRatio","boundRightRatio","boundTopRatio","boundBottomRatio","boundLeft","boundRight","boundTop","boundBottom","Line_1","getControlPoints","x0","y0","d01","d12","fa","fb","p1x","p1y","p2x","p2y","expandPoints","tension","allPoints","cp","Line","closed","bezier","tp","firstControlPoints","lastControlPoints","middle","getCubicArcLength","xs","ys","z","sum","correctedT","BFunc","getQuadraticArcLength","ax","ay","bx","by","A","B","C","k","uuk","bbk","term","xbase","getDerivative","ybase","combined","derivative","vs","_vs","value","t2length","totalLength","error","step","numIterations","increasedTLength","increasedTError","decreasedTLength","decreasedTError","Path_1","BezierFunctions_1","Path","ca","cx","cy","rx","ry","dTheta","psi","fs","inc","dataArray","pathLength","ii","P1x","P1y","P2x","P2y","fromX","fromY","run","rise","ix","iy","pRise","pRun","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cs","cc","coords","cpx","cpy","re","match","j","jlen","parsed","cmd","startX","startY","prevCmd","ctlPtx","ctlPty","idx","psiDeg","xp","yp","lambda","cxp","cyp","vMag","v","vRatio","vAngle","Arrow_1","Arrow","PI2","fromTension","lp","lastLength","previous","isDashEnabled","lineRect","Circle_1","Circle","Ellipse_1","Ellipse","Image_1","Image","image","cropWidth","cropHeight","onError","Label_1","ATTR_CHANGE_LIST","CHANGE_KONVA","NONE","UP","RIGHT","DOWN","LEFT","attrChangeListLen","Label","tag","pointerDirection","pointerWidth","pointerHeight","Tag","direction","Rect_1","Rect","RegularPolygon_1","RegularPolygon","sides","radius","Ring_1","PIx2","Ring","Sprite_1","Sprite","updated","ix4","set","offsets","ix2","animation","Star_1","Star","numPoints","Text_1","stringToArray","string","AUTO","CENTER","JUSTIFY","CONTEXT_2D","DASH","TEXT","TEXT_UPPER","TOP","BOTTOM","MIDDLE","NORMAL","PX_SPACE","WORD","CHAR","ELLIPSIS","normalizeFontFamily","fontFamily","hasSpace","hasQuotes","checkDefaultFill","Text","textArr","textArrLen","padding","fontSize","lineHeightPx","verticalAlign","alignY","align","totalWidth","letterSpacing","textDecoration","shouldUnderline","shouldLineThrough","translateY","lineTranslateX","lineTranslateY","lastLine","spacesNumber","oneWord","lineWidth","gradient","array","li","letter","metrics","lines","textWidth","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","wrap","shouldWrap","wrapAtWord","shouldAddEllipsis","additionalWidth","max","low","high","matchWidth","mid","substr","substrWidth","wrapIndex","nextChar","nextIsSpaceOrDash","shouldHandleEllipsis","haveSpace","TextPath_1","TextPath","glyphInfo","p0","dummyCanvas","kerningFunc","charArr","offsetToGlyph","charStartPoint","glyphWidth","numberOfSpaces","charEndPoint","kern","midpoint","info","Transformer_1","EVENTS_NAME","NODES_RECT","ANGLES","TOUCH_DEVICE","getCursor","anchorName","ANCHORS_NAMES","MAX_SAFE_INTEGER","getCenter","rotateAroundPoint","angleRad","rotateAroundCenter","deltaRad","center","getSnap","snaps","newRotationRad","tol","snapped","absDiff","Transformer","filteredNodes","onChange","additionalEvents","elementsCreated","lastPos","abs","otherNode","otherAbs","rot","relative","absScale","absPos","totalPoints","anchor","self","cursor","back","hypotenuse","newHypotenuse","anchorNode","pp","oldAbs","newAbs","oldRotation","newRotation","shiftBehavior","keepProportion","centeredScaling","comparePoint","reverseX","reverseY","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","newAttrs","oldAttrs","minSize","allowNegativeScale","baseSize","oldTr","newTr","parentTransform","localTransform","newLocalTransform","enabledAnchors","resizeEnabled","anchorSize","validateAnchors","Wedge_1","Wedge","Blur_1","BlurStack","mul_table","shg_table","filterGaussBlurRGBA","pixels","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","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","stackEnd","stack","stackIn","stackOut","mul_sum","shg_sum","Blur","Brighten_1","Brighten","brightness","Contrast_1","Contrast","adjust","nPixels","red","green","blue","Emboss_1","Emboss","strength","greyLevel","blend","dirY","dirX","w","w4","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","dif","absDif","absG","absB","g","grey","Enhance_1","remap","fromValue","fromMin","fromMax","toMin","toMax","fromRange","toRange","toValue","Enhance","nSubPixels","rMin","rMax","gMin","gMax","bMin","bMax","enhanceAmount","rMid","rGoalMax","rGoalMin","gMid","gGoalMax","gGoalMin","bMid","bGoalMax","bGoalMin","Grayscale_1","Grayscale","HSL_1","HSL","vsu","vsw","rr","rg","rb","gr","gg","gb","br","bg","bb","HSV_1","HSV","Invert_1","Invert","Kaleidoscope_1","ToPolar","src","dst","opt","srcPixels","dstPixels","xSize","ySize","xMid","yMid","rSize","tSize","conversion","sin","cos","FromPolar","phaseShift","Kaleidoscope","xoff","srcPos","dstPos","power","tempCanvas","scratchData","minSectionSize","sectionSize","xStart","xEnd","xDelta","Mask_1","pixelAt","idata","rgbDistance","rgbMean","pTab","backgroundMask","threshold","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","mask","applyMask","erodeMask","sw","sh","weights","side","halfSide","maskResult","so","scy","scx","srcOff","wt","dilateMask","smoothEdgeMask","Mask","Noise_1","Noise","amount","half","Pixelate_1","Pixelate","pixelSize","nBinsX","nBinsY","xBinStart","xBinEnd","yBinStart","yBinEnd","xBin","yBin","pixelsInBin","Posterize_1","Posterize","levels","RGB_1","RGB","RGBA_1","RGBA","ia","Sepia_1","Sepia","Solarize_1","Solarize","Threshold_1","Threshold","level","_FullInternals","_CoreInternals_1","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","lib","_FullInternals_1","libModule"],"mappings":"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,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,EAAG,mBACH,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,oBACA,mBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,EAAG,oBACH,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,iBACH,EACD,CACI,oBACA,mBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,EAAG,oBACH,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,mBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,EAAG,oBACH,mBACA,oBACA,mBACA,oBACA,mBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,iBACA,gBACA,mBACA,iBACH,EACD,CACI,oBACA,mBACA,oBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,EAAG,mBACH,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,oBACA,mBACA,oBACA,mBACA,oBACA,mBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,EAAG,mBACH,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,EACD,CACI,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACH,CACL,EACAA,EAAkB,QAAA,CACd,CAAE,EACF,CAAE,EACF,CAAC,EAAK,CAAG,EACT,CACI,kBACA,kBACA,iBACH,EACD,CACI,kBACA,kBACA,mBACA,kBACH,EACD,CACI,kBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,iBACH,EACD,CACI,iBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACH,EACD,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACH,EACD,CACI,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACH,EACD,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,mBACH,EACD,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACH,EACD,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACH,EACD,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,gBACA,gBACA,mBACA,mBACA,kBACA,kBACA,oBACA,mBACH,EACD,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACH,EACD,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACH,EACD,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,iBACH,EACD,CACI,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,mBACH,EACD,CACI,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,kBACA,iBACH,CACL,EACAA,EAAA,qBAA+B,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,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CA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,EACIC,GAAY,CACZ,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACJ,EACA,SAASC,GAAoBzoB,EAAWsd,EAAQ,CAC5C,IAAIoL,EAAS1oB,EAAU,KAAMvN,EAAQuN,EAAU,MAAOtN,EAASsN,EAAU,OACrE1U,EAAGwF,EAAGjB,EAAGqa,EAAGoQ,EAAIqO,EAAIC,EAAIC,EAAOC,EAAOC,EAAOC,EAAOC,EAAWC,EAAWC,EAAWC,EAA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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]}