{"version":3,"file":"omaUpSuW.js","sources":["../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Global.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Util.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Validators.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Factory.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Context.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Canvas.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/DragAndDrop.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Node.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Container.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/PointerEvents.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Stage.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Shape.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Layer.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/FastLayer.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Group.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Animation.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/Tween.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/_CoreInternals.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Arc.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Line.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/BezierFunctions.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Path.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Arrow.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Circle.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Ellipse.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Image.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Label.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Rect.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/RegularPolygon.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Ring.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Sprite.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Star.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Text.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/TextPath.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Transformer.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/shapes/Wedge.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Blur.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Brighten.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Contrast.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Emboss.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Enhance.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Grayscale.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/HSL.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/HSV.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Invert.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Kaleidoscope.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Mask.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Noise.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Pixelate.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Posterize.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/RGB.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/RGBA.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Sepia.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Solarize.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/filters/Threshold.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/_FullInternals.js","../../../../node_modules/.pnpm/konva@9.3.18/node_modules/konva/lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._registerNode = exports.Konva = exports.glob = void 0;\nconst PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return (typeof window !== 'undefined' &&\n ({}.toString.call(window) === '[object Window]' ||\n {}.toString.call(window) === '[object global]'));\n}\nexports.glob = typeof global !== 'undefined'\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof WorkerGlobalScope !== 'undefined'\n ? self\n : {};\nexports.Konva = {\n _global: exports.glob,\n version: '9.3.18',\n isBrowser: detectBrowser(),\n isUnminified: /param/.test(function (param) { }.toString()),\n dblClickWindow: 400,\n getAngle(angle) {\n return exports.Konva.angleDeg ? angle * PI_OVER_180 : angle;\n },\n enableTrace: false,\n pointerEventsEnabled: true,\n autoDrawEnabled: true,\n hitOnDragEnabled: false,\n capturePointerEventsEnabled: false,\n _mouseListenClick: false,\n _touchListenClick: false,\n _pointerListenClick: false,\n _mouseInDblClickWindow: false,\n _touchInDblClickWindow: false,\n _pointerInDblClickWindow: false,\n _mouseDblClickPointerId: null,\n _touchDblClickPointerId: null,\n _pointerDblClickPointerId: null,\n _fixTextRendering: false,\n pixelRatio: (typeof window !== 'undefined' && window.devicePixelRatio) || 1,\n dragDistance: 3,\n angleDeg: true,\n showWarnings: true,\n dragButtons: [0, 1],\n isDragging() {\n return exports.Konva['DD'].isDragging;\n },\n isTransforming() {\n var _a;\n return (_a = exports.Konva['Transformer']) === null || _a === void 0 ? void 0 : _a.isTransforming();\n },\n isDragReady() {\n return !!exports.Konva['DD'].node;\n },\n releaseCanvasOnDestroy: true,\n document: exports.glob.document,\n _injectGlobal(Konva) {\n exports.glob.Konva = Konva;\n },\n};\nconst _registerNode = (NodeClass) => {\n exports.Konva[NodeClass.prototype.getClassName()] = NodeClass;\n};\nexports._registerNode = _registerNode;\nexports.Konva._injectGlobal(exports.Konva);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = exports.Transform = void 0;\nconst Global_1 = require(\"./Global\");\nclass Transform {\n constructor(m = [1, 0, 0, 1, 0, 0]) {\n this.dirty = false;\n this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];\n }\n reset() {\n this.m[0] = 1;\n this.m[1] = 0;\n this.m[2] = 0;\n this.m[3] = 1;\n this.m[4] = 0;\n this.m[5] = 0;\n }\n copy() {\n return new Transform(this.m);\n }\n copyInto(tr) {\n tr.m[0] = this.m[0];\n tr.m[1] = this.m[1];\n tr.m[2] = this.m[2];\n tr.m[3] = this.m[3];\n tr.m[4] = this.m[4];\n tr.m[5] = this.m[5];\n }\n point(point) {\n const m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5],\n };\n }\n translate(x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n }\n scale(sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n }\n rotate(rad) {\n const c = Math.cos(rad);\n const s = Math.sin(rad);\n const m11 = this.m[0] * c + this.m[2] * s;\n const m12 = this.m[1] * c + this.m[3] * s;\n const m21 = this.m[0] * -s + this.m[2] * c;\n const m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n getTranslation() {\n return {\n x: this.m[4],\n y: this.m[5],\n };\n }\n skew(sx, sy) {\n const m11 = this.m[0] + this.m[2] * sy;\n const m12 = this.m[1] + this.m[3] * sy;\n const m21 = this.m[2] + this.m[0] * sx;\n const m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n multiply(matrix) {\n const m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n const m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n const m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n const m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n const dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n const dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n }\n invert() {\n const d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n const m0 = this.m[3] * d;\n const m1 = -this.m[1] * d;\n const m2 = -this.m[2] * d;\n const m3 = this.m[0] * d;\n const m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n const m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n }\n getMatrix() {\n return this.m;\n }\n decompose() {\n const a = this.m[0];\n const b = this.m[1];\n const c = this.m[2];\n const d = this.m[3];\n const e = this.m[4];\n const f = this.m[5];\n const delta = a * d - b * c;\n const result = {\n x: e,\n y: f,\n rotation: 0,\n scaleX: 0,\n scaleY: 0,\n skewX: 0,\n skewY: 0,\n };\n if (a != 0 || b != 0) {\n const r = Math.sqrt(a * a + b * b);\n result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);\n result.scaleX = r;\n result.scaleY = delta / r;\n result.skewX = (a * c + b * d) / delta;\n result.skewY = 0;\n }\n else if (c != 0 || d != 0) {\n const s = Math.sqrt(c * c + d * d);\n result.rotation =\n Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));\n result.scaleX = delta / s;\n result.scaleY = s;\n result.skewX = 0;\n result.skewY = (a * c + b * d) / delta;\n }\n else {\n }\n result.rotation = exports.Util._getRotation(result.rotation);\n return result;\n }\n}\nexports.Transform = Transform;\nconst OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 132, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 255, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 203],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [119, 128, 144],\n slategrey: [119, 128, 144],\n snow: [255, 255, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 5],\n}, RGB_REGEX = /rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/;\nlet animQueue = [];\nconst req = (typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame) ||\n function (f) {\n setTimeout(f, 60);\n };\nexports.Util = {\n _isElement(obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject(obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber(obj) {\n return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&\n !isNaN(obj) &&\n isFinite(obj));\n },\n _isString(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject(val) {\n return val instanceof Object;\n },\n isValidSelector(selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n const firstChar = selector[0];\n return (firstChar === '#' ||\n firstChar === '.' ||\n firstChar === firstChar.toUpperCase());\n },\n _sign(number) {\n if (number === 0) {\n return 1;\n }\n if (number > 0) {\n return 1;\n }\n else {\n return -1;\n }\n },\n requestAnimFrame(callback) {\n animQueue.push(callback);\n if (animQueue.length === 1) {\n req(function () {\n const queue = animQueue;\n animQueue = [];\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n },\n createCanvasElement() {\n const canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n }\n catch (e) { }\n return canvas;\n },\n createImageElement() {\n return document.createElement('img');\n },\n _isInDocument(el) {\n while ((el = el.parentNode)) {\n if (el == document) {\n return true;\n }\n }\n return false;\n },\n _urlToImage(url, callback) {\n const imageObj = exports.Util.createImageElement();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex(r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb(hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n const bigint = parseInt(hex, 16);\n return {\n r: (bigint >> 16) & 255,\n g: (bigint >> 8) & 255,\n b: bigint & 255,\n };\n },\n getRandomColor() {\n let randColor = ((Math.random() * 0xffffff) << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n getRGB(color) {\n let rgb;\n if (color in COLORS) {\n rgb = COLORS[color];\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n };\n }\n else if (color[0] === HASH) {\n return this._hexToRgb(color.substring(1));\n }\n else if (color.substr(0, 4) === RGB_PAREN) {\n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));\n return {\n r: parseInt(rgb[1], 10),\n g: parseInt(rgb[2], 10),\n b: parseInt(rgb[3], 10),\n };\n }\n else {\n return {\n r: 0,\n g: 0,\n b: 0,\n };\n }\n },\n colorToRGBA(str) {\n str = str || 'black';\n return (exports.Util._namedColorToRBA(str) ||\n exports.Util._hex3ColorToRGBA(str) ||\n exports.Util._hex4ColorToRGBA(str) ||\n exports.Util._hex6ColorToRGBA(str) ||\n exports.Util._hex8ColorToRGBA(str) ||\n exports.Util._rgbColorToRGBA(str) ||\n exports.Util._rgbaColorToRGBA(str) ||\n exports.Util._hslColorToRGBA(str));\n },\n _namedColorToRBA(str) {\n const c = COLORS[str.toLowerCase()];\n if (!c) {\n return null;\n }\n return {\n r: c[0],\n g: c[1],\n b: c[2],\n a: 1,\n };\n },\n _rgbColorToRGBA(str) {\n if (str.indexOf('rgb(') === 0) {\n str = str.match(/rgb\\(([^)]+)\\)/)[1];\n const parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: 1,\n };\n }\n },\n _rgbaColorToRGBA(str) {\n if (str.indexOf('rgba(') === 0) {\n str = str.match(/rgba\\(([^)]+)\\)/)[1];\n const parts = str.split(/ *, */).map((n, index) => {\n if (n.slice(-1) === '%') {\n return index === 3 ? parseInt(n) / 100 : (parseInt(n) / 100) * 255;\n }\n return Number(n);\n });\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: parts[3],\n };\n }\n },\n _hex8ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 9) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: parseInt(str.slice(7, 9), 16) / 0xff,\n };\n }\n },\n _hex6ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 7) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: 1,\n };\n }\n },\n _hex4ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 5) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: parseInt(str[4] + str[4], 16) / 0xff,\n };\n }\n },\n _hex3ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 4) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: 1,\n };\n }\n },\n _hslColorToRGBA(str) {\n if (/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.test(str)) {\n const [_, ...hsl] = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(str);\n const h = Number(hsl[0]) / 360;\n const s = Number(hsl[1]) / 100;\n const l = Number(hsl[2]) / 100;\n let t2;\n let t3;\n let val;\n if (s === 0) {\n val = l * 255;\n return {\n r: Math.round(val),\n g: Math.round(val),\n b: Math.round(val),\n a: 1,\n };\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n }\n else {\n t2 = l + s - l * s;\n }\n const t1 = 2 * l - t2;\n const rgb = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n t3 = h + (1 / 3) * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n }\n else if (2 * t3 < 1) {\n val = t2;\n }\n else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n }\n else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return {\n r: Math.round(rgb[0]),\n g: Math.round(rgb[1]),\n b: Math.round(rgb[2]),\n a: 1,\n };\n }\n },\n haveIntersection(r1, r2) {\n return !(r2.x > r1.x + r1.width ||\n r2.x + r2.width < r1.x ||\n r2.y > r1.y + r1.height ||\n r2.y + r2.height < r1.y);\n },\n cloneObject(obj) {\n const retObj = {};\n for (const key in obj) {\n if (this._isPlainObject(obj[key])) {\n retObj[key] = this.cloneObject(obj[key]);\n }\n else if (this._isArray(obj[key])) {\n retObj[key] = this.cloneArray(obj[key]);\n }\n else {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n },\n cloneArray(arr) {\n return arr.slice(0);\n },\n degToRad(deg) {\n return deg * PI_OVER_DEG180;\n },\n radToDeg(rad) {\n return rad * DEG180_OVER_PI;\n },\n _degToRad(deg) {\n exports.Util.warn('Util._degToRad is removed. Please use public Util.degToRad instead.');\n return exports.Util.degToRad(deg);\n },\n _radToDeg(rad) {\n exports.Util.warn('Util._radToDeg is removed. Please use public Util.radToDeg instead.');\n return exports.Util.radToDeg(rad);\n },\n _getRotation(radians) {\n return Global_1.Konva.angleDeg ? exports.Util.radToDeg(radians) : radians;\n },\n _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n },\n throw(str) {\n throw new Error(KONVA_ERROR + str);\n },\n error(str) {\n console.error(KONVA_ERROR + str);\n },\n warn(str) {\n if (!Global_1.Konva.showWarnings) {\n return;\n }\n console.warn(KONVA_WARNING + str);\n },\n each(obj, func) {\n for (const key in obj) {\n func(key, obj[key]);\n }\n },\n _inRange(val, left, right) {\n return left <= val && val < right;\n },\n _getProjectionToSegment(x1, y1, x2, y2, x3, y3) {\n let x, y, dist;\n const pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n if (pd2 == 0) {\n x = x1;\n y = y1;\n dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);\n }\n else {\n const u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;\n if (u < 0) {\n x = x1;\n y = y1;\n dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);\n }\n else if (u > 1.0) {\n x = x2;\n y = y2;\n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);\n }\n else {\n x = x1 + u * (x2 - x1);\n y = y1 + u * (y2 - y1);\n dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);\n }\n }\n return [x, y, dist];\n },\n _getProjectionToLine(pt, line, isClosed) {\n const pc = exports.Util.cloneObject(pt);\n let dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n const p2 = line[(i + 1) % line.length];\n const proj = exports.Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n const px = proj[0], py = proj[1], pdist = proj[2];\n if (pdist < dist) {\n pc.x = px;\n pc.y = py;\n dist = pdist;\n }\n });\n return pc;\n },\n _prepareArrayForTween(startArray, endArray, isClosed) {\n const start = [], end = [];\n if (startArray.length > endArray.length) {\n const temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (let n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1],\n });\n }\n for (let n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1],\n });\n }\n const newStart = [];\n end.forEach(function (point) {\n const pr = exports.Util._getProjectionToLine(point, start, isClosed);\n newStart.push(pr.x);\n newStart.push(pr.y);\n });\n return newStart;\n },\n _prepareToStringify(obj) {\n let desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (const key in obj) {\n if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {\n continue;\n }\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (obj[key].visitedByCircularReferenceRemoval ||\n exports.Util._isElement(obj[key])) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n else if (exports.Util._prepareToStringify(obj[key]) === null) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n }\n delete obj.visitedByCircularReferenceRemoval;\n return obj;\n },\n _assign(target, source) {\n for (const key in source) {\n target[key] = source[key];\n }\n return target;\n },\n _getFirstPointerId(evt) {\n if (!evt.touches) {\n return evt.pointerId || 999;\n }\n else {\n return evt.changedTouches[0].identifier;\n }\n },\n releaseCanvas(...canvases) {\n if (!Global_1.Konva.releaseCanvasOnDestroy)\n return;\n canvases.forEach((c) => {\n c.width = 0;\n c.height = 0;\n });\n },\n drawRoundedRectPath(context, width, height, cornerRadius) {\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.moveTo(topLeft, 0);\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGBComponent = RGBComponent;\nexports.alphaComponent = alphaComponent;\nexports.getNumberValidator = getNumberValidator;\nexports.getNumberOrArrayOfNumbersValidator = getNumberOrArrayOfNumbersValidator;\nexports.getNumberOrAutoValidator = getNumberOrAutoValidator;\nexports.getStringValidator = getStringValidator;\nexports.getStringOrGradientValidator = getStringOrGradientValidator;\nexports.getFunctionValidator = getFunctionValidator;\nexports.getNumberArrayValidator = getNumberArrayValidator;\nexports.getBooleanValidator = getBooleanValidator;\nexports.getComponentValidator = getComponentValidator;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nfunction _formatValue(val) {\n if (Util_1.Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util_1.Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nfunction RGBComponent(val) {\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nfunction alphaComponent(val) {\n if (val > 1) {\n return 1;\n }\n else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nfunction getNumberValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isNumber(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nfunction getNumberOrArrayOfNumbersValidator(noOfElements) {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n let isNumber = Util_1.Util._isNumber(val);\n let isValidArray = Util_1.Util._isArray(val) && val.length == noOfElements;\n if (!isNumber && !isValidArray) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or Array(' +\n noOfElements +\n ')');\n }\n return val;\n };\n }\n}\nfunction getNumberOrAutoValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isNumber = Util_1.Util._isNumber(val);\n var isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nfunction getStringValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isString(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nfunction getStringOrGradientValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n const isString = Util_1.Util._isString(val);\n const isGradient = Object.prototype.toString.call(val) === '[object CanvasGradient]' ||\n (val && val['addColorStop']);\n if (!(isString || isGradient)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string or a native gradient.');\n }\n return val;\n };\n }\n}\nfunction getFunctionValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isFunction(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nfunction getNumberArrayValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n const TypedArray = Int8Array ? Object.getPrototypeOf(Int8Array) : null;\n if (TypedArray && val instanceof TypedArray) {\n return val;\n }\n if (!Util_1.Util._isArray(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a array of numbers.');\n }\n else {\n val.forEach(function (item) {\n if (!Util_1.Util._isNumber(item)) {\n Util_1.Util.warn('\"' +\n attr +\n '\" attribute has non numeric element ' +\n item +\n '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nfunction getBooleanValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isBool = val === true || val === false;\n if (!isBool) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nfunction getComponentValidator(components) {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (val === undefined || val === null) {\n return val;\n }\n if (!Util_1.Util.isObject(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be an object with properties ' +\n components);\n }\n return val;\n };\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Factory = void 0;\nconst Util_1 = require(\"./Util\");\nconst Validators_1 = require(\"./Validators\");\nconst GET = 'get';\nconst SET = 'set';\nexports.Factory = {\n addGetterSetter(constructor, attr, def, validator, after) {\n exports.Factory.addGetter(constructor, attr, def);\n exports.Factory.addSetter(constructor, attr, validator, after);\n exports.Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter(constructor, attr, def) {\n var method = GET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] =\n constructor.prototype[method] ||\n function () {\n const val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter(constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n exports.Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter(constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter(constructor, attr, components, validator, after) {\n const len = components.length, capitalize = Util_1.Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr);\n constructor.prototype[getter] = function () {\n const ret = {};\n for (let n = 0; n < len; n++) {\n const component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n const basicValidator = (0, Validators_1.getComponentValidator)(components);\n constructor.prototype[setter] = function (val) {\n const oldVal = this.attrs[attr];\n if (validator) {\n val = validator.call(this, val, attr);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (const key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n if (!val) {\n components.forEach((component) => {\n this._setAttr(attr + capitalize(component), undefined);\n });\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n exports.Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter(constructor, attr) {\n var capitalizedAttr = Util_1.Util._capitalize(attr), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter(constructor, attr, def, validator) {\n Util_1.Util.error('Adding deprecated ' + attr);\n const method = GET + Util_1.Util._capitalize(attr);\n const message = attr +\n ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util_1.Util.error(message);\n const val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n exports.Factory.addSetter(constructor, attr, validator, function () {\n Util_1.Util.error(message);\n });\n exports.Factory.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat(constructor, methods) {\n Util_1.Util.each(methods, function (oldMethodName, newMethodName) {\n const method = constructor.prototype[newMethodName];\n const oldGetter = GET + Util_1.Util._capitalize(oldMethodName);\n const oldSetter = SET + Util_1.Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util_1.Util.error('\"' +\n oldMethodName +\n '\" method is deprecated and will be removed soon. Use \"\"' +\n newMethodName +\n '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter() {\n this._filterUpToDate = false;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HitContext = exports.SceneContext = exports.Context = void 0;\nconst Util_1 = require(\"./Util\");\nconst Global_1 = require(\"./Global\");\nfunction simplifyArray(arr) {\n const retArr = [], len = arr.length, util = Util_1.Util;\n for (let n = 0; n < len; n++) {\n let val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n }\n else if (!util._isString(val)) {\n val = val + '';\n }\n retArr.push(val);\n }\n return retArr;\n}\nconst COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()', EQUALS = '=', CONTEXT_METHODS = [\n 'arc',\n 'arcTo',\n 'beginPath',\n 'bezierCurveTo',\n 'clearRect',\n 'clip',\n 'closePath',\n 'createLinearGradient',\n 'createPattern',\n 'createRadialGradient',\n 'drawImage',\n 'ellipse',\n 'fill',\n 'fillText',\n 'getImageData',\n 'createImageData',\n 'lineTo',\n 'moveTo',\n 'putImageData',\n 'quadraticCurveTo',\n 'rect',\n 'roundRect',\n 'restore',\n 'rotate',\n 'save',\n 'scale',\n 'setLineDash',\n 'setTransform',\n 'stroke',\n 'strokeText',\n 'transform',\n 'translate',\n];\nconst CONTEXT_PROPERTIES = [\n 'fillStyle',\n 'strokeStyle',\n 'shadowColor',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'letterSpacing',\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit',\n 'direction',\n 'font',\n 'textAlign',\n 'textBaseline',\n 'globalAlpha',\n 'globalCompositeOperation',\n 'imageSmoothingEnabled',\n];\nconst traceArrMax = 100;\nclass Context {\n constructor(canvas) {\n this.canvas = canvas;\n if (Global_1.Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n fillShape(shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n }\n _fill(shape) {\n }\n strokeShape(shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n }\n fillStrokeShape(shape) {\n if (shape.attrs.fillAfterStrokeEnabled) {\n this.strokeShape(shape);\n this.fillShape(shape);\n }\n else {\n this.fillShape(shape);\n this.strokeShape(shape);\n }\n }\n getTrace(relaxed, rounded) {\n let traceArr = this.traceArr, len = traceArr.length, str = '', n, trace, method, args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n }\n else {\n if (Util_1.Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n }\n else {\n if (rounded) {\n args = args.map((a) => typeof a === 'number' ? Math.floor(a) : a);\n }\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n }\n else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n }\n clearTrace() {\n this.traceArr = [];\n }\n _trace(str) {\n let traceArr = this.traceArr, len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n }\n reset() {\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n }\n getCanvas() {\n return this.canvas;\n }\n clear(bounds) {\n const canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n }\n else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n }\n _applyLineCap(shape) {\n const lineCap = shape.attrs.lineCap;\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n }\n _applyOpacity(shape) {\n const absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n }\n _applyLineJoin(shape) {\n const lineJoin = shape.attrs.lineJoin;\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n }\n setAttr(attr, val) {\n this._context[attr] = val;\n }\n arc(x, y, radius, startAngle, endAngle, counterClockwise) {\n this._context.arc(x, y, radius, startAngle, endAngle, counterClockwise);\n }\n arcTo(x1, y1, x2, y2, radius) {\n this._context.arcTo(x1, y1, x2, y2, radius);\n }\n beginPath() {\n this._context.beginPath();\n }\n bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n this._context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n }\n clearRect(x, y, width, height) {\n this._context.clearRect(x, y, width, height);\n }\n clip(...args) {\n this._context.clip.apply(this._context, args);\n }\n closePath() {\n this._context.closePath();\n }\n createImageData(width, height) {\n const a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(width, height);\n }\n else if (a.length === 1) {\n return this._context.createImageData(width);\n }\n }\n createLinearGradient(x0, y0, x1, y1) {\n return this._context.createLinearGradient(x0, y0, x1, y1);\n }\n createPattern(image, repetition) {\n return this._context.createPattern(image, repetition);\n }\n createRadialGradient(x0, y0, r0, x1, y1, r1) {\n return this._context.createRadialGradient(x0, y0, r0, x1, y1, r1);\n }\n drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) {\n const a = arguments, _context = this._context;\n if (a.length === 3) {\n _context.drawImage(image, sx, sy);\n }\n else if (a.length === 5) {\n _context.drawImage(image, sx, sy, sWidth, sHeight);\n }\n else if (a.length === 9) {\n _context.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);\n }\n }\n ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise) {\n this._context.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise);\n }\n isPointInPath(x, y, path, fillRule) {\n if (path) {\n return this._context.isPointInPath(path, x, y, fillRule);\n }\n return this._context.isPointInPath(x, y, fillRule);\n }\n fill(...args) {\n this._context.fill.apply(this._context, args);\n }\n fillRect(x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n }\n strokeRect(x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n }\n fillText(text, x, y, maxWidth) {\n if (maxWidth) {\n this._context.fillText(text, x, y, maxWidth);\n }\n else {\n this._context.fillText(text, x, y);\n }\n }\n measureText(text) {\n return this._context.measureText(text);\n }\n getImageData(sx, sy, sw, sh) {\n return this._context.getImageData(sx, sy, sw, sh);\n }\n lineTo(x, y) {\n this._context.lineTo(x, y);\n }\n moveTo(x, y) {\n this._context.moveTo(x, y);\n }\n rect(x, y, width, height) {\n this._context.rect(x, y, width, height);\n }\n roundRect(x, y, width, height, radii) {\n this._context.roundRect(x, y, width, height, radii);\n }\n putImageData(imageData, dx, dy) {\n this._context.putImageData(imageData, dx, dy);\n }\n quadraticCurveTo(cpx, cpy, x, y) {\n this._context.quadraticCurveTo(cpx, cpy, x, y);\n }\n restore() {\n this._context.restore();\n }\n rotate(angle) {\n this._context.rotate(angle);\n }\n save() {\n this._context.save();\n }\n scale(x, y) {\n this._context.scale(x, y);\n }\n setLineDash(segments) {\n if (this._context.setLineDash) {\n this._context.setLineDash(segments);\n }\n else if ('mozDash' in this._context) {\n this._context['mozDash'] = segments;\n }\n else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = segments;\n }\n }\n getLineDash() {\n return this._context.getLineDash();\n }\n setTransform(a, b, c, d, e, f) {\n this._context.setTransform(a, b, c, d, e, f);\n }\n stroke(path2d) {\n if (path2d) {\n this._context.stroke(path2d);\n }\n else {\n this._context.stroke();\n }\n }\n strokeText(text, x, y, maxWidth) {\n this._context.strokeText(text, x, y, maxWidth);\n }\n transform(a, b, c, d, e, f) {\n this._context.transform(a, b, c, d, e, f);\n }\n translate(x, y) {\n this._context.translate(x, y);\n }\n _enableTrace() {\n let that = this, len = CONTEXT_METHODS.length, origSetter = this.setAttr, n, args;\n const func = function (methodName) {\n let origMethod = that[methodName], ret;\n that[methodName] = function () {\n args = simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args,\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n const prop = arguments[0];\n let val = arguments[1];\n if (prop === 'shadowOffsetX' ||\n prop === 'shadowOffsetY' ||\n prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val,\n });\n };\n }\n _applyGlobalCompositeOperation(node) {\n const op = node.attrs.globalCompositeOperation;\n const def = !op || op === 'source-over';\n if (!def) {\n this.setAttr('globalCompositeOperation', op);\n }\n }\n}\nexports.Context = Context;\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get() {\n return this._context[prop];\n },\n set(val) {\n this._context[prop] = val;\n },\n });\n});\nclass SceneContext extends Context {\n constructor(canvas, { willReadFrequently = false } = {}) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently,\n });\n }\n _fillColor(shape) {\n const fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n }\n _fillPattern(shape) {\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n }\n _fillLinearGradient(shape) {\n const grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fillRadialGradient(shape) {\n const grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fill(shape) {\n const hasColor = shape.fill(), fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n const hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n const hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n const hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n }\n else if (hasPattern) {\n this._fillPattern(shape);\n }\n else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n }\n else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n }\n _strokeLinearGradient(shape) {\n const start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n }\n _stroke(shape) {\n const dash = shape.dash(), strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n const hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n }\n else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n _applyShadow(shape) {\n var _a, _b, _c;\n const color = (_a = shape.getShadowRGBA()) !== null && _a !== void 0 ? _a : 'black', blur = (_b = shape.getShadowBlur()) !== null && _b !== void 0 ? _b : 5, offset = (_c = shape.getShadowOffset()) !== null && _c !== void 0 ? _c : {\n x: 0,\n y: 0,\n }, scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n }\n}\nexports.SceneContext = SceneContext;\nclass HitContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently: true,\n });\n }\n _fill(shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n }\n strokeShape(shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n if (shape.hasHitStroke()) {\n const strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n const hitStrokeWidth = shape.hitStrokeWidth();\n const strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n}\nexports.HitContext = HitContext;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HitCanvas = exports.SceneCanvas = exports.Canvas = void 0;\nconst Util_1 = require(\"./Util\");\nconst Context_1 = require(\"./Context\");\nconst Global_1 = require(\"./Global\");\nconst Factory_1 = require(\"./Factory\");\nconst Validators_1 = require(\"./Validators\");\nlet _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n const canvas = Util_1.Util.createCanvasElement();\n const context = canvas.getContext('2d');\n _pixelRatio = (function () {\n const devicePixelRatio = Global_1.Konva._global.devicePixelRatio || 1, backingStoreRatio = context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n context.backingStorePixelRatio ||\n 1;\n return devicePixelRatio / backingStoreRatio;\n })();\n Util_1.Util.releaseCanvas(canvas);\n return _pixelRatio;\n}\nclass Canvas {\n constructor(config) {\n this.pixelRatio = 1;\n this.width = 0;\n this.height = 0;\n this.isCache = false;\n const conf = config || {};\n const pixelRatio = conf.pixelRatio || Global_1.Konva.pixelRatio || getDevicePixelRatio();\n this.pixelRatio = pixelRatio;\n this._canvas = Util_1.Util.createCanvasElement();\n this._canvas.style.padding = '0';\n this._canvas.style.margin = '0';\n this._canvas.style.border = '0';\n this._canvas.style.background = 'transparent';\n this._canvas.style.position = 'absolute';\n this._canvas.style.top = '0';\n this._canvas.style.left = '0';\n }\n getContext() {\n return this.context;\n }\n getPixelRatio() {\n return this.pixelRatio;\n }\n setPixelRatio(pixelRatio) {\n const previousRatio = this.pixelRatio;\n this.pixelRatio = pixelRatio;\n this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);\n }\n setWidth(width) {\n this.width = this._canvas.width = width * this.pixelRatio;\n this._canvas.style.width = width + 'px';\n const pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n setHeight(height) {\n this.height = this._canvas.height = height * this.pixelRatio;\n this._canvas.style.height = height + 'px';\n const pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n getWidth() {\n return this.width;\n }\n getHeight() {\n return this.height;\n }\n setSize(width, height) {\n this.setWidth(width || 0);\n this.setHeight(height || 0);\n }\n toDataURL(mimeType, quality) {\n try {\n return this._canvas.toDataURL(mimeType, quality);\n }\n catch (e) {\n try {\n return this._canvas.toDataURL();\n }\n catch (err) {\n Util_1.Util.error('Unable to get data URL. ' +\n err.message +\n ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n return '';\n }\n }\n }\n}\nexports.Canvas = Canvas;\nFactory_1.Factory.addGetterSetter(Canvas, 'pixelRatio', undefined, (0, Validators_1.getNumberValidator)());\nclass SceneCanvas extends Canvas {\n constructor(config = { width: 0, height: 0, willReadFrequently: false }) {\n super(config);\n this.context = new Context_1.SceneContext(this, {\n willReadFrequently: config.willReadFrequently,\n });\n this.setSize(config.width, config.height);\n }\n}\nexports.SceneCanvas = SceneCanvas;\nclass HitCanvas extends Canvas {\n constructor(config = { width: 0, height: 0 }) {\n super(config);\n this.hitCanvas = true;\n this.context = new Context_1.HitContext(this);\n this.setSize(config.width, config.height);\n }\n}\nexports.HitCanvas = HitCanvas;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DD = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nexports.DD = {\n get isDragging() {\n let flag = false;\n exports.DD._dragElements.forEach((elem) => {\n if (elem.dragStatus === 'dragging') {\n flag = true;\n }\n });\n return flag;\n },\n justDragged: false,\n get node() {\n let node;\n exports.DD._dragElements.forEach((elem) => {\n node = elem.node;\n });\n return node;\n },\n _dragElements: new Map(),\n _drag(evt) {\n const nodesToFireEvents = [];\n exports.DD._dragElements.forEach((elem, key) => {\n const { node } = elem;\n const stage = node.getStage();\n stage.setPointersPositions(evt);\n if (elem.pointerId === undefined) {\n elem.pointerId = Util_1.Util._getFirstPointerId(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus !== 'dragging') {\n const dragDistance = node.dragDistance();\n const distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));\n if (distance < dragDistance) {\n return;\n }\n node.startDrag({ evt });\n if (!node.isDragging()) {\n return;\n }\n }\n node._setDragPosition(evt, elem);\n nodesToFireEvents.push(node);\n });\n nodesToFireEvents.forEach((node) => {\n node.fire('dragmove', {\n type: 'dragmove',\n target: node,\n evt: evt,\n }, true);\n });\n },\n _endDragBefore(evt) {\n const drawNodes = [];\n exports.DD._dragElements.forEach((elem) => {\n const { node } = elem;\n const stage = node.getStage();\n if (evt) {\n stage.setPointersPositions(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {\n exports.DD.justDragged = true;\n Global_1.Konva._mouseListenClick = false;\n Global_1.Konva._touchListenClick = false;\n Global_1.Konva._pointerListenClick = false;\n elem.dragStatus = 'stopped';\n }\n const drawNode = elem.node.getLayer() ||\n (elem.node instanceof Global_1.Konva['Stage'] && elem.node);\n if (drawNode && drawNodes.indexOf(drawNode) === -1) {\n drawNodes.push(drawNode);\n }\n });\n drawNodes.forEach((drawNode) => {\n drawNode.draw();\n });\n },\n _endDragAfter(evt) {\n exports.DD._dragElements.forEach((elem, key) => {\n if (elem.dragStatus === 'stopped') {\n elem.node.fire('dragend', {\n type: 'dragend',\n target: elem.node,\n evt: evt,\n }, true);\n }\n if (elem.dragStatus !== 'dragging') {\n exports.DD._dragElements.delete(key);\n }\n });\n },\n};\nif (Global_1.Konva.isBrowser) {\n window.addEventListener('mouseup', exports.DD._endDragBefore, true);\n window.addEventListener('touchend', exports.DD._endDragBefore, true);\n window.addEventListener('touchcancel', exports.DD._endDragBefore, true);\n window.addEventListener('mousemove', exports.DD._drag);\n window.addEventListener('touchmove', exports.DD._drag);\n window.addEventListener('mouseup', exports.DD._endDragAfter, false);\n window.addEventListener('touchend', exports.DD._endDragAfter, false);\n window.addEventListener('touchcancel', exports.DD._endDragAfter, false);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Node = void 0;\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Canvas_1 = require(\"./Canvas\");\nconst Global_1 = require(\"./Global\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Validators_1 = require(\"./Validators\");\nconst ABSOLUTE_OPACITY = 'absoluteOpacity', ALL_LISTENERS = 'allEventListeners', ABSOLUTE_TRANSFORM = 'absoluteTransform', ABSOLUTE_SCALE = 'absoluteScale', CANVAS = 'canvas', CHANGE = 'Change', CHILDREN = 'children', KONVA = 'konva', LISTENING = 'listening', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', SET = 'set', SHAPE = 'Shape', SPACE = ' ', STAGE = 'stage', TRANSFORM = 'transform', UPPER_STAGE = 'Stage', VISIBLE = 'visible', TRANSFORM_CHANGE_STR = [\n 'xChange.konva',\n 'yChange.konva',\n 'scaleXChange.konva',\n 'scaleYChange.konva',\n 'skewXChange.konva',\n 'skewYChange.konva',\n 'rotationChange.konva',\n 'offsetXChange.konva',\n 'offsetYChange.konva',\n 'transformsEnabledChange.konva',\n].join(SPACE);\nlet idCounter = 1;\nclass Node {\n constructor(config) {\n this._id = idCounter++;\n this.eventListeners = {};\n this.attrs = {};\n this.index = 0;\n this._allEventListeners = null;\n this.parent = null;\n this._cache = new Map();\n this._attachedDepsListeners = new Map();\n this._lastPos = null;\n this._batchingTransformChange = false;\n this._needClearTransformCache = false;\n this._filterUpToDate = false;\n this._isUnderCache = false;\n this._dragEventId = null;\n this._shouldFireChangeEvents = false;\n this.setAttrs(config);\n this._shouldFireChangeEvents = true;\n }\n hasChildren() {\n return false;\n }\n _clearCache(attr) {\n if ((attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM) &&\n this._cache.get(attr)) {\n this._cache.get(attr).dirty = true;\n }\n else if (attr) {\n this._cache.delete(attr);\n }\n else {\n this._cache.clear();\n }\n }\n _getCache(attr, privateGetter) {\n let cache = this._cache.get(attr);\n const isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;\n const invalid = cache === undefined || (isTransform && cache.dirty === true);\n if (invalid) {\n cache = privateGetter.call(this);\n this._cache.set(attr, cache);\n }\n return cache;\n }\n _calculate(name, deps, getter) {\n if (!this._attachedDepsListeners.get(name)) {\n const depsString = deps.map((dep) => dep + 'Change.konva').join(SPACE);\n this.on(depsString, () => {\n this._clearCache(name);\n });\n this._attachedDepsListeners.set(name, true);\n }\n return this._getCache(name, getter);\n }\n _getCanvasCache() {\n return this._cache.get(CANVAS);\n }\n _clearSelfAndDescendantCache(attr) {\n this._clearCache(attr);\n if (attr === ABSOLUTE_TRANSFORM) {\n this.fire('absoluteTransformChange');\n }\n }\n clearCache() {\n if (this._cache.has(CANVAS)) {\n const { scene, filter, hit } = this._cache.get(CANVAS);\n Util_1.Util.releaseCanvas(scene, filter, hit);\n this._cache.delete(CANVAS);\n }\n this._clearSelfAndDescendantCache();\n this._requestDraw();\n return this;\n }\n cache(config) {\n const conf = config || {};\n let rect = {};\n if (conf.x === undefined ||\n conf.y === undefined ||\n conf.width === undefined ||\n conf.height === undefined) {\n rect = this.getClientRect({\n skipTransform: true,\n relativeTo: this.getParent() || undefined,\n });\n }\n let width = Math.ceil(conf.width || rect.width), height = Math.ceil(conf.height || rect.height), pixelRatio = conf.pixelRatio, x = conf.x === undefined ? Math.floor(rect.x) : conf.x, y = conf.y === undefined ? Math.floor(rect.y) : conf.y, offset = conf.offset || 0, drawBorder = conf.drawBorder || false, hitCanvasPixelRatio = conf.hitCanvasPixelRatio || 1;\n if (!width || !height) {\n Util_1.Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');\n return;\n }\n const extraPaddingX = Math.abs(Math.round(rect.x) - x) > 0.5 ? 1 : 0;\n const extraPaddingY = Math.abs(Math.round(rect.y) - y) > 0.5 ? 1 : 0;\n width += offset * 2 + extraPaddingX;\n height += offset * 2 + extraPaddingY;\n x -= offset;\n y -= offset;\n const cachedSceneCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height,\n }), cachedFilterCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: 0,\n height: 0,\n willReadFrequently: true,\n }), cachedHitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: hitCanvasPixelRatio,\n width: width,\n height: height,\n }), sceneContext = cachedSceneCanvas.getContext(), hitContext = cachedHitCanvas.getContext();\n cachedHitCanvas.isCache = true;\n cachedSceneCanvas.isCache = true;\n this._cache.delete(CANVAS);\n this._filterUpToDate = false;\n if (conf.imageSmoothingEnabled === false) {\n cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;\n }\n sceneContext.save();\n hitContext.save();\n sceneContext.translate(-x, -y);\n hitContext.translate(-x, -y);\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this);\n this.drawHit(cachedHitCanvas, this);\n this._isUnderCache = false;\n sceneContext.restore();\n hitContext.restore();\n if (drawBorder) {\n sceneContext.save();\n sceneContext.beginPath();\n sceneContext.rect(0, 0, width, height);\n sceneContext.closePath();\n sceneContext.setAttr('strokeStyle', 'red');\n sceneContext.setAttr('lineWidth', 5);\n sceneContext.stroke();\n sceneContext.restore();\n }\n this._cache.set(CANVAS, {\n scene: cachedSceneCanvas,\n filter: cachedFilterCanvas,\n hit: cachedHitCanvas,\n x: x,\n y: y,\n });\n this._requestDraw();\n return this;\n }\n isCached() {\n return this._cache.has(CANVAS);\n }\n getClientRect(config) {\n throw new Error('abstract \"getClientRect\" method call');\n }\n _transformedRect(rect, top) {\n const points = [\n { x: rect.x, y: rect.y },\n { x: rect.x + rect.width, y: rect.y },\n { x: rect.x + rect.width, y: rect.y + rect.height },\n { x: rect.x, y: rect.y + rect.height },\n ];\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n const trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n const transformed = trans.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n _drawCachedSceneCanvas(context) {\n context.save();\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n const canvasCache = this._getCanvasCache();\n context.translate(canvasCache.x, canvasCache.y);\n const cacheCanvas = this._getCachedSceneCanvas();\n const ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n }\n _drawCachedHitCanvas(context) {\n const canvasCache = this._getCanvasCache(), hitCanvas = canvasCache.hit;\n context.save();\n context.translate(canvasCache.x, canvasCache.y);\n context.drawImage(hitCanvas._canvas, 0, 0, hitCanvas.width / hitCanvas.pixelRatio, hitCanvas.height / hitCanvas.pixelRatio);\n context.restore();\n }\n _getCachedSceneCanvas() {\n let filters = this.filters(), cachedCanvas = this._getCanvasCache(), sceneCanvas = cachedCanvas.scene, filterCanvas = cachedCanvas.filter, filterContext = filterCanvas.getContext(), len, imageData, n, filter;\n if (filters) {\n if (!this._filterUpToDate) {\n const ratio = sceneCanvas.pixelRatio;\n filterCanvas.setSize(sceneCanvas.width / sceneCanvas.pixelRatio, sceneCanvas.height / sceneCanvas.pixelRatio);\n try {\n len = filters.length;\n filterContext.clear();\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());\n for (n = 0; n < len; n++) {\n filter = filters[n];\n if (typeof filter !== 'function') {\n Util_1.Util.error('Filter should be type of function, but got ' +\n typeof filter +\n ' instead. Please check correct filters');\n continue;\n }\n filter.call(this, imageData);\n filterContext.putImageData(imageData, 0, 0);\n }\n }\n catch (e) {\n Util_1.Util.error('Unable to apply filter. ' +\n e.message +\n ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n }\n this._filterUpToDate = true;\n }\n return filterCanvas;\n }\n return sceneCanvas;\n }\n on(evtStr, handler) {\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (arguments.length === 3) {\n return this._delegate.apply(this, arguments);\n }\n let events = evtStr.split(SPACE), len = events.length, n, event, parts, baseEvent, name;\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({\n name: name,\n handler: handler,\n });\n }\n return this;\n }\n off(evtStr, callback) {\n let events = (evtStr || '').split(SPACE), len = events.length, n, t, event, parts, baseEvent, name;\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (!evtStr) {\n for (t in this.eventListeners) {\n this._off(t);\n }\n }\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1];\n if (baseEvent) {\n if (this.eventListeners[baseEvent]) {\n this._off(baseEvent, name, callback);\n }\n }\n else {\n for (t in this.eventListeners) {\n this._off(t, name, callback);\n }\n }\n }\n return this;\n }\n dispatchEvent(evt) {\n const e = {\n target: this,\n type: evt.type,\n evt: evt,\n };\n this.fire(evt.type, e);\n return this;\n }\n addEventListener(type, handler) {\n this.on(type, function (evt) {\n handler.call(this, evt.evt);\n });\n return this;\n }\n removeEventListener(type) {\n this.off(type);\n return this;\n }\n _delegate(event, selector, handler) {\n const stopNode = this;\n this.on(event, function (evt) {\n const targets = evt.target.findAncestors(selector, true, stopNode);\n for (let i = 0; i < targets.length; i++) {\n evt = Util_1.Util.cloneObject(evt);\n evt.currentTarget = targets[i];\n handler.call(targets[i], evt);\n }\n });\n }\n remove() {\n if (this.isDragging()) {\n this.stopDrag();\n }\n DragAndDrop_1.DD._dragElements.delete(this._id);\n this._remove();\n return this;\n }\n _clearCaches() {\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this._clearSelfAndDescendantCache(STAGE);\n this._clearSelfAndDescendantCache(VISIBLE);\n this._clearSelfAndDescendantCache(LISTENING);\n }\n _remove() {\n this._clearCaches();\n const parent = this.getParent();\n if (parent && parent.children) {\n parent.children.splice(this.index, 1);\n parent._setChildrenIndices();\n this.parent = null;\n }\n }\n destroy() {\n this.remove();\n this.clearCache();\n return this;\n }\n getAttr(attr) {\n const method = 'get' + Util_1.Util._capitalize(attr);\n if (Util_1.Util._isFunction(this[method])) {\n return this[method]();\n }\n return this.attrs[attr];\n }\n getAncestors() {\n let parent = this.getParent(), ancestors = [];\n while (parent) {\n ancestors.push(parent);\n parent = parent.getParent();\n }\n return ancestors;\n }\n getAttrs() {\n return (this.attrs || {});\n }\n setAttrs(config) {\n this._batchTransformChanges(() => {\n let key, method;\n if (!config) {\n return this;\n }\n for (key in config) {\n if (key === CHILDREN) {\n continue;\n }\n method = SET + Util_1.Util._capitalize(key);\n if (Util_1.Util._isFunction(this[method])) {\n this[method](config[key]);\n }\n else {\n this._setAttr(key, config[key]);\n }\n }\n });\n return this;\n }\n isListening() {\n return this._getCache(LISTENING, this._isListening);\n }\n _isListening(relativeTo) {\n const listening = this.listening();\n if (!listening) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isListening(relativeTo);\n }\n else {\n return true;\n }\n }\n isVisible() {\n return this._getCache(VISIBLE, this._isVisible);\n }\n _isVisible(relativeTo) {\n const visible = this.visible();\n if (!visible) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isVisible(relativeTo);\n }\n else {\n return true;\n }\n }\n shouldDrawHit(top, skipDragCheck = false) {\n if (top) {\n return this._isVisible(top) && this._isListening(top);\n }\n const layer = this.getLayer();\n let layerUnderDrag = false;\n DragAndDrop_1.DD._dragElements.forEach((elem) => {\n if (elem.dragStatus !== 'dragging') {\n return;\n }\n else if (elem.node.nodeType === 'Stage') {\n layerUnderDrag = true;\n }\n else if (elem.node.getLayer() === layer) {\n layerUnderDrag = true;\n }\n });\n const dragSkip = !skipDragCheck &&\n !Global_1.Konva.hitOnDragEnabled &&\n (layerUnderDrag || Global_1.Konva.isTransforming());\n return this.isListening() && this.isVisible() && !dragSkip;\n }\n show() {\n this.visible(true);\n return this;\n }\n hide() {\n this.visible(false);\n return this;\n }\n getZIndex() {\n return this.index || 0;\n }\n getAbsoluteZIndex() {\n let depth = this.getDepth(), that = this, index = 0, nodes, len, n, child;\n function addChildren(children) {\n nodes = [];\n len = children.length;\n for (n = 0; n < len; n++) {\n child = children[n];\n index++;\n if (child.nodeType !== SHAPE) {\n nodes = nodes.concat(child.getChildren().slice());\n }\n if (child._id === that._id) {\n n = len;\n }\n }\n if (nodes.length > 0 && nodes[0].getDepth() <= depth) {\n addChildren(nodes);\n }\n }\n const stage = this.getStage();\n if (that.nodeType !== UPPER_STAGE && stage) {\n addChildren(stage.getChildren());\n }\n return index;\n }\n getDepth() {\n let depth = 0, parent = this.parent;\n while (parent) {\n depth++;\n parent = parent.parent;\n }\n return depth;\n }\n _batchTransformChanges(func) {\n this._batchingTransformChange = true;\n func();\n this._batchingTransformChange = false;\n if (this._needClearTransformCache) {\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n }\n this._needClearTransformCache = false;\n }\n setPosition(pos) {\n this._batchTransformChanges(() => {\n this.x(pos.x);\n this.y(pos.y);\n });\n return this;\n }\n getPosition() {\n return {\n x: this.x(),\n y: this.y(),\n };\n }\n getRelativePointerPosition() {\n const stage = this.getStage();\n if (!stage) {\n return null;\n }\n const pos = stage.getPointerPosition();\n if (!pos) {\n return null;\n }\n const transform = this.getAbsoluteTransform().copy();\n transform.invert();\n return transform.point(pos);\n }\n getAbsolutePosition(top) {\n let haveCachedParent = false;\n let parent = this.parent;\n while (parent) {\n if (parent.isCached()) {\n haveCachedParent = true;\n break;\n }\n parent = parent.parent;\n }\n if (haveCachedParent && !top) {\n top = true;\n }\n const absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(), absoluteTransform = new Util_1.Transform(), offset = this.offset();\n absoluteTransform.m = absoluteMatrix.slice();\n absoluteTransform.translate(offset.x, offset.y);\n return absoluteTransform.getTranslation();\n }\n setAbsolutePosition(pos) {\n const { x, y, ...origTrans } = this._clearTransform();\n this.attrs.x = x;\n this.attrs.y = y;\n this._clearCache(TRANSFORM);\n const it = this._getAbsoluteTransform().copy();\n it.invert();\n it.translate(pos.x, pos.y);\n pos = {\n x: this.attrs.x + it.getTranslation().x,\n y: this.attrs.y + it.getTranslation().y,\n };\n this._setTransform(origTrans);\n this.setPosition({ x: pos.x, y: pos.y });\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n return this;\n }\n _setTransform(trans) {\n let key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n }\n _clearTransform() {\n const trans = {\n x: this.x(),\n y: this.y(),\n rotation: this.rotation(),\n scaleX: this.scaleX(),\n scaleY: this.scaleY(),\n offsetX: this.offsetX(),\n offsetY: this.offsetY(),\n skewX: this.skewX(),\n skewY: this.skewY(),\n };\n this.attrs.x = 0;\n this.attrs.y = 0;\n this.attrs.rotation = 0;\n this.attrs.scaleX = 1;\n this.attrs.scaleY = 1;\n this.attrs.offsetX = 0;\n this.attrs.offsetY = 0;\n this.attrs.skewX = 0;\n this.attrs.skewY = 0;\n return trans;\n }\n move(change) {\n let changeX = change.x, changeY = change.y, x = this.x(), y = this.y();\n if (changeX !== undefined) {\n x += changeX;\n }\n if (changeY !== undefined) {\n y += changeY;\n }\n this.setPosition({ x: x, y: y });\n return this;\n }\n _eachAncestorReverse(func, top) {\n let family = [], parent = this.getParent(), len, n;\n if (top && top._id === this._id) {\n return;\n }\n family.unshift(this);\n while (parent && (!top || parent._id !== top._id)) {\n family.unshift(parent);\n parent = parent.parent;\n }\n len = family.length;\n for (n = 0; n < len; n++) {\n func(family[n]);\n }\n }\n rotate(theta) {\n this.rotation(this.rotation() + theta);\n return this;\n }\n moveToTop() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToTop function is ignored.');\n return false;\n }\n const index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.push(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveUp() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveUp function is ignored.');\n return false;\n }\n const index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index + 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveDown() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveDown function is ignored.');\n return false;\n }\n const index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index - 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToBottom function is ignored.');\n return false;\n }\n const index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.unshift(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n setZIndex(zIndex) {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. zIndex parameter is ignored.');\n return this;\n }\n if (zIndex < 0 || zIndex >= this.parent.children.length) {\n Util_1.Util.warn('Unexpected value ' +\n zIndex +\n ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +\n (this.parent.children.length - 1) +\n '.');\n }\n const index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.splice(zIndex, 0, this);\n this.parent._setChildrenIndices();\n return this;\n }\n getAbsoluteOpacity() {\n return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);\n }\n _getAbsoluteOpacity() {\n let absOpacity = this.opacity();\n const parent = this.getParent();\n if (parent && !parent._isUnderCache) {\n absOpacity *= parent.getAbsoluteOpacity();\n }\n return absOpacity;\n }\n moveTo(newContainer) {\n if (this.getParent() !== newContainer) {\n this._remove();\n newContainer.add(this);\n }\n return this;\n }\n toObject() {\n let attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;\n const obj = {\n attrs: {},\n className: this.getClassName(),\n };\n for (key in attrs) {\n val = attrs[key];\n nonPlainObject =\n Util_1.Util.isObject(val) && !Util_1.Util._isPlainObject(val) && !Util_1.Util._isArray(val);\n if (nonPlainObject) {\n continue;\n }\n getter = typeof this[key] === 'function' && this[key];\n delete attrs[key];\n defaultValue = getter ? getter.call(this) : null;\n attrs[key] = val;\n if (defaultValue !== val) {\n obj.attrs[key] = val;\n }\n }\n return Util_1.Util._prepareToStringify(obj);\n }\n toJSON() {\n return JSON.stringify(this.toObject());\n }\n getParent() {\n return this.parent;\n }\n findAncestors(selector, includeSelf, stopNode) {\n const res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n let ancestor = this.parent;\n while (ancestor) {\n if (ancestor === stopNode) {\n return res;\n }\n if (ancestor._isMatch(selector)) {\n res.push(ancestor);\n }\n ancestor = ancestor.parent;\n }\n return res;\n }\n isAncestorOf(node) {\n return false;\n }\n findAncestor(selector, includeSelf, stopNode) {\n return this.findAncestors(selector, includeSelf, stopNode)[0];\n }\n _isMatch(selector) {\n if (!selector) {\n return false;\n }\n if (typeof selector === 'function') {\n return selector(this);\n }\n let selectorArr = selector.replace(/ /g, '').split(','), len = selectorArr.length, n, sel;\n for (n = 0; n < len; n++) {\n sel = selectorArr[n];\n if (!Util_1.Util.isValidSelector(sel)) {\n Util_1.Util.warn('Selector \"' +\n sel +\n '\" is invalid. Allowed selectors examples are \"#foo\", \".bar\" or \"Group\".');\n Util_1.Util.warn('If you have a custom shape with such className, please change it to start with upper letter like \"Triangle\".');\n Util_1.Util.warn('Konva is awesome, right?');\n }\n if (sel.charAt(0) === '#') {\n if (this.id() === sel.slice(1)) {\n return true;\n }\n }\n else if (sel.charAt(0) === '.') {\n if (this.hasName(sel.slice(1))) {\n return true;\n }\n }\n else if (this.className === sel || this.nodeType === sel) {\n return true;\n }\n }\n return false;\n }\n getLayer() {\n const parent = this.getParent();\n return parent ? parent.getLayer() : null;\n }\n getStage() {\n return this._getCache(STAGE, this._getStage);\n }\n _getStage() {\n const parent = this.getParent();\n if (parent) {\n return parent.getStage();\n }\n else {\n return null;\n }\n }\n fire(eventType, evt = {}, bubble) {\n evt.target = evt.target || this;\n if (bubble) {\n this._fireAndBubble(eventType, evt);\n }\n else {\n this._fire(eventType, evt);\n }\n return this;\n }\n getAbsoluteTransform(top) {\n if (top) {\n return this._getAbsoluteTransform(top);\n }\n else {\n return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);\n }\n }\n _getAbsoluteTransform(top) {\n let at;\n if (top) {\n at = new Util_1.Transform();\n this._eachAncestorReverse(function (node) {\n const transformsEnabled = node.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(node.getTransform());\n }\n else if (transformsEnabled === 'position') {\n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());\n }\n }, top);\n return at;\n }\n else {\n at = this._cache.get(ABSOLUTE_TRANSFORM) || new Util_1.Transform();\n if (this.parent) {\n this.parent.getAbsoluteTransform().copyInto(at);\n }\n else {\n at.reset();\n }\n const transformsEnabled = this.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(this.getTransform());\n }\n else if (transformsEnabled === 'position') {\n const x = this.attrs.x || 0;\n const y = this.attrs.y || 0;\n const offsetX = this.attrs.offsetX || 0;\n const offsetY = this.attrs.offsetY || 0;\n at.translate(x - offsetX, y - offsetY);\n }\n at.dirty = false;\n return at;\n }\n }\n getAbsoluteScale(top) {\n let parent = this;\n while (parent) {\n if (parent._isUnderCache) {\n top = parent;\n }\n parent = parent.getParent();\n }\n const transform = this.getAbsoluteTransform(top);\n const attrs = transform.decompose();\n return {\n x: attrs.scaleX,\n y: attrs.scaleY,\n };\n }\n getAbsoluteRotation() {\n return this.getAbsoluteTransform().decompose().rotation;\n }\n getTransform() {\n return this._getCache(TRANSFORM, this._getTransform);\n }\n _getTransform() {\n var _a, _b;\n const m = this._cache.get(TRANSFORM) || new Util_1.Transform();\n m.reset();\n const x = this.x(), y = this.y(), rotation = Global_1.Konva.getAngle(this.rotation()), scaleX = (_a = this.attrs.scaleX) !== null && _a !== void 0 ? _a : 1, scaleY = (_b = this.attrs.scaleY) !== null && _b !== void 0 ? _b : 1, skewX = this.attrs.skewX || 0, skewY = this.attrs.skewY || 0, offsetX = this.attrs.offsetX || 0, offsetY = this.attrs.offsetY || 0;\n if (x !== 0 || y !== 0) {\n m.translate(x, y);\n }\n if (rotation !== 0) {\n m.rotate(rotation);\n }\n if (skewX !== 0 || skewY !== 0) {\n m.skew(skewX, skewY);\n }\n if (scaleX !== 1 || scaleY !== 1) {\n m.scale(scaleX, scaleY);\n }\n if (offsetX !== 0 || offsetY !== 0) {\n m.translate(-1 * offsetX, -1 * offsetY);\n }\n m.dirty = false;\n return m;\n }\n clone(obj) {\n let attrs = Util_1.Util.cloneObject(this.attrs), key, allListeners, len, n, listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n const node = new this.constructor(attrs);\n for (key in this.eventListeners) {\n allListeners = this.eventListeners[key];\n len = allListeners.length;\n for (n = 0; n < len; n++) {\n listener = allListeners[n];\n if (listener.name.indexOf(KONVA) < 0) {\n if (!node.eventListeners[key]) {\n node.eventListeners[key] = [];\n }\n node.eventListeners[key].push(listener);\n }\n }\n }\n return node;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n const box = this.getClientRect();\n const stage = this.getStage(), x = config.x !== undefined ? config.x : Math.floor(box.x), y = config.y !== undefined ? config.y : Math.floor(box.y), pixelRatio = config.pixelRatio || 1, canvas = new Canvas_1.SceneCanvas({\n width: config.width || Math.ceil(box.width) || (stage ? stage.width() : 0),\n height: config.height ||\n Math.ceil(box.height) ||\n (stage ? stage.height() : 0),\n pixelRatio: pixelRatio,\n }), context = canvas.getContext();\n const bufferCanvas = new Canvas_1.SceneCanvas({\n width: canvas.width / canvas.pixelRatio + Math.abs(x),\n height: canvas.height / canvas.pixelRatio + Math.abs(y),\n pixelRatio: canvas.pixelRatio,\n });\n if (config.imageSmoothingEnabled === false) {\n context._context.imageSmoothingEnabled = false;\n }\n context.save();\n if (x || y) {\n context.translate(-1 * x, -1 * y);\n }\n this.drawScene(canvas, undefined, bufferCanvas);\n context.restore();\n return canvas;\n }\n toCanvas(config) {\n return this._toKonvaCanvas(config)._canvas;\n }\n toDataURL(config) {\n config = config || {};\n const mimeType = config.mimeType || null, quality = config.quality || null;\n const url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);\n if (config.callback) {\n config.callback(url);\n }\n return url;\n }\n toImage(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n Util_1.Util._urlToImage(this.toDataURL(config), function (img) {\n resolve(img);\n callback === null || callback === void 0 ? void 0 : callback(img);\n });\n }\n catch (err) {\n reject(err);\n }\n });\n }\n toBlob(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n this.toCanvas(config).toBlob((blob) => {\n resolve(blob);\n callback === null || callback === void 0 ? void 0 : callback(blob);\n }, config === null || config === void 0 ? void 0 : config.mimeType, config === null || config === void 0 ? void 0 : config.quality);\n }\n catch (err) {\n reject(err);\n }\n });\n }\n setSize(size) {\n this.width(size.width);\n this.height(size.height);\n return this;\n }\n getSize() {\n return {\n width: this.width(),\n height: this.height(),\n };\n }\n getClassName() {\n return this.className || this.nodeType;\n }\n getType() {\n return this.nodeType;\n }\n getDragDistance() {\n if (this.attrs.dragDistance !== undefined) {\n return this.attrs.dragDistance;\n }\n else if (this.parent) {\n return this.parent.getDragDistance();\n }\n else {\n return Global_1.Konva.dragDistance;\n }\n }\n _off(type, name, callback) {\n let evtListeners = this.eventListeners[type], i, evtName, handler;\n for (i = 0; i < evtListeners.length; i++) {\n evtName = evtListeners[i].name;\n handler = evtListeners[i].handler;\n if ((evtName !== 'konva' || name === 'konva') &&\n (!name || evtName === name) &&\n (!callback || callback === handler)) {\n evtListeners.splice(i, 1);\n if (evtListeners.length === 0) {\n delete this.eventListeners[type];\n break;\n }\n i--;\n }\n }\n }\n _fireChangeEvent(attr, oldVal, newVal) {\n this._fire(attr + CHANGE, {\n oldVal: oldVal,\n newVal: newVal,\n });\n }\n addName(name) {\n if (!this.hasName(name)) {\n const oldName = this.name();\n const newName = oldName ? oldName + ' ' + name : name;\n this.name(newName);\n }\n return this;\n }\n hasName(name) {\n if (!name) {\n return false;\n }\n const fullName = this.name();\n if (!fullName) {\n return false;\n }\n const names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n }\n removeName(name) {\n const names = (this.name() || '').split(/\\s/g);\n const index = names.indexOf(name);\n if (index !== -1) {\n names.splice(index, 1);\n this.name(names.join(' '));\n }\n return this;\n }\n setAttr(attr, val) {\n const func = this[SET + Util_1.Util._capitalize(attr)];\n if (Util_1.Util._isFunction(func)) {\n func.call(this, val);\n }\n else {\n this._setAttr(attr, val);\n }\n return this;\n }\n _requestDraw() {\n if (Global_1.Konva.autoDrawEnabled) {\n const drawNode = this.getLayer() || this.getStage();\n drawNode === null || drawNode === void 0 ? void 0 : drawNode.batchDraw();\n }\n }\n _setAttr(key, val) {\n const oldVal = this.attrs[key];\n if (oldVal === val && !Util_1.Util.isObject(val)) {\n return;\n }\n if (val === undefined || val === null) {\n delete this.attrs[key];\n }\n else {\n this.attrs[key] = val;\n }\n if (this._shouldFireChangeEvents) {\n this._fireChangeEvent(key, oldVal, val);\n }\n this._requestDraw();\n }\n _setComponentAttr(key, component, val) {\n let oldVal;\n if (val !== undefined) {\n oldVal = this.attrs[key];\n if (!oldVal) {\n this.attrs[key] = this.getAttr(key);\n }\n this.attrs[key][component] = val;\n this._fireChangeEvent(key, oldVal, val);\n }\n }\n _fireAndBubble(eventType, evt, compareShape) {\n if (evt && this.nodeType === SHAPE) {\n evt.target = this;\n }\n const shouldStop = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n ((compareShape &&\n (this === compareShape ||\n (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||\n (this.nodeType === 'Stage' && !compareShape));\n if (!shouldStop) {\n this._fire(eventType, evt);\n const stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n compareShape &&\n compareShape.isAncestorOf &&\n compareShape.isAncestorOf(this) &&\n !compareShape.isAncestorOf(this.parent);\n if (((evt && !evt.cancelBubble) || !evt) &&\n this.parent &&\n this.parent.isListening() &&\n !stopBubble) {\n if (compareShape && compareShape.parent) {\n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);\n }\n else {\n this._fireAndBubble.call(this.parent, eventType, evt);\n }\n }\n }\n }\n _getProtoListeners(eventType) {\n var _a, _b, _c;\n const allListeners = (_a = this._cache.get(ALL_LISTENERS)) !== null && _a !== void 0 ? _a : {};\n let events = allListeners === null || allListeners === void 0 ? void 0 : allListeners[eventType];\n if (events === undefined) {\n events = [];\n let obj = Object.getPrototypeOf(this);\n while (obj) {\n const hierarchyEvents = (_c = (_b = obj.eventListeners) === null || _b === void 0 ? void 0 : _b[eventType]) !== null && _c !== void 0 ? _c : [];\n events.push(...hierarchyEvents);\n obj = Object.getPrototypeOf(obj);\n }\n allListeners[eventType] = events;\n this._cache.set(ALL_LISTENERS, allListeners);\n }\n return events;\n }\n _fire(eventType, evt) {\n evt = evt || {};\n evt.currentTarget = this;\n evt.type = eventType;\n const topListeners = this._getProtoListeners(eventType);\n if (topListeners) {\n for (var i = 0; i < topListeners.length; i++) {\n topListeners[i].handler.call(this, evt);\n }\n }\n const selfListeners = this.eventListeners[eventType];\n if (selfListeners) {\n for (var i = 0; i < selfListeners.length; i++) {\n selfListeners[i].handler.call(this, evt);\n }\n }\n }\n draw() {\n this.drawScene();\n this.drawHit();\n return this;\n }\n _createDragElement(evt) {\n const pointerId = evt ? evt.pointerId : undefined;\n const stage = this.getStage();\n const ap = this.getAbsolutePosition();\n if (!stage) {\n return;\n }\n const pos = stage._getPointerById(pointerId) ||\n stage._changedPointerPositions[0] ||\n ap;\n DragAndDrop_1.DD._dragElements.set(this._id, {\n node: this,\n startPointerPos: pos,\n offset: {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n },\n dragStatus: 'ready',\n pointerId,\n });\n }\n startDrag(evt, bubbleEvent = true) {\n if (!DragAndDrop_1.DD._dragElements.has(this._id)) {\n this._createDragElement(evt);\n }\n const elem = DragAndDrop_1.DD._dragElements.get(this._id);\n elem.dragStatus = 'dragging';\n this.fire('dragstart', {\n type: 'dragstart',\n target: this,\n evt: evt && evt.evt,\n }, bubbleEvent);\n }\n _setDragPosition(evt, elem) {\n const pos = this.getStage()._getPointerById(elem.pointerId);\n if (!pos) {\n return;\n }\n let newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y,\n };\n const dbf = this.dragBoundFunc();\n if (dbf !== undefined) {\n const bounded = dbf.call(this, newNodePos, evt);\n if (!bounded) {\n Util_1.Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');\n }\n else {\n newNodePos = bounded;\n }\n }\n if (!this._lastPos ||\n this._lastPos.x !== newNodePos.x ||\n this._lastPos.y !== newNodePos.y) {\n this.setAbsolutePosition(newNodePos);\n this._requestDraw();\n }\n this._lastPos = newNodePos;\n }\n stopDrag(evt) {\n const elem = DragAndDrop_1.DD._dragElements.get(this._id);\n if (elem) {\n elem.dragStatus = 'stopped';\n }\n DragAndDrop_1.DD._endDragBefore(evt);\n DragAndDrop_1.DD._endDragAfter(evt);\n }\n setDraggable(draggable) {\n this._setAttr('draggable', draggable);\n this._dragChange();\n }\n isDragging() {\n const elem = DragAndDrop_1.DD._dragElements.get(this._id);\n return elem ? elem.dragStatus === 'dragging' : false;\n }\n _listenDrag() {\n this._dragCleanup();\n this.on('mousedown.konva touchstart.konva', function (evt) {\n const shouldCheckButton = evt.evt['button'] !== undefined;\n const canDrag = !shouldCheckButton || Global_1.Konva.dragButtons.indexOf(evt.evt['button']) >= 0;\n if (!canDrag) {\n return;\n }\n if (this.isDragging()) {\n return;\n }\n let hasDraggingChild = false;\n DragAndDrop_1.DD._dragElements.forEach((elem) => {\n if (this.isAncestorOf(elem.node)) {\n hasDraggingChild = true;\n }\n });\n if (!hasDraggingChild) {\n this._createDragElement(evt);\n }\n });\n }\n _dragChange() {\n if (this.attrs.draggable) {\n this._listenDrag();\n }\n else {\n this._dragCleanup();\n const stage = this.getStage();\n if (!stage) {\n return;\n }\n const dragElement = DragAndDrop_1.DD._dragElements.get(this._id);\n const isDragging = dragElement && dragElement.dragStatus === 'dragging';\n const isReady = dragElement && dragElement.dragStatus === 'ready';\n if (isDragging) {\n this.stopDrag();\n }\n else if (isReady) {\n DragAndDrop_1.DD._dragElements.delete(this._id);\n }\n }\n }\n _dragCleanup() {\n this.off('mousedown.konva');\n this.off('touchstart.konva');\n }\n isClientRectOnScreen(margin = { x: 0, y: 0 }) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const screenRect = {\n x: -margin.x,\n y: -margin.y,\n width: stage.width() + 2 * margin.x,\n height: stage.height() + 2 * margin.y,\n };\n return Util_1.Util.haveIntersection(screenRect, this.getClientRect());\n }\n static create(data, container) {\n if (Util_1.Util._isString(data)) {\n data = JSON.parse(data);\n }\n return this._createNode(data, container);\n }\n static _createNode(obj, container) {\n let className = Node.prototype.getClassName.call(obj), children = obj.children, no, len, n;\n if (container) {\n obj.attrs.container = container;\n }\n if (!Global_1.Konva[className]) {\n Util_1.Util.warn('Can not find a node with class name \"' +\n className +\n '\". Fallback to \"Shape\".');\n className = 'Shape';\n }\n const Class = Global_1.Konva[className];\n no = new Class(obj.attrs);\n if (children) {\n len = children.length;\n for (n = 0; n < len; n++) {\n no.add(Node._createNode(children[n]));\n }\n }\n return no;\n }\n}\nexports.Node = Node;\nNode.prototype.nodeType = 'Node';\nNode.prototype._attrsAffectingSize = [];\nNode.prototype.eventListeners = {};\nNode.prototype.on.call(Node.prototype, TRANSFORM_CHANGE_STR, function () {\n if (this._batchingTransformChange) {\n this._needClearTransformCache = true;\n return;\n }\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n});\nNode.prototype.on.call(Node.prototype, 'visibleChange.konva', function () {\n this._clearSelfAndDescendantCache(VISIBLE);\n});\nNode.prototype.on.call(Node.prototype, 'listeningChange.konva', function () {\n this._clearSelfAndDescendantCache(LISTENING);\n});\nNode.prototype.on.call(Node.prototype, 'opacityChange.konva', function () {\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n});\nconst addGetterSetter = Factory_1.Factory.addGetterSetter;\naddGetterSetter(Node, 'zIndex');\naddGetterSetter(Node, 'absolutePosition');\naddGetterSetter(Node, 'position');\naddGetterSetter(Node, 'x', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'y', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'globalCompositeOperation', 'source-over', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'opacity', 1, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'name', '', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'id', '', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'rotation', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);\naddGetterSetter(Node, 'scaleX', 1, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'scaleY', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);\naddGetterSetter(Node, 'skewX', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'skewY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);\naddGetterSetter(Node, 'offsetX', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'offsetY', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'dragDistance', undefined, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'width', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'height', 0, (0, Validators_1.getNumberValidator)());\naddGetterSetter(Node, 'listening', true, (0, Validators_1.getBooleanValidator)());\naddGetterSetter(Node, 'preventDefault', true, (0, Validators_1.getBooleanValidator)());\naddGetterSetter(Node, 'filters', undefined, function (val) {\n this._filterUpToDate = false;\n return val;\n});\naddGetterSetter(Node, 'visible', true, (0, Validators_1.getBooleanValidator)());\naddGetterSetter(Node, 'transformsEnabled', 'all', (0, Validators_1.getStringValidator)());\naddGetterSetter(Node, 'size');\naddGetterSetter(Node, 'dragBoundFunc');\naddGetterSetter(Node, 'draggable', false, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.backCompat(Node, {\n rotateDeg: 'rotate',\n setRotationDeg: 'setRotation',\n getRotationDeg: 'getRotation',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Container = void 0;\nconst Factory_1 = require(\"./Factory\");\nconst Node_1 = require(\"./Node\");\nconst Validators_1 = require(\"./Validators\");\nclass Container extends Node_1.Node {\n constructor() {\n super(...arguments);\n this.children = [];\n }\n getChildren(filterFunc) {\n if (!filterFunc) {\n return this.children || [];\n }\n const children = this.children || [];\n const results = [];\n children.forEach(function (child) {\n if (filterFunc(child)) {\n results.push(child);\n }\n });\n return results;\n }\n hasChildren() {\n return this.getChildren().length > 0;\n }\n removeChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.remove();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n destroyChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.destroy();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n add(...children) {\n if (children.length === 0) {\n return this;\n }\n if (children.length > 1) {\n for (let i = 0; i < children.length; i++) {\n this.add(children[i]);\n }\n return this;\n }\n const child = children[0];\n if (child.getParent()) {\n child.moveTo(this);\n return this;\n }\n this._validateAdd(child);\n child.index = this.getChildren().length;\n child.parent = this;\n child._clearCaches();\n this.getChildren().push(child);\n this._fire('add', {\n child: child,\n });\n this._requestDraw();\n return this;\n }\n destroy() {\n if (this.hasChildren()) {\n this.destroyChildren();\n }\n super.destroy();\n return this;\n }\n find(selector) {\n return this._generalFind(selector, false);\n }\n findOne(selector) {\n const result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n }\n _generalFind(selector, findOne) {\n const retArr = [];\n this._descendants((node) => {\n const valid = node._isMatch(selector);\n if (valid) {\n retArr.push(node);\n }\n if (valid && findOne) {\n return true;\n }\n return false;\n });\n return retArr;\n }\n _descendants(fn) {\n let shouldStop = false;\n const children = this.getChildren();\n for (const child of children) {\n shouldStop = fn(child);\n if (shouldStop) {\n return true;\n }\n if (!child.hasChildren()) {\n continue;\n }\n shouldStop = child._descendants(fn);\n if (shouldStop) {\n return true;\n }\n }\n return false;\n }\n toObject() {\n const obj = Node_1.Node.prototype.toObject.call(this);\n obj.children = [];\n this.getChildren().forEach((child) => {\n obj.children.push(child.toObject());\n });\n return obj;\n }\n isAncestorOf(node) {\n let parent = node.getParent();\n while (parent) {\n if (parent._id === this._id) {\n return true;\n }\n parent = parent.getParent();\n }\n return false;\n }\n clone(obj) {\n const node = Node_1.Node.prototype.clone.call(this, obj);\n this.getChildren().forEach(function (no) {\n node.add(no.clone());\n });\n return node;\n }\n getAllIntersections(pos) {\n const arr = [];\n this.find('Shape').forEach((shape) => {\n if (shape.isVisible() && shape.intersects(pos)) {\n arr.push(shape);\n }\n });\n return arr;\n }\n _clearSelfAndDescendantCache(attr) {\n var _a;\n super._clearSelfAndDescendantCache(attr);\n if (this.isCached()) {\n return;\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (node) {\n node._clearSelfAndDescendantCache(attr);\n });\n }\n _setChildrenIndices() {\n var _a;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child, n) {\n child.index = n;\n });\n this._requestDraw();\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n const caching = canvas && canvas.isCache;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedSceneCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawScene', canvas, top, bufferCanvas);\n }\n return this;\n }\n drawHit(can, top) {\n if (!this.shouldDrawHit(top)) {\n return this;\n }\n const layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (cachedHitCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawHit', canvas, top);\n }\n return this;\n }\n _drawChildren(drawMethod, canvas, top, bufferCanvas) {\n var _a;\n const context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (typeof clipWidth === 'number' && typeof clipHeight === 'number') ||\n clipFunc;\n const selfCache = top === this;\n if (hasClip) {\n context.save();\n const transform = this.getAbsoluteTransform(top);\n let m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n let clipArgs;\n if (clipFunc) {\n clipArgs = clipFunc.call(this, context, this);\n }\n else {\n const clipX = this.clipX();\n const clipY = this.clipY();\n context.rect(clipX || 0, clipY || 0, clipWidth, clipHeight);\n }\n context.clip.apply(context, clipArgs);\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n const hasComposition = !selfCache &&\n this.globalCompositeOperation() !== 'source-over' &&\n drawMethod === 'drawScene';\n if (hasComposition) {\n context.save();\n context._applyGlobalCompositeOperation(this);\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n child[drawMethod](canvas, top, bufferCanvas);\n });\n if (hasComposition) {\n context.restore();\n }\n if (hasClip) {\n context.restore();\n }\n }\n getClientRect(config = {}) {\n var _a;\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo;\n let minX, minY, maxX, maxY;\n let selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0,\n };\n const that = this;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n if (!child.visible()) {\n return;\n }\n const rect = child.getClientRect({\n relativeTo: that,\n skipShadow: config.skipShadow,\n skipStroke: config.skipStroke,\n });\n if (rect.width === 0 && rect.height === 0) {\n return;\n }\n if (minX === undefined) {\n minX = rect.x;\n minY = rect.y;\n maxX = rect.x + rect.width;\n maxY = rect.y + rect.height;\n }\n else {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n });\n const shapes = this.find('Shape');\n let hasVisible = false;\n for (let i = 0; i < shapes.length; i++) {\n const shape = shapes[i];\n if (shape._isVisible(this)) {\n hasVisible = true;\n break;\n }\n }\n if (hasVisible && minX !== undefined) {\n selfRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n else {\n selfRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n if (!skipTransform) {\n return this._transformedRect(selfRect, relativeTo);\n }\n return selfRect;\n }\n}\nexports.Container = Container;\nFactory_1.Factory.addComponentsGetterSetter(Container, 'clip', [\n 'x',\n 'y',\n 'width',\n 'height',\n]);\nFactory_1.Factory.addGetterSetter(Container, 'clipX', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipY', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipWidth', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipHeight', undefined, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Container, 'clipFunc');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCapturedShape = getCapturedShape;\nexports.createEvent = createEvent;\nexports.hasPointerCapture = hasPointerCapture;\nexports.setPointerCapture = setPointerCapture;\nexports.releaseCapture = releaseCapture;\nconst Global_1 = require(\"./Global\");\nconst Captures = new Map();\nconst SUPPORT_POINTER_EVENTS = Global_1.Konva._global['PointerEvent'] !== undefined;\nfunction getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nfunction createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nfunction hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nfunction setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n const stage = shape.getStage();\n if (!stage)\n return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nfunction releaseCapture(pointerId, target) {\n const shape = Captures.get(pointerId);\n if (!shape)\n return;\n const stage = shape.getStage();\n if (stage && stage.content) {\n }\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stage = exports.stages = void 0;\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Container_1 = require(\"./Container\");\nconst Global_1 = require(\"./Global\");\nconst Canvas_1 = require(\"./Canvas\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Global_2 = require(\"./Global\");\nconst PointerEvents = require(\"./PointerEvents\");\nconst STAGE = 'Stage', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup', POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', POINTEROUT = 'pointerout', POINTERLEAVE = 'pointerleave', POINTEROVER = 'pointerover', POINTERENTER = 'pointerenter', CONTEXTMENU = 'contextmenu', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TOUCHMOVE = 'touchmove', TOUCHCANCEL = 'touchcancel', WHEEL = 'wheel', MAX_LAYERS_NUMBER = 5, EVENTS = [\n [MOUSEENTER, '_pointerenter'],\n [MOUSEDOWN, '_pointerdown'],\n [MOUSEMOVE, '_pointermove'],\n [MOUSEUP, '_pointerup'],\n [MOUSELEAVE, '_pointerleave'],\n [TOUCHSTART, '_pointerdown'],\n [TOUCHMOVE, '_pointermove'],\n [TOUCHEND, '_pointerup'],\n [TOUCHCANCEL, '_pointercancel'],\n [MOUSEOVER, '_pointerover'],\n [WHEEL, '_wheel'],\n [CONTEXTMENU, '_contextmenu'],\n [POINTERDOWN, '_pointerdown'],\n [POINTERMOVE, '_pointermove'],\n [POINTERUP, '_pointerup'],\n [POINTERCANCEL, '_pointercancel'],\n [LOSTPOINTERCAPTURE, '_lostpointercapture'],\n];\nconst EVENTS_MAP = {\n mouse: {\n [POINTEROUT]: MOUSEOUT,\n [POINTERLEAVE]: MOUSELEAVE,\n [POINTEROVER]: MOUSEOVER,\n [POINTERENTER]: MOUSEENTER,\n [POINTERMOVE]: MOUSEMOVE,\n [POINTERDOWN]: MOUSEDOWN,\n [POINTERUP]: MOUSEUP,\n [POINTERCANCEL]: 'mousecancel',\n pointerclick: 'click',\n pointerdblclick: 'dblclick',\n },\n touch: {\n [POINTEROUT]: 'touchout',\n [POINTERLEAVE]: 'touchleave',\n [POINTEROVER]: 'touchover',\n [POINTERENTER]: 'touchenter',\n [POINTERMOVE]: TOUCHMOVE,\n [POINTERDOWN]: TOUCHSTART,\n [POINTERUP]: TOUCHEND,\n [POINTERCANCEL]: TOUCHCANCEL,\n pointerclick: 'tap',\n pointerdblclick: 'dbltap',\n },\n pointer: {\n [POINTEROUT]: POINTEROUT,\n [POINTERLEAVE]: POINTERLEAVE,\n [POINTEROVER]: POINTEROVER,\n [POINTERENTER]: POINTERENTER,\n [POINTERMOVE]: POINTERMOVE,\n [POINTERDOWN]: POINTERDOWN,\n [POINTERUP]: POINTERUP,\n [POINTERCANCEL]: POINTERCANCEL,\n pointerclick: 'pointerclick',\n pointerdblclick: 'pointerdblclick',\n },\n};\nconst getEventType = (type) => {\n if (type.indexOf('pointer') >= 0) {\n return 'pointer';\n }\n if (type.indexOf('touch') >= 0) {\n return 'touch';\n }\n return 'mouse';\n};\nconst getEventsMap = (eventType) => {\n const type = getEventType(eventType);\n if (type === 'pointer') {\n return Global_1.Konva.pointerEventsEnabled && EVENTS_MAP.pointer;\n }\n if (type === 'touch') {\n return EVENTS_MAP.touch;\n }\n if (type === 'mouse') {\n return EVENTS_MAP.mouse;\n }\n};\nfunction checkNoClip(attrs = {}) {\n if (attrs.clipFunc || attrs.clipWidth || attrs.clipHeight) {\n Util_1.Util.warn('Stage does not support clipping. Please use clip for Layers or Groups.');\n }\n return attrs;\n}\nconst NO_POINTERS_MESSAGE = `Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`;\nexports.stages = [];\nclass Stage extends Container_1.Container {\n constructor(config) {\n super(checkNoClip(config));\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n this._buildDOM();\n this._bindContentEvents();\n exports.stages.push(this);\n this.on('widthChange.konva heightChange.konva', this._resizeDOM);\n this.on('visibleChange.konva', this._checkVisibility);\n this.on('clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva', () => {\n checkNoClip(this.attrs);\n });\n this._checkVisibility();\n }\n _validateAdd(child) {\n const isLayer = child.getType() === 'Layer';\n const isFastLayer = child.getType() === 'FastLayer';\n const valid = isLayer || isFastLayer;\n if (!valid) {\n Util_1.Util.throw('You may only add layers to the stage.');\n }\n }\n _checkVisibility() {\n if (!this.content) {\n return;\n }\n const style = this.visible() ? '' : 'none';\n this.content.style.display = style;\n }\n setContainer(container) {\n if (typeof container === STRING) {\n if (container.charAt(0) === '.') {\n const className = container.slice(1);\n container = document.getElementsByClassName(className)[0];\n }\n else {\n var id;\n if (container.charAt(0) !== '#') {\n id = container;\n }\n else {\n id = container.slice(1);\n }\n container = document.getElementById(id);\n }\n if (!container) {\n throw 'Can not find container in document with id ' + id;\n }\n }\n this._setAttr('container', container);\n if (this.content) {\n if (this.content.parentElement) {\n this.content.parentElement.removeChild(this.content);\n }\n container.appendChild(this.content);\n }\n return this;\n }\n shouldDrawHit() {\n return true;\n }\n clear() {\n const layers = this.children, len = layers.length;\n for (let n = 0; n < len; n++) {\n layers[n].clear();\n }\n return this;\n }\n clone(obj) {\n if (!obj) {\n obj = {};\n }\n obj.container =\n typeof document !== 'undefined' && document.createElement('div');\n return Container_1.Container.prototype.clone.call(this, obj);\n }\n destroy() {\n super.destroy();\n const content = this.content;\n if (content && Util_1.Util._isInDocument(content)) {\n this.container().removeChild(content);\n }\n const index = exports.stages.indexOf(this);\n if (index > -1) {\n exports.stages.splice(index, 1);\n }\n Util_1.Util.releaseCanvas(this.bufferCanvas._canvas, this.bufferHitCanvas._canvas);\n return this;\n }\n getPointerPosition() {\n const pos = this._pointerPositions[0] || this._changedPointerPositions[0];\n if (!pos) {\n Util_1.Util.warn(NO_POINTERS_MESSAGE);\n return null;\n }\n return {\n x: pos.x,\n y: pos.y,\n };\n }\n _getPointerById(id) {\n return this._pointerPositions.find((p) => p.id === id);\n }\n getPointersPositions() {\n return this._pointerPositions;\n }\n getStage() {\n return this;\n }\n getContent() {\n return this.content;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.x = config.x || 0;\n config.y = config.y || 0;\n config.width = config.width || this.width();\n config.height = config.height || this.height();\n const canvas = new Canvas_1.SceneCanvas({\n width: config.width,\n height: config.height,\n pixelRatio: config.pixelRatio || 1,\n });\n const _context = canvas.getContext()._context;\n const layers = this.children;\n if (config.x || config.y) {\n _context.translate(-1 * config.x, -1 * config.y);\n }\n layers.forEach(function (layer) {\n if (!layer.isVisible()) {\n return;\n }\n const layerCanvas = layer._toKonvaCanvas(config);\n _context.drawImage(layerCanvas._canvas, config.x, config.y, layerCanvas.getWidth() / layerCanvas.getPixelRatio(), layerCanvas.getHeight() / layerCanvas.getPixelRatio());\n });\n return canvas;\n }\n getIntersection(pos) {\n if (!pos) {\n return null;\n }\n const layers = this.children, len = layers.length, end = len - 1;\n for (let n = end; n >= 0; n--) {\n const shape = layers[n].getIntersection(pos);\n if (shape) {\n return shape;\n }\n }\n return null;\n }\n _resizeDOM() {\n const width = this.width();\n const height = this.height();\n if (this.content) {\n this.content.style.width = width + PX;\n this.content.style.height = height + PX;\n }\n this.bufferCanvas.setSize(width, height);\n this.bufferHitCanvas.setSize(width, height);\n this.children.forEach((layer) => {\n layer.setSize({ width, height });\n layer.draw();\n });\n }\n add(layer, ...rest) {\n if (arguments.length > 1) {\n for (let i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n super.add(layer);\n const length = this.children.length;\n if (length > MAX_LAYERS_NUMBER) {\n Util_1.Util.warn('The stage has ' +\n length +\n ' layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.');\n }\n layer.setSize({ width: this.width(), height: this.height() });\n layer.draw();\n if (Global_1.Konva.isBrowser) {\n this.content.appendChild(layer.canvas._canvas);\n }\n return this;\n }\n getParent() {\n return null;\n }\n getLayer() {\n return null;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n getLayers() {\n return this.children;\n }\n _bindContentEvents() {\n if (!Global_1.Konva.isBrowser) {\n return;\n }\n EVENTS.forEach(([event, methodName]) => {\n this.content.addEventListener(event, (evt) => {\n this[methodName](evt);\n }, { passive: false });\n });\n }\n _pointerenter(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n if (events) {\n this._fire(events.pointerenter, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointerover(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n if (events) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _getTargetShape(evenType) {\n let shape = this[evenType + 'targetShape'];\n if (shape && !shape.getStage()) {\n shape = null;\n }\n return shape;\n }\n _pointerleave(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const targetShape = this._getTargetShape(eventType);\n const eventsEnabled = !(Global_1.Konva.isDragging() || Global_1.Konva.isTransforming()) || Global_1.Konva.hitOnDragEnabled;\n if (targetShape && eventsEnabled) {\n targetShape._fireAndBubble(events.pointerout, { evt: evt });\n targetShape._fireAndBubble(events.pointerleave, { evt: evt });\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this[eventType + 'targetShape'] = null;\n }\n else if (eventsEnabled) {\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this._fire(events.pointerout, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n this.pointerPos = null;\n this._pointerPositions = [];\n }\n _pointerdown(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n let triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = this.getIntersection(pos);\n DragAndDrop_1.DD.justDragged = false;\n Global_1.Konva['_' + eventType + 'ListenClick'] = true;\n if (!shape || !shape.isListening()) {\n this[eventType + 'ClickStartShape'] = undefined;\n return;\n }\n if (Global_1.Konva.capturePointerEventsEnabled) {\n shape.setPointerCapture(pos.id);\n }\n this[eventType + 'ClickStartShape'] = shape;\n shape._fireAndBubble(events.pointerdown, {\n evt: evt,\n pointerId: pos.id,\n });\n triggeredOnShape = true;\n const isTouch = evt.type.indexOf('touch') >= 0;\n if (shape.preventDefault() && evt.cancelable && isTouch) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerdown, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._pointerPositions[0].id,\n });\n }\n }\n _pointermove(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n if (Global_1.Konva.isDragging() && DragAndDrop_1.DD.node.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n this.setPointersPositions(evt);\n const eventsEnabled = !(Global_1.Konva.isDragging() || Global_1.Konva.isTransforming()) || Global_1.Konva.hitOnDragEnabled;\n if (!eventsEnabled) {\n return;\n }\n const processedShapesIds = {};\n let triggeredOnShape = false;\n const targetShape = this._getTargetShape(eventType);\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n const differentTarget = targetShape !== shape;\n if (differentTarget && targetShape) {\n targetShape._fireAndBubble(events.pointerout, { ...event }, shape);\n targetShape._fireAndBubble(events.pointerleave, { ...event }, shape);\n }\n if (shape) {\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n if (differentTarget) {\n shape._fireAndBubble(events.pointerover, { ...event }, targetShape);\n shape._fireAndBubble(events.pointerenter, { ...event }, targetShape);\n this[eventType + 'targetShape'] = shape;\n }\n shape._fireAndBubble(events.pointermove, { ...event });\n }\n else {\n if (targetShape) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n this[eventType + 'targetShape'] = null;\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointermove, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n }\n _pointerup(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const clickStartShape = this[eventType + 'ClickStartShape'];\n const clickEndShape = this[eventType + 'ClickEndShape'];\n const processedShapesIds = {};\n let triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n if (shape) {\n shape.releaseCapture(pos.id);\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n let fireDblClick = false;\n if (Global_1.Konva['_' + eventType + 'InDblClickWindow']) {\n fireDblClick = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n else if (!DragAndDrop_1.DD.justDragged) {\n Global_1.Konva['_' + eventType + 'InDblClickWindow'] = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n this[eventType + 'DblTimeout'] = setTimeout(function () {\n Global_1.Konva['_' + eventType + 'InDblClickWindow'] = false;\n }, Global_1.Konva.dblClickWindow);\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n this[eventType + 'ClickEndShape'] = shape;\n shape._fireAndBubble(events.pointerup, { ...event });\n if (Global_1.Konva['_' + eventType + 'ListenClick'] &&\n clickStartShape &&\n clickStartShape === shape) {\n shape._fireAndBubble(events.pointerclick, { ...event });\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n shape._fireAndBubble(events.pointerdblclick, { ...event });\n }\n }\n }\n else {\n this[eventType + 'ClickEndShape'] = null;\n if (Global_1.Konva['_' + eventType + 'ListenClick']) {\n this._fire(events.pointerclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n if (fireDblClick) {\n this._fire(events.pointerdblclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerup, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n Global_1.Konva['_' + eventType + 'ListenClick'] = false;\n if (evt.cancelable && eventType !== 'touch' && eventType !== 'pointer') {\n evt.preventDefault();\n }\n }\n _contextmenu(evt) {\n this.setPointersPositions(evt);\n const shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(CONTEXTMENU, { evt: evt });\n }\n else {\n this._fire(CONTEXTMENU, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _wheel(evt) {\n this.setPointersPositions(evt);\n const shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(WHEEL, { evt: evt });\n }\n else {\n this._fire(WHEEL, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointercancel(evt) {\n this.setPointersPositions(evt);\n const shape = PointerEvents.getCapturedShape(evt.pointerId) ||\n this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERUP, PointerEvents.createEvent(evt));\n }\n PointerEvents.releaseCapture(evt.pointerId);\n }\n _lostpointercapture(evt) {\n PointerEvents.releaseCapture(evt.pointerId);\n }\n setPointersPositions(evt) {\n const contentPosition = this._getContentPosition();\n let x = null, y = null;\n evt = evt ? evt : window.event;\n if (evt.touches !== undefined) {\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n Array.prototype.forEach.call(evt.touches, (touch) => {\n this._pointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n Array.prototype.forEach.call(evt.changedTouches || evt.touches, (touch) => {\n this._changedPointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n }\n else {\n x = (evt.clientX - contentPosition.left) / contentPosition.scaleX;\n y = (evt.clientY - contentPosition.top) / contentPosition.scaleY;\n this.pointerPos = {\n x: x,\n y: y,\n };\n this._pointerPositions = [{ x, y, id: Util_1.Util._getFirstPointerId(evt) }];\n this._changedPointerPositions = [\n { x, y, id: Util_1.Util._getFirstPointerId(evt) },\n ];\n }\n }\n _setPointerPosition(evt) {\n Util_1.Util.warn('Method _setPointerPosition is deprecated. Use \"stage.setPointersPositions(event)\" instead.');\n this.setPointersPositions(evt);\n }\n _getContentPosition() {\n if (!this.content || !this.content.getBoundingClientRect) {\n return {\n top: 0,\n left: 0,\n scaleX: 1,\n scaleY: 1,\n };\n }\n const rect = this.content.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n scaleX: rect.width / this.content.clientWidth || 1,\n scaleY: rect.height / this.content.clientHeight || 1,\n };\n }\n _buildDOM() {\n this.bufferCanvas = new Canvas_1.SceneCanvas({\n width: this.width(),\n height: this.height(),\n });\n this.bufferHitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1,\n width: this.width(),\n height: this.height(),\n });\n if (!Global_1.Konva.isBrowser) {\n return;\n }\n const container = this.container();\n if (!container) {\n throw 'Stage has no container. A container is required.';\n }\n container.innerHTML = '';\n this.content = document.createElement('div');\n this.content.style.position = 'relative';\n this.content.style.userSelect = 'none';\n this.content.className = 'konvajs-content';\n this.content.setAttribute('role', 'presentation');\n container.appendChild(this.content);\n this._resizeDOM();\n }\n cache() {\n Util_1.Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.');\n return this;\n }\n clearCache() {\n return this;\n }\n batchDraw() {\n this.getChildren().forEach(function (layer) {\n layer.batchDraw();\n });\n return this;\n }\n}\nexports.Stage = Stage;\nStage.prototype.nodeType = STAGE;\n(0, Global_2._registerNode)(Stage);\nFactory_1.Factory.addGetterSetter(Stage, 'container');\nif (Global_1.Konva.isBrowser) {\n document.addEventListener('visibilitychange', () => {\n exports.stages.forEach((stage) => {\n stage.batchDraw();\n });\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Shape = exports.shapes = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Node_1 = require(\"./Node\");\nconst Validators_1 = require(\"./Validators\");\nconst Global_2 = require(\"./Global\");\nconst PointerEvents = require(\"./PointerEvents\");\nconst HAS_SHADOW = 'hasShadow';\nconst SHADOW_RGBA = 'shadowRGBA';\nconst patternImage = 'patternImage';\nconst linearGradient = 'linearGradient';\nconst radialGradient = 'radialGradient';\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexports.shapes = {};\nfunction _fillFunc(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nclass Shape extends Node_1.Node {\n constructor(config) {\n super(config);\n let key;\n while (true) {\n key = Util_1.Util.getRandomColor();\n if (key && !(key in exports.shapes)) {\n break;\n }\n }\n this.colorKey = key;\n exports.shapes[key] = this;\n }\n getContext() {\n Util_1.Util.warn('shape.getContext() method is deprecated. Please do not use it.');\n return this.getLayer().getContext();\n }\n getCanvas() {\n Util_1.Util.warn('shape.getCanvas() method is deprecated. Please do not use it.');\n return this.getLayer().getCanvas();\n }\n getSceneFunc() {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n }\n getHitFunc() {\n return this.attrs.hitFunc || this['_hitFunc'];\n }\n hasShadow() {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n }\n _hasShadow() {\n return (this.shadowEnabled() &&\n this.shadowOpacity() !== 0 &&\n !!(this.shadowColor() ||\n this.shadowBlur() ||\n this.shadowOffsetX() ||\n this.shadowOffsetY()));\n }\n _getFillPattern() {\n return this._getCache(patternImage, this.__getFillPattern);\n }\n __getFillPattern() {\n if (this.fillPatternImage()) {\n const ctx = getDummyContext();\n const pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n if (pattern && pattern.setTransform) {\n const tr = new Util_1.Transform();\n tr.translate(this.fillPatternX(), this.fillPatternY());\n tr.rotate(Global_1.Konva.getAngle(this.fillPatternRotation()));\n tr.scale(this.fillPatternScaleX(), this.fillPatternScaleY());\n tr.translate(-1 * this.fillPatternOffsetX(), -1 * this.fillPatternOffsetY());\n const m = tr.getMatrix();\n const matrix = typeof DOMMatrix === 'undefined'\n ? {\n a: m[0],\n b: m[1],\n c: m[2],\n d: m[3],\n e: m[4],\n f: m[5],\n }\n : new DOMMatrix(m);\n pattern.setTransform(matrix);\n }\n return pattern;\n }\n }\n _getLinearGradient() {\n return this._getCache(linearGradient, this.__getLinearGradient);\n }\n __getLinearGradient() {\n const colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillLinearGradientStartPoint();\n const end = this.fillLinearGradientEndPoint();\n const grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n _getRadialGradient() {\n return this._getCache(radialGradient, this.__getRadialGradient);\n }\n __getRadialGradient() {\n const colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillRadialGradientStartPoint();\n const end = this.fillRadialGradientEndPoint();\n const grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n getShadowRGBA() {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n }\n _getShadowRGBA() {\n if (!this.hasShadow()) {\n return;\n }\n const rgba = Util_1.Util.colorToRGBA(this.shadowColor());\n if (rgba) {\n return ('rgba(' +\n rgba.r +\n ',' +\n rgba.g +\n ',' +\n rgba.b +\n ',' +\n rgba.a * (this.shadowOpacity() || 1) +\n ')');\n }\n }\n hasFill() {\n return this._calculate('hasFill', [\n 'fillEnabled',\n 'fill',\n 'fillPatternImage',\n 'fillLinearGradientColorStops',\n 'fillRadialGradientColorStops',\n ], () => {\n return (this.fillEnabled() &&\n !!(this.fill() ||\n this.fillPatternImage() ||\n this.fillLinearGradientColorStops() ||\n this.fillRadialGradientColorStops()));\n });\n }\n hasStroke() {\n return this._calculate('hasStroke', [\n 'strokeEnabled',\n 'strokeWidth',\n 'stroke',\n 'strokeLinearGradientColorStops',\n ], () => {\n return (this.strokeEnabled() &&\n this.strokeWidth() &&\n !!(this.stroke() || this.strokeLinearGradientColorStops()));\n });\n }\n hasHitStroke() {\n const width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n }\n intersects(point) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const bufferHitCanvas = stage.bufferHitCanvas;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas, undefined, true);\n const p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n }\n destroy() {\n Node_1.Node.prototype.destroy.call(this);\n delete exports.shapes[this.colorKey];\n delete this.colorKey;\n return this;\n }\n _useBufferCanvas(forceFill) {\n var _a;\n const perfectDrawEnabled = (_a = this.attrs.perfectDrawEnabled) !== null && _a !== void 0 ? _a : true;\n if (!perfectDrawEnabled) {\n return false;\n }\n const hasFill = forceFill || this.hasFill();\n const hasStroke = this.hasStroke();\n const isTransparent = this.getAbsoluteOpacity() !== 1;\n if (hasFill && hasStroke && isTransparent) {\n return true;\n }\n const hasShadow = this.hasShadow();\n const strokeForShadow = this.shadowForStrokeEnabled();\n if (hasFill && hasStroke && hasShadow && strokeForShadow) {\n return true;\n }\n return false;\n }\n setStrokeHitEnabled(val) {\n Util_1.Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n }\n else {\n this.hitStrokeWidth(0);\n }\n }\n getStrokeHitEnabled() {\n if (this.hitStrokeWidth() === 0) {\n return false;\n }\n else {\n return true;\n }\n }\n getSelfRect() {\n const size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height,\n };\n }\n getClientRect(config = {}) {\n let hasCachedParent = false;\n let parent = this.getParent();\n while (parent) {\n if (parent.isCached()) {\n hasCachedParent = true;\n break;\n }\n parent = parent.getParent();\n }\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo || (hasCachedParent && this.getStage()) || undefined;\n const fillRect = this.getSelfRect();\n const applyStroke = !config.skipStroke && this.hasStroke();\n const strokeWidth = (applyStroke && this.strokeWidth()) || 0;\n const fillAndStrokeWidth = fillRect.width + strokeWidth;\n const fillAndStrokeHeight = fillRect.height + strokeWidth;\n const applyShadow = !config.skipShadow && this.hasShadow();\n const shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n const shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n const preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n const preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n const blurRadius = (applyShadow && this.shadowBlur()) || 0;\n const width = preWidth + blurRadius * 2;\n const height = preHeight + blurRadius * 2;\n const rect = {\n width: width,\n height: height,\n x: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetX, 0) +\n fillRect.x,\n y: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetY, 0) +\n fillRect.y,\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer();\n let canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow(), stage, bufferContext;\n const skipBuffer = canvas.isCache;\n const cachingSelf = top === this;\n if (!this.isVisible() && !cachingSelf) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n if (this._useBufferCanvas() && !skipBuffer) {\n stage = this.getStage();\n const bc = bufferCanvas || stage.bufferCanvas;\n bufferContext = bc.getContext();\n bufferContext.clear();\n bufferContext.save();\n bufferContext._applyLineJoin(this);\n var o = this.getAbsoluteTransform(top).getMatrix();\n bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n drawFunc.call(this, bufferContext, this);\n bufferContext.restore();\n const ratio = bc.pixelRatio;\n if (hasShadow) {\n context._applyShadow(this);\n }\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bc._canvas, 0, 0, bc.width / ratio, bc.height / ratio);\n }\n else {\n context._applyLineJoin(this);\n if (!cachingSelf) {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n if (hasShadow) {\n context._applyShadow(this);\n }\n drawFunc.call(this, context, this);\n }\n context.restore();\n return this;\n }\n drawHit(can, top, skipDragCheck = false) {\n if (!this.shouldDrawHit(top, skipDragCheck)) {\n return this;\n }\n const layer = this.getLayer(), canvas = can || layer.hitCanvas, context = canvas && canvas.getContext(), drawFunc = this.hitFunc() || this.sceneFunc(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (!this.colorKey) {\n Util_1.Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()');\n }\n if (cachedHitCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n context._applyLineJoin(this);\n const selfCache = this === top;\n if (!selfCache) {\n const o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n drawFunc.call(this, context, this);\n context.restore();\n return this;\n }\n drawHitFromCache(alphaThreshold = 0) {\n const cachedCanvas = this._getCanvasCache(), sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = cachedCanvas.hit, hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight();\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n const hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n const hitData = hitImageData.data;\n const len = hitData.length;\n const rgbColorKey = Util_1.Util._hexToRgb(this.colorKey);\n for (let i = 0; i < len; i += 4) {\n const alpha = hitData[i + 3];\n if (alpha > alphaThreshold) {\n hitData[i] = rgbColorKey.r;\n hitData[i + 1] = rgbColorKey.g;\n hitData[i + 2] = rgbColorKey.b;\n hitData[i + 3] = 255;\n }\n else {\n hitData[i + 3] = 0;\n }\n }\n hitContext.putImageData(hitImageData, 0, 0);\n }\n catch (e) {\n Util_1.Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);\n }\n return this;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n}\nexports.Shape = Shape;\nShape.prototype._fillFunc = _fillFunc;\nShape.prototype._strokeFunc = _strokeFunc;\nShape.prototype._fillFuncHit = _fillFuncHit;\nShape.prototype._strokeFuncHit = _strokeFuncHit;\nShape.prototype._centroid = false;\nShape.prototype.nodeType = 'Shape';\n(0, Global_2._registerNode)(Shape);\nShape.prototype.eventListeners = {};\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva', _clearFillPatternCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);\nFactory_1.Factory.addGetterSetter(Shape, 'stroke', undefined, (0, Validators_1.getStringOrGradientValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeWidth', 2, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillAfterStrokeEnabled', false);\nFactory_1.Factory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', (0, Validators_1.getNumberOrAutoValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeHitEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'perfectDrawEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'lineJoin');\nFactory_1.Factory.addGetterSetter(Shape, 'lineCap');\nFactory_1.Factory.addGetterSetter(Shape, 'sceneFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'hitFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'dash');\nFactory_1.Factory.addGetterSetter(Shape, 'dashOffset', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowColor', undefined, (0, Validators_1.getStringValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowBlur', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOpacity', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternImage');\nFactory_1.Factory.addGetterSetter(Shape, 'fill', undefined, (0, Validators_1.getStringOrGradientValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');\nFactory_1.Factory.addGetterSetter(Shape, 'fillEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'dashEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeScaleEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPriority', 'color');\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleX', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleY', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRotation', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRule', undefined, (0, Validators_1.getStringValidator)());\nFactory_1.Factory.backCompat(Shape, {\n dashArray: 'dash',\n getDashArray: 'getDash',\n setDashArray: 'getDash',\n drawFunc: 'sceneFunc',\n getDrawFunc: 'getSceneFunc',\n setDrawFunc: 'setSceneFunc',\n drawHitFunc: 'hitFunc',\n getDrawHitFunc: 'getHitFunc',\n setDrawHitFunc: 'setHitFunc',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Layer = void 0;\nconst Util_1 = require(\"./Util\");\nconst Container_1 = require(\"./Container\");\nconst Node_1 = require(\"./Node\");\nconst Factory_1 = require(\"./Factory\");\nconst Canvas_1 = require(\"./Canvas\");\nconst Validators_1 = require(\"./Validators\");\nconst Shape_1 = require(\"./Shape\");\nconst Global_1 = require(\"./Global\");\nconst HASH = '#', BEFORE_DRAW = 'beforeDraw', DRAW = 'draw', INTERSECTION_OFFSETS = [\n { x: 0, y: 0 },\n { x: -1, y: -1 },\n { x: 1, y: -1 },\n { x: 1, y: 1 },\n { x: -1, y: 1 },\n], INTERSECTION_OFFSETS_LEN = INTERSECTION_OFFSETS.length;\nclass Layer extends Container_1.Container {\n constructor(config) {\n super(config);\n this.canvas = new Canvas_1.SceneCanvas();\n this.hitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1,\n });\n this._waitingForDraw = false;\n this.on('visibleChange.konva', this._checkVisibility);\n this._checkVisibility();\n this.on('imageSmoothingEnabledChange.konva', this._setSmoothEnabled);\n this._setSmoothEnabled();\n }\n createPNGStream() {\n const c = this.canvas._canvas;\n return c.createPNGStream();\n }\n getCanvas() {\n return this.canvas;\n }\n getNativeCanvasElement() {\n return this.canvas._canvas;\n }\n getHitCanvas() {\n return this.hitCanvas;\n }\n getContext() {\n return this.getCanvas().getContext();\n }\n clear(bounds) {\n this.getContext().clear(bounds);\n this.getHitCanvas().getContext().clear(bounds);\n return this;\n }\n setZIndex(index) {\n super.setZIndex(index);\n const stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n if (index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n }\n return this;\n }\n moveToTop() {\n Node_1.Node.prototype.moveToTop.call(this);\n const stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveUp() {\n const moved = Node_1.Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n const stage = this.getStage();\n if (!stage || !stage.content) {\n return false;\n }\n stage.content.removeChild(this.getNativeCanvasElement());\n if (this.index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[this.index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveDown() {\n if (Node_1.Node.prototype.moveDown.call(this)) {\n const stage = this.getStage();\n if (stage) {\n const children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[this.index + 1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (Node_1.Node.prototype.moveToBottom.call(this)) {\n const stage = this.getStage();\n if (stage) {\n const children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n getLayer() {\n return this;\n }\n remove() {\n const _canvas = this.getNativeCanvasElement();\n Node_1.Node.prototype.remove.call(this);\n if (_canvas && _canvas.parentNode && Util_1.Util._isInDocument(_canvas)) {\n _canvas.parentNode.removeChild(_canvas);\n }\n return this;\n }\n getStage() {\n return this.parent;\n }\n setSize({ width, height }) {\n this.canvas.setSize(width, height);\n this.hitCanvas.setSize(width, height);\n this._setSmoothEnabled();\n return this;\n }\n _validateAdd(child) {\n const type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to a layer.');\n }\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.width = config.width || this.getWidth();\n config.height = config.height || this.getHeight();\n config.x = config.x !== undefined ? config.x : this.x();\n config.y = config.y !== undefined ? config.y : this.y();\n return Node_1.Node.prototype._toKonvaCanvas.call(this, config);\n }\n _checkVisibility() {\n const visible = this.visible();\n if (visible) {\n this.canvas._canvas.style.display = 'block';\n }\n else {\n this.canvas._canvas.style.display = 'none';\n }\n }\n _setSmoothEnabled() {\n this.getContext()._context.imageSmoothingEnabled =\n this.imageSmoothingEnabled();\n }\n getWidth() {\n if (this.parent) {\n return this.parent.width();\n }\n }\n setWidth() {\n Util_1.Util.warn('Can not change width of layer. Use \"stage.width(value)\" function instead.');\n }\n getHeight() {\n if (this.parent) {\n return this.parent.height();\n }\n }\n setHeight() {\n Util_1.Util.warn('Can not change height of layer. Use \"stage.height(value)\" function instead.');\n }\n batchDraw() {\n if (!this._waitingForDraw) {\n this._waitingForDraw = true;\n Util_1.Util.requestAnimFrame(() => {\n this.draw();\n this._waitingForDraw = false;\n });\n }\n return this;\n }\n getIntersection(pos) {\n if (!this.isListening() || !this.isVisible()) {\n return null;\n }\n let spiralSearchDistance = 1;\n let continueSearch = false;\n while (true) {\n for (let i = 0; i < INTERSECTION_OFFSETS_LEN; i++) {\n const intersectionOffset = INTERSECTION_OFFSETS[i];\n const obj = this._getIntersection({\n x: pos.x + intersectionOffset.x * spiralSearchDistance,\n y: pos.y + intersectionOffset.y * spiralSearchDistance,\n });\n const shape = obj.shape;\n if (shape) {\n return shape;\n }\n continueSearch = !!obj.antialiased;\n if (!obj.antialiased) {\n break;\n }\n }\n if (continueSearch) {\n spiralSearchDistance += 1;\n }\n else {\n return null;\n }\n }\n }\n _getIntersection(pos) {\n const ratio = this.hitCanvas.pixelRatio;\n const p = this.hitCanvas.context.getImageData(Math.round(pos.x * ratio), Math.round(pos.y * ratio), 1, 1).data;\n const p3 = p[3];\n if (p3 === 255) {\n const colorKey = Util_1.Util._rgbToHex(p[0], p[1], p[2]);\n const shape = Shape_1.shapes[HASH + colorKey];\n if (shape) {\n return {\n shape: shape,\n };\n }\n return {\n antialiased: true,\n };\n }\n else if (p3 > 0) {\n return {\n antialiased: true,\n };\n }\n return {};\n }\n drawScene(can, top) {\n const layer = this.getLayer(), canvas = can || (layer && layer.getCanvas());\n this._fire(BEFORE_DRAW, {\n node: this,\n });\n if (this.clearBeforeDraw()) {\n canvas.getContext().clear();\n }\n Container_1.Container.prototype.drawScene.call(this, canvas, top);\n this._fire(DRAW, {\n node: this,\n });\n return this;\n }\n drawHit(can, top) {\n const layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas);\n if (layer && layer.clearBeforeDraw()) {\n layer.getHitCanvas().getContext().clear();\n }\n Container_1.Container.prototype.drawHit.call(this, canvas, top);\n return this;\n }\n enableHitGraph() {\n this.hitGraphEnabled(true);\n return this;\n }\n disableHitGraph() {\n this.hitGraphEnabled(false);\n return this;\n }\n setHitGraphEnabled(val) {\n Util_1.Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n this.listening(val);\n }\n getHitGraphEnabled(val) {\n Util_1.Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n return this.listening();\n }\n toggleHitCanvas() {\n if (!this.parent || !this.parent['content']) {\n return;\n }\n const parent = this.parent;\n const added = !!this.hitCanvas._canvas.parentNode;\n if (added) {\n parent.content.removeChild(this.hitCanvas._canvas);\n }\n else {\n parent.content.appendChild(this.hitCanvas._canvas);\n }\n }\n destroy() {\n Util_1.Util.releaseCanvas(this.getNativeCanvasElement(), this.getHitCanvas()._canvas);\n return super.destroy();\n }\n}\nexports.Layer = Layer;\nLayer.prototype.nodeType = 'Layer';\n(0, Global_1._registerNode)(Layer);\nFactory_1.Factory.addGetterSetter(Layer, 'imageSmoothingEnabled', true);\nFactory_1.Factory.addGetterSetter(Layer, 'clearBeforeDraw', true);\nFactory_1.Factory.addGetterSetter(Layer, 'hitGraphEnabled', true, (0, Validators_1.getBooleanValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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 const type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to groups.');\n }\n }\n}\nexports.Group = Group;\nGroup.prototype.nodeType = 'Group';\n(0, Global_1._registerNode)(Group);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Animation = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst now = (function () {\n if (Global_1.glob.performance && Global_1.glob.performance.now) {\n return function () {\n return Global_1.glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n})();\nclass Animation {\n constructor(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0,\n };\n this.func = func;\n this.setLayers(layers);\n }\n setLayers(layers) {\n let lays = [];\n if (layers) {\n lays = Array.isArray(layers) ? layers : [layers];\n }\n this.layers = lays;\n return this;\n }\n getLayers() {\n return this.layers;\n }\n addLayer(layer) {\n const layers = this.layers;\n const len = layers.length;\n for (let n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n }\n isRunning() {\n const a = Animation;\n const animations = a.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n }\n start() {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n }\n stop() {\n Animation._removeAnimation(this);\n return this;\n }\n _updateFrameObject(time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n }\n static _addAnimation(anim) {\n this.animations.push(anim);\n this._handleAnimation();\n }\n static _removeAnimation(anim) {\n const id = anim.id;\n const animations = this.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n }\n static _runFrames() {\n const layerHash = {};\n const animations = this.animations;\n for (let n = 0; n < animations.length; n++) {\n const anim = animations[n];\n const layers = anim.layers;\n const func = anim.func;\n anim._updateFrameObject(now());\n const layersLen = layers.length;\n let needRedraw;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n }\n else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (let i = 0; i < layersLen; i++) {\n const layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (const key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].batchDraw();\n }\n }\n static _animationLoop() {\n const Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n Util_1.Util.requestAnimFrame(Anim._animationLoop);\n }\n else {\n Anim.animRunning = false;\n }\n }\n static _handleAnimation() {\n if (!this.animRunning) {\n this.animRunning = true;\n Util_1.Util.requestAnimFrame(this._animationLoop);\n }\n }\n}\nexports.Animation = Animation;\nAnimation.animations = [];\nAnimation.animIdCounter = 0;\nAnimation.animRunning = false;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Easings = exports.Tween = void 0;\nconst Util_1 = require(\"./Util\");\nconst Animation_1 = require(\"./Animation\");\nconst Node_1 = require(\"./Node\");\nconst Global_1 = require(\"./Global\");\nconst blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1,\n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, colorAttrs = ['fill', 'stroke', 'shadowColor'];\nlet idCounter = 0;\nclass TweenEngine {\n constructor(prop, propFunc, func, begin, finish, duration, yoyo) {\n this.prop = prop;\n this.propFunc = propFunc;\n this.begin = begin;\n this._pos = begin;\n this.duration = duration;\n this._change = 0;\n this.prevPos = 0;\n this.yoyo = yoyo;\n this._time = 0;\n this._position = 0;\n this._startTime = 0;\n this._finish = 0;\n this.func = func;\n this._change = finish - this.begin;\n this.pause();\n }\n fire(str) {\n const handler = this[str];\n if (handler) {\n handler();\n }\n }\n setTime(t) {\n if (t > this.duration) {\n if (this.yoyo) {\n this._time = this.duration;\n this.reverse();\n }\n else {\n this.finish();\n }\n }\n else if (t < 0) {\n if (this.yoyo) {\n this._time = 0;\n this.play();\n }\n else {\n this.reset();\n }\n }\n else {\n this._time = t;\n this.update();\n }\n }\n getTime() {\n return this._time;\n }\n setPosition(p) {\n this.prevPos = this._pos;\n this.propFunc(p);\n this._pos = p;\n }\n getPosition(t) {\n if (t === undefined) {\n t = this._time;\n }\n return this.func(t, this.begin, this._change, this.duration);\n }\n play() {\n this.state = PLAYING;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onPlay');\n }\n reverse() {\n this.state = REVERSING;\n this._time = this.duration - this._time;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onReverse');\n }\n seek(t) {\n this.pause();\n this._time = t;\n this.update();\n this.fire('onSeek');\n }\n reset() {\n this.pause();\n this._time = 0;\n this.update();\n this.fire('onReset');\n }\n finish() {\n this.pause();\n this._time = this.duration;\n this.update();\n this.fire('onFinish');\n }\n update() {\n this.setPosition(this.getPosition(this._time));\n this.fire('onUpdate');\n }\n onEnterFrame() {\n const t = this.getTimer() - this._startTime;\n if (this.state === PLAYING) {\n this.setTime(t);\n }\n else if (this.state === REVERSING) {\n this.setTime(this.duration - t);\n }\n }\n pause() {\n this.state = PAUSED;\n this.fire('onPause');\n }\n getTimer() {\n return new Date().getTime();\n }\n}\nclass Tween {\n constructor(config) {\n const that = this, node = config.node, nodeId = node._id, easing = config.easing || exports.Easings.Linear, yoyo = !!config.yoyo;\n let duration, key;\n if (typeof config.duration === 'undefined') {\n duration = 0.3;\n }\n else if (config.duration === 0) {\n duration = 0.001;\n }\n else {\n duration = config.duration;\n }\n this.node = node;\n this._id = idCounter++;\n const layers = node.getLayer() ||\n (node instanceof Global_1.Konva['Stage'] ? node.getLayers() : null);\n if (!layers) {\n Util_1.Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');\n }\n this.anim = new Animation_1.Animation(function () {\n that.tween.onEnterFrame();\n }, layers);\n this.tween = new TweenEngine(key, function (i) {\n that._tweenFunc(i);\n }, easing, 0, 1, duration * 1000, yoyo);\n this._addListeners();\n if (!Tween.attrs[nodeId]) {\n Tween.attrs[nodeId] = {};\n }\n if (!Tween.attrs[nodeId][this._id]) {\n Tween.attrs[nodeId][this._id] = {};\n }\n if (!Tween.tweens[nodeId]) {\n Tween.tweens[nodeId] = {};\n }\n for (key in config) {\n if (blacklist[key] === undefined) {\n this._addAttr(key, config[key]);\n }\n }\n this.reset();\n this.onFinish = config.onFinish;\n this.onReset = config.onReset;\n this.onUpdate = config.onUpdate;\n }\n _addAttr(key, end) {\n const node = this.node, nodeId = node._id;\n let diff, len, trueEnd, trueStart, endRGBA;\n const tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n let start = node.getAttr(key);\n if (Util_1.Util._isArray(end)) {\n diff = [];\n len = Math.max(end.length, start.length);\n if (key === 'points' && end.length !== start.length) {\n if (end.length > start.length) {\n trueStart = start;\n start = Util_1.Util._prepareArrayForTween(start, end, node.closed());\n }\n else {\n trueEnd = end;\n end = Util_1.Util._prepareArrayForTween(end, start, node.closed());\n }\n }\n if (key.indexOf('fill') === 0) {\n for (let n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n }\n else {\n const startRGBA = Util_1.Util.colorToRGBA(start[n]);\n endRGBA = Util_1.Util.colorToRGBA(end[n]);\n start[n] = startRGBA;\n diff.push({\n r: endRGBA.r - startRGBA.r,\n g: endRGBA.g - startRGBA.g,\n b: endRGBA.b - startRGBA.b,\n a: endRGBA.a - startRGBA.a,\n });\n }\n }\n }\n else {\n for (let n = 0; n < len; n++) {\n diff.push(end[n] - start[n]);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n start = Util_1.Util.colorToRGBA(start);\n endRGBA = Util_1.Util.colorToRGBA(end);\n diff = {\n r: endRGBA.r - start.r,\n g: endRGBA.g - start.g,\n b: endRGBA.b - start.b,\n a: endRGBA.a - start.a,\n };\n }\n else {\n diff = end - start;\n }\n Tween.attrs[nodeId][this._id][key] = {\n start: start,\n diff: diff,\n end: end,\n trueEnd: trueEnd,\n trueStart: trueStart,\n };\n Tween.tweens[nodeId][key] = this._id;\n }\n _tweenFunc(i) {\n const node = this.node, attrs = Tween.attrs[node._id][this._id];\n let key, attr, start, diff, newVal, n, len, end;\n for (key in attrs) {\n attr = attrs[key];\n start = attr.start;\n diff = attr.diff;\n end = attr.end;\n if (Util_1.Util._isArray(start)) {\n newVal = [];\n len = Math.max(start.length, end.length);\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n else {\n newVal.push('rgba(' +\n Math.round(start[n].r + diff[n].r * i) +\n ',' +\n Math.round(start[n].g + diff[n].g * i) +\n ',' +\n Math.round(start[n].b + diff[n].b * i) +\n ',' +\n (start[n].a + diff[n].a * i) +\n ')');\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n newVal =\n 'rgba(' +\n Math.round(start.r + diff.r * i) +\n ',' +\n Math.round(start.g + diff.g * i) +\n ',' +\n Math.round(start.b + diff.b * i) +\n ',' +\n (start.a + diff.a * i) +\n ')';\n }\n else {\n newVal = start + diff * i;\n }\n node.setAttr(key, newVal);\n }\n }\n _addListeners() {\n this.tween.onPlay = () => {\n this.anim.start();\n };\n this.tween.onReverse = () => {\n this.anim.start();\n };\n this.tween.onPause = () => {\n this.anim.stop();\n };\n this.tween.onFinish = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueEnd) {\n node.setAttr('points', attrs.points.trueEnd);\n }\n if (this.onFinish) {\n this.onFinish.call(this);\n }\n };\n this.tween.onReset = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueStart) {\n node.points(attrs.points.trueStart);\n }\n if (this.onReset) {\n this.onReset();\n }\n };\n this.tween.onUpdate = () => {\n if (this.onUpdate) {\n this.onUpdate.call(this);\n }\n };\n }\n play() {\n this.tween.play();\n return this;\n }\n reverse() {\n this.tween.reverse();\n return this;\n }\n reset() {\n this.tween.reset();\n return this;\n }\n seek(t) {\n this.tween.seek(t * 1000);\n return this;\n }\n pause() {\n this.tween.pause();\n return this;\n }\n finish() {\n this.tween.finish();\n return this;\n }\n destroy() {\n const nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId];\n this.pause();\n for (const key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n }\n}\nexports.Tween = Tween;\nTween.attrs = {};\nTween.tweens = {};\nNode_1.Node.prototype.to = function (params) {\n const onFinish = params.onFinish;\n params.node = this;\n params.onFinish = function () {\n this.destroy();\n if (onFinish) {\n onFinish();\n }\n };\n const tween = new Tween(params);\n tween.play();\n};\nexports.Easings = {\n BackEaseIn(t, b, c, d) {\n const s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n BackEaseOut(t, b, c, d) {\n const s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n BackEaseInOut(t, b, c, d) {\n let s = 1.70158;\n if ((t /= d / 2) < 1) {\n return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n },\n ElasticEaseIn(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (-(a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b);\n },\n ElasticEaseOut(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +\n c +\n b);\n },\n ElasticEaseInOut(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n if (t < 1) {\n return (-0.5 *\n (a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +\n b);\n }\n return (a *\n Math.pow(2, -10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p) *\n 0.5 +\n c +\n b);\n },\n BounceEaseOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n }\n else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n BounceEaseIn(t, b, c, d) {\n return c - exports.Easings.BounceEaseOut(d - t, 0, c, d) + b;\n },\n BounceEaseInOut(t, b, c, d) {\n if (t < d / 2) {\n return exports.Easings.BounceEaseIn(t * 2, 0, c, d) * 0.5 + b;\n }\n else {\n return exports.Easings.BounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n },\n EaseIn(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n EaseOut(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n EaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t + b;\n }\n return (-c / 2) * (--t * (t - 2) - 1) + b;\n },\n StrongEaseIn(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n },\n StrongEaseOut(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n StrongEaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t * t * t * t + b;\n }\n return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;\n },\n Linear(t, b, c, d) {\n return (c * t) / d + b;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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 const angle = Global_1.Konva.getAngle(this.angle()), clockwise = this.clockwise();\n context.beginPath();\n context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);\n context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n getSelfRect() {\n const innerRadius = this.innerRadius();\n const outerRadius = this.outerRadius();\n const clockwise = this.clockwise();\n const angle = Global_1.Konva.getAngle(clockwise ? 360 - this.angle() : this.angle());\n const boundLeftRatio = Math.cos(Math.min(angle, Math.PI));\n const boundRightRatio = 1;\n const boundTopRatio = Math.sin(Math.min(Math.max(Math.PI, angle), (3 * Math.PI) / 2));\n const boundBottomRatio = Math.sin(Math.min(angle, Math.PI / 2));\n const boundLeft = boundLeftRatio * (boundLeftRatio > 0 ? innerRadius : outerRadius);\n const boundRight = boundRightRatio * (boundRightRatio > 0 ? outerRadius : innerRadius);\n const boundTop = boundTopRatio * (boundTopRatio > 0 ? innerRadius : outerRadius);\n const boundBottom = boundBottomRatio * (boundBottomRatio > 0 ? outerRadius : innerRadius);\n return {\n x: boundLeft,\n y: clockwise ? -1 * boundBottom : boundTop,\n width: boundRight - boundLeft,\n height: boundBottom - boundTop,\n };\n }\n}\nexports.Arc = Arc;\nArc.prototype._centroid = true;\nArc.prototype.className = 'Arc';\nArc.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n(0, Global_2._registerNode)(Arc);\nFactory_1.Factory.addGetterSetter(Arc, 'innerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'outerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'angle', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'clockwise', false, (0, Validators_1.getBooleanValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Line = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Global_1 = require(\"../Global\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nfunction getControlPoints(x0, y0, x1, y1, x2, y2, t) {\n const d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)), d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), fa = (t * d01) / (d01 + d12), fb = (t * d12) / (d01 + d12), p1x = x1 - fa * (x2 - x0), p1y = y1 - fa * (y2 - y0), p2x = x1 + fb * (x2 - x0), p2y = y1 + fb * (y2 - y0);\n return [p1x, p1y, p2x, p2y];\n}\nfunction expandPoints(p, tension) {\n const len = p.length, allPoints = [];\n for (let n = 2; n < len - 2; n += 2) {\n const cp = getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);\n if (isNaN(cp[0])) {\n continue;\n }\n allPoints.push(cp[0]);\n allPoints.push(cp[1]);\n allPoints.push(p[n]);\n allPoints.push(p[n + 1]);\n allPoints.push(cp[2]);\n allPoints.push(cp[3]);\n }\n return allPoints;\n}\nclass Line extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {\n this._clearCache('tensionPoints');\n });\n }\n _sceneFunc(context) {\n let points = this.points(), length = points.length, tension = this.tension(), closed = this.closed(), bezier = this.bezier(), tp, len, n;\n if (!length) {\n return;\n }\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (tension !== 0 && length > 4) {\n tp = this.getTensionPoints();\n len = tp.length;\n n = closed ? 0 : 4;\n if (!closed) {\n context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);\n }\n while (n < len - 2) {\n context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);\n }\n if (!closed) {\n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n }\n else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n }\n else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n }\n else {\n context.strokeShape(this);\n }\n }\n getTensionPoints() {\n return this._getCache('tensionPoints', this._getTensionPoints);\n }\n _getTensionPoints() {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n }\n else {\n return expandPoints(this.points(), this.tension());\n }\n }\n _getTensionPointsClosed() {\n const p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension), lastControlPoints = getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension), middle = expandPoints(p, tension), tp = [firstControlPoints[2], firstControlPoints[3]]\n .concat(middle)\n .concat([\n lastControlPoints[0],\n lastControlPoints[1],\n p[len - 2],\n p[len - 1],\n lastControlPoints[2],\n lastControlPoints[3],\n firstControlPoints[0],\n firstControlPoints[1],\n p[0],\n p[1],\n ]);\n return tp;\n }\n getWidth() {\n return this.getSelfRect().width;\n }\n getHeight() {\n return this.getSelfRect().height;\n }\n getSelfRect() {\n let points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0,\n };\n }\n if (this.tension() !== 0) {\n points = [\n points[0],\n points[1],\n ...this._getTensionPoints(),\n points[points.length - 2],\n points[points.length - 1],\n ];\n }\n else {\n points = this.points();\n }\n let minX = points[0];\n let maxX = points[0];\n let minY = points[1];\n let maxY = points[1];\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n}\nexports.Line = Line;\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\n(0, Global_1._registerNode)(Line);\nFactory_1.Factory.addGetterSetter(Line, 'closed', false);\nFactory_1.Factory.addGetterSetter(Line, 'bezier', false);\nFactory_1.Factory.addGetterSetter(Line, 'tension', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Line, 'points', [], (0, Validators_1.getNumberArrayValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.t2length = exports.getQuadraticArcLength = exports.getCubicArcLength = exports.binomialCoefficients = exports.cValues = exports.tValues = void 0;\nexports.tValues = [\n [],\n [],\n [\n -0.5773502691896257645091487805019574556476,\n 0.5773502691896257645091487805019574556476,\n ],\n [\n 0, -0.7745966692414833770358530799564799221665,\n 0.7745966692414833770358530799564799221665,\n ],\n [\n -0.3399810435848562648026657591032446872005,\n 0.3399810435848562648026657591032446872005,\n -0.8611363115940525752239464888928095050957,\n 0.8611363115940525752239464888928095050957,\n ],\n [\n 0, -0.5384693101056830910363144207002088049672,\n 0.5384693101056830910363144207002088049672,\n -0.9061798459386639927976268782993929651256,\n 0.9061798459386639927976268782993929651256,\n ],\n [\n 0.6612093864662645136613995950199053470064,\n -0.6612093864662645136613995950199053470064,\n -0.2386191860831969086305017216807119354186,\n 0.2386191860831969086305017216807119354186,\n -0.9324695142031520278123015544939946091347,\n 0.9324695142031520278123015544939946091347,\n ],\n [\n 0, 0.4058451513773971669066064120769614633473,\n -0.4058451513773971669066064120769614633473,\n -0.7415311855993944398638647732807884070741,\n 0.7415311855993944398638647732807884070741,\n -0.9491079123427585245261896840478512624007,\n 0.9491079123427585245261896840478512624007,\n ],\n [\n -0.1834346424956498049394761423601839806667,\n 0.1834346424956498049394761423601839806667,\n -0.5255324099163289858177390491892463490419,\n 0.5255324099163289858177390491892463490419,\n -0.7966664774136267395915539364758304368371,\n 0.7966664774136267395915539364758304368371,\n -0.9602898564975362316835608685694729904282,\n 0.9602898564975362316835608685694729904282,\n ],\n [\n 0, -0.8360311073266357942994297880697348765441,\n 0.8360311073266357942994297880697348765441,\n -0.9681602395076260898355762029036728700494,\n 0.9681602395076260898355762029036728700494,\n -0.3242534234038089290385380146433366085719,\n 0.3242534234038089290385380146433366085719,\n -0.6133714327005903973087020393414741847857,\n 0.6133714327005903973087020393414741847857,\n ],\n [\n -0.1488743389816312108848260011297199846175,\n 0.1488743389816312108848260011297199846175,\n -0.4333953941292471907992659431657841622,\n 0.4333953941292471907992659431657841622,\n -0.6794095682990244062343273651148735757692,\n 0.6794095682990244062343273651148735757692,\n -0.8650633666889845107320966884234930485275,\n 0.8650633666889845107320966884234930485275,\n -0.9739065285171717200779640120844520534282,\n 0.9739065285171717200779640120844520534282,\n ],\n [\n 0, -0.2695431559523449723315319854008615246796,\n 0.2695431559523449723315319854008615246796,\n -0.5190961292068118159257256694586095544802,\n 0.5190961292068118159257256694586095544802,\n -0.7301520055740493240934162520311534580496,\n 0.7301520055740493240934162520311534580496,\n -0.8870625997680952990751577693039272666316,\n 0.8870625997680952990751577693039272666316,\n -0.9782286581460569928039380011228573907714,\n 0.9782286581460569928039380011228573907714,\n ],\n [\n -0.1252334085114689154724413694638531299833,\n 0.1252334085114689154724413694638531299833,\n -0.3678314989981801937526915366437175612563,\n 0.3678314989981801937526915366437175612563,\n -0.587317954286617447296702418940534280369,\n 0.587317954286617447296702418940534280369,\n -0.7699026741943046870368938332128180759849,\n 0.7699026741943046870368938332128180759849,\n -0.9041172563704748566784658661190961925375,\n 0.9041172563704748566784658661190961925375,\n -0.9815606342467192506905490901492808229601,\n 0.9815606342467192506905490901492808229601,\n ],\n [\n 0, -0.2304583159551347940655281210979888352115,\n 0.2304583159551347940655281210979888352115,\n -0.4484927510364468528779128521276398678019,\n 0.4484927510364468528779128521276398678019,\n -0.6423493394403402206439846069955156500716,\n 0.6423493394403402206439846069955156500716,\n -0.8015780907333099127942064895828598903056,\n 0.8015780907333099127942064895828598903056,\n -0.9175983992229779652065478365007195123904,\n 0.9175983992229779652065478365007195123904,\n -0.9841830547185881494728294488071096110649,\n 0.9841830547185881494728294488071096110649,\n ],\n [\n -0.1080549487073436620662446502198347476119,\n 0.1080549487073436620662446502198347476119,\n -0.3191123689278897604356718241684754668342,\n 0.3191123689278897604356718241684754668342,\n -0.5152486363581540919652907185511886623088,\n 0.5152486363581540919652907185511886623088,\n -0.6872929048116854701480198030193341375384,\n 0.6872929048116854701480198030193341375384,\n -0.8272013150697649931897947426503949610397,\n 0.8272013150697649931897947426503949610397,\n -0.928434883663573517336391139377874264477,\n 0.928434883663573517336391139377874264477,\n -0.986283808696812338841597266704052801676,\n 0.986283808696812338841597266704052801676,\n ],\n [\n 0, -0.2011940939974345223006283033945962078128,\n 0.2011940939974345223006283033945962078128,\n -0.3941513470775633698972073709810454683627,\n 0.3941513470775633698972073709810454683627,\n -0.5709721726085388475372267372539106412383,\n 0.5709721726085388475372267372539106412383,\n -0.7244177313601700474161860546139380096308,\n 0.7244177313601700474161860546139380096308,\n -0.8482065834104272162006483207742168513662,\n 0.8482065834104272162006483207742168513662,\n -0.9372733924007059043077589477102094712439,\n 0.9372733924007059043077589477102094712439,\n -0.9879925180204854284895657185866125811469,\n 0.9879925180204854284895657185866125811469,\n ],\n [\n -0.0950125098376374401853193354249580631303,\n 0.0950125098376374401853193354249580631303,\n -0.281603550779258913230460501460496106486,\n 0.281603550779258913230460501460496106486,\n -0.45801677765722738634241944298357757354,\n 0.45801677765722738634241944298357757354,\n -0.6178762444026437484466717640487910189918,\n 0.6178762444026437484466717640487910189918,\n -0.7554044083550030338951011948474422683538,\n 0.7554044083550030338951011948474422683538,\n -0.8656312023878317438804678977123931323873,\n 0.8656312023878317438804678977123931323873,\n -0.9445750230732325760779884155346083450911,\n 0.9445750230732325760779884155346083450911,\n -0.9894009349916499325961541734503326274262,\n 0.9894009349916499325961541734503326274262,\n ],\n [\n 0, -0.1784841814958478558506774936540655574754,\n 0.1784841814958478558506774936540655574754,\n -0.3512317634538763152971855170953460050405,\n 0.3512317634538763152971855170953460050405,\n -0.5126905370864769678862465686295518745829,\n 0.5126905370864769678862465686295518745829,\n -0.6576711592166907658503022166430023351478,\n 0.6576711592166907658503022166430023351478,\n -0.7815140038968014069252300555204760502239,\n 0.7815140038968014069252300555204760502239,\n -0.8802391537269859021229556944881556926234,\n 0.8802391537269859021229556944881556926234,\n -0.9506755217687677612227169578958030214433,\n 0.9506755217687677612227169578958030214433,\n -0.9905754753144173356754340199406652765077,\n 0.9905754753144173356754340199406652765077,\n ],\n [\n -0.0847750130417353012422618529357838117333,\n 0.0847750130417353012422618529357838117333,\n -0.2518862256915055095889728548779112301628,\n 0.2518862256915055095889728548779112301628,\n -0.4117511614628426460359317938330516370789,\n 0.4117511614628426460359317938330516370789,\n -0.5597708310739475346078715485253291369276,\n 0.5597708310739475346078715485253291369276,\n -0.6916870430603532078748910812888483894522,\n 0.6916870430603532078748910812888483894522,\n -0.8037049589725231156824174550145907971032,\n 0.8037049589725231156824174550145907971032,\n -0.8926024664975557392060605911271455154078,\n 0.8926024664975557392060605911271455154078,\n -0.9558239495713977551811958929297763099728,\n 0.9558239495713977551811958929297763099728,\n -0.9915651684209309467300160047061507702525,\n 0.9915651684209309467300160047061507702525,\n ],\n [\n 0, -0.1603586456402253758680961157407435495048,\n 0.1603586456402253758680961157407435495048,\n -0.3165640999636298319901173288498449178922,\n 0.3165640999636298319901173288498449178922,\n -0.4645707413759609457172671481041023679762,\n 0.4645707413759609457172671481041023679762,\n -0.6005453046616810234696381649462392798683,\n 0.6005453046616810234696381649462392798683,\n -0.7209661773352293786170958608237816296571,\n 0.7209661773352293786170958608237816296571,\n -0.8227146565371428249789224867127139017745,\n 0.8227146565371428249789224867127139017745,\n -0.9031559036148179016426609285323124878093,\n 0.9031559036148179016426609285323124878093,\n -0.960208152134830030852778840687651526615,\n 0.960208152134830030852778840687651526615,\n -0.9924068438435844031890176702532604935893,\n 0.9924068438435844031890176702532604935893,\n ],\n [\n -0.0765265211334973337546404093988382110047,\n 0.0765265211334973337546404093988382110047,\n -0.227785851141645078080496195368574624743,\n 0.227785851141645078080496195368574624743,\n -0.3737060887154195606725481770249272373957,\n 0.3737060887154195606725481770249272373957,\n -0.5108670019508270980043640509552509984254,\n 0.5108670019508270980043640509552509984254,\n -0.6360536807265150254528366962262859367433,\n 0.6360536807265150254528366962262859367433,\n -0.7463319064601507926143050703556415903107,\n 0.7463319064601507926143050703556415903107,\n -0.8391169718222188233945290617015206853296,\n 0.8391169718222188233945290617015206853296,\n -0.9122344282513259058677524412032981130491,\n 0.9122344282513259058677524412032981130491,\n -0.963971927277913791267666131197277221912,\n 0.963971927277913791267666131197277221912,\n -0.9931285991850949247861223884713202782226,\n 0.9931285991850949247861223884713202782226,\n ],\n [\n 0, -0.1455618541608950909370309823386863301163,\n 0.1455618541608950909370309823386863301163,\n -0.288021316802401096600792516064600319909,\n 0.288021316802401096600792516064600319909,\n -0.4243421202074387835736688885437880520964,\n 0.4243421202074387835736688885437880520964,\n -0.551618835887219807059018796724313286622,\n 0.551618835887219807059018796724313286622,\n -0.667138804197412319305966669990339162597,\n 0.667138804197412319305966669990339162597,\n -0.7684399634756779086158778513062280348209,\n 0.7684399634756779086158778513062280348209,\n -0.8533633645833172836472506385875676702761,\n 0.8533633645833172836472506385875676702761,\n -0.9200993341504008287901871337149688941591,\n 0.9200993341504008287901871337149688941591,\n -0.9672268385663062943166222149076951614246,\n 0.9672268385663062943166222149076951614246,\n -0.9937521706203895002602420359379409291933,\n 0.9937521706203895002602420359379409291933,\n ],\n [\n -0.0697392733197222212138417961186280818222,\n 0.0697392733197222212138417961186280818222,\n -0.2078604266882212854788465339195457342156,\n 0.2078604266882212854788465339195457342156,\n -0.3419358208920842251581474204273796195591,\n 0.3419358208920842251581474204273796195591,\n -0.4693558379867570264063307109664063460953,\n 0.4693558379867570264063307109664063460953,\n -0.5876404035069115929588769276386473488776,\n 0.5876404035069115929588769276386473488776,\n -0.6944872631866827800506898357622567712673,\n 0.6944872631866827800506898357622567712673,\n -0.7878168059792081620042779554083515213881,\n 0.7878168059792081620042779554083515213881,\n -0.8658125777203001365364256370193787290847,\n 0.8658125777203001365364256370193787290847,\n -0.9269567721871740005206929392590531966353,\n 0.9269567721871740005206929392590531966353,\n -0.9700604978354287271239509867652687108059,\n 0.9700604978354287271239509867652687108059,\n -0.994294585482399292073031421161298980393,\n 0.994294585482399292073031421161298980393,\n ],\n [\n 0, -0.1332568242984661109317426822417661370104,\n 0.1332568242984661109317426822417661370104,\n -0.264135680970344930533869538283309602979,\n 0.264135680970344930533869538283309602979,\n -0.390301038030290831421488872880605458578,\n 0.390301038030290831421488872880605458578,\n -0.5095014778460075496897930478668464305448,\n 0.5095014778460075496897930478668464305448,\n -0.6196098757636461563850973116495956533871,\n 0.6196098757636461563850973116495956533871,\n -0.7186613631319501944616244837486188483299,\n 0.7186613631319501944616244837486188483299,\n -0.8048884016188398921511184069967785579414,\n 0.8048884016188398921511184069967785579414,\n -0.8767523582704416673781568859341456716389,\n 0.8767523582704416673781568859341456716389,\n -0.9329710868260161023491969890384229782357,\n 0.9329710868260161023491969890384229782357,\n -0.9725424712181152319560240768207773751816,\n 0.9725424712181152319560240768207773751816,\n -0.9947693349975521235239257154455743605736,\n 0.9947693349975521235239257154455743605736,\n ],\n [\n -0.0640568928626056260850430826247450385909,\n 0.0640568928626056260850430826247450385909,\n -0.1911188674736163091586398207570696318404,\n 0.1911188674736163091586398207570696318404,\n -0.3150426796961633743867932913198102407864,\n 0.3150426796961633743867932913198102407864,\n -0.4337935076260451384870842319133497124524,\n 0.4337935076260451384870842319133497124524,\n -0.5454214713888395356583756172183723700107,\n 0.5454214713888395356583756172183723700107,\n -0.6480936519369755692524957869107476266696,\n 0.6480936519369755692524957869107476266696,\n -0.7401241915785543642438281030999784255232,\n 0.7401241915785543642438281030999784255232,\n -0.8200019859739029219539498726697452080761,\n 0.8200019859739029219539498726697452080761,\n -0.8864155270044010342131543419821967550873,\n 0.8864155270044010342131543419821967550873,\n -0.9382745520027327585236490017087214496548,\n 0.9382745520027327585236490017087214496548,\n -0.9747285559713094981983919930081690617411,\n 0.9747285559713094981983919930081690617411,\n -0.9951872199970213601799974097007368118745,\n 0.9951872199970213601799974097007368118745,\n ],\n];\nexports.cValues = [\n [],\n [],\n [1.0, 1.0],\n [\n 0.8888888888888888888888888888888888888888,\n 0.5555555555555555555555555555555555555555,\n 0.5555555555555555555555555555555555555555,\n ],\n [\n 0.6521451548625461426269360507780005927646,\n 0.6521451548625461426269360507780005927646,\n 0.3478548451374538573730639492219994072353,\n 0.3478548451374538573730639492219994072353,\n ],\n [\n 0.5688888888888888888888888888888888888888,\n 0.4786286704993664680412915148356381929122,\n 0.4786286704993664680412915148356381929122,\n 0.2369268850561890875142640407199173626432,\n 0.2369268850561890875142640407199173626432,\n ],\n [\n 0.3607615730481386075698335138377161116615,\n 0.3607615730481386075698335138377161116615,\n 0.4679139345726910473898703439895509948116,\n 0.4679139345726910473898703439895509948116,\n 0.1713244923791703450402961421727328935268,\n 0.1713244923791703450402961421727328935268,\n ],\n [\n 0.4179591836734693877551020408163265306122,\n 0.3818300505051189449503697754889751338783,\n 0.3818300505051189449503697754889751338783,\n 0.2797053914892766679014677714237795824869,\n 0.2797053914892766679014677714237795824869,\n 0.1294849661688696932706114326790820183285,\n 0.1294849661688696932706114326790820183285,\n ],\n [\n 0.3626837833783619829651504492771956121941,\n 0.3626837833783619829651504492771956121941,\n 0.3137066458778872873379622019866013132603,\n 0.3137066458778872873379622019866013132603,\n 0.2223810344533744705443559944262408844301,\n 0.2223810344533744705443559944262408844301,\n 0.1012285362903762591525313543099621901153,\n 0.1012285362903762591525313543099621901153,\n ],\n [\n 0.3302393550012597631645250692869740488788,\n 0.1806481606948574040584720312429128095143,\n 0.1806481606948574040584720312429128095143,\n 0.0812743883615744119718921581105236506756,\n 0.0812743883615744119718921581105236506756,\n 0.3123470770400028400686304065844436655987,\n 0.3123470770400028400686304065844436655987,\n 0.2606106964029354623187428694186328497718,\n 0.2606106964029354623187428694186328497718,\n ],\n [\n 0.295524224714752870173892994651338329421,\n 0.295524224714752870173892994651338329421,\n 0.2692667193099963550912269215694693528597,\n 0.2692667193099963550912269215694693528597,\n 0.2190863625159820439955349342281631924587,\n 0.2190863625159820439955349342281631924587,\n 0.1494513491505805931457763396576973324025,\n 0.1494513491505805931457763396576973324025,\n 0.0666713443086881375935688098933317928578,\n 0.0666713443086881375935688098933317928578,\n ],\n [\n 0.272925086777900630714483528336342189156,\n 0.2628045445102466621806888698905091953727,\n 0.2628045445102466621806888698905091953727,\n 0.2331937645919904799185237048431751394317,\n 0.2331937645919904799185237048431751394317,\n 0.1862902109277342514260976414316558916912,\n 0.1862902109277342514260976414316558916912,\n 0.1255803694649046246346942992239401001976,\n 0.1255803694649046246346942992239401001976,\n 0.0556685671161736664827537204425485787285,\n 0.0556685671161736664827537204425485787285,\n ],\n [\n 0.2491470458134027850005624360429512108304,\n 0.2491470458134027850005624360429512108304,\n 0.2334925365383548087608498989248780562594,\n 0.2334925365383548087608498989248780562594,\n 0.2031674267230659217490644558097983765065,\n 0.2031674267230659217490644558097983765065,\n 0.160078328543346226334652529543359071872,\n 0.160078328543346226334652529543359071872,\n 0.1069393259953184309602547181939962242145,\n 0.1069393259953184309602547181939962242145,\n 0.047175336386511827194615961485017060317,\n 0.047175336386511827194615961485017060317,\n ],\n [\n 0.2325515532308739101945895152688359481566,\n 0.2262831802628972384120901860397766184347,\n 0.2262831802628972384120901860397766184347,\n 0.2078160475368885023125232193060527633865,\n 0.2078160475368885023125232193060527633865,\n 0.1781459807619457382800466919960979955128,\n 0.1781459807619457382800466919960979955128,\n 0.1388735102197872384636017768688714676218,\n 0.1388735102197872384636017768688714676218,\n 0.0921214998377284479144217759537971209236,\n 0.0921214998377284479144217759537971209236,\n 0.0404840047653158795200215922009860600419,\n 0.0404840047653158795200215922009860600419,\n ],\n [\n 0.2152638534631577901958764433162600352749,\n 0.2152638534631577901958764433162600352749,\n 0.2051984637212956039659240656612180557103,\n 0.2051984637212956039659240656612180557103,\n 0.1855383974779378137417165901251570362489,\n 0.1855383974779378137417165901251570362489,\n 0.1572031671581935345696019386238421566056,\n 0.1572031671581935345696019386238421566056,\n 0.1215185706879031846894148090724766259566,\n 0.1215185706879031846894148090724766259566,\n 0.0801580871597602098056332770628543095836,\n 0.0801580871597602098056332770628543095836,\n 0.0351194603317518630318328761381917806197,\n 0.0351194603317518630318328761381917806197,\n ],\n [\n 0.2025782419255612728806201999675193148386,\n 0.1984314853271115764561183264438393248186,\n 0.1984314853271115764561183264438393248186,\n 0.1861610000155622110268005618664228245062,\n 0.1861610000155622110268005618664228245062,\n 0.1662692058169939335532008604812088111309,\n 0.1662692058169939335532008604812088111309,\n 0.1395706779261543144478047945110283225208,\n 0.1395706779261543144478047945110283225208,\n 0.1071592204671719350118695466858693034155,\n 0.1071592204671719350118695466858693034155,\n 0.0703660474881081247092674164506673384667,\n 0.0703660474881081247092674164506673384667,\n 0.0307532419961172683546283935772044177217,\n 0.0307532419961172683546283935772044177217,\n ],\n [\n 0.1894506104550684962853967232082831051469,\n 0.1894506104550684962853967232082831051469,\n 0.1826034150449235888667636679692199393835,\n 0.1826034150449235888667636679692199393835,\n 0.1691565193950025381893120790303599622116,\n 0.1691565193950025381893120790303599622116,\n 0.1495959888165767320815017305474785489704,\n 0.1495959888165767320815017305474785489704,\n 0.1246289712555338720524762821920164201448,\n 0.1246289712555338720524762821920164201448,\n 0.0951585116824927848099251076022462263552,\n 0.0951585116824927848099251076022462263552,\n 0.0622535239386478928628438369943776942749,\n 0.0622535239386478928628438369943776942749,\n 0.0271524594117540948517805724560181035122,\n 0.0271524594117540948517805724560181035122,\n ],\n [\n 0.1794464703562065254582656442618856214487,\n 0.1765627053669926463252709901131972391509,\n 0.1765627053669926463252709901131972391509,\n 0.1680041021564500445099706637883231550211,\n 0.1680041021564500445099706637883231550211,\n 0.1540457610768102880814315948019586119404,\n 0.1540457610768102880814315948019586119404,\n 0.1351363684685254732863199817023501973721,\n 0.1351363684685254732863199817023501973721,\n 0.1118838471934039710947883856263559267358,\n 0.1118838471934039710947883856263559267358,\n 0.0850361483171791808835353701910620738504,\n 0.0850361483171791808835353701910620738504,\n 0.0554595293739872011294401653582446605128,\n 0.0554595293739872011294401653582446605128,\n 0.0241483028685479319601100262875653246916,\n 0.0241483028685479319601100262875653246916,\n ],\n [\n 0.1691423829631435918406564701349866103341,\n 0.1691423829631435918406564701349866103341,\n 0.1642764837458327229860537764659275904123,\n 0.1642764837458327229860537764659275904123,\n 0.1546846751262652449254180038363747721932,\n 0.1546846751262652449254180038363747721932,\n 0.1406429146706506512047313037519472280955,\n 0.1406429146706506512047313037519472280955,\n 0.1225552067114784601845191268002015552281,\n 0.1225552067114784601845191268002015552281,\n 0.1009420441062871655628139849248346070628,\n 0.1009420441062871655628139849248346070628,\n 0.0764257302548890565291296776166365256053,\n 0.0764257302548890565291296776166365256053,\n 0.0497145488949697964533349462026386416808,\n 0.0497145488949697964533349462026386416808,\n 0.0216160135264833103133427102664524693876,\n 0.0216160135264833103133427102664524693876,\n ],\n [\n 0.1610544498487836959791636253209167350399,\n 0.1589688433939543476499564394650472016787,\n 0.1589688433939543476499564394650472016787,\n 0.152766042065859666778855400897662998461,\n 0.152766042065859666778855400897662998461,\n 0.1426067021736066117757461094419029724756,\n 0.1426067021736066117757461094419029724756,\n 0.1287539625393362276755157848568771170558,\n 0.1287539625393362276755157848568771170558,\n 0.1115666455473339947160239016817659974813,\n 0.1115666455473339947160239016817659974813,\n 0.0914900216224499994644620941238396526609,\n 0.0914900216224499994644620941238396526609,\n 0.0690445427376412265807082580060130449618,\n 0.0690445427376412265807082580060130449618,\n 0.0448142267656996003328381574019942119517,\n 0.0448142267656996003328381574019942119517,\n 0.0194617882297264770363120414644384357529,\n 0.0194617882297264770363120414644384357529,\n ],\n [\n 0.1527533871307258506980843319550975934919,\n 0.1527533871307258506980843319550975934919,\n 0.1491729864726037467878287370019694366926,\n 0.1491729864726037467878287370019694366926,\n 0.1420961093183820513292983250671649330345,\n 0.1420961093183820513292983250671649330345,\n 0.1316886384491766268984944997481631349161,\n 0.1316886384491766268984944997481631349161,\n 0.118194531961518417312377377711382287005,\n 0.118194531961518417312377377711382287005,\n 0.1019301198172404350367501354803498761666,\n 0.1019301198172404350367501354803498761666,\n 0.0832767415767047487247581432220462061001,\n 0.0832767415767047487247581432220462061001,\n 0.0626720483341090635695065351870416063516,\n 0.0626720483341090635695065351870416063516,\n 0.040601429800386941331039952274932109879,\n 0.040601429800386941331039952274932109879,\n 0.0176140071391521183118619623518528163621,\n 0.0176140071391521183118619623518528163621,\n ],\n [\n 0.1460811336496904271919851476833711882448,\n 0.1445244039899700590638271665537525436099,\n 0.1445244039899700590638271665537525436099,\n 0.1398873947910731547221334238675831108927,\n 0.1398873947910731547221334238675831108927,\n 0.132268938633337461781052574496775604329,\n 0.132268938633337461781052574496775604329,\n 0.1218314160537285341953671771257335983563,\n 0.1218314160537285341953671771257335983563,\n 0.1087972991671483776634745780701056420336,\n 0.1087972991671483776634745780701056420336,\n 0.0934444234560338615532897411139320884835,\n 0.0934444234560338615532897411139320884835,\n 0.0761001136283793020170516533001831792261,\n 0.0761001136283793020170516533001831792261,\n 0.0571344254268572082836358264724479574912,\n 0.0571344254268572082836358264724479574912,\n 0.0369537897708524937999506682993296661889,\n 0.0369537897708524937999506682993296661889,\n 0.0160172282577743333242246168584710152658,\n 0.0160172282577743333242246168584710152658,\n ],\n [\n 0.1392518728556319933754102483418099578739,\n 0.1392518728556319933754102483418099578739,\n 0.1365414983460151713525738312315173965863,\n 0.1365414983460151713525738312315173965863,\n 0.1311735047870623707329649925303074458757,\n 0.1311735047870623707329649925303074458757,\n 0.1232523768105124242855609861548144719594,\n 0.1232523768105124242855609861548144719594,\n 0.1129322960805392183934006074217843191142,\n 0.1129322960805392183934006074217843191142,\n 0.1004141444428809649320788378305362823508,\n 0.1004141444428809649320788378305362823508,\n 0.0859416062170677274144436813727028661891,\n 0.0859416062170677274144436813727028661891,\n 0.0697964684245204880949614189302176573987,\n 0.0697964684245204880949614189302176573987,\n 0.0522933351526832859403120512732112561121,\n 0.0522933351526832859403120512732112561121,\n 0.0337749015848141547933022468659129013491,\n 0.0337749015848141547933022468659129013491,\n 0.0146279952982722006849910980471854451902,\n 0.0146279952982722006849910980471854451902,\n ],\n [\n 0.1336545721861061753514571105458443385831,\n 0.132462039404696617371642464703316925805,\n 0.132462039404696617371642464703316925805,\n 0.1289057221880821499785953393997936532597,\n 0.1289057221880821499785953393997936532597,\n 0.1230490843067295304675784006720096548158,\n 0.1230490843067295304675784006720096548158,\n 0.1149966402224113649416435129339613014914,\n 0.1149966402224113649416435129339613014914,\n 0.1048920914645414100740861850147438548584,\n 0.1048920914645414100740861850147438548584,\n 0.0929157660600351474770186173697646486034,\n 0.0929157660600351474770186173697646486034,\n 0.0792814117767189549228925247420432269137,\n 0.0792814117767189549228925247420432269137,\n 0.0642324214085258521271696151589109980391,\n 0.0642324214085258521271696151589109980391,\n 0.0480376717310846685716410716320339965612,\n 0.0480376717310846685716410716320339965612,\n 0.0309880058569794443106942196418845053837,\n 0.0309880058569794443106942196418845053837,\n 0.0134118594871417720813094934586150649766,\n 0.0134118594871417720813094934586150649766,\n ],\n [\n 0.1279381953467521569740561652246953718517,\n 0.1279381953467521569740561652246953718517,\n 0.1258374563468282961213753825111836887264,\n 0.1258374563468282961213753825111836887264,\n 0.121670472927803391204463153476262425607,\n 0.121670472927803391204463153476262425607,\n 0.1155056680537256013533444839067835598622,\n 0.1155056680537256013533444839067835598622,\n 0.1074442701159656347825773424466062227946,\n 0.1074442701159656347825773424466062227946,\n 0.0976186521041138882698806644642471544279,\n 0.0976186521041138882698806644642471544279,\n 0.086190161531953275917185202983742667185,\n 0.086190161531953275917185202983742667185,\n 0.0733464814110803057340336152531165181193,\n 0.0733464814110803057340336152531165181193,\n 0.0592985849154367807463677585001085845412,\n 0.0592985849154367807463677585001085845412,\n 0.0442774388174198061686027482113382288593,\n 0.0442774388174198061686027482113382288593,\n 0.0285313886289336631813078159518782864491,\n 0.0285313886289336631813078159518782864491,\n 0.0123412297999871995468056670700372915759,\n 0.0123412297999871995468056670700372915759,\n ],\n];\nexports.binomialCoefficients = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]];\nconst getCubicArcLength = (xs, ys, t) => {\n let sum;\n let correctedT;\n const n = 20;\n const z = t / 2;\n sum = 0;\n for (let i = 0; i < n; i++) {\n correctedT = z * exports.tValues[n][i] + z;\n sum += exports.cValues[n][i] * BFunc(xs, ys, correctedT);\n }\n return z * sum;\n};\nexports.getCubicArcLength = getCubicArcLength;\nconst getQuadraticArcLength = (xs, ys, t) => {\n if (t === undefined) {\n t = 1;\n }\n const ax = xs[0] - 2 * xs[1] + xs[2];\n const ay = ys[0] - 2 * ys[1] + ys[2];\n const bx = 2 * xs[1] - 2 * xs[0];\n const by = 2 * ys[1] - 2 * ys[0];\n const A = 4 * (ax * ax + ay * ay);\n const B = 4 * (ax * bx + ay * by);\n const C = bx * bx + by * by;\n if (A === 0) {\n return (t * Math.sqrt(Math.pow(xs[2] - xs[0], 2) + Math.pow(ys[2] - ys[0], 2)));\n }\n const b = B / (2 * A);\n const c = C / A;\n const u = t + b;\n const k = c - b * b;\n const uuk = u * u + k > 0 ? Math.sqrt(u * u + k) : 0;\n const bbk = b * b + k > 0 ? Math.sqrt(b * b + k) : 0;\n const term = b + Math.sqrt(b * b + k) !== 0\n ? k * Math.log(Math.abs((u + uuk) / (b + bbk)))\n : 0;\n return (Math.sqrt(A) / 2) * (u * uuk - b * bbk + term);\n};\nexports.getQuadraticArcLength = getQuadraticArcLength;\nfunction BFunc(xs, ys, t) {\n const xbase = getDerivative(1, t, xs);\n const ybase = getDerivative(1, t, ys);\n const combined = xbase * xbase + ybase * ybase;\n return Math.sqrt(combined);\n}\nconst getDerivative = (derivative, t, vs) => {\n const n = vs.length - 1;\n let _vs;\n let value;\n if (n === 0) {\n return 0;\n }\n if (derivative === 0) {\n value = 0;\n for (let k = 0; k <= n; k++) {\n value +=\n exports.binomialCoefficients[n][k] *\n Math.pow(1 - t, n - k) *\n Math.pow(t, k) *\n vs[k];\n }\n return value;\n }\n else {\n _vs = new Array(n);\n for (let k = 0; k < n; k++) {\n _vs[k] = n * (vs[k + 1] - vs[k]);\n }\n return getDerivative(derivative - 1, t, _vs);\n }\n};\nconst t2length = (length, totalLength, func) => {\n let error = 1;\n let t = length / totalLength;\n let step = (length - func(t)) / totalLength;\n let numIterations = 0;\n while (error > 0.001) {\n const increasedTLength = func(t + step);\n const increasedTError = Math.abs(length - increasedTLength) / totalLength;\n if (increasedTError < error) {\n error = increasedTError;\n t += step;\n }\n else {\n const decreasedTLength = func(t - step);\n const decreasedTError = Math.abs(length - decreasedTLength) / totalLength;\n if (decreasedTError < error) {\n error = decreasedTError;\n t -= step;\n }\n else {\n step /= 2;\n }\n }\n numIterations++;\n if (numIterations > 500) {\n break;\n }\n }\n return t;\n};\nexports.t2length = t2length;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Path = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst BezierFunctions_1 = require(\"../BezierFunctions\");\nclass Path extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this.dataArray = [];\n this.pathLength = 0;\n this._readDataAttribute();\n this.on('dataChange.konva', function () {\n this._readDataAttribute();\n });\n }\n _readDataAttribute() {\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = Path.getPathLength(this.dataArray);\n }\n _sceneFunc(context) {\n const ca = this.dataArray;\n context.beginPath();\n let isClosed = false;\n for (let n = 0; n < ca.length; n++) {\n const c = ca[n].command;\n const p = ca[n].points;\n switch (c) {\n case 'L':\n context.lineTo(p[0], p[1]);\n break;\n case 'M':\n context.moveTo(p[0], p[1]);\n break;\n case 'C':\n context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);\n break;\n case 'Q':\n context.quadraticCurveTo(p[0], p[1], p[2], p[3]);\n break;\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6], fs = p[7];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(psi);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-psi);\n context.translate(-cx, -cy);\n break;\n case 'z':\n isClosed = true;\n context.closePath();\n break;\n }\n }\n if (!isClosed && !this.hasFill()) {\n context.strokeShape(this);\n }\n else {\n context.fillStrokeShape(this);\n }\n }\n getSelfRect() {\n let points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n const start = data.points[4];\n const dTheta = data.points[5];\n const end = data.points[4] + dTheta;\n let inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n if (dTheta < 0) {\n for (let t = start - inc; t > end; t -= inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n else {\n for (let t = start + inc; t < end; t += inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n }\n else if (data.command === 'C') {\n for (let t = 0.0; t <= 1; t += 0.01) {\n const point = Path.getPointOnCubicBezier(t, data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]);\n points.push(point.x, point.y);\n }\n }\n else {\n points = points.concat(data.points);\n }\n });\n let minX = points[0];\n let maxX = points[0];\n let minY = points[1];\n let maxY = points[1];\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n if (!isNaN(x)) {\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n }\n if (!isNaN(y)) {\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getLength() {\n return this.pathLength;\n }\n getPointAtLength(length) {\n return Path.getPointAtLengthOfDataArray(length, this.dataArray);\n }\n static getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n static getPathLength(dataArray) {\n let pathLength = 0;\n for (let i = 0; i < dataArray.length; ++i) {\n pathLength += dataArray[i].pathLength;\n }\n return pathLength;\n }\n static getPointAtLengthOfDataArray(length, dataArray) {\n let points, i = 0, ii = dataArray.length;\n if (!ii) {\n return null;\n }\n while (i < ii && length > dataArray[i].pathLength) {\n length -= dataArray[i].pathLength;\n ++i;\n }\n if (i === ii) {\n points = dataArray[i - 1].points.slice(-2);\n return {\n x: points[0],\n y: points[1],\n };\n }\n if (length < 0.01) {\n points = dataArray[i].points.slice(0, 2);\n return {\n x: points[0],\n y: points[1],\n };\n }\n const cp = dataArray[i];\n const p = cp.points;\n switch (cp.command) {\n case 'L':\n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);\n case 'C':\n return Path.getPointOnCubicBezier((0, BezierFunctions_1.t2length)(length, Path.getPathLength(dataArray), (i) => {\n return (0, BezierFunctions_1.getCubicArcLength)([cp.start.x, p[0], p[2], p[4]], [cp.start.y, p[1], p[3], p[5]], i);\n }), cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);\n case 'Q':\n return Path.getPointOnQuadraticBezier((0, BezierFunctions_1.t2length)(length, Path.getPathLength(dataArray), (i) => {\n return (0, BezierFunctions_1.getQuadraticArcLength)([cp.start.x, p[0], p[2]], [cp.start.y, p[1], p[3]], i);\n }), cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6];\n theta += (dTheta * length) / cp.pathLength;\n return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);\n }\n return null;\n }\n static getPointOnLine(dist, P1x, P1y, P2x, P2y, fromX, fromY) {\n fromX = fromX !== null && fromX !== void 0 ? fromX : P1x;\n fromY = fromY !== null && fromY !== void 0 ? fromY : P1y;\n const len = this.getLineLength(P1x, P1y, P2x, P2y);\n if (len < 1e-10) {\n return { x: P1x, y: P1y };\n }\n if (P2x === P1x) {\n return { x: fromX, y: fromY + (P2y > P1y ? dist : -dist) };\n }\n const m = (P2y - P1y) / (P2x - P1x);\n const run = Math.sqrt((dist * dist) / (1 + m * m)) * (P2x < P1x ? -1 : 1);\n const rise = m * run;\n if (Math.abs(fromY - P1y - m * (fromX - P1x)) < 1e-10) {\n return { x: fromX + run, y: fromY + rise };\n }\n const u = ((fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y)) / (len * len);\n const ix = P1x + u * (P2x - P1x);\n const iy = P1y + u * (P2y - P1y);\n const pRise = this.getLineLength(fromX, fromY, ix, iy);\n const pRun = Math.sqrt(dist * dist - pRise * pRise);\n const adjustedRun = Math.sqrt((pRun * pRun) / (1 + m * m)) * (P2x < P1x ? -1 : 1);\n const adjustedRise = m * adjustedRun;\n return { x: ix + adjustedRun, y: iy + adjustedRise };\n }\n static getPointOnCubicBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n const x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n const y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnQuadraticBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y) {\n function QB1(t) {\n return t * t;\n }\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n const x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n const y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n const cosPsi = Math.cos(psi), sinPsi = Math.sin(psi);\n const pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta),\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi),\n };\n }\n static parsePathData(data) {\n if (!data) {\n return [];\n }\n let cs = data;\n const cc = [\n 'm',\n 'M',\n 'l',\n 'L',\n 'v',\n 'V',\n 'h',\n 'H',\n 'z',\n 'Z',\n 'c',\n 'C',\n 'q',\n 'Q',\n 't',\n 'T',\n 's',\n 'S',\n 'a',\n 'A',\n ];\n cs = cs.replace(new RegExp(' ', 'g'), ',');\n for (var n = 0; n < cc.length; n++) {\n cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n }\n const arr = cs.split('|');\n const ca = [];\n const coords = [];\n let cpx = 0;\n let cpy = 0;\n const re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n let match;\n for (n = 1; n < arr.length; n++) {\n let str = arr[n];\n let c = str.charAt(0);\n str = str.slice(1);\n coords.length = 0;\n while ((match = re.exec(str))) {\n coords.push(match[0]);\n }\n const p = [];\n for (let j = 0, jlen = coords.length; j < jlen; j++) {\n if (coords[j] === '00') {\n p.push(0, 0);\n continue;\n }\n const parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n p.push(parsed);\n }\n else {\n p.push(0);\n }\n }\n while (p.length > 0) {\n if (isNaN(p[0])) {\n break;\n }\n let cmd = '';\n let points = [];\n const startX = cpx, startY = cpy;\n var prevCmd, ctlPtx, ctlPty;\n var rx, ry, psi, fa, fs, x1, y1;\n switch (c) {\n case 'l':\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'L':\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'm':\n var dx = p.shift();\n var dy = p.shift();\n cpx += dx;\n cpy += dy;\n cmd = 'M';\n if (ca.length > 2 && ca[ca.length - 1].command === 'z') {\n for (let idx = ca.length - 2; idx >= 0; idx--) {\n if (ca[idx].command === 'M') {\n cpx = ca[idx].points[0] + dx;\n cpy = ca[idx].points[1] + dy;\n break;\n }\n }\n }\n points.push(cpx, cpy);\n c = 'l';\n break;\n case 'M':\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'M';\n points.push(cpx, cpy);\n c = 'L';\n break;\n case 'h':\n cpx += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'H':\n cpx = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'v':\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'V':\n cpy = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'C':\n points.push(p.shift(), p.shift(), p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'c':\n points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'Q':\n points.push(p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'q':\n points.push(cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n case 'a':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n }\n ca.push({\n command: cmd || c,\n points: points,\n start: {\n x: startX,\n y: startY,\n },\n pathLength: this.calcLength(startX, startY, cmd || c, points),\n });\n }\n if (c === 'z' || c === 'Z') {\n ca.push({\n command: 'z',\n points: [],\n start: undefined,\n pathLength: 0,\n });\n }\n }\n return ca;\n }\n static calcLength(x, y, cmd, points) {\n let len, p1, p2, t;\n const path = Path;\n switch (cmd) {\n case 'L':\n return path.getLineLength(x, y, points[0], points[1]);\n case 'C':\n return (0, BezierFunctions_1.getCubicArcLength)([x, points[0], points[2], points[4]], [y, points[1], points[3], points[5]], 1);\n case 'Q':\n return (0, BezierFunctions_1.getQuadraticArcLength)([x, points[0], points[2]], [y, points[1], points[3]], 1);\n case 'A':\n len = 0.0;\n var start = points[4];\n var dTheta = points[5];\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n if (dTheta < 0) {\n for (t = start - inc; t > end; t -= inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n else {\n for (t = start + inc; t < end; t += inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n return 0;\n }\n static convertEndpointToCenterParameterization(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {\n const psi = psiDeg * (Math.PI / 180.0);\n const xp = (Math.cos(psi) * (x1 - x2)) / 2.0 + (Math.sin(psi) * (y1 - y2)) / 2.0;\n const yp = (-1 * Math.sin(psi) * (x1 - x2)) / 2.0 +\n (Math.cos(psi) * (y1 - y2)) / 2.0;\n const lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n let f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) /\n (rx * rx * (yp * yp) + ry * ry * (xp * xp)));\n if (fa === fs) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n const cxp = (f * rx * yp) / ry;\n const cyp = (f * -ry * xp) / rx;\n const cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n const cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n const vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n const vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n const vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n const theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n const u = [(xp - cxp) / rx, (yp - cyp) / ry];\n const v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n let dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return [cx, cy, rx, ry, theta, dTheta, psi, fs];\n }\n}\nexports.Path = Path;\nPath.prototype.className = 'Path';\nPath.prototype._attrsAffectingSize = ['data'];\n(0, Global_1._registerNode)(Path);\nFactory_1.Factory.addGetterSetter(Path, 'data');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Arrow = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Line_1 = require(\"./Line\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst Path_1 = require(\"./Path\");\nclass Arrow extends Line_1.Line {\n _sceneFunc(ctx) {\n super._sceneFunc(ctx);\n const PI2 = Math.PI * 2;\n const points = this.points();\n let tp = points;\n const fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n const length = this.pointerLength();\n const n = points.length;\n let dx, dy;\n if (fromTension) {\n const lp = [\n tp[tp.length - 4],\n tp[tp.length - 3],\n tp[tp.length - 2],\n tp[tp.length - 1],\n points[n - 2],\n points[n - 1],\n ];\n const lastLength = Path_1.Path.calcLength(tp[tp.length - 4], tp[tp.length - 3], 'C', lp);\n const previous = Path_1.Path.getPointOnQuadraticBezier(Math.min(1, 1 - length / lastLength), lp[0], lp[1], lp[2], lp[3], lp[4], lp[5]);\n dx = points[n - 2] - previous.x;\n dy = points[n - 1] - previous.y;\n }\n else {\n dx = points[n - 2] - points[n - 4];\n dy = points[n - 1] - points[n - 3];\n }\n const radians = (Math.atan2(dy, dx) + PI2) % PI2;\n const width = this.pointerWidth();\n if (this.pointerAtEnding()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[n - 2], points[n - 1]);\n ctx.rotate(radians);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n if (this.pointerAtBeginning()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[0], points[1]);\n if (fromTension) {\n dx = (tp[0] + tp[2]) / 2 - points[0];\n dy = (tp[1] + tp[3]) / 2 - points[1];\n }\n else {\n dx = points[2] - points[0];\n dy = points[3] - points[1];\n }\n ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n }\n __fillStroke(ctx) {\n const isDashEnabled = this.dashEnabled();\n if (isDashEnabled) {\n this.attrs.dashEnabled = false;\n ctx.setLineDash([]);\n }\n ctx.fillStrokeShape(this);\n if (isDashEnabled) {\n this.attrs.dashEnabled = true;\n }\n }\n getSelfRect() {\n const lineRect = super.getSelfRect();\n const offset = this.pointerWidth() / 2;\n return {\n x: lineRect.x,\n y: lineRect.y - offset,\n width: lineRect.width,\n height: lineRect.height + offset * 2,\n };\n }\n}\nexports.Arrow = Arrow;\nArrow.prototype.className = 'Arrow';\n(0, Global_1._registerNode)(Arrow);\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerLength', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerWidth', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerAtBeginning', false);\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerAtEnding', true);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Circle = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Circle extends Shape_1.Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.attrs.radius || 0, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n if (this.radius() !== width / 2) {\n this.radius(width / 2);\n }\n }\n setHeight(height) {\n if (this.radius() !== height / 2) {\n this.radius(height / 2);\n }\n }\n}\nexports.Circle = Circle;\nCircle.prototype._centroid = true;\nCircle.prototype.className = 'Circle';\nCircle.prototype._attrsAffectingSize = ['radius'];\n(0, Global_1._registerNode)(Circle);\nFactory_1.Factory.addGetterSetter(Circle, 'radius', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ellipse = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Ellipse extends Shape_1.Shape {\n _sceneFunc(context) {\n const rx = this.radiusX(), ry = this.radiusY();\n context.beginPath();\n context.save();\n if (rx !== ry) {\n context.scale(1, ry / rx);\n }\n context.arc(0, 0, rx, 0, Math.PI * 2, false);\n context.restore();\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radiusX() * 2;\n }\n getHeight() {\n return this.radiusY() * 2;\n }\n setWidth(width) {\n this.radiusX(width / 2);\n }\n setHeight(height) {\n this.radiusY(height / 2);\n }\n}\nexports.Ellipse = Ellipse;\nEllipse.prototype.className = 'Ellipse';\nEllipse.prototype._centroid = true;\nEllipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];\n(0, Global_1._registerNode)(Ellipse);\nFactory_1.Factory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusY', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Image = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nclass Image extends Shape_1.Shape {\n constructor(attrs) {\n super(attrs);\n this.on('imageChange.konva', () => {\n this._setImageLoad();\n });\n this._setImageLoad();\n }\n _setImageLoad() {\n const image = this.image();\n if (image && image.complete) {\n return;\n }\n if (image && image.readyState === 4) {\n return;\n }\n if (image && image['addEventListener']) {\n image['addEventListener']('load', () => {\n this._requestDraw();\n });\n }\n }\n _useBufferCanvas() {\n const hasCornerRadius = !!this.cornerRadius();\n const hasShadow = this.hasShadow();\n if (hasCornerRadius && hasShadow) {\n return true;\n }\n return super._useBufferCanvas(true);\n }\n _sceneFunc(context) {\n const width = this.getWidth();\n const height = this.getHeight();\n const cornerRadius = this.cornerRadius();\n const image = this.attrs.image;\n let params;\n if (image) {\n const cropWidth = this.attrs.cropWidth;\n const cropHeight = this.attrs.cropHeight;\n if (cropWidth && cropHeight) {\n params = [\n image,\n this.cropX(),\n this.cropY(),\n cropWidth,\n cropHeight,\n 0,\n 0,\n width,\n height,\n ];\n }\n else {\n params = [image, 0, 0, width, height];\n }\n }\n if (this.hasFill() || this.hasStroke() || cornerRadius) {\n context.beginPath();\n cornerRadius\n ? Util_1.Util.drawRoundedRectPath(context, width, height, cornerRadius)\n : context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (cornerRadius) {\n context.clip();\n }\n context.drawImage.apply(context, params);\n }\n }\n _hitFunc(context) {\n const width = this.width(), height = this.height(), cornerRadius = this.cornerRadius();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util_1.Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n var _a, _b;\n return (_a = this.attrs.width) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.width;\n }\n getHeight() {\n var _a, _b;\n return (_a = this.attrs.height) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.height;\n }\n static fromURL(url, callback, onError = null) {\n const img = Util_1.Util.createImageElement();\n img.onload = function () {\n const image = new Image({\n image: img,\n });\n callback(image);\n };\n img.onerror = onError;\n img.crossOrigin = 'Anonymous';\n img.src = url;\n }\n}\nexports.Image = Image;\nImage.prototype.className = 'Image';\n(0, Global_1._registerNode)(Image);\nFactory_1.Factory.addGetterSetter(Image, 'cornerRadius', 0, (0, Validators_1.getNumberOrArrayOfNumbersValidator)(4));\nFactory_1.Factory.addGetterSetter(Image, 'image');\nFactory_1.Factory.addComponentsGetterSetter(Image, 'crop', ['x', 'y', 'width', 'height']);\nFactory_1.Factory.addGetterSetter(Image, 'cropX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Image, 'cropY', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Image, 'cropWidth', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Image, 'cropHeight', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tag = exports.Label = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Group_1 = require(\"../Group\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst ATTR_CHANGE_LIST = [\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'padding',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'pointerDirection',\n 'pointerWidth',\n 'pointerHeight',\n], CHANGE_KONVA = 'Change.konva', NONE = 'none', UP = 'up', RIGHT = 'right', DOWN = 'down', LEFT = 'left', attrChangeListLen = ATTR_CHANGE_LIST.length;\nclass Label extends Group_1.Group {\n constructor(config) {\n super(config);\n this.on('add.konva', function (evt) {\n this._addListeners(evt.child);\n this._sync();\n });\n }\n getText() {\n return this.find('Text')[0];\n }\n getTag() {\n return this.find('Tag')[0];\n }\n _addListeners(text) {\n let that = this, n;\n const func = function () {\n that._sync();\n };\n for (n = 0; n < attrChangeListLen; n++) {\n text.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, func);\n }\n }\n getWidth() {\n return this.getText().width();\n }\n getHeight() {\n return this.getText().height();\n }\n _sync() {\n let text = this.getText(), tag = this.getTag(), width, height, pointerDirection, pointerWidth, x, y, pointerHeight;\n if (text && tag) {\n width = text.width();\n height = text.height();\n pointerDirection = tag.pointerDirection();\n pointerWidth = tag.pointerWidth();\n pointerHeight = tag.pointerHeight();\n x = 0;\n y = 0;\n switch (pointerDirection) {\n case UP:\n x = width / 2;\n y = -1 * pointerHeight;\n break;\n case RIGHT:\n x = width + pointerWidth;\n y = height / 2;\n break;\n case DOWN:\n x = width / 2;\n y = height + pointerHeight;\n break;\n case LEFT:\n x = -1 * pointerWidth;\n y = height / 2;\n break;\n }\n tag.setAttrs({\n x: -1 * x,\n y: -1 * y,\n width: width,\n height: height,\n });\n text.setAttrs({\n x: -1 * x,\n y: -1 * y,\n });\n }\n }\n}\nexports.Label = Label;\nLabel.prototype.className = 'Label';\n(0, Global_1._registerNode)(Label);\nclass Tag extends Shape_1.Shape {\n _sceneFunc(context) {\n const width = this.width(), height = this.height(), pointerDirection = this.pointerDirection(), pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), cornerRadius = this.cornerRadius();\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.beginPath();\n context.moveTo(topLeft, 0);\n if (pointerDirection === UP) {\n context.lineTo((width - pointerWidth) / 2, 0);\n context.lineTo(width / 2, -1 * pointerHeight);\n context.lineTo((width + pointerWidth) / 2, 0);\n }\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n if (pointerDirection === RIGHT) {\n context.lineTo(width, (height - pointerHeight) / 2);\n context.lineTo(width + pointerWidth, height / 2);\n context.lineTo(width, (height + pointerHeight) / 2);\n }\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n if (pointerDirection === DOWN) {\n context.lineTo((width + pointerWidth) / 2, height);\n context.lineTo(width / 2, height + pointerHeight);\n context.lineTo((width - pointerWidth) / 2, height);\n }\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n if (pointerDirection === LEFT) {\n context.lineTo(0, (height + pointerHeight) / 2);\n context.lineTo(-1 * pointerWidth, height / 2);\n context.lineTo(0, (height - pointerHeight) / 2);\n }\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getSelfRect() {\n let x = 0, y = 0, pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), direction = this.pointerDirection(), width = this.width(), height = this.height();\n if (direction === UP) {\n y -= pointerHeight;\n height += pointerHeight;\n }\n else if (direction === DOWN) {\n height += pointerHeight;\n }\n else if (direction === LEFT) {\n x -= pointerWidth * 1.5;\n width += pointerWidth;\n }\n else if (direction === RIGHT) {\n width += pointerWidth * 1.5;\n }\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n };\n }\n}\nexports.Tag = Tag;\nTag.prototype.className = 'Tag';\n(0, Global_1._registerNode)(Tag);\nFactory_1.Factory.addGetterSetter(Tag, 'pointerDirection', NONE);\nFactory_1.Factory.addGetterSetter(Tag, 'pointerWidth', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Tag, 'pointerHeight', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Tag, 'cornerRadius', 0, (0, Validators_1.getNumberOrArrayOfNumbersValidator)(4));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rect = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Util_1 = require(\"../Util\");\nconst Validators_1 = require(\"../Validators\");\nclass Rect extends Shape_1.Shape {\n _sceneFunc(context) {\n const cornerRadius = this.cornerRadius(), width = this.width(), height = this.height();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util_1.Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n}\nexports.Rect = Rect;\nRect.prototype.className = 'Rect';\n(0, Global_1._registerNode)(Rect);\nFactory_1.Factory.addGetterSetter(Rect, 'cornerRadius', 0, (0, Validators_1.getNumberOrArrayOfNumbersValidator)(4));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegularPolygon = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass RegularPolygon extends Shape_1.Shape {\n _sceneFunc(context) {\n const points = this._getPoints();\n context.beginPath();\n context.moveTo(points[0].x, points[0].y);\n for (let n = 1; n < points.length; n++) {\n context.lineTo(points[n].x, points[n].y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n _getPoints() {\n const sides = this.attrs.sides;\n const radius = this.attrs.radius || 0;\n const points = [];\n for (let n = 0; n < sides; n++) {\n points.push({\n x: radius * Math.sin((n * 2 * Math.PI) / sides),\n y: -1 * radius * Math.cos((n * 2 * Math.PI) / sides),\n });\n }\n return points;\n }\n getSelfRect() {\n const points = this._getPoints();\n let minX = points[0].x;\n let maxX = points[0].y;\n let minY = points[0].x;\n let maxY = points[0].y;\n points.forEach((point) => {\n minX = Math.min(minX, point.x);\n maxX = Math.max(maxX, point.x);\n minY = Math.min(minY, point.y);\n maxY = Math.max(maxY, point.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nexports.RegularPolygon = RegularPolygon;\nRegularPolygon.prototype.className = 'RegularPolygon';\nRegularPolygon.prototype._centroid = true;\nRegularPolygon.prototype._attrsAffectingSize = ['radius'];\n(0, Global_1._registerNode)(RegularPolygon);\nFactory_1.Factory.addGetterSetter(RegularPolygon, 'radius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(RegularPolygon, 'sides', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ring = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst PIx2 = Math.PI * 2;\nclass Ring extends Shape_1.Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.innerRadius(), 0, PIx2, false);\n context.moveTo(this.outerRadius(), 0);\n context.arc(0, 0, this.outerRadius(), PIx2, 0, true);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nexports.Ring = Ring;\nRing.prototype.className = 'Ring';\nRing.prototype._centroid = true;\nRing.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n(0, Global_1._registerNode)(Ring);\nFactory_1.Factory.addGetterSetter(Ring, 'innerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Ring, 'outerRadius', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sprite = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Animation_1 = require(\"../Animation\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Sprite extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this._updated = true;\n this.anim = new Animation_1.Animation(() => {\n const updated = this._updated;\n this._updated = false;\n return updated;\n });\n this.on('animationChange.konva', function () {\n this.frameIndex(0);\n });\n this.on('frameIndexChange.konva', function () {\n this._updated = true;\n });\n this.on('frameRateChange.konva', function () {\n if (!this.anim.isRunning()) {\n return;\n }\n clearInterval(this.interval);\n this._setInterval();\n });\n }\n _sceneFunc(context) {\n const anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), x = set[ix4 + 0], y = set[ix4 + 1], width = set[ix4 + 2], height = set[ix4 + 3], image = this.image();\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (offsets) {\n const offset = offsets[anim], ix2 = index * 2;\n context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.drawImage(image, x, y, width, height, 0, 0, width, height);\n }\n }\n }\n _hitFunc(context) {\n const anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), width = set[ix4 + 2], height = set[ix4 + 3];\n context.beginPath();\n if (offsets) {\n const offset = offsets[anim];\n const ix2 = index * 2;\n context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.rect(0, 0, width, height);\n }\n context.closePath();\n context.fillShape(this);\n }\n _useBufferCanvas() {\n return super._useBufferCanvas(true);\n }\n _setInterval() {\n const that = this;\n this.interval = setInterval(function () {\n that._updateIndex();\n }, 1000 / this.frameRate());\n }\n start() {\n if (this.isRunning()) {\n return;\n }\n const layer = this.getLayer();\n this.anim.setLayers(layer);\n this._setInterval();\n this.anim.start();\n }\n stop() {\n this.anim.stop();\n clearInterval(this.interval);\n }\n isRunning() {\n return this.anim.isRunning();\n }\n _updateIndex() {\n const index = this.frameIndex(), animation = this.animation(), animations = this.animations(), anim = animations[animation], len = anim.length / 4;\n if (index < len - 1) {\n this.frameIndex(index + 1);\n }\n else {\n this.frameIndex(0);\n }\n }\n}\nexports.Sprite = Sprite;\nSprite.prototype.className = 'Sprite';\n(0, Global_1._registerNode)(Sprite);\nFactory_1.Factory.addGetterSetter(Sprite, 'animation');\nFactory_1.Factory.addGetterSetter(Sprite, 'animations');\nFactory_1.Factory.addGetterSetter(Sprite, 'frameOffsets');\nFactory_1.Factory.addGetterSetter(Sprite, 'image');\nFactory_1.Factory.addGetterSetter(Sprite, 'frameIndex', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Sprite, 'frameRate', 17, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.backCompat(Sprite, {\n index: 'frameIndex',\n getIndex: 'getFrameIndex',\n setIndex: 'setFrameIndex',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Star = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Star extends Shape_1.Shape {\n _sceneFunc(context) {\n const innerRadius = this.innerRadius(), outerRadius = this.outerRadius(), numPoints = this.numPoints();\n context.beginPath();\n context.moveTo(0, 0 - outerRadius);\n for (let n = 1; n < numPoints * 2; n++) {\n const radius = n % 2 === 0 ? outerRadius : innerRadius;\n const x = radius * Math.sin((n * Math.PI) / numPoints);\n const y = -1 * radius * Math.cos((n * Math.PI) / numPoints);\n context.lineTo(x, y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nexports.Star = Star;\nStar.prototype.className = 'Star';\nStar.prototype._centroid = true;\nStar.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n(0, Global_1._registerNode)(Star);\nFactory_1.Factory.addGetterSetter(Star, 'numPoints', 5, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Star, 'innerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Star, 'outerRadius', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Text = void 0;\nexports.stringToArray = stringToArray;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_2 = require(\"../Global\");\nfunction stringToArray(string) {\n return [...string].reduce((acc, char, index, array) => {\n if (/\\p{Emoji}/u.test(char)) {\n const nextChar = array[index + 1];\n if (nextChar && /\\p{Emoji_Modifier}|\\u200D/u.test(nextChar)) {\n acc.push(char + nextChar);\n array[index + 1] = '';\n }\n else {\n acc.push(char);\n }\n }\n else if (/\\p{Regional_Indicator}{2}/u.test(char + (array[index + 1] || ''))) {\n acc.push(char + array[index + 1]);\n }\n else if (index > 0 && /\\p{Mn}|\\p{Me}|\\p{Mc}/u.test(char)) {\n acc[acc.length - 1] += char;\n }\n else if (char) {\n acc.push(char);\n }\n return acc;\n }, []);\n}\nconst AUTO = 'auto', CENTER = 'center', INHERIT = 'inherit', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', RTL = 'rtl', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [\n 'direction',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontVariant',\n 'padding',\n 'align',\n 'verticalAlign',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'wrap',\n 'ellipsis',\n 'letterSpacing',\n], attrChangeListLen = ATTR_CHANGE_LIST.length;\nfunction normalizeFontFamily(fontFamily) {\n return fontFamily\n .split(',')\n .map((family) => {\n family = family.trim();\n const hasSpace = family.indexOf(' ') >= 0;\n const hasQuotes = family.indexOf('\"') >= 0 || family.indexOf(\"'\") >= 0;\n if (hasSpace && !hasQuotes) {\n family = `\"${family}\"`;\n }\n return family;\n })\n .join(', ');\n}\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext(CONTEXT_2D);\n return dummyContext;\n}\nfunction _fillFunc(context) {\n context.fillText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction _strokeFunc(context) {\n context.setAttr('miterLimit', 2);\n context.strokeText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction checkDefaultFill(config) {\n config = config || {};\n if (!config.fillLinearGradientColorStops &&\n !config.fillRadialGradientColorStops &&\n !config.fillPatternImage) {\n config.fill = config.fill || 'black';\n }\n return config;\n}\nclass Text extends Shape_1.Shape {\n constructor(config) {\n super(checkDefaultFill(config));\n this._partialTextX = 0;\n this._partialTextY = 0;\n for (let n = 0; n < attrChangeListLen; n++) {\n this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, this._setTextData);\n }\n this._setTextData();\n }\n _sceneFunc(context) {\n const textArr = this.textArr, textArrLen = textArr.length;\n if (!this.text()) {\n return;\n }\n let padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), direction = this.direction(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;\n direction = direction === INHERIT ? context.direction : direction;\n let translateY = lineHeightPx / 2;\n let baseline = MIDDLE;\n if (Global_1.Konva._fixTextRendering) {\n const metrics = this.measureSize('M');\n baseline = 'alphabetic';\n translateY =\n (metrics.fontBoundingBoxAscent - metrics.fontBoundingBoxDescent) / 2 +\n lineHeightPx / 2;\n }\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n if (direction === RTL) {\n context.setAttr('direction', direction);\n }\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', baseline);\n context.setAttr('textAlign', LEFT);\n if (verticalAlign === MIDDLE) {\n alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;\n }\n else if (verticalAlign === BOTTOM) {\n alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;\n }\n context.translate(padding, alignY + padding);\n for (n = 0; n < textArrLen; n++) {\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n var obj = textArr[n], text = obj.text, width = obj.width, lastLine = obj.lastInParagraph, spacesNumber, oneWord, lineWidth;\n context.save();\n if (align === RIGHT) {\n lineTranslateX += totalWidth - width - padding * 2;\n }\n else if (align === CENTER) {\n lineTranslateX += (totalWidth - width - padding * 2) / 2;\n }\n if (shouldUnderline) {\n context.save();\n context.beginPath();\n const yOffset = Global_1.Konva._fixTextRendering\n ? Math.round(fontSize / 4)\n : Math.round(fontSize / 2);\n const x = lineTranslateX;\n const y = translateY + lineTranslateY + yOffset;\n context.moveTo(x, y);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && !lastLine ? totalWidth - padding * 2 : width;\n context.lineTo(x + Math.round(lineWidth), y);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n if (shouldLineThrough) {\n context.save();\n context.beginPath();\n const yOffset = Global_1.Konva._fixTextRendering ? -Math.round(fontSize / 4) : 0;\n context.moveTo(lineTranslateX, translateY + lineTranslateY + yOffset);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && !lastLine ? totalWidth - padding * 2 : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY + yOffset);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n if (direction !== RTL && (letterSpacing !== 0 || align === JUSTIFY)) {\n spacesNumber = text.split(' ').length - 1;\n const array = stringToArray(text);\n for (let li = 0; li < array.length; li++) {\n const letter = array[li];\n if (letter === ' ' && !lastLine && align === JUSTIFY) {\n lineTranslateX += (totalWidth - padding * 2 - width) / spacesNumber;\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = letter;\n context.fillStrokeShape(this);\n lineTranslateX += this.measureSize(letter).width + letterSpacing;\n }\n }\n else {\n if (letterSpacing !== 0) {\n context.setAttr('letterSpacing', `${letterSpacing}px`);\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = text;\n context.fillStrokeShape(this);\n }\n context.restore();\n if (textArrLen > 1) {\n translateY += lineHeightPx;\n }\n }\n }\n _hitFunc(context) {\n const width = this.getWidth(), height = this.getHeight();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n setText(text) {\n const str = Util_1.Util._isString(text)\n ? text\n : text === null || text === undefined\n ? ''\n : text + '';\n this._setAttr(TEXT, str);\n return this;\n }\n getWidth() {\n const isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n }\n getHeight() {\n const isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;\n return isAuto\n ? this.fontSize() * this.textArr.length * this.lineHeight() +\n this.padding() * 2\n : this.attrs.height;\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util_1.Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n measureSize(text) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n let _context = getDummyContext(), fontSize = this.fontSize(), metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n const scaleFactor = fontSize / 100;\n return {\n actualBoundingBoxAscent: (_a = metrics.actualBoundingBoxAscent) !== null && _a !== void 0 ? _a : 71.58203125 * scaleFactor,\n actualBoundingBoxDescent: (_b = metrics.actualBoundingBoxDescent) !== null && _b !== void 0 ? _b : 0,\n actualBoundingBoxLeft: (_c = metrics.actualBoundingBoxLeft) !== null && _c !== void 0 ? _c : -7.421875 * scaleFactor,\n actualBoundingBoxRight: (_d = metrics.actualBoundingBoxRight) !== null && _d !== void 0 ? _d : 75.732421875 * scaleFactor,\n alphabeticBaseline: (_e = metrics.alphabeticBaseline) !== null && _e !== void 0 ? _e : 0,\n emHeightAscent: (_f = metrics.emHeightAscent) !== null && _f !== void 0 ? _f : 100 * scaleFactor,\n emHeightDescent: (_g = metrics.emHeightDescent) !== null && _g !== void 0 ? _g : -20 * scaleFactor,\n fontBoundingBoxAscent: (_h = metrics.fontBoundingBoxAscent) !== null && _h !== void 0 ? _h : 91 * scaleFactor,\n fontBoundingBoxDescent: (_j = metrics.fontBoundingBoxDescent) !== null && _j !== void 0 ? _j : 21 * scaleFactor,\n hangingBaseline: (_k = metrics.hangingBaseline) !== null && _k !== void 0 ? _k : 72.80000305175781 * scaleFactor,\n ideographicBaseline: (_l = metrics.ideographicBaseline) !== null && _l !== void 0 ? _l : -21 * scaleFactor,\n width: metrics.width,\n height: fontSize,\n };\n }\n _getContextFont() {\n return (this.fontStyle() +\n SPACE +\n this.fontVariant() +\n SPACE +\n (this.fontSize() + PX_SPACE) +\n normalizeFontFamily(this.fontFamily()));\n }\n _addTextLine(line) {\n const align = this.align();\n if (align === JUSTIFY) {\n line = line.trim();\n }\n const width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width,\n lastInParagraph: false,\n });\n }\n _getTextWidth(text) {\n const letterSpacing = this.letterSpacing();\n const length = text.length;\n return getDummyContext().measureText(text).width + letterSpacing * length;\n }\n _setTextData() {\n let lines = this.text().split('\\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis();\n this.textArr = [];\n getDummyContext().font = this._getContextFont();\n const additionalWidth = shouldAddEllipsis\n ? this._getTextWidth(ELLIPSIS)\n : 0;\n for (let i = 0, max = lines.length; i < max; ++i) {\n let line = lines[i];\n let lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n let low = 0, high = stringToArray(line).length, match = '', matchWidth = 0;\n while (low < high) {\n const mid = (low + high) >>> 1, lineArray = stringToArray(line), substr = lineArray.slice(0, mid + 1).join(''), substrWidth = this._getTextWidth(substr) + additionalWidth;\n if (substrWidth <= maxWidth) {\n low = mid + 1;\n match = substr;\n matchWidth = substrWidth;\n }\n else {\n high = mid;\n }\n }\n if (match) {\n if (wrapAtWord) {\n const lineArray = stringToArray(line);\n const matchArray = stringToArray(match);\n const nextChar = lineArray[matchArray.length];\n const nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n let wrapIndex;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = matchArray.length;\n }\n else {\n const lastSpaceIndex = matchArray.lastIndexOf(SPACE);\n const lastDashIndex = matchArray.lastIndexOf(DASH);\n wrapIndex = Math.max(lastSpaceIndex, lastDashIndex) + 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = lineArray.slice(0, low).join('');\n matchWidth = this._getTextWidth(match);\n }\n }\n match = match.trimRight();\n this._addTextLine(match);\n textWidth = Math.max(textWidth, matchWidth);\n currentHeightPx += lineHeightPx;\n const shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);\n if (shouldHandleEllipsis) {\n this._tryToAddEllipsisToLastLine();\n break;\n }\n const lineArray = stringToArray(line);\n line = lineArray.slice(low).join('').trimLeft();\n if (line.length > 0) {\n lineWidth = this._getTextWidth(line);\n if (lineWidth <= maxWidth) {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n break;\n }\n }\n }\n else {\n break;\n }\n }\n }\n else {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n if (this._shouldHandleEllipsis(currentHeightPx) && i < max - 1) {\n this._tryToAddEllipsisToLastLine();\n }\n }\n if (this.textArr[this.textArr.length - 1]) {\n this.textArr[this.textArr.length - 1].lastInParagraph = true;\n }\n if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n }\n this.textHeight = fontSize;\n this.textWidth = textWidth;\n }\n _shouldHandleEllipsis(currentHeightPx) {\n const fontSize = +this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, height = this.attrs.height, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxHeightPx = height - padding * 2, wrap = this.wrap(), shouldWrap = wrap !== NONE;\n return (!shouldWrap ||\n (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx));\n }\n _tryToAddEllipsisToLastLine() {\n const width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();\n const lastLine = this.textArr[this.textArr.length - 1];\n if (!lastLine || !shouldAddEllipsis) {\n return;\n }\n if (fixedWidth) {\n const haveSpace = this._getTextWidth(lastLine.text + ELLIPSIS) < maxWidth;\n if (!haveSpace) {\n lastLine.text = lastLine.text.slice(0, lastLine.text.length - 3);\n }\n }\n this.textArr.splice(this.textArr.length - 1, 1);\n this._addTextLine(lastLine.text + ELLIPSIS);\n }\n getStrokeScaleEnabled() {\n return true;\n }\n _useBufferCanvas() {\n const hasLine = this.textDecoration().indexOf('underline') !== -1 ||\n this.textDecoration().indexOf('line-through') !== -1;\n const hasShadow = this.hasShadow();\n if (hasLine && hasShadow) {\n return true;\n }\n return super._useBufferCanvas();\n }\n}\nexports.Text = Text;\nText.prototype._fillFunc = _fillFunc;\nText.prototype._strokeFunc = _strokeFunc;\nText.prototype.className = TEXT_UPPER;\nText.prototype._attrsAffectingSize = [\n 'text',\n 'fontSize',\n 'padding',\n 'wrap',\n 'lineHeight',\n 'letterSpacing',\n];\n(0, Global_2._registerNode)(Text);\nFactory_1.Factory.overWriteSetter(Text, 'width', (0, Validators_1.getNumberOrAutoValidator)());\nFactory_1.Factory.overWriteSetter(Text, 'height', (0, Validators_1.getNumberOrAutoValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'direction', INHERIT);\nFactory_1.Factory.addGetterSetter(Text, 'fontFamily', 'Arial');\nFactory_1.Factory.addGetterSetter(Text, 'fontSize', 12, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'fontStyle', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'fontVariant', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'padding', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'align', LEFT);\nFactory_1.Factory.addGetterSetter(Text, 'verticalAlign', TOP);\nFactory_1.Factory.addGetterSetter(Text, 'lineHeight', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'wrap', WORD);\nFactory_1.Factory.addGetterSetter(Text, 'ellipsis', false, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'letterSpacing', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'text', '', (0, Validators_1.getStringValidator)());\nFactory_1.Factory.addGetterSetter(Text, 'textDecoration', '');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TextPath = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Path_1 = require(\"./Path\");\nconst Text_1 = require(\"./Text\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst EMPTY_STRING = '', NORMAL = 'normal';\nfunction _fillFunc(context) {\n context.fillText(this.partialText, 0, 0);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this.partialText, 0, 0);\n}\nclass TextPath extends Shape_1.Shape {\n constructor(config) {\n super(config);\n this.dummyCanvas = Util_1.Util.createCanvasElement();\n this.dataArray = [];\n this._readDataAttribute();\n this.on('dataChange.konva', function () {\n this._readDataAttribute();\n this._setTextData();\n });\n this.on('textChange.konva alignChange.konva letterSpacingChange.konva kerningFuncChange.konva fontSizeChange.konva fontFamilyChange.konva', this._setTextData);\n this._setTextData();\n }\n _getTextPathLength() {\n return Path_1.Path.getPathLength(this.dataArray);\n }\n _getPointAtLength(length) {\n if (!this.attrs.data) {\n return null;\n }\n const totalLength = this.pathLength;\n if (length - 1 > totalLength) {\n return null;\n }\n return Path_1.Path.getPointAtLengthOfDataArray(length, this.dataArray);\n }\n _readDataAttribute() {\n this.dataArray = Path_1.Path.parsePathData(this.attrs.data);\n this.pathLength = this._getTextPathLength();\n }\n _sceneFunc(context) {\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', this.textBaseline());\n context.setAttr('textAlign', 'left');\n context.save();\n const textDecoration = this.textDecoration();\n const fill = this.fill();\n const fontSize = this.fontSize();\n const glyphInfo = this.glyphInfo;\n if (textDecoration === 'underline') {\n context.beginPath();\n }\n for (let i = 0; i < glyphInfo.length; i++) {\n context.save();\n const p0 = glyphInfo[i].p0;\n context.translate(p0.x, p0.y);\n context.rotate(glyphInfo[i].rotation);\n this.partialText = glyphInfo[i].text;\n context.fillStrokeShape(this);\n if (textDecoration === 'underline') {\n if (i === 0) {\n context.moveTo(0, fontSize / 2 + 1);\n }\n context.lineTo(fontSize, fontSize / 2 + 1);\n }\n context.restore();\n }\n if (textDecoration === 'underline') {\n context.strokeStyle = fill;\n context.lineWidth = fontSize / 20;\n context.stroke();\n }\n context.restore();\n }\n _hitFunc(context) {\n context.beginPath();\n const glyphInfo = this.glyphInfo;\n if (glyphInfo.length >= 1) {\n const p0 = glyphInfo[0].p0;\n context.moveTo(p0.x, p0.y);\n }\n for (let i = 0; i < glyphInfo.length; i++) {\n const p1 = glyphInfo[i].p1;\n context.lineTo(p1.x, p1.y);\n }\n context.setAttr('lineWidth', this.fontSize());\n context.setAttr('strokeStyle', this.colorKey);\n context.stroke();\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util_1.Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n setText(text) {\n return Text_1.Text.prototype.setText.call(this, text);\n }\n _getContextFont() {\n return Text_1.Text.prototype._getContextFont.call(this);\n }\n _getTextSize(text) {\n const dummyCanvas = this.dummyCanvas;\n const _context = dummyCanvas.getContext('2d');\n _context.save();\n _context.font = this._getContextFont();\n const metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: parseInt(`${this.fontSize()}`, 10),\n };\n }\n _setTextData() {\n const { width, height } = this._getTextSize(this.attrs.text);\n this.textWidth = width;\n this.textHeight = height;\n this.glyphInfo = [];\n if (!this.attrs.data) {\n return null;\n }\n const letterSpacing = this.letterSpacing();\n const align = this.align();\n const kerningFunc = this.kerningFunc();\n const textWidth = Math.max(this.textWidth + ((this.attrs.text || '').length - 1) * letterSpacing, 0);\n let offset = 0;\n if (align === 'center') {\n offset = Math.max(0, this.pathLength / 2 - textWidth / 2);\n }\n if (align === 'right') {\n offset = Math.max(0, this.pathLength - textWidth);\n }\n const charArr = (0, Text_1.stringToArray)(this.text());\n let offsetToGlyph = offset;\n for (let i = 0; i < charArr.length; i++) {\n const charStartPoint = this._getPointAtLength(offsetToGlyph);\n if (!charStartPoint)\n return;\n let glyphWidth = this._getTextSize(charArr[i]).width + letterSpacing;\n if (charArr[i] === ' ' && align === 'justify') {\n const numberOfSpaces = this.text().split(' ').length - 1;\n glyphWidth += (this.pathLength - textWidth) / numberOfSpaces;\n }\n const charEndPoint = this._getPointAtLength(offsetToGlyph + glyphWidth);\n if (!charEndPoint)\n return;\n const width = Path_1.Path.getLineLength(charStartPoint.x, charStartPoint.y, charEndPoint.x, charEndPoint.y);\n let kern = 0;\n if (kerningFunc) {\n try {\n kern = kerningFunc(charArr[i - 1], charArr[i]) * this.fontSize();\n }\n catch (e) {\n kern = 0;\n }\n }\n charStartPoint.x += kern;\n charEndPoint.x += kern;\n this.textWidth += kern;\n const midpoint = Path_1.Path.getPointOnLine(kern + width / 2.0, charStartPoint.x, charStartPoint.y, charEndPoint.x, charEndPoint.y);\n const rotation = Math.atan2(charEndPoint.y - charStartPoint.y, charEndPoint.x - charStartPoint.x);\n this.glyphInfo.push({\n transposeX: midpoint.x,\n transposeY: midpoint.y,\n text: charArr[i],\n rotation: rotation,\n p0: charStartPoint,\n p1: charEndPoint,\n });\n offsetToGlyph += glyphWidth;\n }\n }\n getSelfRect() {\n if (!this.glyphInfo.length) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n const points = [];\n this.glyphInfo.forEach(function (info) {\n points.push(info.p0.x);\n points.push(info.p0.y);\n points.push(info.p1.x);\n points.push(info.p1.y);\n });\n let minX = points[0] || 0;\n let maxX = points[0] || 0;\n let minY = points[1] || 0;\n let maxY = points[1] || 0;\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n const fontSize = this.fontSize();\n return {\n x: minX - fontSize / 2,\n y: minY - fontSize / 2,\n width: maxX - minX + fontSize,\n height: maxY - minY + fontSize,\n };\n }\n destroy() {\n Util_1.Util.releaseCanvas(this.dummyCanvas);\n return super.destroy();\n }\n}\nexports.TextPath = TextPath;\nTextPath.prototype._fillFunc = _fillFunc;\nTextPath.prototype._strokeFunc = _strokeFunc;\nTextPath.prototype._fillFuncHit = _fillFunc;\nTextPath.prototype._strokeFuncHit = _strokeFunc;\nTextPath.prototype.className = 'TextPath';\nTextPath.prototype._attrsAffectingSize = ['text', 'fontSize', 'data'];\n(0, Global_1._registerNode)(TextPath);\nFactory_1.Factory.addGetterSetter(TextPath, 'data');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontFamily', 'Arial');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontSize', 12, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(TextPath, 'fontStyle', NORMAL);\nFactory_1.Factory.addGetterSetter(TextPath, 'align', 'left');\nFactory_1.Factory.addGetterSetter(TextPath, 'letterSpacing', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(TextPath, 'textBaseline', 'middle');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontVariant', NORMAL);\nFactory_1.Factory.addGetterSetter(TextPath, 'text', EMPTY_STRING);\nFactory_1.Factory.addGetterSetter(TextPath, 'textDecoration', '');\nFactory_1.Factory.addGetterSetter(TextPath, 'kerningFunc', undefined);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Transformer = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Shape_1 = require(\"../Shape\");\nconst Rect_1 = require(\"./Rect\");\nconst Group_1 = require(\"../Group\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_2 = require(\"../Global\");\nconst EVENTS_NAME = 'tr-konva';\nconst ATTR_CHANGE_LIST = [\n 'resizeEnabledChange',\n 'rotateAnchorOffsetChange',\n 'rotateEnabledChange',\n 'enabledAnchorsChange',\n 'anchorSizeChange',\n 'borderEnabledChange',\n 'borderStrokeChange',\n 'borderStrokeWidthChange',\n 'borderDashChange',\n 'anchorStrokeChange',\n 'anchorStrokeWidthChange',\n 'anchorFillChange',\n 'anchorCornerRadiusChange',\n 'ignoreStrokeChange',\n 'anchorStyleFuncChange',\n]\n .map((e) => e + `.${EVENTS_NAME}`)\n .join(' ');\nconst NODES_RECT = 'nodesRect';\nconst TRANSFORM_CHANGE_STR = [\n 'widthChange',\n 'heightChange',\n 'scaleXChange',\n 'scaleYChange',\n 'skewXChange',\n 'skewYChange',\n 'rotationChange',\n 'offsetXChange',\n 'offsetYChange',\n 'transformsEnabledChange',\n 'strokeWidthChange',\n];\nconst ANGLES = {\n 'top-left': -45,\n 'top-center': 0,\n 'top-right': 45,\n 'middle-right': -90,\n 'middle-left': 90,\n 'bottom-left': -135,\n 'bottom-center': 180,\n 'bottom-right': 135,\n};\nconst TOUCH_DEVICE = 'ontouchstart' in Global_1.Konva._global;\nfunction getCursor(anchorName, rad, rotateCursor) {\n if (anchorName === 'rotater') {\n return rotateCursor;\n }\n rad += Util_1.Util.degToRad(ANGLES[anchorName] || 0);\n const angle = ((Util_1.Util.radToDeg(rad) % 360) + 360) % 360;\n if (Util_1.Util._inRange(angle, 315 + 22.5, 360) || Util_1.Util._inRange(angle, 0, 22.5)) {\n return 'ns-resize';\n }\n else if (Util_1.Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util_1.Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util_1.Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {\n return 'nwse-resize';\n }\n else if (Util_1.Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {\n return 'ns-resize';\n }\n else if (Util_1.Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util_1.Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util_1.Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {\n return 'nwse-resize';\n }\n else {\n Util_1.Util.error('Transformer has unknown angle for cursor detection: ' + angle);\n return 'pointer';\n }\n}\nconst ANCHORS_NAMES = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'middle-right',\n 'middle-left',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n];\nconst MAX_SAFE_INTEGER = 100000000;\nfunction getCenter(shape) {\n return {\n x: shape.x +\n (shape.width / 2) * Math.cos(shape.rotation) +\n (shape.height / 2) * Math.sin(-shape.rotation),\n y: shape.y +\n (shape.height / 2) * Math.cos(shape.rotation) +\n (shape.width / 2) * Math.sin(shape.rotation),\n };\n}\nfunction rotateAroundPoint(shape, angleRad, point) {\n const x = point.x +\n (shape.x - point.x) * Math.cos(angleRad) -\n (shape.y - point.y) * Math.sin(angleRad);\n const y = point.y +\n (shape.x - point.x) * Math.sin(angleRad) +\n (shape.y - point.y) * Math.cos(angleRad);\n return {\n ...shape,\n rotation: shape.rotation + angleRad,\n x,\n y,\n };\n}\nfunction rotateAroundCenter(shape, deltaRad) {\n const center = getCenter(shape);\n return rotateAroundPoint(shape, deltaRad, center);\n}\nfunction getSnap(snaps, newRotationRad, tol) {\n let snapped = newRotationRad;\n for (let i = 0; i < snaps.length; i++) {\n const angle = Global_1.Konva.getAngle(snaps[i]);\n const absDiff = Math.abs(angle - newRotationRad) % (Math.PI * 2);\n const dif = Math.min(absDiff, Math.PI * 2 - absDiff);\n if (dif < tol) {\n snapped = angle;\n }\n }\n return snapped;\n}\nlet activeTransformersCount = 0;\nclass Transformer extends Group_1.Group {\n constructor(config) {\n super(config);\n this._movingAnchorName = null;\n this._transforming = false;\n this._createElements();\n this._handleMouseMove = this._handleMouseMove.bind(this);\n this._handleMouseUp = this._handleMouseUp.bind(this);\n this.update = this.update.bind(this);\n this.on(ATTR_CHANGE_LIST, this.update);\n if (this.getNode()) {\n this.update();\n }\n }\n attachTo(node) {\n this.setNode(node);\n return this;\n }\n setNode(node) {\n Util_1.Util.warn('tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.');\n return this.setNodes([node]);\n }\n getNode() {\n return this._nodes && this._nodes[0];\n }\n _getEventNamespace() {\n return EVENTS_NAME + this._id;\n }\n setNodes(nodes = []) {\n if (this._nodes && this._nodes.length) {\n this.detach();\n }\n const filteredNodes = nodes.filter((node) => {\n if (node.isAncestorOf(this)) {\n Util_1.Util.error('Konva.Transformer cannot be an a child of the node you are trying to attach');\n return false;\n }\n return true;\n });\n this._nodes = nodes = filteredNodes;\n if (nodes.length === 1 && this.useSingleNodeRotation()) {\n this.rotation(nodes[0].getAbsoluteRotation());\n }\n else {\n this.rotation(0);\n }\n this._nodes.forEach((node) => {\n const onChange = () => {\n if (this.nodes().length === 1 && this.useSingleNodeRotation()) {\n this.rotation(this.nodes()[0].getAbsoluteRotation());\n }\n this._resetTransformCache();\n if (!this._transforming && !this.isDragging()) {\n this.update();\n }\n };\n const additionalEvents = node._attrsAffectingSize\n .map((prop) => prop + 'Change.' + this._getEventNamespace())\n .join(' ');\n node.on(additionalEvents, onChange);\n node.on(TRANSFORM_CHANGE_STR.map((e) => e + `.${this._getEventNamespace()}`).join(' '), onChange);\n node.on(`absoluteTransformChange.${this._getEventNamespace()}`, onChange);\n this._proxyDrag(node);\n });\n this._resetTransformCache();\n const elementsCreated = !!this.findOne('.top-left');\n if (elementsCreated) {\n this.update();\n }\n return this;\n }\n _proxyDrag(node) {\n let lastPos;\n node.on(`dragstart.${this._getEventNamespace()}`, (e) => {\n lastPos = node.getAbsolutePosition();\n if (!this.isDragging() && node !== this.findOne('.back')) {\n this.startDrag(e, false);\n }\n });\n node.on(`dragmove.${this._getEventNamespace()}`, (e) => {\n if (!lastPos) {\n return;\n }\n const abs = node.getAbsolutePosition();\n const dx = abs.x - lastPos.x;\n const dy = abs.y - lastPos.y;\n this.nodes().forEach((otherNode) => {\n if (otherNode === node) {\n return;\n }\n if (otherNode.isDragging()) {\n return;\n }\n const otherAbs = otherNode.getAbsolutePosition();\n otherNode.setAbsolutePosition({\n x: otherAbs.x + dx,\n y: otherAbs.y + dy,\n });\n otherNode.startDrag(e);\n });\n lastPos = null;\n });\n }\n getNodes() {\n return this._nodes || [];\n }\n getActiveAnchor() {\n return this._movingAnchorName;\n }\n detach() {\n if (this._nodes) {\n this._nodes.forEach((node) => {\n node.off('.' + this._getEventNamespace());\n });\n }\n this._nodes = [];\n this._resetTransformCache();\n }\n _resetTransformCache() {\n this._clearCache(NODES_RECT);\n this._clearCache('transform');\n this._clearSelfAndDescendantCache('absoluteTransform');\n }\n _getNodeRect() {\n return this._getCache(NODES_RECT, this.__getNodeRect);\n }\n __getNodeShape(node, rot = this.rotation(), relative) {\n const rect = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n const absScale = node.getAbsoluteScale(relative);\n const absPos = node.getAbsolutePosition(relative);\n const dx = rect.x * absScale.x - node.offsetX() * absScale.x;\n const dy = rect.y * absScale.y - node.offsetY() * absScale.y;\n const rotation = (Global_1.Konva.getAngle(node.getAbsoluteRotation()) + Math.PI * 2) %\n (Math.PI * 2);\n const box = {\n x: absPos.x + dx * Math.cos(rotation) + dy * Math.sin(-rotation),\n y: absPos.y + dy * Math.cos(rotation) + dx * Math.sin(rotation),\n width: rect.width * absScale.x,\n height: rect.height * absScale.y,\n rotation: rotation,\n };\n return rotateAroundPoint(box, -Global_1.Konva.getAngle(rot), {\n x: 0,\n y: 0,\n });\n }\n __getNodeRect() {\n const node = this.getNode();\n if (!node) {\n return {\n x: -MAX_SAFE_INTEGER,\n y: -MAX_SAFE_INTEGER,\n width: 0,\n height: 0,\n rotation: 0,\n };\n }\n const totalPoints = [];\n this.nodes().map((node) => {\n const box = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n const points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n const trans = node.getAbsoluteTransform();\n points.forEach(function (point) {\n const transformed = trans.point(point);\n totalPoints.push(transformed);\n });\n });\n const tr = new Util_1.Transform();\n tr.rotate(-Global_1.Konva.getAngle(this.rotation()));\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n totalPoints.forEach(function (point) {\n const transformed = tr.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n tr.invert();\n const p = tr.point({ x: minX, y: minY });\n return {\n x: p.x,\n y: p.y,\n width: maxX - minX,\n height: maxY - minY,\n rotation: Global_1.Konva.getAngle(this.rotation()),\n };\n }\n getX() {\n return this._getNodeRect().x;\n }\n getY() {\n return this._getNodeRect().y;\n }\n getWidth() {\n return this._getNodeRect().width;\n }\n getHeight() {\n return this._getNodeRect().height;\n }\n _createElements() {\n this._createBack();\n ANCHORS_NAMES.forEach((name) => {\n this._createAnchor(name);\n });\n this._createAnchor('rotater');\n }\n _createAnchor(name) {\n const anchor = new Rect_1.Rect({\n stroke: 'rgb(0, 161, 255)',\n fill: 'white',\n strokeWidth: 1,\n name: name + ' _anchor',\n dragDistance: 0,\n draggable: true,\n hitStrokeWidth: TOUCH_DEVICE ? 10 : 'auto',\n });\n const self = this;\n anchor.on('mousedown touchstart', function (e) {\n self._handleMouseDown(e);\n });\n anchor.on('dragstart', (e) => {\n anchor.stopDrag();\n e.cancelBubble = true;\n });\n anchor.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n anchor.on('mouseenter', () => {\n const rad = Global_1.Konva.getAngle(this.rotation());\n const rotateCursor = this.rotateAnchorCursor();\n const cursor = getCursor(name, rad, rotateCursor);\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = cursor);\n this._cursorChange = true;\n });\n anchor.on('mouseout', () => {\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = '');\n this._cursorChange = false;\n });\n this.add(anchor);\n }\n _createBack() {\n const back = new Shape_1.Shape({\n name: 'back',\n width: 0,\n height: 0,\n draggable: true,\n sceneFunc(ctx, shape) {\n const tr = shape.getParent();\n const padding = tr.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);\n ctx.moveTo(shape.width() / 2, -padding);\n if (tr.rotateEnabled() && tr.rotateLineVisible()) {\n ctx.lineTo(shape.width() / 2, -tr.rotateAnchorOffset() * Util_1.Util._sign(shape.height()) - padding);\n }\n ctx.fillStrokeShape(shape);\n },\n hitFunc: (ctx, shape) => {\n if (!this.shouldOverdrawWholeArea()) {\n return;\n }\n const padding = this.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);\n ctx.fillStrokeShape(shape);\n },\n });\n this.add(back);\n this._proxyDrag(back);\n back.on('dragstart', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragmove', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n this.on('dragmove', (e) => {\n this.update();\n });\n }\n _handleMouseDown(e) {\n if (this._transforming) {\n return;\n }\n this._movingAnchorName = e.target.name().split(' ')[0];\n const attrs = this._getNodeRect();\n const width = attrs.width;\n const height = attrs.height;\n const hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\n this.sin = Math.abs(height / hypotenuse);\n this.cos = Math.abs(width / hypotenuse);\n if (typeof window !== 'undefined') {\n window.addEventListener('mousemove', this._handleMouseMove);\n window.addEventListener('touchmove', this._handleMouseMove);\n window.addEventListener('mouseup', this._handleMouseUp, true);\n window.addEventListener('touchend', this._handleMouseUp, true);\n }\n this._transforming = true;\n const ap = e.target.getAbsolutePosition();\n const pos = e.target.getStage().getPointerPosition();\n this._anchorDragOffset = {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n };\n activeTransformersCount++;\n this._fire('transformstart', { evt: e.evt, target: this.getNode() });\n this._nodes.forEach((target) => {\n target._fire('transformstart', { evt: e.evt, target });\n });\n }\n _handleMouseMove(e) {\n let x, y, newHypotenuse;\n const anchorNode = this.findOne('.' + this._movingAnchorName);\n const stage = anchorNode.getStage();\n stage.setPointersPositions(e);\n const pp = stage.getPointerPosition();\n let newNodePos = {\n x: pp.x - this._anchorDragOffset.x,\n y: pp.y - this._anchorDragOffset.y,\n };\n const oldAbs = anchorNode.getAbsolutePosition();\n if (this.anchorDragBoundFunc()) {\n newNodePos = this.anchorDragBoundFunc()(oldAbs, newNodePos, e);\n }\n anchorNode.setAbsolutePosition(newNodePos);\n const newAbs = anchorNode.getAbsolutePosition();\n if (oldAbs.x === newAbs.x && oldAbs.y === newAbs.y) {\n return;\n }\n if (this._movingAnchorName === 'rotater') {\n const attrs = this._getNodeRect();\n x = anchorNode.x() - attrs.width / 2;\n y = -anchorNode.y() + attrs.height / 2;\n let delta = Math.atan2(-y, x) + Math.PI / 2;\n if (attrs.height < 0) {\n delta -= Math.PI;\n }\n const oldRotation = Global_1.Konva.getAngle(this.rotation());\n const newRotation = oldRotation + delta;\n const tol = Global_1.Konva.getAngle(this.rotationSnapTolerance());\n const snappedRot = getSnap(this.rotationSnaps(), newRotation, tol);\n const diff = snappedRot - attrs.rotation;\n const shape = rotateAroundCenter(attrs, diff);\n this._fitNodesInto(shape, e);\n return;\n }\n const shiftBehavior = this.shiftBehavior();\n let keepProportion;\n if (shiftBehavior === 'inverted') {\n keepProportion = this.keepRatio() && !e.shiftKey;\n }\n else if (shiftBehavior === 'none') {\n keepProportion = this.keepRatio();\n }\n else {\n keepProportion = this.keepRatio() || e.shiftKey;\n }\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (this._movingAnchorName === 'top-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-right').x(),\n y: this.findOne('.bottom-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-left').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-left').x(comparePoint.x - x);\n this.findOne('.top-left').y(comparePoint.y - y);\n }\n }\n else if (this._movingAnchorName === 'top-center') {\n this.findOne('.top-left').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'top-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-left').x(),\n y: this.findOne('.bottom-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-right').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-right').x(comparePoint.x + x);\n this.findOne('.top-right').y(comparePoint.y - y);\n }\n var pos = anchorNode.position();\n this.findOne('.top-left').y(pos.y);\n this.findOne('.bottom-right').x(pos.x);\n }\n else if (this._movingAnchorName === 'middle-left') {\n this.findOne('.top-left').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'middle-right') {\n this.findOne('.bottom-right').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'bottom-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-right').x(),\n y: this.findOne('.top-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;\n var reverseY = anchorNode.y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n anchorNode.x(comparePoint.x - x);\n anchorNode.y(comparePoint.y + y);\n }\n pos = anchorNode.position();\n this.findOne('.top-left').x(pos.x);\n this.findOne('.bottom-right').y(pos.y);\n }\n else if (this._movingAnchorName === 'bottom-center') {\n this.findOne('.bottom-right').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'bottom-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-left').x(),\n y: this.findOne('.top-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.bottom-right').y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.bottom-right').x(comparePoint.x + x);\n this.findOne('.bottom-right').y(comparePoint.y + y);\n }\n }\n else {\n console.error(new Error('Wrong position argument of selection resizer: ' +\n this._movingAnchorName));\n }\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (centeredScaling) {\n const topLeft = this.findOne('.top-left');\n const bottomRight = this.findOne('.bottom-right');\n const topOffsetX = topLeft.x();\n const topOffsetY = topLeft.y();\n const bottomOffsetX = this.getWidth() - bottomRight.x();\n const bottomOffsetY = this.getHeight() - bottomRight.y();\n bottomRight.move({\n x: -topOffsetX,\n y: -topOffsetY,\n });\n topLeft.move({\n x: bottomOffsetX,\n y: bottomOffsetY,\n });\n }\n const absPos = this.findOne('.top-left').getAbsolutePosition();\n x = absPos.x;\n y = absPos.y;\n const width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();\n const height = this.findOne('.bottom-right').y() - this.findOne('.top-left').y();\n this._fitNodesInto({\n x: x,\n y: y,\n width: width,\n height: height,\n rotation: Global_1.Konva.getAngle(this.rotation()),\n }, e);\n }\n _handleMouseUp(e) {\n this._removeEvents(e);\n }\n getAbsoluteTransform() {\n return this.getTransform();\n }\n _removeEvents(e) {\n var _a;\n if (this._transforming) {\n this._transforming = false;\n if (typeof window !== 'undefined') {\n window.removeEventListener('mousemove', this._handleMouseMove);\n window.removeEventListener('touchmove', this._handleMouseMove);\n window.removeEventListener('mouseup', this._handleMouseUp, true);\n window.removeEventListener('touchend', this._handleMouseUp, true);\n }\n const node = this.getNode();\n activeTransformersCount--;\n this._fire('transformend', { evt: e, target: node });\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n if (node) {\n this._nodes.forEach((target) => {\n var _a;\n target._fire('transformend', { evt: e, target });\n (_a = target.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n }\n this._movingAnchorName = null;\n }\n }\n _fitNodesInto(newAttrs, evt) {\n const oldAttrs = this._getNodeRect();\n const minSize = 1;\n if (Util_1.Util._inRange(newAttrs.width, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n if (Util_1.Util._inRange(newAttrs.height, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n const t = new Util_1.Transform();\n t.rotate(Global_1.Konva.getAngle(this.rotation()));\n if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('left') >= 0) {\n const offset = t.point({\n x: -this.padding() * 2,\n y: 0,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n newAttrs.width += this.padding() * 2;\n this._movingAnchorName = this._movingAnchorName.replace('left', 'right');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n }\n else if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('right') >= 0) {\n const offset = t.point({\n x: this.padding() * 2,\n y: 0,\n });\n this._movingAnchorName = this._movingAnchorName.replace('right', 'left');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.width += this.padding() * 2;\n }\n if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('top') >= 0) {\n const offset = t.point({\n x: 0,\n y: -this.padding() * 2,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n this._movingAnchorName = this._movingAnchorName.replace('top', 'bottom');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n }\n else if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('bottom') >= 0) {\n const offset = t.point({\n x: 0,\n y: this.padding() * 2,\n });\n this._movingAnchorName = this._movingAnchorName.replace('bottom', 'top');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n }\n if (this.boundBoxFunc()) {\n const bounded = this.boundBoxFunc()(oldAttrs, newAttrs);\n if (bounded) {\n newAttrs = bounded;\n }\n else {\n Util_1.Util.warn('boundBoxFunc returned falsy. You should return new bound rect from it!');\n }\n }\n const baseSize = 10000000;\n const oldTr = new Util_1.Transform();\n oldTr.translate(oldAttrs.x, oldAttrs.y);\n oldTr.rotate(oldAttrs.rotation);\n oldTr.scale(oldAttrs.width / baseSize, oldAttrs.height / baseSize);\n const newTr = new Util_1.Transform();\n const newScaleX = newAttrs.width / baseSize;\n const newScaleY = newAttrs.height / baseSize;\n if (this.flipEnabled() === false) {\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.translate(newAttrs.width < 0 ? newAttrs.width : 0, newAttrs.height < 0 ? newAttrs.height : 0);\n newTr.scale(Math.abs(newScaleX), Math.abs(newScaleY));\n }\n else {\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.scale(newScaleX, newScaleY);\n }\n const delta = newTr.multiply(oldTr.invert());\n this._nodes.forEach((node) => {\n var _a;\n const parentTransform = node.getParent().getAbsoluteTransform();\n const localTransform = node.getTransform().copy();\n localTransform.translate(node.offsetX(), node.offsetY());\n const newLocalTransform = new Util_1.Transform();\n newLocalTransform\n .multiply(parentTransform.copy().invert())\n .multiply(delta)\n .multiply(parentTransform)\n .multiply(localTransform);\n const attrs = newLocalTransform.decompose();\n node.setAttrs(attrs);\n (_a = node.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n this.rotation(Util_1.Util._getRotation(newAttrs.rotation));\n this._nodes.forEach((node) => {\n this._fire('transform', { evt: evt, target: node });\n node._fire('transform', { evt: evt, target: node });\n });\n this._resetTransformCache();\n this.update();\n this.getLayer().batchDraw();\n }\n forceUpdate() {\n this._resetTransformCache();\n this.update();\n }\n _batchChangeChild(selector, attrs) {\n const anchor = this.findOne(selector);\n anchor.setAttrs(attrs);\n }\n update() {\n var _a;\n const attrs = this._getNodeRect();\n this.rotation(Util_1.Util._getRotation(attrs.rotation));\n const width = attrs.width;\n const height = attrs.height;\n const enabledAnchors = this.enabledAnchors();\n const resizeEnabled = this.resizeEnabled();\n const padding = this.padding();\n const anchorSize = this.anchorSize();\n const anchors = this.find('._anchor');\n anchors.forEach((node) => {\n node.setAttrs({\n width: anchorSize,\n height: anchorSize,\n offsetX: anchorSize / 2,\n offsetY: anchorSize / 2,\n stroke: this.anchorStroke(),\n strokeWidth: this.anchorStrokeWidth(),\n fill: this.anchorFill(),\n cornerRadius: this.anchorCornerRadius(),\n });\n });\n this._batchChangeChild('.top-left', {\n x: 0,\n y: 0,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0,\n });\n this._batchChangeChild('.top-center', {\n x: width / 2,\n y: 0,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0,\n });\n this._batchChangeChild('.top-right', {\n x: width,\n y: 0,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0,\n });\n this._batchChangeChild('.middle-left', {\n x: 0,\n y: height / 2,\n offsetX: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0,\n });\n this._batchChangeChild('.middle-right', {\n x: width,\n y: height / 2,\n offsetX: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0,\n });\n this._batchChangeChild('.bottom-left', {\n x: 0,\n y: height,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0,\n });\n this._batchChangeChild('.bottom-center', {\n x: width / 2,\n y: height,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0,\n });\n this._batchChangeChild('.bottom-right', {\n x: width,\n y: height,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0,\n });\n this._batchChangeChild('.rotater', {\n x: width / 2,\n y: -this.rotateAnchorOffset() * Util_1.Util._sign(height) - padding,\n visible: this.rotateEnabled(),\n });\n this._batchChangeChild('.back', {\n width: width,\n height: height,\n visible: this.borderEnabled(),\n stroke: this.borderStroke(),\n strokeWidth: this.borderStrokeWidth(),\n dash: this.borderDash(),\n x: 0,\n y: 0,\n });\n const styleFunc = this.anchorStyleFunc();\n if (styleFunc) {\n anchors.forEach((node) => {\n styleFunc(node);\n });\n }\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n }\n isTransforming() {\n return this._transforming;\n }\n stopTransform() {\n if (this._transforming) {\n this._removeEvents();\n const anchorNode = this.findOne('.' + this._movingAnchorName);\n if (anchorNode) {\n anchorNode.stopDrag();\n }\n }\n }\n destroy() {\n if (this.getStage() && this._cursorChange) {\n this.getStage().content && (this.getStage().content.style.cursor = '');\n }\n Group_1.Group.prototype.destroy.call(this);\n this.detach();\n this._removeEvents();\n return this;\n }\n toObject() {\n return Node_1.Node.prototype.toObject.call(this);\n }\n clone(obj) {\n const node = Node_1.Node.prototype.clone.call(this, obj);\n return node;\n }\n getClientRect() {\n if (this.nodes().length > 0) {\n return super.getClientRect();\n }\n else {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n }\n}\nexports.Transformer = Transformer;\nTransformer.isTransforming = () => {\n return activeTransformersCount > 0;\n};\nfunction validateAnchors(val) {\n if (!(val instanceof Array)) {\n Util_1.Util.warn('enabledAnchors value should be an array');\n }\n if (val instanceof Array) {\n val.forEach(function (name) {\n if (ANCHORS_NAMES.indexOf(name) === -1) {\n Util_1.Util.warn('Unknown anchor name: ' +\n name +\n '. Available names are: ' +\n ANCHORS_NAMES.join(', '));\n }\n });\n }\n return val || [];\n}\nTransformer.prototype.className = 'Transformer';\n(0, Global_2._registerNode)(Transformer);\nFactory_1.Factory.addGetterSetter(Transformer, 'enabledAnchors', ANCHORS_NAMES, validateAnchors);\nFactory_1.Factory.addGetterSetter(Transformer, 'flipEnabled', true, (0, Validators_1.getBooleanValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'resizeEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorSize', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateLineVisible', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotationSnaps', []);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateAnchorCursor', 'crosshair');\nFactory_1.Factory.addGetterSetter(Transformer, 'rotationSnapTolerance', 5, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStroke', 'rgb(0, 161, 255)');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStrokeWidth', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorFill', 'white');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorCornerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderStroke', 'rgb(0, 161, 255)');\nFactory_1.Factory.addGetterSetter(Transformer, 'borderStrokeWidth', 1, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderDash');\nFactory_1.Factory.addGetterSetter(Transformer, 'keepRatio', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'shiftBehavior', 'default');\nFactory_1.Factory.addGetterSetter(Transformer, 'centeredScaling', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'ignoreStroke', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'padding', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Transformer, 'nodes');\nFactory_1.Factory.addGetterSetter(Transformer, 'node');\nFactory_1.Factory.addGetterSetter(Transformer, 'boundBoxFunc');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorDragBoundFunc');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStyleFunc');\nFactory_1.Factory.addGetterSetter(Transformer, 'shouldOverdrawWholeArea', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'useSingleNodeRotation', true);\nFactory_1.Factory.backCompat(Transformer, {\n lineEnabled: 'borderEnabled',\n rotateHandlerOffset: 'rotateAnchorOffset',\n enabledHandlers: 'enabledAnchors',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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}\nconst mul_table = [\n 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292,\n 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292,\n 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259,\n 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292,\n 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373,\n 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259,\n 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381,\n 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292,\n 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461,\n 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373,\n 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309,\n 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259,\n 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442,\n 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381,\n 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332,\n 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\n 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259,\n];\nconst shg_table = [\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17,\n 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19,\n 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24,\n];\nfunction filterGaussBlurRGBA(imageData, radius) {\n const pixels = imageData.data, width = imageData.width, height = imageData.height;\n let x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, r_out_sum, g_out_sum, b_out_sum, a_out_sum, r_in_sum, g_in_sum, b_in_sum, a_in_sum, pr, pg, pb, pa, rbs;\n const div = radius + radius + 1, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), mul_sum = mul_table[radius], shg_sum = shg_table[radius];\n let stackEnd = null, stack = stackStart, stackIn = null, stackOut = null;\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n yw = yi = 0;\n for (y = 0; y < height; y++) {\n r_in_sum =\n g_in_sum =\n b_in_sum =\n a_in_sum =\n r_sum =\n g_sum =\n b_sum =\n a_sum =\n 0;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[p + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[p + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[p + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n }\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa !== 0) {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n r_in_sum += stackIn.r = pixels[p];\n g_in_sum += stackIn.g = pixels[p + 1];\n b_in_sum += stackIn.b = pixels[p + 2];\n a_in_sum += stackIn.a = pixels[p + 3];\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += 4;\n }\n yw += width;\n }\n for (x = 0; x < width; x++) {\n g_in_sum =\n b_in_sum =\n a_in_sum =\n r_in_sum =\n g_sum =\n b_sum =\n a_sum =\n r_sum =\n 0;\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n yp = width;\n for (i = 1; i <= radius; i++) {\n yi = (yp + x) << 2;\n r_sum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[yi + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[yi + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[yi + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n if (i < heightMinus1) {\n yp += width;\n }\n }\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p =\n (x +\n ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width) <<\n 2;\n r_sum += r_in_sum += stackIn.r = pixels[p];\n g_sum += g_in_sum += stackIn.g = pixels[p + 1];\n b_sum += b_in_sum += stackIn.b = pixels[p + 2];\n a_sum += a_in_sum += stackIn.a = pixels[p + 3];\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n}\nconst Blur = function Blur(imageData) {\n const radius = Math.round(this.blurRadius());\n if (radius > 0) {\n filterGaussBlurRGBA(imageData, radius);\n }\n};\nexports.Blur = Blur;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blurRadius', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Brighten = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Brighten = function (imageData) {\n const brightness = this.brightness() * 255, data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n data[i] += brightness;\n data[i + 1] += brightness;\n data[i + 2] += brightness;\n }\n};\nexports.Brighten = Brighten;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'brightness', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contrast = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Contrast = function (imageData) {\n const adjust = Math.pow((this.contrast() + 100) / 100, 2);\n const data = imageData.data, nPixels = data.length;\n let red = 150, green = 150, blue = 150;\n for (let i = 0; i < nPixels; i += 4) {\n red = data[i];\n green = data[i + 1];\n blue = data[i + 2];\n red /= 255;\n red -= 0.5;\n red *= adjust;\n red += 0.5;\n red *= 255;\n green /= 255;\n green -= 0.5;\n green *= adjust;\n green += 0.5;\n green *= 255;\n blue /= 255;\n blue -= 0.5;\n blue *= adjust;\n blue += 0.5;\n blue *= 255;\n red = red < 0 ? 0 : red > 255 ? 255 : red;\n green = green < 0 ? 0 : green > 255 ? 255 : green;\n blue = blue < 0 ? 0 : blue > 255 ? 255 : blue;\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n }\n};\nexports.Contrast = Contrast;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'contrast', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emboss = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Util_1 = require(\"../Util\");\nconst Validators_1 = require(\"../Validators\");\nconst Emboss = function (imageData) {\n const strength = this.embossStrength() * 10, greyLevel = this.embossWhiteLevel() * 255, direction = this.embossDirection(), blend = this.embossBlend(), data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4;\n let dirY = 0, dirX = 0, y = h;\n switch (direction) {\n case 'top-left':\n dirY = -1;\n dirX = -1;\n break;\n case 'top':\n dirY = -1;\n dirX = 0;\n break;\n case 'top-right':\n dirY = -1;\n dirX = 1;\n break;\n case 'right':\n dirY = 0;\n dirX = 1;\n break;\n case 'bottom-right':\n dirY = 1;\n dirX = 1;\n break;\n case 'bottom':\n dirY = 1;\n dirX = 0;\n break;\n case 'bottom-left':\n dirY = 1;\n dirX = -1;\n break;\n case 'left':\n dirY = 0;\n dirX = -1;\n break;\n default:\n Util_1.Util.error('Unknown emboss direction: ' + direction);\n }\n do {\n const offsetY = (y - 1) * w4;\n let otherY = dirY;\n if (y + otherY < 1) {\n otherY = 0;\n }\n if (y + otherY > h) {\n otherY = 0;\n }\n const offsetYOther = (y - 1 + otherY) * w * 4;\n let x = w;\n do {\n const offset = offsetY + (x - 1) * 4;\n let otherX = dirX;\n if (x + otherX < 1) {\n otherX = 0;\n }\n if (x + otherX > w) {\n otherX = 0;\n }\n const offsetOther = offsetYOther + (x - 1 + otherX) * 4;\n const dR = data[offset] - data[offsetOther];\n const dG = data[offset + 1] - data[offsetOther + 1];\n const dB = data[offset + 2] - data[offsetOther + 2];\n let dif = dR;\n const absDif = dif > 0 ? dif : -dif;\n const absG = dG > 0 ? dG : -dG;\n const absB = dB > 0 ? dB : -dB;\n if (absG > absDif) {\n dif = dG;\n }\n if (absB > absDif) {\n dif = dB;\n }\n dif *= strength;\n if (blend) {\n const r = data[offset] + dif;\n const g = data[offset + 1] + dif;\n const b = data[offset + 2] + dif;\n data[offset] = r > 255 ? 255 : r < 0 ? 0 : r;\n data[offset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n data[offset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n }\n else {\n let grey = greyLevel - dif;\n if (grey < 0) {\n grey = 0;\n }\n else if (grey > 255) {\n grey = 255;\n }\n data[offset] = data[offset + 1] = data[offset + 2] = grey;\n }\n } while (--x);\n } while (--y);\n};\nexports.Emboss = Emboss;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossStrength', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossWhiteLevel', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossDirection', 'top-left', undefined, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossBlend', false, undefined, Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enhance = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nfunction remap(fromValue, fromMin, fromMax, toMin, toMax) {\n const fromRange = fromMax - fromMin, toRange = toMax - toMin;\n if (fromRange === 0) {\n return toMin + toRange / 2;\n }\n if (toRange === 0) {\n return toMin;\n }\n let toValue = (fromValue - fromMin) / fromRange;\n toValue = toRange * toValue + toMin;\n return toValue;\n}\nconst Enhance = function (imageData) {\n const data = imageData.data, nSubPixels = data.length;\n let rMin = data[0], rMax = rMin, r, gMin = data[1], gMax = gMin, g, bMin = data[2], bMax = bMin, b;\n const enhanceAmount = this.enhance();\n if (enhanceAmount === 0) {\n return;\n }\n for (let i = 0; i < nSubPixels; i += 4) {\n r = data[i + 0];\n if (r < rMin) {\n rMin = r;\n }\n else if (r > rMax) {\n rMax = r;\n }\n g = data[i + 1];\n if (g < gMin) {\n gMin = g;\n }\n else if (g > gMax) {\n gMax = g;\n }\n b = data[i + 2];\n if (b < bMin) {\n bMin = b;\n }\n else if (b > bMax) {\n bMax = b;\n }\n }\n if (rMax === rMin) {\n rMax = 255;\n rMin = 0;\n }\n if (gMax === gMin) {\n gMax = 255;\n gMin = 0;\n }\n if (bMax === bMin) {\n bMax = 255;\n bMin = 0;\n }\n let rMid, rGoalMax, rGoalMin, gMid, gGoalMax, gGoalMin, bMid, bGoalMax, bGoalMin;\n if (enhanceAmount > 0) {\n rGoalMax = rMax + enhanceAmount * (255 - rMax);\n rGoalMin = rMin - enhanceAmount * (rMin - 0);\n gGoalMax = gMax + enhanceAmount * (255 - gMax);\n gGoalMin = gMin - enhanceAmount * (gMin - 0);\n bGoalMax = bMax + enhanceAmount * (255 - bMax);\n bGoalMin = bMin - enhanceAmount * (bMin - 0);\n }\n else {\n rMid = (rMax + rMin) * 0.5;\n rGoalMax = rMax + enhanceAmount * (rMax - rMid);\n rGoalMin = rMin + enhanceAmount * (rMin - rMid);\n gMid = (gMax + gMin) * 0.5;\n gGoalMax = gMax + enhanceAmount * (gMax - gMid);\n gGoalMin = gMin + enhanceAmount * (gMin - gMid);\n bMid = (bMax + bMin) * 0.5;\n bGoalMax = bMax + enhanceAmount * (bMax - bMid);\n bGoalMin = bMin + enhanceAmount * (bMin - bMid);\n }\n for (let i = 0; i < nSubPixels; i += 4) {\n data[i + 0] = remap(data[i + 0], rMin, rMax, rGoalMin, rGoalMax);\n data[i + 1] = remap(data[i + 1], gMin, gMax, gGoalMin, gGoalMax);\n data[i + 2] = remap(data[i + 2], bMin, bMax, bGoalMin, bGoalMax);\n }\n};\nexports.Enhance = Enhance;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'enhance', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grayscale = void 0;\nconst Grayscale = function (imageData) {\n const data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n const brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];\n data[i] = brightness;\n data[i + 1] = brightness;\n data[i + 2] = brightness;\n }\n};\nexports.Grayscale = Grayscale;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HSL = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'luminance', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nconst HSL = function (imageData) {\n const data = imageData.data, nPixels = data.length, v = 1, s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, l = this.luminance() * 127;\n const vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n const rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n const gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n const br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n let r, g, b, a;\n for (let i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b + l;\n data[i + 1] = gr * r + gg * g + gb * b + l;\n data[i + 2] = br * r + bg * g + bb * b + l;\n data[i + 3] = a;\n }\n};\nexports.HSL = HSL;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HSV = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst HSV = function (imageData) {\n const data = imageData.data, nPixels = data.length, v = Math.pow(2, this.value()), s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360;\n const vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n const rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n const gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n const br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n let r, g, b, a;\n for (let i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b;\n data[i + 1] = gr * r + gg * g + gb * b;\n data[i + 2] = br * r + bg * g + bb * b;\n data[i + 3] = a;\n }\n};\nexports.HSV = HSV;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'value', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Invert = void 0;\nconst Invert = function (imageData) {\n const data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n};\nexports.Invert = Invert;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Kaleidoscope = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Util_1 = require(\"../Util\");\nconst Validators_1 = require(\"../Validators\");\nconst ToPolar = function (src, dst, opt) {\n const srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2;\n let rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n let x = xSize - xMid;\n let y = ySize - yMid;\n const rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n const rSize = ySize, tSize = xSize;\n const conversion = ((360 / tSize) * Math.PI) / 180;\n for (let theta = 0; theta < tSize; theta += 1) {\n const sin = Math.sin(theta * conversion);\n const cos = Math.cos(theta * conversion);\n for (let radius = 0; radius < rSize; radius += 1) {\n x = Math.floor(xMid + ((rMax * radius) / rSize) * cos);\n y = Math.floor(yMid + ((rMax * radius) / rSize) * sin);\n let i = (y * xSize + x) * 4;\n const r = srcPixels[i + 0];\n const g = srcPixels[i + 1];\n const b = srcPixels[i + 2];\n const a = srcPixels[i + 3];\n i = (theta + radius * xSize) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nconst FromPolar = function (src, dst, opt) {\n const srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2;\n let rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n let x = xSize - xMid;\n let y = ySize - yMid;\n const rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n const rSize = ySize, tSize = xSize, phaseShift = opt.polarRotation || 0;\n let x1, y1;\n for (x = 0; x < xSize; x += 1) {\n for (y = 0; y < ySize; y += 1) {\n const dx = x - xMid;\n const dy = y - yMid;\n const radius = (Math.sqrt(dx * dx + dy * dy) * rSize) / rMax;\n let theta = ((Math.atan2(dy, dx) * 180) / Math.PI + 360 + phaseShift) % 360;\n theta = (theta * tSize) / 360;\n x1 = Math.floor(theta);\n y1 = Math.floor(radius);\n let i = (y1 * xSize + x1) * 4;\n const r = srcPixels[i + 0];\n const g = srcPixels[i + 1];\n const b = srcPixels[i + 2];\n const a = srcPixels[i + 3];\n i = (y * xSize + x) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nconst Kaleidoscope = function (imageData) {\n const xSize = imageData.width, ySize = imageData.height;\n let x, y, xoff, i, r, g, b, a, srcPos, dstPos;\n let power = Math.round(this.kaleidoscopePower());\n const angle = Math.round(this.kaleidoscopeAngle());\n const offset = Math.floor((xSize * (angle % 360)) / 360);\n if (power < 1) {\n return;\n }\n const tempCanvas = Util_1.Util.createCanvasElement();\n tempCanvas.width = xSize;\n tempCanvas.height = ySize;\n const scratchData = tempCanvas\n .getContext('2d')\n .getImageData(0, 0, xSize, ySize);\n Util_1.Util.releaseCanvas(tempCanvas);\n ToPolar(imageData, scratchData, {\n polarCenterX: xSize / 2,\n polarCenterY: ySize / 2,\n });\n let minSectionSize = xSize / Math.pow(2, power);\n while (minSectionSize <= 8) {\n minSectionSize = minSectionSize * 2;\n power -= 1;\n }\n minSectionSize = Math.ceil(minSectionSize);\n let sectionSize = minSectionSize;\n let xStart = 0, xEnd = sectionSize, xDelta = 1;\n if (offset + minSectionSize > xSize) {\n xStart = sectionSize;\n xEnd = 0;\n xDelta = -1;\n }\n for (y = 0; y < ySize; y += 1) {\n for (x = xStart; x !== xEnd; x += xDelta) {\n xoff = Math.round(x + offset) % xSize;\n srcPos = (xSize * y + xoff) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + x) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n }\n for (y = 0; y < ySize; y += 1) {\n sectionSize = Math.floor(minSectionSize);\n for (i = 0; i < power; i += 1) {\n for (x = 0; x < sectionSize + 1; x += 1) {\n srcPos = (xSize * y + x) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + sectionSize * 2 - x - 1) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n sectionSize *= 2;\n }\n }\n FromPolar(scratchData, imageData, { polarRotation: 0 });\n};\nexports.Kaleidoscope = Kaleidoscope;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopePower', 2, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopeAngle', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mask = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nfunction pixelAt(idata, x, y) {\n let idx = (y * idata.width + x) * 4;\n const d = [];\n d.push(idata.data[idx++], idata.data[idx++], idata.data[idx++], idata.data[idx++]);\n return d;\n}\nfunction rgbDistance(p1, p2) {\n return Math.sqrt(Math.pow(p1[0] - p2[0], 2) +\n Math.pow(p1[1] - p2[1], 2) +\n Math.pow(p1[2] - p2[2], 2));\n}\nfunction rgbMean(pTab) {\n const m = [0, 0, 0];\n for (let i = 0; i < pTab.length; i++) {\n m[0] += pTab[i][0];\n m[1] += pTab[i][1];\n m[2] += pTab[i][2];\n }\n m[0] /= pTab.length;\n m[1] /= pTab.length;\n m[2] /= pTab.length;\n return m;\n}\nfunction backgroundMask(idata, threshold) {\n const rgbv_no = pixelAt(idata, 0, 0);\n const rgbv_ne = pixelAt(idata, idata.width - 1, 0);\n const rgbv_so = pixelAt(idata, 0, idata.height - 1);\n const rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);\n const thres = threshold || 10;\n if (rgbDistance(rgbv_no, rgbv_ne) < thres &&\n rgbDistance(rgbv_ne, rgbv_se) < thres &&\n rgbDistance(rgbv_se, rgbv_so) < thres &&\n rgbDistance(rgbv_so, rgbv_no) < thres) {\n const mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);\n const mask = [];\n for (let i = 0; i < idata.width * idata.height; i++) {\n const d = rgbDistance(mean, [\n idata.data[i * 4],\n idata.data[i * 4 + 1],\n idata.data[i * 4 + 2],\n ]);\n mask[i] = d < thres ? 0 : 255;\n }\n return mask;\n }\n}\nfunction applyMask(idata, mask) {\n for (let i = 0; i < idata.width * idata.height; i++) {\n idata.data[4 * i + 3] = mask[i];\n }\n}\nfunction erodeMask(mask, sw, sh) {\n const weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a === 255 * 8 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction dilateMask(mask, sw, sh) {\n const weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a >= 255 * 4 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction smoothEdgeMask(mask, sw, sh) {\n const weights = [1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a;\n }\n }\n return maskResult;\n}\nconst Mask = function (imageData) {\n const threshold = this.threshold();\n let mask = backgroundMask(imageData, threshold);\n if (mask) {\n mask = erodeMask(mask, imageData.width, imageData.height);\n mask = dilateMask(mask, imageData.width, imageData.height);\n mask = smoothEdgeMask(mask, imageData.width, imageData.height);\n applyMask(imageData, mask);\n }\n return imageData;\n};\nexports.Mask = Mask;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Noise = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Noise = function (imageData) {\n const amount = this.noise() * 255, data = imageData.data, nPixels = data.length, half = amount / 2;\n for (let i = 0; i < nPixels; i += 4) {\n data[i + 0] += half - 2 * half * Math.random();\n data[i + 1] += half - 2 * half * Math.random();\n data[i + 2] += half - 2 * half * Math.random();\n }\n};\nexports.Noise = Noise;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'noise', 0.2, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pixelate = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Util_1 = require(\"../Util\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Pixelate = function (imageData) {\n let pixelSize = Math.ceil(this.pixelSize()), width = imageData.width, height = imageData.height, x, y, i, red, green, blue, alpha, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), xBinStart, xBinEnd, yBinStart, yBinEnd, xBin, yBin, pixelsInBin, data = imageData.data;\n if (pixelSize <= 0) {\n Util_1.Util.error('pixelSize value can not be <= 0');\n return;\n }\n for (xBin = 0; xBin < nBinsX; xBin += 1) {\n for (yBin = 0; yBin < nBinsY; yBin += 1) {\n red = 0;\n green = 0;\n blue = 0;\n alpha = 0;\n xBinStart = xBin * pixelSize;\n xBinEnd = xBinStart + pixelSize;\n yBinStart = yBin * pixelSize;\n yBinEnd = yBinStart + pixelSize;\n pixelsInBin = 0;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n red += data[i + 0];\n green += data[i + 1];\n blue += data[i + 2];\n alpha += data[i + 3];\n pixelsInBin += 1;\n }\n }\n red = red / pixelsInBin;\n green = green / pixelsInBin;\n blue = blue / pixelsInBin;\n alpha = alpha / pixelsInBin;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n data[i + 0] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = alpha;\n }\n }\n }\n }\n};\nexports.Pixelate = Pixelate;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'pixelSize', 8, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Posterize = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Posterize = function (imageData) {\n const levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels;\n for (let i = 0; i < len; i += 1) {\n data[i] = Math.floor(data[i] / scale) * scale;\n }\n};\nexports.Posterize = Posterize;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'levels', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGB = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst RGB = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue();\n for (let i = 0; i < nPixels; i += 4) {\n const brightness = (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;\n data[i] = brightness * red;\n data[i + 1] = brightness * green;\n data[i + 2] = brightness * blue;\n data[i + 3] = data[i + 3];\n }\n};\nexports.RGB = RGB;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGBA = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst RGBA = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha();\n for (let i = 0; i < nPixels; i += 4) {\n const ia = 1 - alpha;\n data[i] = red * alpha + data[i] * ia;\n data[i + 1] = green * alpha + data[i + 1] * ia;\n data[i + 2] = blue * alpha + data[i + 2] * ia;\n }\n};\nexports.RGBA = RGBA;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'alpha', 1, function (val) {\n this._filterUpToDate = false;\n if (val > 1) {\n return 1;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return val;\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sepia = void 0;\nconst Sepia = function (imageData) {\n const data = imageData.data, nPixels = data.length;\n for (let i = 0; i < nPixels; i += 4) {\n const r = data[i + 0];\n const g = data[i + 1];\n const b = data[i + 2];\n data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);\n data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);\n data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);\n }\n};\nexports.Sepia = Sepia;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Solarize = void 0;\nconst Solarize = function (imageData) {\n const data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4;\n let y = h;\n do {\n const offsetY = (y - 1) * w4;\n let x = w;\n do {\n const offset = offsetY + (x - 1) * 4;\n let r = data[offset];\n let g = data[offset + 1];\n let b = data[offset + 2];\n if (r > 127) {\n r = 255 - r;\n }\n if (g > 127) {\n g = 255 - g;\n }\n if (b > 127) {\n b = 255 - b;\n }\n data[offset] = r;\n data[offset + 1] = g;\n data[offset + 2] = b;\n } while (--x);\n } while (--y);\n};\nexports.Solarize = Solarize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Threshold = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Threshold = function (imageData) {\n const level = this.threshold() * 255, data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 1) {\n data[i] = data[i] < level ? 0 : 255;\n }\n};\nexports.Threshold = Threshold;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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","_a","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","g","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","RGBComponent","alphaComponent","getNumberValidator","getNumberOrArrayOfNumbersValidator","getNumberOrAutoValidator","getStringValidator","getStringOrGradientValidator","getFunctionValidator","getNumberArrayValidator","getBooleanValidator","getComponentValidator","Util_1","require$$1","_formatValue","attr","noOfElements","isNumber","isValidArray","isAuto","isString","isGradient","TypedArray","item","isBool","components","Validators_1","GET","SET","constructor","def","validator","after","method","len","capitalize","getter","setter","ret","component","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$1","shape","relaxed","rounded","traceArr","trace","args","pixelRatio","bounds","lineCap","absOpacity","lineJoin","radius","startAngle","endAngle","counterClockwise","cp1x","cp1y","cp2x","cp2y","x0","y0","image","repetition","r0","sWidth","sHeight","dWidth","dHeight","_context","radiusX","radiusY","rotation","counterclockwise","path","fillRule","text","maxWidth","sw","sh","radii","imageData","cpx","cpy","segments","path2d","that","origSetter","methodName","origMethod","prop","node","op","Context","SceneContext","willReadFrequently","fill","grd","hasColor","fillPriority","hasPattern","hasLinearGradient","hasRadialGradient","colorStops","dash","strokeScaleEnabled","_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$1","config","previousRatio","mimeType","quality","err","Canvas","SceneCanvas","HitCanvas","flag","elem","nodesToFireEvents","stage","pos","dragDistance","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$1","Node","privateGetter","cache","name","deps","depsString","dep","scene","filter","hit","conf","rect","drawBorder","hitCanvasPixelRatio","extraPaddingX","extraPaddingY","cachedSceneCanvas","cachedFilterCanvas","cachedHitCanvas","sceneContext","hitContext","top","points","minX","minY","maxX","maxY","trans","transformed","canvasCache","cacheCanvas","hitCanvas","filters","cachedCanvas","sceneCanvas","filterCanvas","filterContext","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","skewX","skewY","allListeners","listener","box","bufferCanvas","resolve","reject","img","blob","size","evtListeners","evtName","newVal","oldName","newName","fullName","names","compareShape","stopBubble","hierarchyEvents","topListeners","selfListeners","pointerId","ap","bubbleEvent","newNodePos","dbf","bounded","draggable","hasDraggingChild","dragElement","isDragging","isReady","margin","screenRect","data","container","className","no","Class","addGetterSetter","Container_1","Container$1","filterFunc","results","findOne","valid","fn","shouldStop","can","caching","drawMethod","clipWidth","clipHeight","clipFunc","hasClip","selfCache","clipArgs","clipX","clipY","hasComposition","skipTransform","selfRect","shapes","hasVisible","Container","PointerEvents","getCapturedShape","createEvent","hasPointerCapture","setPointerCapture","releaseCapture","Captures","SUPPORT_POINTER_EVENTS","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","pattern","ctx","rgba","bufferHitCanvas","forceFill","hasFill","hasStroke","isTransparent","hasShadow","strokeForShadow","hasCachedParent","fillRect","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","shadowOffsetX","shadowOffsetY","preWidth","preHeight","blurRadius","drawFunc","bufferContext","skipBuffer","cachingSelf","bc","o","alphaThreshold","hitWidth","hitHeight","hitImageData","hitData","rgbColorKey","Layer_1","Shape_1","require$$7","BEFORE_DRAW","DRAW","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","Layer$1","_canvas","spiralSearchDistance","continueSearch","intersectionOffset","p3","colorKey","Layer","FastLayer_1","FastLayer$1","FastLayer","Group_1","Group$1","Group","Animation_1","now","Animation$1","Animation","lays","animations","time","anim","layerHash","layersLen","needRedraw","Anim","blacklist","PAUSED","PLAYING","REVERSING","colorAttrs","TweenEngine","propFunc","begin","finish","duration","yoyo","Tween","nodeId","easing","diff","trueEnd","trueStart","endRGBA","tweenId","startRGBA","thisId","params","onFinish","Stage_1","require$$8","require$$9","require$$10","Tween_1","require$$11","require$$12","require$$13","Arc_1","Arc$1","clockwise","innerRadius","outerRadius","boundLeftRatio","boundRightRatio","boundTopRatio","boundBottomRatio","boundLeft","boundRight","boundTop","boundBottom","Arc","Line_1","getControlPoints","d01","d12","fa","fb","p1x","p1y","p2x","p2y","expandPoints","tension","allPoints","cp","Line$1","closed","bezier","tp","firstControlPoints","lastControlPoints","middle","Line","getCubicArcLength","xs","ys","sum","correctedT","z","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$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","adjustedRun","adjustedRise","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cs","cc","coords","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$1","PI2","fromTension","lp","lastLength","previous","isDashEnabled","lineRect","Arrow","Circle_1","Circle$1","Circle","Ellipse_1","Ellipse$1","Ellipse","Image_1","Image$1","Image","hasCornerRadius","cropWidth","cropHeight","onError","Label_1","ATTR_CHANGE_LIST","CHANGE_KONVA","NONE","UP","RIGHT","DOWN","LEFT","attrChangeListLen","Label$1","tag","pointerDirection","pointerWidth","pointerHeight","Label","Tag","direction","Rect_1","Rect$1","Rect","RegularPolygon_1","RegularPolygon$1","sides","RegularPolygon","Ring_1","PIx2","Ring$1","Ring","Sprite_1","Sprite$1","updated","ix4","set","offsets","ix2","animation","Sprite","Star_1","Star$1","numPoints","Star","Text_1","stringToArray","string","acc","char","array","nextChar","AUTO","CENTER","INHERIT","JUSTIFY","CONTEXT_2D","DASH","TEXT","TEXT_UPPER","TOP","BOTTOM","MIDDLE","NORMAL","PX_SPACE","RTL","WORD","CHAR","ELLIPSIS","normalizeFontFamily","fontFamily","hasSpace","hasQuotes","checkDefaultFill","Text$1","textArr","textArrLen","padding","fontSize","lineHeightPx","verticalAlign","alignY","align","totalWidth","letterSpacing","textDecoration","shouldUnderline","shouldLineThrough","translateY","baseline","metrics","lineTranslateX","lineTranslateY","lastLine","spacesNumber","lineWidth","yOffset","gradient","li","letter","_d","_e","_f","_g","_h","_j","_k","_l","scaleFactor","lines","textWidth","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","wrap","shouldWrap","wrapAtWord","shouldAddEllipsis","additionalWidth","max","low","high","matchWidth","mid","lineArray","substr","substrWidth","matchArray","nextIsSpaceOrDash","wrapIndex","lastSpaceIndex","lastDashIndex","hasLine","Text","TextPath_1","TextPath$1","glyphInfo","p0","kerningFunc","charArr","offsetToGlyph","charStartPoint","glyphWidth","numberOfSpaces","charEndPoint","kern","midpoint","info","TextPath","Transformer_1","EVENTS_NAME","NODES_RECT","ANGLES","TOUCH_DEVICE","getCursor","anchorName","rotateCursor","ANCHORS_NAMES","getCenter","rotateAroundPoint","angleRad","rotateAroundCenter","deltaRad","center","getSnap","snaps","newRotationRad","tol","snapped","absDiff","activeTransformersCount","Transformer$1","filteredNodes","onChange","additionalEvents","lastPos","abs","otherNode","otherAbs","rot","relative","absScale","absPos","totalPoints","anchor","self","cursor","back","hypotenuse","newHypotenuse","anchorNode","pp","oldAbs","newAbs","newRotation","shiftBehavior","keepProportion","centeredScaling","comparePoint","reverseX","reverseY","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","newAttrs","oldAttrs","minSize","baseSize","oldTr","newTr","newScaleX","newScaleY","parentTransform","localTransform","newLocalTransform","enabledAnchors","resizeEnabled","anchorSize","anchors","styleFunc","Transformer","validateAnchors","Wedge_1","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","mul_sum","shg_sum","stackEnd","stack","stackIn","stackOut","Blur","Brighten_1","Brighten","brightness","Contrast_1","Contrast","adjust","nPixels","red","green","blue","Emboss_1","Emboss","strength","greyLevel","blend","w","w4","dirY","dirX","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","dif","absDif","absG","absB","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","weights","side","halfSide","maskResult","so","scy","scx","srcOff","wt","dilateMask","smoothEdgeMask","Mask","Noise_1","Noise","amount","half","Pixelate_1","Pixelate","pixelSize","alpha","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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,kBACA,mBACA,kBACA,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,CACJ,EACDA,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,CACJ,EACDA,EAAA,qBAA+B,CAAC,CAAC,CA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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACzE,EACKC,EAAY,CACd,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3E,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC3B,EACD,SAASC,EAAoBnyB,EAAW7B,EAAQ,CAC5C,MAAMi0B,EAASpyB,EAAU,KAAMjH,EAAQiH,EAAU,MAAOhH,EAASgH,EAAU,OAC3E,IAAIrO,EAAGyF,EAAGjB,EAAGwb,EAAGsQ,EAAIoQ,EAAIC,EAAIC,EAAOC,EAAOC,EAAOC,EAAOC,EAAWC,EAAWC,EAAWC,EAAWC,EAAUC,EAAUC,EAAUC,EAAU16B,EAAI26B,EAAIC,EAAIC,EAAIC,EAC5J,MAAMC,EAAMp1B,EAASA,EAAS,EAAGq1B,EAAcz6B,EAAQ,EAAG06B,EAAez6B,EAAS,EAAG06B,EAAcv1B,EAAS,EAAGw1B,EAAaD,GAAeA,EAAc,GAAM,EAAGE,EAAa,IAAI5B,EAAa6B,EAAU5B,EAAU9zB,CAAM,EAAG21B,EAAU5B,EAAU/zB,CAAM,EACvP,IAAI41B,EAAW,KAAMC,EAAQJ,EAAYK,EAAU,KAAMC,EAAW,KACpE,IAAK/9B,EAAI,EAAGA,EAAIo9B,EAAKp9B,IACjB69B,EAAQA,EAAM,KAAO,IAAIhC,EACrB77B,IAAMu9B,IACNK,EAAWC,GAKnB,IAFAA,EAAM,KAAOJ,EACbtB,EAAKD,EAAK,EACLj7B,EAAI,EAAGA,EAAI4B,EAAQ5B,IAAK,CAmBzB,IAlBA27B,EACIC,EACIC,EACIC,EACIX,EACIC,EACIC,EACIC,EACI,EAChCC,EAAYe,GAAel7B,EAAK45B,EAAOC,CAAE,GACzCO,EAAYc,GAAeP,EAAKf,EAAOC,EAAK,CAAC,GAC7CQ,EAAYa,GAAeN,EAAKhB,EAAOC,EAAK,CAAC,GAC7CS,EAAYY,GAAeL,EAAKjB,EAAOC,EAAK,CAAC,GAC7CE,GAASoB,EAAYn7B,EACrBg6B,GAASmB,EAAYR,EACrBV,GAASkB,EAAYP,EACrBV,GAASiB,EAAYN,EACrBW,EAAQJ,EACHz9B,EAAI,EAAGA,EAAIu9B,EAAav9B,IACzB69B,EAAM,EAAIx7B,EACVw7B,EAAM,EAAIb,EACVa,EAAM,EAAIZ,EACVY,EAAM,EAAIX,EACVW,EAAQA,EAAM,KAElB,IAAK79B,EAAI,EAAGA,EAAIu9B,EAAav9B,IACzBwb,EAAI0gB,IAAOmB,EAAcr9B,EAAIq9B,EAAcr9B,IAAM,GACjDo8B,IAAUyB,EAAM,EAAIx7B,EAAK45B,EAAOzgB,CAAC,IAAM2hB,EAAMI,EAAcv9B,GAC3Dq8B,IAAUwB,EAAM,EAAIb,EAAKf,EAAOzgB,EAAI,CAAC,GAAK2hB,EAC1Cb,IAAUuB,EAAM,EAAIZ,EAAKhB,EAAOzgB,EAAI,CAAC,GAAK2hB,EAC1CZ,IAAUsB,EAAM,EAAIX,EAAKjB,EAAOzgB,EAAI,CAAC,GAAK2hB,EAC1CP,GAAYv6B,EACZw6B,GAAYG,EACZF,GAAYG,EACZF,GAAYG,EACZW,EAAQA,EAAM,KAIlB,IAFAC,EAAUL,EACVM,EAAWH,EACNpiC,EAAI,EAAGA,EAAIoH,EAAOpH,IACnBygC,EAAOC,EAAK,CAAC,EAAIgB,EAAMX,EAAQmB,GAAYC,EACvCT,IAAO,GACPA,EAAK,IAAMA,EACXjB,EAAOC,CAAE,GAAME,EAAQsB,GAAYC,GAAWT,EAC9CjB,EAAOC,EAAK,CAAC,GAAMG,EAAQqB,GAAYC,GAAWT,EAClDjB,EAAOC,EAAK,CAAC,GAAMI,EAAQoB,GAAYC,GAAWT,GAGlDjB,EAAOC,CAAE,EAAID,EAAOC,EAAK,CAAC,EAAID,EAAOC,EAAK,CAAC,EAAI,EAEnDE,GAASI,EACTH,GAASI,EACTH,GAASI,EACTH,GAASI,EACTH,GAAasB,EAAQ,EACrBrB,GAAaqB,EAAQ,EACrBpB,GAAaoB,EAAQ,EACrBnB,GAAamB,EAAQ,EACrBtiB,EAAK2gB,IAAO3gB,EAAIhgB,EAAIwM,EAAS,GAAKq1B,EAAc7hB,EAAI6hB,IAAiB,EACrET,GAAYkB,EAAQ,EAAI7B,EAAOzgB,CAAC,EAChCqhB,GAAYiB,EAAQ,EAAI7B,EAAOzgB,EAAI,CAAC,EACpCshB,GAAYgB,EAAQ,EAAI7B,EAAOzgB,EAAI,CAAC,EACpCuhB,GAAYe,EAAQ,EAAI7B,EAAOzgB,EAAI,CAAC,EACpC4gB,GAASQ,EACTP,GAASQ,EACTP,GAASQ,EACTP,GAASQ,EACTe,EAAUA,EAAQ,KAClBtB,GAAan6B,EAAK07B,EAAS,EAC3BtB,GAAaO,EAAKe,EAAS,EAC3BrB,GAAaO,EAAKc,EAAS,EAC3BpB,GAAaO,EAAKa,EAAS,EAC3BnB,GAAYv6B,EACZw6B,GAAYG,EACZF,GAAYG,EACZF,GAAYG,EACZa,EAAWA,EAAS,KACpB7B,GAAM,EAEVC,GAAMv5B,CACd,CACI,IAAKpH,EAAI,EAAGA,EAAIoH,EAAOpH,IAAK,CAoBxB,IAnBAqhC,EACIC,EACIC,EACIH,EACIP,EACIC,EACIC,EACIH,EACI,EAChCF,EAAK1gC,GAAK,EACVghC,EAAYe,GAAel7B,EAAK45B,EAAOC,CAAE,GACzCO,EAAYc,GAAeP,EAAKf,EAAOC,EAAK,CAAC,GAC7CQ,EAAYa,GAAeN,EAAKhB,EAAOC,EAAK,CAAC,GAC7CS,EAAYY,GAAeL,EAAKjB,EAAOC,EAAK,CAAC,GAC7CE,GAASoB,EAAYn7B,EACrBg6B,GAASmB,EAAYR,EACrBV,GAASkB,EAAYP,EACrBV,GAASiB,EAAYN,EACrBW,EAAQJ,EACHz9B,EAAI,EAAGA,EAAIu9B,EAAav9B,IACzB69B,EAAM,EAAIx7B,EACVw7B,EAAM,EAAIb,EACVa,EAAM,EAAIZ,EACVY,EAAM,EAAIX,EACVW,EAAQA,EAAM,KAGlB,IADA/R,EAAKlpB,EACA5C,EAAI,EAAGA,GAAKgI,EAAQhI,IACrBk8B,EAAMpQ,EAAKtwB,GAAM,EACjB4gC,IAAUyB,EAAM,EAAIx7B,EAAK45B,EAAOC,CAAE,IAAMiB,EAAMI,EAAcv9B,GAC5Dq8B,IAAUwB,EAAM,EAAIb,EAAKf,EAAOC,EAAK,CAAC,GAAKiB,EAC3Cb,IAAUuB,EAAM,EAAIZ,EAAKhB,EAAOC,EAAK,CAAC,GAAKiB,EAC3CZ,IAAUsB,EAAM,EAAIX,EAAKjB,EAAOC,EAAK,CAAC,GAAKiB,EAC3CP,GAAYv6B,EACZw6B,GAAYG,EACZF,GAAYG,EACZF,GAAYG,EACZW,EAAQA,EAAM,KACV79B,EAAIs9B,IACJxR,GAAMlpB,GAMd,IAHAs5B,EAAK1gC,EACLsiC,EAAUL,EACVM,EAAWH,EACN38B,EAAI,EAAGA,EAAI4B,EAAQ5B,IACpBua,EAAI0gB,GAAM,EACVD,EAAOzgB,EAAI,CAAC,EAAI0hB,EAAMX,EAAQmB,GAAYC,EACtCT,EAAK,GACLA,EAAK,IAAMA,EACXjB,EAAOzgB,CAAC,GAAM4gB,EAAQsB,GAAYC,GAAWT,EAC7CjB,EAAOzgB,EAAI,CAAC,GAAM6gB,EAAQqB,GAAYC,GAAWT,EACjDjB,EAAOzgB,EAAI,CAAC,GAAM8gB,EAAQoB,GAAYC,GAAWT,GAGjDjB,EAAOzgB,CAAC,EAAIygB,EAAOzgB,EAAI,CAAC,EAAIygB,EAAOzgB,EAAI,CAAC,EAAI,EAEhD4gB,GAASI,EACTH,GAASI,EACTH,GAASI,EACTH,GAASI,EACTH,GAAasB,EAAQ,EACrBrB,GAAaqB,EAAQ,EACrBpB,GAAaoB,EAAQ,EACrBnB,GAAamB,EAAQ,EACrBtiB,EACKhgB,IACKggB,EAAIva,EAAIs8B,GAAeD,EAAe9hB,EAAI8hB,GAAgB16B,GAC5D,EACRw5B,GAASQ,GAAYkB,EAAQ,EAAI7B,EAAOzgB,CAAC,EACzC6gB,GAASQ,GAAYiB,EAAQ,EAAI7B,EAAOzgB,EAAI,CAAC,EAC7C8gB,GAASQ,GAAYgB,EAAQ,EAAI7B,EAAOzgB,EAAI,CAAC,EAC7C+gB,GAASQ,GAAYe,EAAQ,EAAI7B,EAAOzgB,EAAI,CAAC,EAC7CsiB,EAAUA,EAAQ,KAClBtB,GAAan6B,EAAK07B,EAAS,EAC3BtB,GAAaO,EAAKe,EAAS,EAC3BrB,GAAaO,EAAKc,EAAS,EAC3BpB,GAAaO,EAAKa,EAAS,EAC3BnB,GAAYv6B,EACZw6B,GAAYG,EACZF,GAAYG,EACZF,GAAYG,EACZa,EAAWA,EAAS,KACpB7B,GAAMt5B,CAElB,CACA,CACA,MAAMo7B,EAAO,SAAcn0B,EAAW,CAClC,MAAM7B,EAAS,KAAK,MAAM,KAAK,WAAU,CAAE,EACvCA,EAAS,GACTg0B,EAAoBnyB,EAAW7B,CAAM,CAE5C,EACD4zB,OAAAA,GAAA,KAAeoC,EACf7xB,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,aAAc,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDC7OxI,OAAO,eAAe8xB,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,GAAA,SAAG,OACnB,MAAM9xB,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvCgyB,EAAW,SAAUr0B,EAAW,CAClC,MAAMs0B,EAAa,KAAK,WAAU,EAAK,IAAKxnB,EAAO9M,EAAU,KAAMxE,EAAMsR,EAAK,OAC9E,QAAS3W,EAAI,EAAGA,EAAIqF,EAAKrF,GAAK,EAC1B2W,EAAK3W,CAAC,GAAKm+B,EACXxnB,EAAK3W,EAAI,CAAC,GAAKm+B,EACfxnB,EAAK3W,EAAI,CAAC,GAAKm+B,CAEtB,EACDF,OAAAA,GAAA,SAAmBC,EACnB/xB,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,aAAc,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDCdxI,OAAO,eAAeiyB,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,GAAA,SAAG,OACnB,MAAMjyB,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvCmyB,EAAW,SAAUx0B,EAAW,CAClC,MAAMy0B,EAAS,KAAK,KAAK,KAAK,WAAa,KAAO,IAAK,CAAC,EAClD3nB,EAAO9M,EAAU,KAAM00B,EAAU5nB,EAAK,OAC5C,IAAI6nB,EAAM,IAAKC,EAAQ,IAAKC,EAAO,IACnC,QAAS1+B,EAAI,EAAGA,EAAIu+B,EAASv+B,GAAK,EAC9Bw+B,EAAM7nB,EAAK3W,CAAC,EACZy+B,EAAQ9nB,EAAK3W,EAAI,CAAC,EAClB0+B,EAAO/nB,EAAK3W,EAAI,CAAC,EACjBw+B,GAAO,IACPA,GAAO,GACPA,GAAOF,EACPE,GAAO,GACPA,GAAO,IACPC,GAAS,IACTA,GAAS,GACTA,GAASH,EACTG,GAAS,GACTA,GAAS,IACTC,GAAQ,IACRA,GAAQ,GACRA,GAAQJ,EACRI,GAAQ,GACRA,GAAQ,IACRF,EAAMA,EAAM,EAAI,EAAIA,EAAM,IAAM,IAAMA,EACtCC,EAAQA,EAAQ,EAAI,EAAIA,EAAQ,IAAM,IAAMA,EAC5CC,EAAOA,EAAO,EAAI,EAAIA,EAAO,IAAM,IAAMA,EACzC/nB,EAAK3W,CAAC,EAAIw+B,EACV7nB,EAAK3W,EAAI,CAAC,EAAIy+B,EACd9nB,EAAK3W,EAAI,CAAC,EAAI0+B,CAErB,EACDN,OAAAA,GAAA,SAAmBC,EACnBlyB,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,WAAY,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDCrCtI,OAAO,eAAewyB,GAAS,aAAc,CAAE,MAAO,GAAM,EAC9CA,GAAA,OAAG,OACjB,MAAMxyB,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3BD,EAASmI,GAAkB,EAC3BrH,EAAeuH,EAAwB,EACvCwyB,EAAS,SAAU/0B,EAAW,CAChC,MAAMg1B,EAAW,KAAK,eAAgB,EAAG,GAAIC,EAAY,KAAK,iBAAkB,EAAG,IAAKjQ,EAAY,KAAK,gBAAe,EAAIkQ,EAAQ,KAAK,YAAW,EAAIpoB,EAAO9M,EAAU,KAAMm1B,EAAIn1B,EAAU,MAAOlK,EAAIkK,EAAU,OAAQo1B,EAAKD,EAAI,EACnO,IAAIE,EAAO,EAAGC,EAAO,EAAGl+B,EAAItB,EAC5B,OAAQkvB,EAAS,CACb,IAAK,WACDqQ,EAAO,GACPC,EAAO,GACP,MACJ,IAAK,MACDD,EAAO,GACPC,EAAO,EACP,MACJ,IAAK,YACDD,EAAO,GACPC,EAAO,EACP,MACJ,IAAK,QACDD,EAAO,EACPC,EAAO,EACP,MACJ,IAAK,eACDD,EAAO,EACPC,EAAO,EACP,MACJ,IAAK,SACDD,EAAO,EACPC,EAAO,EACP,MACJ,IAAK,cACDD,EAAO,EACPC,EAAO,GACP,MACJ,IAAK,OACDD,EAAO,EACPC,EAAO,GACP,MACJ,QACIp7B,EAAO,KAAK,MAAM,6BAA+B8qB,CAAS,CACtE,CACI,EAAG,CACC,MAAMva,GAAWrT,EAAI,GAAKg+B,EAC1B,IAAIG,EAASF,EACTj+B,EAAIm+B,EAAS,IACbA,EAAS,GAETn+B,EAAIm+B,EAASz/B,IACby/B,EAAS,GAEb,MAAMC,GAAgBp+B,EAAI,EAAIm+B,GAAUJ,EAAI,EAC5C,IAAIxjC,EAAIwjC,EACR,EAAG,CACC,MAAMvzB,EAAS6I,GAAW9Y,EAAI,GAAK,EACnC,IAAI8jC,EAASH,EACT3jC,EAAI8jC,EAAS,IACbA,EAAS,GAET9jC,EAAI8jC,EAASN,IACbM,EAAS,GAEb,MAAMC,EAAcF,GAAgB7jC,EAAI,EAAI8jC,GAAU,EAChDE,EAAK7oB,EAAKlL,CAAM,EAAIkL,EAAK4oB,CAAW,EACpCE,EAAK9oB,EAAKlL,EAAS,CAAC,EAAIkL,EAAK4oB,EAAc,CAAC,EAC5CG,EAAK/oB,EAAKlL,EAAS,CAAC,EAAIkL,EAAK4oB,EAAc,CAAC,EAClD,IAAII,EAAMH,EACV,MAAMI,EAASD,EAAM,EAAIA,EAAM,CAACA,EAC1BE,EAAOJ,EAAK,EAAIA,EAAK,CAACA,EACtBK,EAAOJ,EAAK,EAAIA,EAAK,CAACA,EAQ5B,GAPIG,EAAOD,IACPD,EAAMF,GAENK,EAAOF,IACPD,EAAMD,GAEVC,GAAOd,EACHE,EAAO,CACP,MAAM7hC,EAAIyZ,EAAKlL,CAAM,EAAIk0B,EACnB5gC,EAAI4X,EAAKlL,EAAS,CAAC,EAAIk0B,EACvB9iC,EAAI8Z,EAAKlL,EAAS,CAAC,EAAIk0B,EAC7BhpB,EAAKlL,CAAM,EAAIvO,EAAI,IAAM,IAAMA,EAAI,EAAI,EAAIA,EAC3CyZ,EAAKlL,EAAS,CAAC,EAAI1M,EAAI,IAAM,IAAMA,EAAI,EAAI,EAAIA,EAC/C4X,EAAKlL,EAAS,CAAC,EAAI5O,EAAI,IAAM,IAAMA,EAAI,EAAI,EAAIA,CAC/D,KACiB,CACD,IAAIkjC,EAAOjB,EAAYa,EACnBI,EAAO,EACPA,EAAO,EAEFA,EAAO,MACZA,EAAO,KAEXppB,EAAKlL,CAAM,EAAIkL,EAAKlL,EAAS,CAAC,EAAIkL,EAAKlL,EAAS,CAAC,EAAIs0B,CACrE,CACS,OAAQ,EAAEvkC,EACd,OAAQ,EAAEyF,EACd,EACD09B,OAAAA,GAAA,OAAiBC,EACjBzyB,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,iBAAkB,MAAS9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EAC9IA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,mBAAoB,MAAS9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EAChJA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,kBAAmB,WAAY,OAAWxB,EAAU,QAAQ,cAAc,EACzHA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,cAAe,GAAO,OAAWxB,EAAU,QAAQ,cAAc,qDCzGhH,OAAO,eAAe6zB,GAAS,aAAc,CAAE,MAAO,GAAM,EAC7CA,GAAA,QAAG,OAClB,MAAM7zB,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EAC7C,SAAS+zB,EAAMC,EAAWC,EAASC,EAASC,EAAOC,EAAO,CACtD,MAAMC,EAAYH,EAAUD,EAASK,EAAUF,EAAQD,EACvD,GAAIE,IAAc,EACd,OAAOF,EAAQG,EAAU,EAE7B,GAAIA,IAAY,EACZ,OAAOH,EAEX,IAAII,GAAWP,EAAYC,GAAWI,EACtC,OAAAE,EAAUD,EAAUC,EAAUJ,EACvBI,CACX,CACA,MAAMC,EAAU,SAAU72B,EAAW,CACjC,MAAM8M,EAAO9M,EAAU,KAAM82B,EAAahqB,EAAK,OAC/C,IAAIiqB,EAAOjqB,EAAK,CAAC,EAAGkqB,EAAOD,EAAM1jC,EAAG4jC,EAAOnqB,EAAK,CAAC,EAAGoqB,EAAOD,EAAM/hC,EAAGiiC,EAAOrqB,EAAK,CAAC,EAAGsqB,EAAOD,EAAMnkC,EACjG,MAAMqkC,EAAgB,KAAK,QAAS,EACpC,GAAIA,IAAkB,EAClB,OAEJ,QAASlhC,EAAI,EAAGA,EAAI2gC,EAAY3gC,GAAK,EACjC9C,EAAIyZ,EAAK3W,EAAI,CAAC,EACV9C,EAAI0jC,EACJA,EAAO1jC,EAEFA,EAAI2jC,IACTA,EAAO3jC,GAEX6B,EAAI4X,EAAK3W,EAAI,CAAC,EACVjB,EAAI+hC,EACJA,EAAO/hC,EAEFA,EAAIgiC,IACTA,EAAOhiC,GAEXlC,EAAI8Z,EAAK3W,EAAI,CAAC,EACVnD,EAAImkC,EACJA,EAAOnkC,EAEFA,EAAIokC,IACTA,EAAOpkC,GAGXgkC,IAASD,IACTC,EAAO,IACPD,EAAO,GAEPG,IAASD,IACTC,EAAO,IACPD,EAAO,GAEPG,IAASD,IACTC,EAAO,IACPD,EAAO,GAEX,IAAIG,EAAMC,EAAUC,EAAUC,EAAMC,EAAUC,EAAUC,EAAMC,EAAUC,EACpET,EAAgB,GAChBE,EAAWP,EAAOK,GAAiB,IAAML,GACzCQ,EAAWT,EAAOM,GAAiBN,EAAO,GAC1CW,EAAWR,EAAOG,GAAiB,IAAMH,GACzCS,EAAWV,EAAOI,GAAiBJ,EAAO,GAC1CY,EAAWT,EAAOC,GAAiB,IAAMD,GACzCU,EAAWX,EAAOE,GAAiBF,EAAO,KAG1CG,GAAQN,EAAOD,GAAQ,GACvBQ,EAAWP,EAAOK,GAAiBL,EAAOM,GAC1CE,EAAWT,EAAOM,GAAiBN,EAAOO,GAC1CG,GAAQP,EAAOD,GAAQ,GACvBS,EAAWR,EAAOG,GAAiBH,EAAOO,GAC1CE,EAAWV,EAAOI,GAAiBJ,EAAOQ,GAC1CG,GAAQR,EAAOD,GAAQ,GACvBU,EAAWT,EAAOC,GAAiBD,EAAOQ,GAC1CE,EAAWX,EAAOE,GAAiBF,EAAOS,IAE9C,QAASzhC,EAAI,EAAGA,EAAI2gC,EAAY3gC,GAAK,EACjC2W,EAAK3W,EAAI,CAAC,EAAIigC,EAAMtpB,EAAK3W,EAAI,CAAC,EAAG4gC,EAAMC,EAAMQ,EAAUD,CAAQ,EAC/DzqB,EAAK3W,EAAI,CAAC,EAAIigC,EAAMtpB,EAAK3W,EAAI,CAAC,EAAG8gC,EAAMC,EAAMS,EAAUD,CAAQ,EAC/D5qB,EAAK3W,EAAI,CAAC,EAAIigC,EAAMtpB,EAAK3W,EAAI,CAAC,EAAGghC,EAAMC,EAAMU,EAAUD,CAAQ,CAEtE,EACD1B,OAAAA,GAAA,QAAkBU,EAClBv0B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,UAAW,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDCtFrI,OAAO,eAAey1B,GAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,GAAA,UAAG,OACpB,MAAMC,EAAY,SAAUh4B,EAAW,CACnC,MAAM8M,EAAO9M,EAAU,KAAMxE,EAAMsR,EAAK,OACxC,QAAS3W,EAAI,EAAGA,EAAIqF,EAAKrF,GAAK,EAAG,CAC7B,MAAMm+B,EAAa,IAAOxnB,EAAK3W,CAAC,EAAI,GAAM2W,EAAK3W,EAAI,CAAC,EAAI,IAAO2W,EAAK3W,EAAI,CAAC,EACzE2W,EAAK3W,CAAC,EAAIm+B,EACVxnB,EAAK3W,EAAI,CAAC,EAAIm+B,EACdxnB,EAAK3W,EAAI,CAAC,EAAIm+B,CACtB,CACC,EACDyD,OAAAA,GAAA,UAAoBC,qDCXpB,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EACjDA,GAAA,IAAG,OACd,MAAM31B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EAC7CC,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,MAAO,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EACjIA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,aAAc,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EACxIA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,YAAa,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EACvI,MAAM41B,EAAM,SAAUl4B,EAAW,CAC7B,MAAM8M,EAAO9M,EAAU,KAAM00B,EAAU5nB,EAAK,OAAQwV,EAAI,EAAGtwB,EAAI,KAAK,IAAI,EAAG,KAAK,WAAY,CAAA,EAAG8D,EAAI,KAAK,IAAI,KAAK,IAAG,EAAK,GAAG,EAAI,IAAKC,EAAI,KAAK,UAAW,EAAG,IACtJoiC,EAAM7V,EAAItwB,EAAI,KAAK,IAAK8D,EAAI,KAAK,GAAM,GAAG,EAAGsiC,EAAM9V,EAAItwB,EAAI,KAAK,IAAK8D,EAAI,KAAK,GAAM,GAAG,EACvFuiC,EAAK,KAAQ/V,EAAI,KAAQ6V,EAAM,KAAQC,EAAKE,EAAK,KAAQhW,EAAI,KAAQ6V,EAAM,IAAOC,EAAKG,EAAK,KAAQjW,EAAI,KAAQ6V,EAAM,KAAQC,EAC9HI,EAAK,KAAQlW,EAAI,KAAQ6V,EAAM,KAAQC,EAAKK,EAAK,KAAQnW,EAAI,KAAQ6V,EAAM,KAAQC,EAAKM,EAAK,KAAQpW,EAAI,KAAQ6V,EAAM,KAAQC,EAC/HO,EAAK,KAAQrW,EAAI,GAAM6V,EAAM,KAAOC,EAAKQ,EAAK,KAAQtW,EAAI,KAAQ6V,EAAM,KAAOC,EAAKS,EAAK,KAAQvW,EAAI,KAAQ6V,EAAM,GAAMC,EAC/H,IAAI/kC,EAAG6B,EAAGlC,EAAGD,EACb,QAASoD,EAAI,EAAGA,EAAIu+B,EAASv+B,GAAK,EAC9B9C,EAAIyZ,EAAK3W,EAAI,CAAC,EACdjB,EAAI4X,EAAK3W,EAAI,CAAC,EACdnD,EAAI8Z,EAAK3W,EAAI,CAAC,EACdpD,EAAI+Z,EAAK3W,EAAI,CAAC,EACd2W,EAAK3W,EAAI,CAAC,EAAIkiC,EAAKhlC,EAAIilC,EAAKpjC,EAAIqjC,EAAKvlC,EAAI+C,EACzC+W,EAAK3W,EAAI,CAAC,EAAIqiC,EAAKnlC,EAAIolC,EAAKvjC,EAAIwjC,EAAK1lC,EAAI+C,EACzC+W,EAAK3W,EAAI,CAAC,EAAIwiC,EAAKtlC,EAAIulC,EAAK1jC,EAAI2jC,EAAK7lC,EAAI+C,EACzC+W,EAAK3W,EAAI,CAAC,EAAIpD,CAErB,EACDklC,OAAAA,GAAA,IAAcC,qDC1Bd,OAAO,eAAeY,GAAS,aAAc,CAAE,MAAO,GAAM,EACjDA,GAAA,IAAG,OACd,MAAMx2B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvC02B,EAAM,SAAU/4B,EAAW,CAC7B,MAAM8M,EAAO9M,EAAU,KAAM00B,EAAU5nB,EAAK,OAAQwV,EAAI,KAAK,IAAI,EAAG,KAAK,MAAK,CAAE,EAAGtwB,EAAI,KAAK,IAAI,EAAG,KAAK,WAAY,CAAA,EAAG8D,EAAI,KAAK,IAAI,KAAK,IAAG,EAAK,GAAG,EAAI,IAClJqiC,EAAM7V,EAAItwB,EAAI,KAAK,IAAK8D,EAAI,KAAK,GAAM,GAAG,EAAGsiC,EAAM9V,EAAItwB,EAAI,KAAK,IAAK8D,EAAI,KAAK,GAAM,GAAG,EACvFuiC,EAAK,KAAQ/V,EAAI,KAAQ6V,EAAM,KAAQC,EAAKE,EAAK,KAAQhW,EAAI,KAAQ6V,EAAM,IAAOC,EAAKG,EAAK,KAAQjW,EAAI,KAAQ6V,EAAM,KAAQC,EAC9HI,EAAK,KAAQlW,EAAI,KAAQ6V,EAAM,KAAQC,EAAKK,EAAK,KAAQnW,EAAI,KAAQ6V,EAAM,KAAQC,EAAKM,EAAK,KAAQpW,EAAI,KAAQ6V,EAAM,KAAQC,EAC/HO,EAAK,KAAQrW,EAAI,GAAM6V,EAAM,KAAOC,EAAKQ,EAAK,KAAQtW,EAAI,KAAQ6V,EAAM,KAAOC,EAAKS,EAAK,KAAQvW,EAAI,KAAQ6V,EAAM,GAAMC,EAC/H,IAAI/kC,EAAG6B,EAAGlC,EAAGD,EACb,QAASoD,EAAI,EAAGA,EAAIu+B,EAASv+B,GAAK,EAC9B9C,EAAIyZ,EAAK3W,EAAI,CAAC,EACdjB,EAAI4X,EAAK3W,EAAI,CAAC,EACdnD,EAAI8Z,EAAK3W,EAAI,CAAC,EACdpD,EAAI+Z,EAAK3W,EAAI,CAAC,EACd2W,EAAK3W,EAAI,CAAC,EAAIkiC,EAAKhlC,EAAIilC,EAAKpjC,EAAIqjC,EAAKvlC,EACrC8Z,EAAK3W,EAAI,CAAC,EAAIqiC,EAAKnlC,EAAIolC,EAAKvjC,EAAIwjC,EAAK1lC,EACrC8Z,EAAK3W,EAAI,CAAC,EAAIwiC,EAAKtlC,EAAIulC,EAAK1jC,EAAI2jC,EAAK7lC,EACrC8Z,EAAK3W,EAAI,CAAC,EAAIpD,CAErB,EACD+lC,OAAAA,GAAA,IAAcC,EACdz2B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,MAAO,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EACjIA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,aAAc,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EACxIA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,QAAS,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDC1BnI,OAAO,eAAe02B,GAAS,aAAc,CAAE,MAAO,GAAM,EAC9CA,GAAA,OAAG,OACjB,MAAMC,EAAS,SAAUj5B,EAAW,CAChC,MAAM8M,EAAO9M,EAAU,KAAMxE,EAAMsR,EAAK,OACxC,QAAS3W,EAAI,EAAGA,EAAIqF,EAAKrF,GAAK,EAC1B2W,EAAK3W,CAAC,EAAI,IAAM2W,EAAK3W,CAAC,EACtB2W,EAAK3W,EAAI,CAAC,EAAI,IAAM2W,EAAK3W,EAAI,CAAC,EAC9B2W,EAAK3W,EAAI,CAAC,EAAI,IAAM2W,EAAK3W,EAAI,CAAC,CAErC,EACD6iC,OAAAA,GAAA,OAAiBC,qDCVjB,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,GAAA,aAAG,OACvB,MAAM52B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3BD,EAASmI,GAAkB,EAC3BrH,EAAeuH,EAAwB,EACvC42B,EAAU,SAAUC,EAAKC,EAAKC,EAAK,CACrC,MAAMC,EAAYH,EAAI,KAAMI,EAAYH,EAAI,KAAMI,EAAQL,EAAI,MAAOM,EAAQN,EAAI,OAAQO,EAAOL,EAAI,cAAgBG,EAAQ,EAAGG,EAAON,EAAI,cAAgBI,EAAQ,EAClK,IAAI1C,EAAO,KAAK,KAAK2C,EAAOA,EAAOC,EAAOA,CAAI,EAC1CjoC,EAAI8nC,EAAQE,EACZviC,EAAIsiC,EAAQE,EAChB,MAAM9nC,EAAM,KAAK,KAAKH,EAAIA,EAAIyF,EAAIA,CAAC,EACnC4/B,EAAOllC,EAAMklC,EAAOllC,EAAMklC,EAC1B,MAAM6C,EAAQH,EAAOI,EAAQL,EACvBM,EAAe,IAAMD,EAAS,KAAK,GAAM,IAC/C,QAASrwB,EAAQ,EAAGA,EAAQqwB,EAAOrwB,GAAS,EAAG,CAC3C,MAAMuwB,EAAM,KAAK,IAAIvwB,EAAQswB,CAAU,EACjCE,EAAM,KAAK,IAAIxwB,EAAQswB,CAAU,EACvC,QAAS57B,EAAS,EAAGA,EAAS07B,EAAO17B,GAAU,EAAG,CAC9CxM,EAAI,KAAK,MAAMgoC,EAAS3C,EAAO74B,EAAU07B,EAASI,CAAG,EACrD7iC,EAAI,KAAK,MAAMwiC,EAAS5C,EAAO74B,EAAU07B,EAASG,CAAG,EACrD,IAAI7jC,GAAKiB,EAAIqiC,EAAQ9nC,GAAK,EAC1B,MAAM0B,EAAIkmC,EAAUpjC,EAAI,CAAC,EACnBjB,EAAIqkC,EAAUpjC,EAAI,CAAC,EACnBnD,EAAIumC,EAAUpjC,EAAI,CAAC,EACnBpD,EAAIwmC,EAAUpjC,EAAI,CAAC,EACzBA,GAAKsT,EAAQtL,EAASs7B,GAAS,EAC/BD,EAAUrjC,EAAI,CAAC,EAAI9C,EACnBmmC,EAAUrjC,EAAI,CAAC,EAAIjB,EACnBskC,EAAUrjC,EAAI,CAAC,EAAInD,EACnBwmC,EAAUrjC,EAAI,CAAC,EAAIpD,CAC/B,CACA,CACC,EACKmnC,EAAY,SAAUd,EAAKC,EAAKC,EAAK,CACvC,MAAMC,EAAYH,EAAI,KAAMI,EAAYH,EAAI,KAAMI,EAAQL,EAAI,MAAOM,EAAQN,EAAI,OAAQO,EAAOL,EAAI,cAAgBG,EAAQ,EAAGG,EAAON,EAAI,cAAgBI,EAAQ,EAClK,IAAI1C,EAAO,KAAK,KAAK2C,EAAOA,EAAOC,EAAOA,CAAI,EAC1CjoC,EAAI8nC,EAAQE,EACZviC,EAAIsiC,EAAQE,EAChB,MAAM9nC,EAAM,KAAK,KAAKH,EAAIA,EAAIyF,EAAIA,CAAC,EACnC4/B,EAAOllC,EAAMklC,EAAOllC,EAAMklC,EAC1B,MAAM6C,EAAQH,EAAOI,EAAQL,EAAOU,EAAkC,EACtE,IAAIrjC,EAAIC,EACR,IAAKpF,EAAI,EAAGA,EAAI8nC,EAAO9nC,GAAK,EACxB,IAAKyF,EAAI,EAAGA,EAAIsiC,EAAOtiC,GAAK,EAAG,CAC3B,MAAM9E,EAAKX,EAAIgoC,EACTpnC,EAAK6E,EAAIwiC,EACTz7B,EAAU,KAAK,KAAK7L,EAAKA,EAAKC,EAAKA,CAAE,EAAIsnC,EAAS7C,EACxD,IAAIvtB,GAAU,KAAK,MAAMlX,EAAID,CAAE,EAAI,IAAO,KAAK,GAAK,IAAM6nC,GAAc,IACxE1wB,EAASA,EAAQqwB,EAAS,IAC1BhjC,EAAK,KAAK,MAAM2S,CAAK,EACrB1S,EAAK,KAAK,MAAMoH,CAAM,EACtB,IAAI,GAAKpH,EAAK0iC,EAAQ3iC,GAAM,EAC5B,MAAMzD,EAAIkmC,EAAU,EAAI,CAAC,EACnBrkC,EAAIqkC,EAAU,EAAI,CAAC,EACnBvmC,EAAIumC,EAAU,EAAI,CAAC,EACnBxmC,EAAIwmC,EAAU,EAAI,CAAC,EACzB,GAAKniC,EAAIqiC,EAAQ9nC,GAAK,EACtB6nC,EAAU,EAAI,CAAC,EAAInmC,EACnBmmC,EAAU,EAAI,CAAC,EAAItkC,EACnBskC,EAAU,EAAI,CAAC,EAAIxmC,EACnBwmC,EAAU,EAAI,CAAC,EAAIzmC,CAC/B,CAEC,EACKqnC,EAAe,SAAUp6B,EAAW,CACtC,MAAMy5B,EAAQz5B,EAAU,MAAO05B,EAAQ15B,EAAU,OACjD,IAAIrO,EAAGyF,EAAGijC,EAAMlkC,EAAG9C,EAAG6B,EAAGlC,EAAGD,EAAGunC,EAAQC,EACnCC,EAAQ,KAAK,MAAM,KAAK,kBAAiB,CAAE,EAC/C,MAAMxpC,EAAQ,KAAK,MAAM,KAAK,kBAAiB,CAAE,EAC3C4Q,EAAS,KAAK,MAAO63B,GAASzoC,EAAQ,KAAQ,GAAG,EACvD,GAAIwpC,EAAQ,EACR,OAEJ,MAAMC,EAAavgC,EAAO,KAAK,oBAAqB,EACpDugC,EAAW,MAAQhB,EACnBgB,EAAW,OAASf,EACpB,MAAMgB,EAAcD,EACf,WAAW,IAAI,EACf,aAAa,EAAG,EAAGhB,EAAOC,CAAK,EACpCx/B,EAAO,KAAK,cAAcugC,CAAU,EACpCtB,EAAQn5B,EAAW06B,EAAa,CAC5B,aAAcjB,EAAQ,EACtB,aAAcC,EAAQ,CAC9B,CAAK,EACD,IAAIiB,EAAiBlB,EAAQ,KAAK,IAAI,EAAGe,CAAK,EAC9C,KAAOG,GAAkB,GACrBA,EAAiBA,EAAiB,EAClCH,GAAS,EAEbG,EAAiB,KAAK,KAAKA,CAAc,EACzC,IAAIC,EAAcD,EACdE,EAAS,EAAGC,EAAOF,EAAaG,EAAS,EAM7C,IALIn5B,EAAS+4B,EAAiBlB,IAC1BoB,EAASD,EACTE,EAAO,EACPC,EAAS,IAER3jC,EAAI,EAAGA,EAAIsiC,EAAOtiC,GAAK,EACxB,IAAKzF,EAAIkpC,EAAQlpC,IAAMmpC,EAAMnpC,GAAKopC,EAC9BV,EAAO,KAAK,MAAM1oC,EAAIiQ,CAAM,EAAI63B,EAChCa,GAAUb,EAAQriC,EAAIijC,GAAQ,EAC9BhnC,EAAIqnC,EAAY,KAAKJ,EAAS,CAAC,EAC/BplC,EAAIwlC,EAAY,KAAKJ,EAAS,CAAC,EAC/BtnC,EAAI0nC,EAAY,KAAKJ,EAAS,CAAC,EAC/BvnC,EAAI2nC,EAAY,KAAKJ,EAAS,CAAC,EAC/BC,GAAUd,EAAQriC,EAAIzF,GAAK,EAC3B+oC,EAAY,KAAKH,EAAS,CAAC,EAAIlnC,EAC/BqnC,EAAY,KAAKH,EAAS,CAAC,EAAIrlC,EAC/BwlC,EAAY,KAAKH,EAAS,CAAC,EAAIvnC,EAC/B0nC,EAAY,KAAKH,EAAS,CAAC,EAAIxnC,EAGvC,IAAKqE,EAAI,EAAGA,EAAIsiC,EAAOtiC,GAAK,EAExB,IADAwjC,EAAc,KAAK,MAAMD,CAAc,EAClCxkC,EAAI,EAAGA,EAAIqkC,EAAOrkC,GAAK,EAAG,CAC3B,IAAKxE,EAAI,EAAGA,EAAIipC,EAAc,EAAGjpC,GAAK,EAClC2oC,GAAUb,EAAQriC,EAAIzF,GAAK,EAC3B0B,EAAIqnC,EAAY,KAAKJ,EAAS,CAAC,EAC/BplC,EAAIwlC,EAAY,KAAKJ,EAAS,CAAC,EAC/BtnC,EAAI0nC,EAAY,KAAKJ,EAAS,CAAC,EAC/BvnC,EAAI2nC,EAAY,KAAKJ,EAAS,CAAC,EAC/BC,GAAUd,EAAQriC,EAAIwjC,EAAc,EAAIjpC,EAAI,GAAK,EACjD+oC,EAAY,KAAKH,EAAS,CAAC,EAAIlnC,EAC/BqnC,EAAY,KAAKH,EAAS,CAAC,EAAIrlC,EAC/BwlC,EAAY,KAAKH,EAAS,CAAC,EAAIvnC,EAC/B0nC,EAAY,KAAKH,EAAS,CAAC,EAAIxnC,EAEnC6nC,GAAe,CAC3B,CAEIV,EAAUQ,EAAa16B,EAAW,CAAkB,CAAE,CACzD,EACDk5B,OAAAA,GAAA,aAAuBkB,EACvB93B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,oBAAqB,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,EAC/IA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,oBAAqB,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDCvI/I,OAAO,eAAe04B,GAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,GAAA,KAAG,OACf,MAAM14B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EAC7C,SAAS44B,EAAQC,EAAOvpC,EAAGyF,EAAG,CAC1B,IAAI0qB,GAAO1qB,EAAI8jC,EAAM,MAAQvpC,GAAK,EAClC,MAAMa,EAAI,CAAE,EACZ,OAAAA,EAAE,KAAK0oC,EAAM,KAAKpZ,GAAK,EAAGoZ,EAAM,KAAKpZ,GAAK,EAAGoZ,EAAM,KAAKpZ,GAAK,EAAGoZ,EAAM,KAAKpZ,GAAK,CAAC,EAC1EtvB,CACX,CACA,SAAS2oC,EAAYvjC,EAAIC,EAAI,CACzB,OAAO,KAAK,KAAK,KAAK,IAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAG,CAAC,EACtC,KAAK,IAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAG,CAAC,EACzB,KAAK,IAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAG,CAAC,CAAC,CAClC,CACA,SAASujC,EAAQC,EAAM,CACnB,MAAM7pC,EAAI,CAAC,EAAG,EAAG,CAAC,EAClB,QAAS2E,EAAI,EAAGA,EAAIklC,EAAK,OAAQllC,IAC7B3E,EAAE,CAAC,GAAK6pC,EAAKllC,CAAC,EAAE,CAAC,EACjB3E,EAAE,CAAC,GAAK6pC,EAAKllC,CAAC,EAAE,CAAC,EACjB3E,EAAE,CAAC,GAAK6pC,EAAKllC,CAAC,EAAE,CAAC,EAErB,OAAA3E,EAAE,CAAC,GAAK6pC,EAAK,OACb7pC,EAAE,CAAC,GAAK6pC,EAAK,OACb7pC,EAAE,CAAC,GAAK6pC,EAAK,OACN7pC,CACX,CACA,SAAS8pC,EAAeJ,EAAOK,EAAW,CACtC,MAAMC,EAAUP,EAAQC,EAAO,EAAG,CAAC,EAC7BO,EAAUR,EAAQC,EAAOA,EAAM,MAAQ,EAAG,CAAC,EAC3CQ,EAAUT,EAAQC,EAAO,EAAGA,EAAM,OAAS,CAAC,EAC5CS,EAAUV,EAAQC,EAAOA,EAAM,MAAQ,EAAGA,EAAM,OAAS,CAAC,EAC1DU,EAAQL,GAAa,GAC3B,GAAIJ,EAAYK,EAASC,CAAO,EAAIG,GAChCT,EAAYM,EAASE,CAAO,EAAIC,GAChCT,EAAYQ,EAASD,CAAO,EAAIE,GAChCT,EAAYO,EAASF,CAAO,EAAII,EAAO,CACvC,MAAMC,EAAOT,EAAQ,CAACK,EAASD,EAASG,EAASD,CAAO,CAAC,EACnDI,EAAO,CAAE,EACf,QAAS3lC,EAAI,EAAGA,EAAI+kC,EAAM,MAAQA,EAAM,OAAQ/kC,IAAK,CACjD,MAAM3D,EAAI2oC,EAAYU,EAAM,CACxBX,EAAM,KAAK/kC,EAAI,CAAC,EAChB+kC,EAAM,KAAK/kC,EAAI,EAAI,CAAC,EACpB+kC,EAAM,KAAK/kC,EAAI,EAAI,CAAC,CACpC,CAAa,EACD2lC,EAAK3lC,CAAC,EAAI3D,EAAIopC,EAAQ,EAAI,GACtC,CACQ,OAAOE,CACf,CACA,CACA,SAASC,EAAUb,EAAOY,EAAM,CAC5B,QAAS3lC,EAAI,EAAGA,EAAI+kC,EAAM,MAAQA,EAAM,OAAQ/kC,IAC5C+kC,EAAM,KAAK,EAAI/kC,EAAI,CAAC,EAAI2lC,EAAK3lC,CAAC,CAEtC,CACA,SAAS6lC,EAAUF,EAAMj8B,EAAIC,EAAI,CAC7B,MAAMm8B,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACpCC,EAAO,KAAK,MAAM,KAAK,KAAKD,EAAQ,MAAM,CAAC,EAC3CE,EAAW,KAAK,MAAMD,EAAO,CAAC,EAC9BE,EAAa,CAAE,EACrB,QAAShlC,EAAI,EAAGA,EAAI0I,EAAI1I,IACpB,QAASzF,EAAI,EAAGA,EAAIkO,EAAIlO,IAAK,CACzB,MAAM0qC,EAAKjlC,EAAIyI,EAAKlO,EACpB,IAAIoB,EAAI,EACR,QAAS2rB,EAAK,EAAGA,EAAKwd,EAAMxd,IACxB,QAASD,EAAK,EAAGA,EAAKyd,EAAMzd,IAAM,CAC9B,MAAM6d,EAAMllC,EAAIsnB,EAAKyd,EACfI,EAAM5qC,EAAI8sB,EAAK0d,EACrB,GAAIG,GAAO,GAAKA,EAAMx8B,GAAMy8B,GAAO,GAAKA,EAAM18B,EAAI,CAC9C,MAAM28B,EAASF,EAAMz8B,EAAK08B,EACpBE,EAAKR,EAAQvd,EAAKwd,EAAOzd,CAAE,EACjC1rB,GAAK+oC,EAAKU,CAAM,EAAIC,CAC5C,CACA,CAEYL,EAAWC,CAAE,EAAItpC,IAAM,IAAM,EAAI,IAAM,CACnD,CAEI,OAAOqpC,CACX,CACA,SAASM,EAAWZ,EAAMj8B,EAAIC,EAAI,CAC9B,MAAMm8B,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACpCC,EAAO,KAAK,MAAM,KAAK,KAAKD,EAAQ,MAAM,CAAC,EAC3CE,EAAW,KAAK,MAAMD,EAAO,CAAC,EAC9BE,EAAa,CAAE,EACrB,QAAShlC,EAAI,EAAGA,EAAI0I,EAAI1I,IACpB,QAASzF,EAAI,EAAGA,EAAIkO,EAAIlO,IAAK,CACzB,MAAM0qC,EAAKjlC,EAAIyI,EAAKlO,EACpB,IAAIoB,EAAI,EACR,QAAS2rB,EAAK,EAAGA,EAAKwd,EAAMxd,IACxB,QAASD,EAAK,EAAGA,EAAKyd,EAAMzd,IAAM,CAC9B,MAAM6d,EAAMllC,EAAIsnB,EAAKyd,EACfI,EAAM5qC,EAAI8sB,EAAK0d,EACrB,GAAIG,GAAO,GAAKA,EAAMx8B,GAAMy8B,GAAO,GAAKA,EAAM18B,EAAI,CAC9C,MAAM28B,EAASF,EAAMz8B,EAAK08B,EACpBE,EAAKR,EAAQvd,EAAKwd,EAAOzd,CAAE,EACjC1rB,GAAK+oC,EAAKU,CAAM,EAAIC,CAC5C,CACA,CAEYL,EAAWC,CAAE,EAAItpC,GAAK,IAAM,EAAI,IAAM,CAClD,CAEI,OAAOqpC,CACX,CACA,SAASO,EAAeb,EAAMj8B,EAAIC,EAAI,CAClC,MAAMm8B,EAAU,CAAC,kBAAO,kBAAO,kBAAO,kBAAO,kBAAO,kBAAO,kBAAO,kBAAO,iBAAK,EACxEC,EAAO,KAAK,MAAM,KAAK,KAAKD,EAAQ,MAAM,CAAC,EAC3CE,EAAW,KAAK,MAAMD,EAAO,CAAC,EAC9BE,EAAa,CAAE,EACrB,QAAShlC,EAAI,EAAGA,EAAI0I,EAAI1I,IACpB,QAASzF,EAAI,EAAGA,EAAIkO,EAAIlO,IAAK,CACzB,MAAM0qC,EAAKjlC,EAAIyI,EAAKlO,EACpB,IAAIoB,EAAI,EACR,QAAS2rB,EAAK,EAAGA,EAAKwd,EAAMxd,IACxB,QAASD,EAAK,EAAGA,EAAKyd,EAAMzd,IAAM,CAC9B,MAAM6d,EAAMllC,EAAIsnB,EAAKyd,EACfI,EAAM5qC,EAAI8sB,EAAK0d,EACrB,GAAIG,GAAO,GAAKA,EAAMx8B,GAAMy8B,GAAO,GAAKA,EAAM18B,EAAI,CAC9C,MAAM28B,EAASF,EAAMz8B,EAAK08B,EACpBE,EAAKR,EAAQvd,EAAKwd,EAAOzd,CAAE,EACjC1rB,GAAK+oC,EAAKU,CAAM,EAAIC,CAC5C,CACA,CAEYL,EAAWC,CAAE,EAAItpC,CAC7B,CAEI,OAAOqpC,CACX,CACA,MAAMQ,EAAO,SAAU58B,EAAW,CAC9B,MAAMu7B,EAAY,KAAK,UAAW,EAClC,IAAIO,EAAOR,EAAet7B,EAAWu7B,CAAS,EAC9C,OAAIO,IACAA,EAAOE,EAAUF,EAAM97B,EAAU,MAAOA,EAAU,MAAM,EACxD87B,EAAOY,EAAWZ,EAAM97B,EAAU,MAAOA,EAAU,MAAM,EACzD87B,EAAOa,EAAeb,EAAM97B,EAAU,MAAOA,EAAU,MAAM,EAC7D+7B,EAAU/7B,EAAW87B,CAAI,GAEtB97B,CACV,EACDg7B,OAAAA,GAAA,KAAe4B,EACft6B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,YAAa,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDC/IvI,OAAO,eAAeu6B,GAAS,aAAc,CAAE,MAAO,GAAM,EAC/CA,GAAA,MAAG,OAChB,MAAMv6B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvCy6B,EAAQ,SAAU98B,EAAW,CAC/B,MAAM+8B,EAAS,KAAK,MAAK,EAAK,IAAKjwB,EAAO9M,EAAU,KAAM00B,EAAU5nB,EAAK,OAAQkwB,EAAOD,EAAS,EACjG,QAAS5mC,EAAI,EAAGA,EAAIu+B,EAASv+B,GAAK,EAC9B2W,EAAK3W,EAAI,CAAC,GAAK6mC,EAAO,EAAIA,EAAO,KAAK,OAAQ,EAC9ClwB,EAAK3W,EAAI,CAAC,GAAK6mC,EAAO,EAAIA,EAAO,KAAK,OAAQ,EAC9ClwB,EAAK3W,EAAI,CAAC,GAAK6mC,EAAO,EAAIA,EAAO,KAAK,OAAQ,CAErD,EACDH,OAAAA,GAAA,MAAgBC,EAChBx6B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,QAAS,MAAS9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDCdrI,OAAO,eAAe26B,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,GAAA,SAAG,OACnB,MAAM36B,EAAYhR,EAAqB,EACjC4I,EAASC,GAAkB,EAC3B2J,EAASzB,GAAkB,EAC3BrH,EAAeuH,EAAwB,EACvC26B,EAAW,SAAUl9B,EAAW,CAClC,IAAIm9B,EAAY,KAAK,KAAK,KAAK,WAAW,EAAGpkC,EAAQiH,EAAU,MAAOhH,EAASgH,EAAU,OAAQrO,EAAGyF,EAAGjB,EAAGw+B,EAAKC,EAAOC,EAAMuI,EAAOC,EAAS,KAAK,KAAKtkC,EAAQokC,CAAS,EAAGG,EAAS,KAAK,KAAKtkC,EAASmkC,CAAS,EAAGI,EAAWC,EAASC,EAAWC,EAASC,EAAMC,EAAMC,EAAa/wB,EAAO9M,EAAU,KACpS,GAAIm9B,GAAa,EAAG,CAChBjjC,EAAO,KAAK,MAAM,iCAAiC,EACnD,MACR,CACI,IAAKyjC,EAAO,EAAGA,EAAON,EAAQM,GAAQ,EAClC,IAAKC,EAAO,EAAGA,EAAON,EAAQM,GAAQ,EAAG,CAUrC,IATAjJ,EAAM,EACNC,EAAQ,EACRC,EAAO,EACPuI,EAAQ,EACRG,EAAYI,EAAOR,EACnBK,EAAUD,EAAYJ,EACtBM,EAAYG,EAAOT,EACnBO,EAAUD,EAAYN,EACtBU,EAAc,EACTlsC,EAAI4rC,EAAW5rC,EAAI6rC,EAAS7rC,GAAK,EAClC,GAAI,EAAAA,GAAKoH,GAGT,IAAK3B,EAAIqmC,EAAWrmC,EAAIsmC,EAAStmC,GAAK,EAC9BA,GAAK4B,IAGT7C,GAAK4C,EAAQ3B,EAAIzF,GAAK,EACtBgjC,GAAO7nB,EAAK3W,EAAI,CAAC,EACjBy+B,GAAS9nB,EAAK3W,EAAI,CAAC,EACnB0+B,GAAQ/nB,EAAK3W,EAAI,CAAC,EAClBinC,GAAStwB,EAAK3W,EAAI,CAAC,EACnB0nC,GAAe,GAOvB,IAJAlJ,EAAMA,EAAMkJ,EACZjJ,EAAQA,EAAQiJ,EAChBhJ,EAAOA,EAAOgJ,EACdT,EAAQA,EAAQS,EACXlsC,EAAI4rC,EAAW5rC,EAAI6rC,EAAS7rC,GAAK,EAClC,GAAI,EAAAA,GAAKoH,GAGT,IAAK3B,EAAIqmC,EAAWrmC,EAAIsmC,EAAStmC,GAAK,EAC9BA,GAAK4B,IAGT7C,GAAK4C,EAAQ3B,EAAIzF,GAAK,EACtBmb,EAAK3W,EAAI,CAAC,EAAIw+B,EACd7nB,EAAK3W,EAAI,CAAC,EAAIy+B,EACd9nB,EAAK3W,EAAI,CAAC,EAAI0+B,EACd/nB,EAAK3W,EAAI,CAAC,EAAIinC,EAGlC,CAEC,EACDH,OAAAA,GAAA,SAAmBC,EACnB56B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,YAAa,KAAO9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDC9DvI,OAAO,eAAew7B,GAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,GAAA,UAAG,OACpB,MAAMx7B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvC07B,EAAY,SAAU/9B,EAAW,CACnC,MAAMg+B,EAAS,KAAK,MAAM,KAAK,OAAM,EAAK,GAAG,EAAI,EAAGlxB,EAAO9M,EAAU,KAAMxE,EAAMsR,EAAK,OAAQjL,EAAQ,IAAMm8B,EAC5G,QAAS7nC,EAAI,EAAGA,EAAIqF,EAAKrF,GAAK,EAC1B2W,EAAK3W,CAAC,EAAI,KAAK,MAAM2W,EAAK3W,CAAC,EAAI0L,CAAK,EAAIA,CAE/C,EACDi8B,OAAAA,GAAA,UAAoBC,EACpBz7B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,SAAU,MAAS9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,qDCZtI,OAAO,eAAe27B,GAAS,aAAc,CAAE,MAAO,GAAM,EACjDA,GAAA,IAAG,OACd,MAAM37B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvC67B,EAAM,SAAUl+B,EAAW,CAC7B,MAAM8M,EAAO9M,EAAU,KAAM00B,EAAU5nB,EAAK,OAAQ6nB,EAAM,KAAK,IAAK,EAAEC,EAAQ,KAAK,MAAO,EAAEC,EAAO,KAAK,KAAM,EAC9G,QAAS1+B,EAAI,EAAGA,EAAIu+B,EAASv+B,GAAK,EAAG,CACjC,MAAMm+B,GAAc,IAAOxnB,EAAK3W,CAAC,EAAI,GAAM2W,EAAK3W,EAAI,CAAC,EAAI,IAAO2W,EAAK3W,EAAI,CAAC,GAAK,IAC/E2W,EAAK3W,CAAC,EAAIm+B,EAAaK,EACvB7nB,EAAK3W,EAAI,CAAC,EAAIm+B,EAAaM,EAC3B9nB,EAAK3W,EAAI,CAAC,EAAIm+B,EAAaO,EAC3B/nB,EAAK3W,EAAI,CAAC,EAAI2W,EAAK3W,EAAI,CAAC,CAChC,CACC,EACD8nC,OAAAA,GAAA,IAAcC,EACd57B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,MAAO,EAAG,SAAUvP,EAAK,CAEpE,OADA,KAAK,gBAAkB,GACnBA,EAAM,IACC,IAEFA,EAAM,EACJ,EAGA,KAAK,MAAMA,CAAG,CAE7B,CAAC,EACD+N,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,QAAS,EAAG,SAAUvP,EAAK,CAEtE,OADA,KAAK,gBAAkB,GACnBA,EAAM,IACC,IAEFA,EAAM,EACJ,EAGA,KAAK,MAAMA,CAAG,CAE7B,CAAC,EACD+N,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,OAAQ,EAAG9I,EAAa,aAAcsH,EAAU,QAAQ,cAAc,qDCxCrH,OAAO,eAAe67B,GAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,GAAA,KAAG,OACf,MAAM77B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvC+7B,EAAO,SAAUp+B,EAAW,CAC9B,MAAM8M,EAAO9M,EAAU,KAAM00B,EAAU5nB,EAAK,OAAQ6nB,EAAM,KAAK,IAAG,EAAIC,EAAQ,KAAK,MAAO,EAAEC,EAAO,KAAK,OAAQuI,EAAQ,KAAK,MAAO,EACpI,QAASjnC,EAAI,EAAGA,EAAIu+B,EAASv+B,GAAK,EAAG,CACjC,MAAMkoC,EAAK,EAAIjB,EACftwB,EAAK3W,CAAC,EAAIw+B,EAAMyI,EAAQtwB,EAAK3W,CAAC,EAAIkoC,EAClCvxB,EAAK3W,EAAI,CAAC,EAAIy+B,EAAQwI,EAAQtwB,EAAK3W,EAAI,CAAC,EAAIkoC,EAC5CvxB,EAAK3W,EAAI,CAAC,EAAI0+B,EAAOuI,EAAQtwB,EAAK3W,EAAI,CAAC,EAAIkoC,CACnD,CACC,EACDF,OAAAA,GAAA,KAAeC,EACf97B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,MAAO,EAAG,SAAUvP,EAAK,CAEpE,OADA,KAAK,gBAAkB,GACnBA,EAAM,IACC,IAEFA,EAAM,EACJ,EAGA,KAAK,MAAMA,CAAG,CAE7B,CAAC,EACD+N,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,QAAS,EAAG,SAAUvP,EAAK,CAEtE,OADA,KAAK,gBAAkB,GACnBA,EAAM,IACC,IAEFA,EAAM,EACJ,EAGA,KAAK,MAAMA,CAAG,CAE7B,CAAC,EACD+N,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,OAAQ,EAAG9I,EAAa,aAAcsH,EAAU,QAAQ,cAAc,EACrHA,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,QAAS,EAAG,SAAUvP,EAAK,CAEtE,OADA,KAAK,gBAAkB,GACnBA,EAAM,EACC,EAEFA,EAAM,EACJ,EAGAA,CAEf,CAAC,qDCnDD,OAAO,eAAe+pC,GAAS,aAAc,CAAE,MAAO,GAAM,EAC/CA,GAAA,MAAG,OAChB,MAAMC,EAAQ,SAAUv+B,EAAW,CAC/B,MAAM8M,EAAO9M,EAAU,KAAM00B,EAAU5nB,EAAK,OAC5C,QAAS3W,EAAI,EAAGA,EAAIu+B,EAASv+B,GAAK,EAAG,CACjC,MAAM9C,EAAIyZ,EAAK3W,EAAI,CAAC,EACdjB,EAAI4X,EAAK3W,EAAI,CAAC,EACdnD,EAAI8Z,EAAK3W,EAAI,CAAC,EACpB2W,EAAK3W,EAAI,CAAC,EAAI,KAAK,IAAI,IAAK9C,EAAI,KAAQ6B,EAAI,KAAQlC,EAAI,IAAK,EAC7D8Z,EAAK3W,EAAI,CAAC,EAAI,KAAK,IAAI,IAAK9C,EAAI,KAAQ6B,EAAI,KAAQlC,EAAI,IAAK,EAC7D8Z,EAAK3W,EAAI,CAAC,EAAI,KAAK,IAAI,IAAK9C,EAAI,KAAQ6B,EAAI,KAAQlC,EAAI,IAAK,CACrE,CACC,EACDsrC,OAAAA,GAAA,MAAgBC,qDCbhB,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,GAAA,SAAG,OACnB,MAAMC,EAAW,SAAUz+B,EAAW,CAClC,MAAM8M,EAAO9M,EAAU,KAAMm1B,EAAIn1B,EAAU,MAAOlK,EAAIkK,EAAU,OAAQo1B,EAAKD,EAAI,EACjF,IAAI/9B,EAAItB,EACR,EAAG,CACC,MAAM2U,GAAWrT,EAAI,GAAKg+B,EAC1B,IAAIzjC,EAAIwjC,EACR,EAAG,CACC,MAAMvzB,EAAS6I,GAAW9Y,EAAI,GAAK,EACnC,IAAI0B,EAAIyZ,EAAKlL,CAAM,EACf,EAAIkL,EAAKlL,EAAS,CAAC,EACnB5O,EAAI8Z,EAAKlL,EAAS,CAAC,EACnBvO,EAAI,MACJA,EAAI,IAAMA,GAEV,EAAI,MACJ,EAAI,IAAM,GAEVL,EAAI,MACJA,EAAI,IAAMA,GAEd8Z,EAAKlL,CAAM,EAAIvO,EACfyZ,EAAKlL,EAAS,CAAC,EAAI,EACnBkL,EAAKlL,EAAS,CAAC,EAAI5O,CACtB,OAAQ,EAAErB,EACd,OAAQ,EAAEyF,EACd,EACDonC,OAAAA,GAAA,SAAmBC,qDC5BnB,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,GAAA,UAAG,OACpB,MAAMp8B,EAAYhR,EAAqB,EACjCwS,EAAS3J,GAAkB,EAC3Ba,EAAeqH,EAAwB,EACvCs8B,EAAY,SAAU3+B,EAAW,CACnC,MAAM4+B,EAAQ,KAAK,UAAS,EAAK,IAAK9xB,EAAO9M,EAAU,KAAMxE,EAAMsR,EAAK,OACxE,QAAS3W,EAAI,EAAGA,EAAIqF,EAAKrF,GAAK,EAC1B2W,EAAK3W,CAAC,EAAI2W,EAAK3W,CAAC,EAAIyoC,EAAQ,EAAI,GAEvC,EACDF,OAAAA,GAAA,UAAoBC,EACpBr8B,EAAU,QAAQ,gBAAgBwB,EAAO,KAAM,YAAa,MAAS9I,EAAa,oBAAkB,EAAKsH,EAAU,QAAQ,cAAc,+CCZzI,OAAO,eAAeu8B,GAAS,aAAc,CAAE,MAAO,GAAM,EAC/CA,GAAA,MAAG,OAChB,MAAMC,EAAmBxtC,GAA2B,EAC9CsoB,EAAQzf,GAAuB,EAC/BsoB,EAAUpgB,GAAyB,EACnC8gB,EAAW5gB,GAA0B,EACrC+gB,EAAY9gB,GAA2B,EACvCihB,EAAUzf,GAAyB,EACnCggB,EAAU1U,GAAyB,EACnCoL,EAAS5E,GAAwB,EACjCsI,EAAS/E,GAAwB,EACjC4L,EAAS3L,GAAwB,EACjC8L,EAAmB7L,GAAkC,EACrDiM,EAAS/L,GAAwB,EACjCmM,EAAWlM,GAA0B,EACrC2M,EAAS1M,GAAwB,EACjC8M,EAASsY,GAAwB,EACjC5S,EAAa6S,GAA4B,EACzC9R,EAAgB+R,GAA+B,EAC/CrN,EAAUsN,GAAyB,EACnCnN,EAASoN,GAAyB,EAClC/K,EAAagL,GAA6B,EAC1C7K,EAAa8K,GAA6B,EAC1CvK,EAAWwK,GAA2B,EACtCnJ,EAAYoJ,GAA4B,EACxCxH,EAAcyH,GAA8B,EAC5CvH,EAAQwH,GAAwB,EAChC3G,EAAQ4G,GAAwB,EAChC1G,EAAW2G,GAA2B,EACtCzG,EAAiB0G,GAAiC,EAClD5E,EAAS6E,GAAyB,EAClChD,EAAUiD,GAA0B,EACpC7C,EAAa8C,GAA6B,EAC1CjC,EAAckC,GAA8B,EAC5C/B,EAAQgC,GAAwB,EAChC9B,EAAS+B,GAAyB,EAClC5B,EAAU6B,GAA0B,EACpC3B,EAAa4B,GAA6B,EAC1C1B,EAAc2B,GAA8B,EAClD,OAAAxB,GAAA,MAAgBC,EAAiB,MAAM,KAAK,QAAQA,EAAiB,MAAO,CACxE,IAAKllB,EAAM,IACX,MAAO6I,EAAQ,MACf,OAAQU,EAAS,OACjB,QAASG,EAAU,QACnB,MAAOG,EAAQ,MACf,MAAOO,EAAQ,MACf,IAAKA,EAAQ,IACb,KAAMtJ,EAAO,KACb,KAAM0D,EAAO,KACb,KAAM6G,EAAO,KACb,eAAgBG,EAAiB,eACjC,KAAMI,EAAO,KACb,OAAQI,EAAS,OACjB,KAAMS,EAAO,KACb,KAAMI,EAAO,KACb,SAAU0F,EAAW,SACrB,YAAae,EAAc,YAC3B,MAAO0E,EAAQ,MACf,QAAS,CACL,KAAMG,EAAO,KACb,SAAUqC,EAAW,SACrB,SAAUG,EAAW,SACrB,OAAQO,EAAS,OACjB,QAASqB,EAAU,QACnB,UAAW4B,EAAY,UACvB,IAAKE,EAAM,IACX,IAAKa,EAAM,IACX,OAAQE,EAAS,OACjB,aAAcE,EAAe,aAC7B,KAAM8B,EAAO,KACb,MAAO6B,EAAQ,MACf,SAAUI,EAAW,SACrB,UAAWa,EAAY,UACvB,IAAKG,EAAM,IACX,KAAME,EAAO,KACb,MAAOG,EAAQ,MACf,SAAUE,EAAW,SACrB,UAAWE,EAAY,SAC1B,CACL,CAAC,qEC/ED,OAAO,eAAe4B,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMC,EAAmBjvC,GAA2B,EACtCkvC,OAAAA,GAAA,QAAGD,EAAiB","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]}