@datagrok/eda 1.4.13 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -5
- package/dist/111.js +1 -1
- package/dist/111.js.map +1 -1
- package/dist/128.js +1 -1
- package/dist/128.js.map +1 -1
- package/dist/153.js +1 -1
- package/dist/153.js.map +1 -1
- package/dist/23.js +1 -1
- package/dist/23.js.map +1 -1
- package/dist/234.js +1 -1
- package/dist/234.js.map +1 -1
- package/dist/242.js +1 -1
- package/dist/242.js.map +1 -1
- package/dist/260.js +1 -1
- package/dist/260.js.map +1 -1
- package/dist/33.js +1 -1
- package/dist/33.js.map +1 -1
- package/dist/348.js +1 -1
- package/dist/348.js.map +1 -1
- package/dist/377.js +1 -1
- package/dist/377.js.map +1 -1
- package/dist/397.js +2 -0
- package/dist/397.js.map +1 -0
- package/dist/412.js +1 -1
- package/dist/412.js.map +1 -1
- package/dist/415.js +1 -1
- package/dist/415.js.map +1 -1
- package/dist/501.js +1 -1
- package/dist/501.js.map +1 -1
- package/dist/531.js +1 -1
- package/dist/531.js.map +1 -1
- package/dist/583.js +1 -1
- package/dist/583.js.map +1 -1
- package/dist/589.js +1 -1
- package/dist/589.js.map +1 -1
- package/dist/603.js +1 -1
- package/dist/603.js.map +1 -1
- package/dist/656.js +1 -1
- package/dist/656.js.map +1 -1
- package/dist/682.js +1 -1
- package/dist/682.js.map +1 -1
- package/dist/705.js +1 -1
- package/dist/705.js.map +1 -1
- package/dist/727.js +1 -1
- package/dist/727.js.map +1 -1
- package/dist/731.js +1 -1
- package/dist/731.js.map +1 -1
- package/dist/738.js +1 -1
- package/dist/738.js.map +1 -1
- package/dist/763.js +1 -1
- package/dist/763.js.map +1 -1
- package/dist/778.js +1 -1
- package/dist/778.js.map +1 -1
- package/dist/783.js +1 -1
- package/dist/783.js.map +1 -1
- package/dist/793.js +1 -1
- package/dist/793.js.map +1 -1
- package/dist/810.js +1 -1
- package/dist/810.js.map +1 -1
- package/dist/860.js +1 -1
- package/dist/860.js.map +1 -1
- package/dist/907.js +1 -1
- package/dist/907.js.map +1 -1
- package/dist/950.js +1 -1
- package/dist/950.js.map +1 -1
- package/dist/980.js +1 -1
- package/dist/980.js.map +1 -1
- package/dist/990.js +1 -1
- package/dist/990.js.map +1 -1
- package/dist/package-test.js +1 -1
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/package.json +5 -5
- package/src/package.ts +2 -1
- package/src/pareto-optimization/pareto-optimizer.ts +1 -1
- package/src/pls/pls-constants.ts +3 -1
- package/src/pls/pls-tools.ts +73 -69
- package/src/probabilistic-scoring/data-generator.ts +48 -3
- package/src/probabilistic-scoring/pmpo-defs.ts +30 -2
- package/src/probabilistic-scoring/pmpo-utils.ts +143 -52
- package/src/probabilistic-scoring/prob-scoring.ts +475 -102
- package/src/probabilistic-scoring/stat-tools.ts +1 -1
- package/src/tests/pareto-tests.ts +13 -15
- package/src/tests/pmpo-tests.ts +643 -3
- package/test-console-output-1.log +221 -93
- package/test-record-1.mp4 +0 -0
package/dist/397.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"397.js","mappings":"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AAQA,EACzC,OAAOE,KAAKC,KAAKF,EACrB,CA3tBAnE,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQoE,SAAWpE,EAAQqE,sBAAwBrE,EAAQsE,kBAAoBtE,EAAQuE,qBAAuBvE,EAAQwE,QAAUxE,EAAQyE,aAAe,EACvJzE,EAAQyE,QAAU,CACd,GACA,GACA,EACK,kBACD,mBAEJ,CACI,GAAI,kBACJ,mBAEJ,EACK,mBACD,oBACC,kBACD,mBAEJ,CACI,GAAI,kBACJ,mBACC,iBACD,kBAEJ,CACI,mBACC,mBACA,kBACD,mBACC,iBACD,kBAEJ,CACI,EAAG,mBACF,mBACA,kBACD,mBACC,kBACD,mBAEJ,EACK,kBACD,mBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,kBACJ,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,EACK,mBACD,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,mBACJ,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,iBACD,kBAEJ,EACK,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,kBACJ,mBACC,mBACD,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,EACK,mBACD,oBACC,mBACD,oBACC,kBACD,mBACC,kBACD,mBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,mBACJ,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,iBACD,kBACC,kBACD,mBAEJ,EACK,mBACD,oBACC,kBACD,mBACC,mBACD,oBACC,kBACD,mBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,mBACJ,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,EACK,kBACD,mBACC,kBACD,mBACC,mBACD,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,mBACJ,oBACC,mBACD,oBACC,mBACD,oBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,gBACD,iBACC,kBACD,mBAEJ,EACK,mBACD,oBACC,mBACD,oBACC,mBACD,oBACC,kBACD,mBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,kBACJ,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,EACK,mBACD,oBACC,mBACD,oBACC,mBACD,oBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBAEJ,CACI,GAAI,kBACJ,mBACC,mBACD,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBAEJ,EACK,mBACD,oBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,iBACD,kBACC,kBACD,mBACC,kBACD,mBACC,kBACD,mBACC,kBACD,oBAGRzE,EAAQwE,QAAU,CACd,GACA,GACA,CAAC,EAAK,GACN,CACI,kBACA,kBACA,mBAEJ,CACI,kBACA,kBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBAEJ,CACI,iBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBAEJ,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,gBACA,gBACA,mBACA,mBACA,kBACA,kBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,qBAEJ,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,oBACA,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ACtE,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,KAEpEC,EAAY,CACd,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3E,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,G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","sources":["webpack://eda/./node_modules/konva/lib/Animation.js","webpack://eda/./node_modules/konva/lib/BezierFunctions.js","webpack://eda/./node_modules/konva/lib/Canvas.js","webpack://eda/./node_modules/konva/lib/Container.js","webpack://eda/./node_modules/konva/lib/Context.js","webpack://eda/./node_modules/konva/lib/DragAndDrop.js","webpack://eda/./node_modules/konva/lib/Factory.js","webpack://eda/./node_modules/konva/lib/FastLayer.js","webpack://eda/./node_modules/konva/lib/Global.js","webpack://eda/./node_modules/konva/lib/Group.js","webpack://eda/./node_modules/konva/lib/Layer.js","webpack://eda/./node_modules/konva/lib/Node.js","webpack://eda/./node_modules/konva/lib/PointerEvents.js","webpack://eda/./node_modules/konva/lib/Shape.js","webpack://eda/./node_modules/konva/lib/Stage.js","webpack://eda/./node_modules/konva/lib/Tween.js","webpack://eda/./node_modules/konva/lib/Util.js","webpack://eda/./node_modules/konva/lib/Validators.js","webpack://eda/./node_modules/konva/lib/_CoreInternals.js","webpack://eda/./node_modules/konva/lib/_FullInternals.js","webpack://eda/./node_modules/konva/lib/filters/Blur.js","webpack://eda/./node_modules/konva/lib/filters/Brighten.js","webpack://eda/./node_modules/konva/lib/filters/Contrast.js","webpack://eda/./node_modules/konva/lib/filters/Emboss.js","webpack://eda/./node_modules/konva/lib/filters/Enhance.js","webpack://eda/./node_modules/konva/lib/filters/Grayscale.js","webpack://eda/./node_modules/konva/lib/filters/HSL.js","webpack://eda/./node_modules/konva/lib/filters/HSV.js","webpack://eda/./node_modules/konva/lib/filters/Invert.js","webpack://eda/./node_modules/konva/lib/filters/Kaleidoscope.js","webpack://eda/./node_modules/konva/lib/filters/Mask.js","webpack://eda/./node_modules/konva/lib/filters/Noise.js","webpack://eda/./node_modules/konva/lib/filters/Pixelate.js","webpack://eda/./node_modules/konva/lib/filters/Posterize.js","webpack://eda/./node_modules/konva/lib/filters/RGB.js","webpack://eda/./node_modules/konva/lib/filters/RGBA.js","webpack://eda/./node_modules/konva/lib/filters/Sepia.js","webpack://eda/./node_modules/konva/lib/filters/Solarize.js","webpack://eda/./node_modules/konva/lib/filters/Threshold.js","webpack://eda/./node_modules/konva/lib/index.js","webpack://eda/./node_modules/konva/lib/shapes/Arc.js","webpack://eda/./node_modules/konva/lib/shapes/Arrow.js","webpack://eda/./node_modules/konva/lib/shapes/Circle.js","webpack://eda/./node_modules/konva/lib/shapes/Ellipse.js","webpack://eda/./node_modules/konva/lib/shapes/Image.js","webpack://eda/./node_modules/konva/lib/shapes/Label.js","webpack://eda/./node_modules/konva/lib/shapes/Line.js","webpack://eda/./node_modules/konva/lib/shapes/Path.js","webpack://eda/./node_modules/konva/lib/shapes/Rect.js","webpack://eda/./node_modules/konva/lib/shapes/RegularPolygon.js","webpack://eda/./node_modules/konva/lib/shapes/Ring.js","webpack://eda/./node_modules/konva/lib/shapes/Sprite.js","webpack://eda/./node_modules/konva/lib/shapes/Star.js","webpack://eda/./node_modules/konva/lib/shapes/Text.js","webpack://eda/./node_modules/konva/lib/shapes/TextPath.js","webpack://eda/./node_modules/konva/lib/shapes/Transformer.js","webpack://eda/./node_modules/konva/lib/shapes/Wedge.js"],"sourcesContent":["\"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.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.HitCanvas = exports.SceneCanvas = exports.Canvas = void 0;\nconst Util_1 = require(\"./Util\");\nconst Context_1 = require(\"./Context\");\nconst Global_1 = require(\"./Global\");\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;\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.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 const children = this.children || [];\n if (filterFunc) {\n return children.filter(filterFunc);\n }\n return children;\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.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.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.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 const 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 const 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 const 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 const 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.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._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.22',\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.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.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, bufferCanvas) {\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, bufferCanvas);\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.Node = void 0;\nconst Canvas_1 = require(\"./Canvas\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Factory_1 = require(\"./Factory\");\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\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', POINTERENTER = 'pointerenter', POINTERLEAVE = 'pointerleave', TOUCHENTER = 'touchenter', TOUCHLEAVE = 'touchleave', 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, buffer } = this._cache.get(CANVAS);\n Util_1.Util.releaseCanvas(scene, filter, hit, buffer);\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 const bufferCanvas = new Canvas_1.SceneCanvas({\n width: cachedSceneCanvas.width / cachedSceneCanvas.pixelRatio + Math.abs(x),\n height: cachedSceneCanvas.height / cachedSceneCanvas.pixelRatio + Math.abs(y),\n pixelRatio: cachedSceneCanvas.pixelRatio,\n }), bufferContext = bufferCanvas.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 bufferContext.save();\n sceneContext.translate(-x, -y);\n hitContext.translate(-x, -y);\n bufferContext.translate(-x, -y);\n bufferCanvas.x = x;\n bufferCanvas.y = y;\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this, bufferCanvas);\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 buffer: bufferCanvas,\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 if (this._cache) {\n this._cache.delete(ALL_LISTENERS);\n }\n if (arguments.length === 3) {\n return this._delegate.apply(this, arguments);\n }\n const events = evtStr.split(SPACE);\n for (let n = 0; n < events.length; n++) {\n const event = events[n];\n const parts = event.split('.');\n const baseEvent = parts[0];\n const name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({ name, handler });\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 nonBubbling = [\n MOUSEENTER,\n MOUSELEAVE,\n POINTERENTER,\n POINTERLEAVE,\n TOUCHENTER,\n TOUCHLEAVE,\n ];\n const shouldStop = nonBubbling.indexOf(eventType) !== -1 &&\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 = nonBubbling.indexOf(eventType) !== -1 &&\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 (let 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 (let 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.getCapturedShape = getCapturedShape;\nexports.createEvent = createEvent;\nexports.hasPointerCapture = hasPointerCapture;\nexports.setPointerCapture = setPointerCapture;\nexports.releaseCapture = releaseCapture;\nconst Global_1 = require(\"./Global\");\nconst Captures = new Map();\nconst SUPPORT_POINTER_EVENTS = Global_1.Konva._global['PointerEvent'] !== undefined;\nfunction getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nfunction createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nfunction hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nfunction setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n const stage = shape.getStage();\n if (!stage)\n return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nfunction releaseCapture(pointerId, target) {\n const shape = Captures.get(pointerId);\n if (!shape)\n return;\n const stage = shape.getStage();\n if (stage && stage.content) {\n }\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Shape = exports.shapes = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Node_1 = require(\"./Node\");\nconst Validators_1 = require(\"./Validators\");\nconst Global_2 = require(\"./Global\");\nconst PointerEvents = require(\"./PointerEvents\");\nconst HAS_SHADOW = 'hasShadow';\nconst SHADOW_RGBA = 'shadowRGBA';\nconst patternImage = 'patternImage';\nconst linearGradient = 'linearGradient';\nconst radialGradient = 'radialGradient';\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexports.shapes = {};\nfunction _fillFunc(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nclass Shape extends Node_1.Node {\n constructor(config) {\n super(config);\n let key;\n while (true) {\n key = Util_1.Util.getRandomColor();\n if (key && !(key in exports.shapes)) {\n break;\n }\n }\n this.colorKey = key;\n exports.shapes[key] = this;\n }\n getContext() {\n Util_1.Util.warn('shape.getContext() method is deprecated. Please do not use it.');\n return this.getLayer().getContext();\n }\n getCanvas() {\n Util_1.Util.warn('shape.getCanvas() method is deprecated. Please do not use it.');\n return this.getLayer().getCanvas();\n }\n getSceneFunc() {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n }\n getHitFunc() {\n return this.attrs.hitFunc || this['_hitFunc'];\n }\n hasShadow() {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n }\n _hasShadow() {\n return (this.shadowEnabled() &&\n this.shadowOpacity() !== 0 &&\n !!(this.shadowColor() ||\n this.shadowBlur() ||\n this.shadowOffsetX() ||\n this.shadowOffsetY()));\n }\n _getFillPattern() {\n return this._getCache(patternImage, this.__getFillPattern);\n }\n __getFillPattern() {\n if (this.fillPatternImage()) {\n const ctx = getDummyContext();\n const pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n if (pattern && pattern.setTransform) {\n const tr = new Util_1.Transform();\n tr.translate(this.fillPatternX(), this.fillPatternY());\n tr.rotate(Global_1.Konva.getAngle(this.fillPatternRotation()));\n tr.scale(this.fillPatternScaleX(), this.fillPatternScaleY());\n tr.translate(-1 * this.fillPatternOffsetX(), -1 * this.fillPatternOffsetY());\n const m = tr.getMatrix();\n const matrix = typeof DOMMatrix === 'undefined'\n ? {\n a: m[0],\n b: m[1],\n c: m[2],\n d: m[3],\n e: m[4],\n f: m[5],\n }\n : new DOMMatrix(m);\n pattern.setTransform(matrix);\n }\n return pattern;\n }\n }\n _getLinearGradient() {\n return this._getCache(linearGradient, this.__getLinearGradient);\n }\n __getLinearGradient() {\n const colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillLinearGradientStartPoint();\n const end = this.fillLinearGradientEndPoint();\n const grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n _getRadialGradient() {\n return this._getCache(radialGradient, this.__getRadialGradient);\n }\n __getRadialGradient() {\n const colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillRadialGradientStartPoint();\n const end = this.fillRadialGradientEndPoint();\n const grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n getShadowRGBA() {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n }\n _getShadowRGBA() {\n if (!this.hasShadow()) {\n return;\n }\n const rgba = Util_1.Util.colorToRGBA(this.shadowColor());\n if (rgba) {\n return ('rgba(' +\n rgba.r +\n ',' +\n rgba.g +\n ',' +\n rgba.b +\n ',' +\n rgba.a * (this.shadowOpacity() || 1) +\n ')');\n }\n }\n hasFill() {\n return this._calculate('hasFill', [\n 'fillEnabled',\n 'fill',\n 'fillPatternImage',\n 'fillLinearGradientColorStops',\n 'fillRadialGradientColorStops',\n ], () => {\n return (this.fillEnabled() &&\n !!(this.fill() ||\n this.fillPatternImage() ||\n this.fillLinearGradientColorStops() ||\n this.fillRadialGradientColorStops()));\n });\n }\n hasStroke() {\n return this._calculate('hasStroke', [\n 'strokeEnabled',\n 'strokeWidth',\n 'stroke',\n 'strokeLinearGradientColorStops',\n ], () => {\n return (this.strokeEnabled() &&\n this.strokeWidth() &&\n !!(this.stroke() || this.strokeLinearGradientColorStops()));\n });\n }\n hasHitStroke() {\n const width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n }\n intersects(point) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const bufferHitCanvas = stage.bufferHitCanvas;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas, undefined, true);\n const p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n }\n destroy() {\n Node_1.Node.prototype.destroy.call(this);\n delete exports.shapes[this.colorKey];\n delete this.colorKey;\n return this;\n }\n _useBufferCanvas(forceFill) {\n var _a;\n const perfectDrawEnabled = (_a = this.attrs.perfectDrawEnabled) !== null && _a !== void 0 ? _a : true;\n if (!perfectDrawEnabled) {\n return false;\n }\n const hasFill = forceFill || this.hasFill();\n const hasStroke = this.hasStroke();\n const isTransparent = this.getAbsoluteOpacity() !== 1;\n if (hasFill && hasStroke && isTransparent) {\n return true;\n }\n const hasShadow = this.hasShadow();\n const strokeForShadow = this.shadowForStrokeEnabled();\n if (hasFill && hasStroke && hasShadow && strokeForShadow) {\n return true;\n }\n return false;\n }\n setStrokeHitEnabled(val) {\n Util_1.Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n }\n else {\n this.hitStrokeWidth(0);\n }\n }\n getStrokeHitEnabled() {\n if (this.hitStrokeWidth() === 0) {\n return false;\n }\n else {\n return true;\n }\n }\n getSelfRect() {\n const size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height,\n };\n }\n getClientRect(config = {}) {\n let hasCachedParent = false;\n let parent = this.getParent();\n while (parent) {\n if (parent.isCached()) {\n hasCachedParent = true;\n break;\n }\n parent = parent.getParent();\n }\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo || (hasCachedParent && this.getStage()) || undefined;\n const fillRect = this.getSelfRect();\n const applyStroke = !config.skipStroke && this.hasStroke();\n const strokeWidth = (applyStroke && this.strokeWidth()) || 0;\n const fillAndStrokeWidth = fillRect.width + strokeWidth;\n const fillAndStrokeHeight = fillRect.height + strokeWidth;\n const applyShadow = !config.skipShadow && this.hasShadow();\n const shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n const shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n const preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n const preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n const blurRadius = (applyShadow && this.shadowBlur()) || 0;\n const width = preWidth + blurRadius * 2;\n const height = preHeight + blurRadius * 2;\n const rect = {\n width: width,\n height: height,\n x: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetX, 0) +\n fillRect.x,\n y: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetY, 0) +\n fillRect.y,\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer();\n const canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow();\n let stage;\n const skipBuffer = false;\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 const bufferContext = bc.getContext();\n bufferContext.clear();\n bufferContext.save();\n bufferContext._applyLineJoin(this);\n const 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, bc.x || 0, bc.y || 0, bc.width / ratio, bc.height / ratio);\n }\n else {\n context._applyLineJoin(this);\n if (!cachingSelf) {\n const 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.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 [POINTERLEAVE, '_pointerleave'],\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 let id;\n if (container.charAt(0) === '.') {\n const className = container.slice(1);\n container = document.getElementsByClassName(className)[0];\n }\n else {\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.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 if (this.anim) {\n this.anim.stop();\n }\n for (const key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n if (Tween.tweens[nodeId]) {\n if (Object.keys(Tween.tweens[nodeId]).length === 0) {\n delete Tween.tweens[nodeId];\n }\n if (Object.keys(Tween.attrs[nodeId]).length === 0) {\n delete Tween.attrs[nodeId];\n }\n }\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.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<number>(' +\n noOfElements +\n ')');\n }\n return val;\n };\n }\n}\nfunction getNumberOrAutoValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n const isNumber = Util_1.Util._isNumber(val);\n const 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 const 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.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.Konva = void 0;\nconst _CoreInternals_1 = require(\"./_CoreInternals\");\nconst Arc_1 = require(\"./shapes/Arc\");\nconst Arrow_1 = require(\"./shapes/Arrow\");\nconst Circle_1 = require(\"./shapes/Circle\");\nconst Ellipse_1 = require(\"./shapes/Ellipse\");\nconst Image_1 = require(\"./shapes/Image\");\nconst Label_1 = require(\"./shapes/Label\");\nconst Line_1 = require(\"./shapes/Line\");\nconst Path_1 = require(\"./shapes/Path\");\nconst Rect_1 = require(\"./shapes/Rect\");\nconst RegularPolygon_1 = require(\"./shapes/RegularPolygon\");\nconst Ring_1 = require(\"./shapes/Ring\");\nconst Sprite_1 = require(\"./shapes/Sprite\");\nconst Star_1 = require(\"./shapes/Star\");\nconst Text_1 = require(\"./shapes/Text\");\nconst TextPath_1 = require(\"./shapes/TextPath\");\nconst Transformer_1 = require(\"./shapes/Transformer\");\nconst Wedge_1 = require(\"./shapes/Wedge\");\nconst Blur_1 = require(\"./filters/Blur\");\nconst Brighten_1 = require(\"./filters/Brighten\");\nconst Contrast_1 = require(\"./filters/Contrast\");\nconst Emboss_1 = require(\"./filters/Emboss\");\nconst Enhance_1 = require(\"./filters/Enhance\");\nconst Grayscale_1 = require(\"./filters/Grayscale\");\nconst HSL_1 = require(\"./filters/HSL\");\nconst HSV_1 = require(\"./filters/HSV\");\nconst Invert_1 = require(\"./filters/Invert\");\nconst Kaleidoscope_1 = require(\"./filters/Kaleidoscope\");\nconst Mask_1 = require(\"./filters/Mask\");\nconst Noise_1 = require(\"./filters/Noise\");\nconst Pixelate_1 = require(\"./filters/Pixelate\");\nconst Posterize_1 = require(\"./filters/Posterize\");\nconst RGB_1 = require(\"./filters/RGB\");\nconst RGBA_1 = require(\"./filters/RGBA\");\nconst Sepia_1 = require(\"./filters/Sepia\");\nconst Solarize_1 = require(\"./filters/Solarize\");\nconst Threshold_1 = require(\"./filters/Threshold\");\nexports.Konva = _CoreInternals_1.Konva.Util._assign(_CoreInternals_1.Konva, {\n Arc: Arc_1.Arc,\n Arrow: Arrow_1.Arrow,\n Circle: Circle_1.Circle,\n Ellipse: Ellipse_1.Ellipse,\n Image: Image_1.Image,\n Label: Label_1.Label,\n Tag: Label_1.Tag,\n Line: Line_1.Line,\n Path: Path_1.Path,\n Rect: Rect_1.Rect,\n RegularPolygon: RegularPolygon_1.RegularPolygon,\n Ring: Ring_1.Ring,\n Sprite: Sprite_1.Sprite,\n Star: Star_1.Star,\n Text: Text_1.Text,\n TextPath: TextPath_1.TextPath,\n Transformer: Transformer_1.Transformer,\n Wedge: Wedge_1.Wedge,\n Filters: {\n Blur: Blur_1.Blur,\n Brighten: Brighten_1.Brighten,\n Contrast: Contrast_1.Contrast,\n Emboss: Emboss_1.Emboss,\n Enhance: Enhance_1.Enhance,\n Grayscale: Grayscale_1.Grayscale,\n HSL: HSL_1.HSL,\n HSV: HSV_1.HSV,\n Invert: Invert_1.Invert,\n Kaleidoscope: Kaleidoscope_1.Kaleidoscope,\n Mask: Mask_1.Mask,\n Noise: Noise_1.Noise,\n Pixelate: Pixelate_1.Pixelate,\n Posterize: Posterize_1.Posterize,\n RGB: RGB_1.RGB,\n RGBA: RGBA_1.RGBA,\n Sepia: Sepia_1.Sepia,\n Solarize: Solarize_1.Solarize,\n Threshold: Threshold_1.Threshold,\n },\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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 p, 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 (let 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 (let 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 (let 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 (let 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 (let 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 (let 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 (let 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 let yp = width;\n for (let 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 (let 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 rGoalMax, rGoalMin, gGoalMax, gGoalMin, 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 const rMid = (rMax + rMin) * 0.5;\n rGoalMax = rMax + enhanceAmount * (rMax - rMid);\n rGoalMin = rMin + enhanceAmount * (rMin - rMid);\n const gMid = (gMax + gMin) * 0.5;\n gGoalMax = gMax + enhanceAmount * (gMax - gMid);\n gGoalMin = gMin + enhanceAmount * (gMin - gMid);\n const 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 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 const 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, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), data = imageData.data;\n if (pixelSize <= 0) {\n Util_1.Util.error('pixelSize value can not be <= 0');\n return;\n }\n for (let xBin = 0; xBin < nBinsX; xBin += 1) {\n for (let yBin = 0; yBin < nBinsY; yBin += 1) {\n let red = 0;\n let green = 0;\n let blue = 0;\n let alpha = 0;\n const xBinStart = xBin * pixelSize;\n const xBinEnd = xBinStart + pixelSize;\n const yBinStart = yBin * pixelSize;\n const yBinEnd = yBinStart + pixelSize;\n let pixelsInBin = 0;\n for (let x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (let y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n const 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 (let x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (let y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n const i = (width * y + x) * 4;\n data[i + 0] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = alpha;\n }\n }\n }\n }\n};\nexports.Pixelate = Pixelate;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'pixelSize', 8, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Posterize = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Posterize = function (imageData) {\n const levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels;\n for (let i = 0; i < len; i += 1) {\n data[i] = Math.floor(data[i] / scale) * scale;\n }\n};\nexports.Posterize = Posterize;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'levels', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGB = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst RGB = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue();\n for (let i = 0; i < nPixels; i += 4) {\n const brightness = (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;\n data[i] = brightness * red;\n data[i + 1] = brightness * green;\n data[i + 2] = brightness * blue;\n data[i + 3] = data[i + 3];\n }\n};\nexports.RGB = RGB;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGBA = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst RGBA = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha();\n for (let i = 0; i < nPixels; i += 4) {\n const ia = 1 - alpha;\n data[i] = red * alpha + data[i] * ia;\n data[i + 1] = green * alpha + data[i + 1] * ia;\n data[i + 2] = blue * alpha + data[i + 2] * ia;\n }\n};\nexports.RGBA = RGBA;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'alpha', 1, function (val) {\n this._filterUpToDate = false;\n if (val > 1) {\n return 1;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return val;\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sepia = void 0;\nconst Sepia = function (imageData) {\n const data = imageData.data, nPixels = data.length;\n for (let i = 0; i < nPixels; i += 4) {\n const r = data[i + 0];\n const g = data[i + 1];\n const b = data[i + 2];\n data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);\n data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);\n data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);\n }\n};\nexports.Sepia = Sepia;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Solarize = void 0;\nconst Solarize = function (imageData) {\n const data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4;\n let y = h;\n do {\n const offsetY = (y - 1) * w4;\n let x = w;\n do {\n const offset = offsetY + (x - 1) * 4;\n let r = data[offset];\n let g = data[offset + 1];\n let b = data[offset + 2];\n if (r > 127) {\n r = 255 - r;\n }\n if (g > 127) {\n g = 255 - g;\n }\n if (b > 127) {\n b = 255 - b;\n }\n data[offset] = r;\n data[offset + 1] = g;\n data[offset + 2] = b;\n } while (--x);\n } while (--y);\n};\nexports.Solarize = Solarize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Threshold = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Node_1 = require(\"../Node\");\nconst Validators_1 = require(\"../Validators\");\nconst Threshold = function (imageData) {\n const level = this.threshold() * 255, data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 1) {\n data[i] = data[i] < level ? 0 : 255;\n }\n};\nexports.Threshold = Threshold;\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0.5, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _FullInternals_1 = require(\"./_FullInternals\");\nmodule.exports = _FullInternals_1.Konva;\n","\"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 = [\n 'innerRadius',\n 'outerRadius',\n 'angle',\n 'clockwise',\n];\n(0, Global_2._registerNode)(Arc);\nFactory_1.Factory.addGetterSetter(Arc, 'innerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'outerRadius', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'angle', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arc, 'clockwise', false, (0, Validators_1.getBooleanValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Arrow = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Line_1 = require(\"./Line\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nconst Path_1 = require(\"./Path\");\nclass Arrow extends Line_1.Line {\n _sceneFunc(ctx) {\n super._sceneFunc(ctx);\n const PI2 = Math.PI * 2;\n const points = this.points();\n let tp = points;\n const fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n const length = this.pointerLength();\n const n = points.length;\n let dx, dy;\n if (fromTension) {\n const lp = [\n tp[tp.length - 4],\n tp[tp.length - 3],\n tp[tp.length - 2],\n tp[tp.length - 1],\n points[n - 2],\n points[n - 1],\n ];\n const lastLength = Path_1.Path.calcLength(tp[tp.length - 4], tp[tp.length - 3], 'C', lp);\n const previous = Path_1.Path.getPointOnQuadraticBezier(Math.min(1, 1 - length / lastLength), lp[0], lp[1], lp[2], lp[3], lp[4], lp[5]);\n dx = points[n - 2] - previous.x;\n dy = points[n - 1] - previous.y;\n }\n else {\n dx = points[n - 2] - points[n - 4];\n dy = points[n - 1] - points[n - 3];\n }\n const radians = (Math.atan2(dy, dx) + PI2) % PI2;\n const width = this.pointerWidth();\n if (this.pointerAtEnding()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[n - 2], points[n - 1]);\n ctx.rotate(radians);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n if (this.pointerAtBeginning()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[0], points[1]);\n if (fromTension) {\n dx = (tp[0] + tp[2]) / 2 - points[0];\n dy = (tp[1] + tp[3]) / 2 - points[1];\n }\n else {\n dx = points[2] - points[0];\n dy = points[3] - points[1];\n }\n ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n }\n __fillStroke(ctx) {\n const isDashEnabled = this.dashEnabled();\n if (isDashEnabled) {\n this.attrs.dashEnabled = false;\n ctx.setLineDash([]);\n }\n ctx.fillStrokeShape(this);\n if (isDashEnabled) {\n this.attrs.dashEnabled = true;\n }\n }\n getSelfRect() {\n const lineRect = super.getSelfRect();\n const offset = this.pointerWidth() / 2;\n return {\n x: lineRect.x,\n y: lineRect.y - offset,\n width: lineRect.width,\n height: lineRect.height + offset * 2,\n };\n }\n}\nexports.Arrow = Arrow;\nArrow.prototype.className = 'Arrow';\n(0, Global_1._registerNode)(Arrow);\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerLength', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerWidth', 10, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerAtBeginning', false);\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerAtEnding', true);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Circle = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Circle extends Shape_1.Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.attrs.radius || 0, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n if (this.radius() !== width / 2) {\n this.radius(width / 2);\n }\n }\n setHeight(height) {\n if (this.radius() !== height / 2) {\n this.radius(height / 2);\n }\n }\n}\nexports.Circle = Circle;\nCircle.prototype._centroid = true;\nCircle.prototype.className = 'Circle';\nCircle.prototype._attrsAffectingSize = ['radius'];\n(0, Global_1._registerNode)(Circle);\nFactory_1.Factory.addGetterSetter(Circle, 'radius', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ellipse = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_1 = require(\"../Global\");\nclass Ellipse extends Shape_1.Shape {\n _sceneFunc(context) {\n const rx = this.radiusX(), ry = this.radiusY();\n context.beginPath();\n context.save();\n if (rx !== ry) {\n context.scale(1, ry / rx);\n }\n context.arc(0, 0, rx, 0, Math.PI * 2, false);\n context.restore();\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radiusX() * 2;\n }\n getHeight() {\n return this.radiusY() * 2;\n }\n setWidth(width) {\n this.radiusX(width / 2);\n }\n setHeight(height) {\n this.radiusY(height / 2);\n }\n}\nexports.Ellipse = Ellipse;\nEllipse.prototype.className = 'Ellipse';\nEllipse.prototype._centroid = true;\nEllipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];\n(0, Global_1._registerNode)(Ellipse);\nFactory_1.Factory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusX', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusY', 0, (0, Validators_1.getNumberValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Image = void 0;\nconst Util_1 = require(\"../Util\");\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nclass Image extends Shape_1.Shape {\n constructor(attrs) {\n super(attrs);\n this._loadListener = () => {\n this._requestDraw();\n };\n this.on('imageChange.konva', (props) => {\n this._removeImageLoad(props.oldVal);\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', this._loadListener);\n }\n }\n _removeImageLoad(image) {\n if (image && image['removeEventListener']) {\n image['removeEventListener']('load', this._loadListener);\n }\n }\n destroy() {\n this._removeImageLoad(this.image());\n super.destroy();\n return this;\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.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 const points = this.points(), length = points.length, tension = this.tension(), closed = this.closed(), bezier = this.bezier();\n if (!length) {\n return;\n }\n let n = 0;\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (tension !== 0 && length > 4) {\n const tp = this.getTensionPoints();\n const len = tp.length;\n n = closed ? 0 : 4;\n if (!closed) {\n context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);\n }\n while (n < len - 2) {\n context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);\n }\n if (!closed) {\n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n }\n else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n }\n else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n }\n else {\n context.strokeShape(this);\n }\n }\n getTensionPoints() {\n return this._getCache('tensionPoints', this._getTensionPoints);\n }\n _getTensionPoints() {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n }\n else {\n return expandPoints(this.points(), this.tension());\n }\n }\n _getTensionPointsClosed() {\n const p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension), lastControlPoints = getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension), middle = expandPoints(p, tension), tp = [firstControlPoints[2], firstControlPoints[3]]\n .concat(middle)\n .concat([\n lastControlPoints[0],\n lastControlPoints[1],\n p[len - 2],\n p[len - 1],\n lastControlPoints[2],\n lastControlPoints[3],\n firstControlPoints[0],\n firstControlPoints[1],\n p[0],\n p[1],\n ]);\n return tp;\n }\n getWidth() {\n return this.getSelfRect().width;\n }\n getHeight() {\n return this.getSelfRect().height;\n }\n getSelfRect() {\n let points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0,\n };\n }\n if (this.tension() !== 0) {\n points = [\n points[0],\n points[1],\n ...this._getTensionPoints(),\n points[points.length - 2],\n points[points.length - 1],\n ];\n }\n else {\n points = this.points();\n }\n let minX = points[0];\n let maxX = points[0];\n let minY = points[1];\n let maxY = points[1];\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n}\nexports.Line = Line;\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\n(0, Global_1._registerNode)(Line);\nFactory_1.Factory.addGetterSetter(Line, 'closed', false);\nFactory_1.Factory.addGetterSetter(Line, 'bezier', false);\nFactory_1.Factory.addGetterSetter(Line, 'tension', 0, (0, Validators_1.getNumberValidator)());\nFactory_1.Factory.addGetterSetter(Line, 'points', [], (0, Validators_1.getNumberArrayValidator)());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Path = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Global_1 = require(\"../Global\");\nconst Shape_1 = require(\"../Shape\");\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 const 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 const r = rx > ry ? rx : ry;\n const scaleX = rx > ry ? 1 : rx / ry;\n const 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 const cmd = dataArray[i].command;\n if (cmd === 'M') {\n points = dataArray[i].points.slice(0, 2);\n return {\n x: points[0],\n y: points[1],\n };\n }\n else {\n return {\n x: dataArray[i].start.x,\n y: dataArray[i].start.y,\n };\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 const cx = p[0], cy = p[1], rx = p[2], ry = p[3], dTheta = p[5], psi = p[6];\n let theta = p[4];\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 { x, y };\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 { x, y };\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 (let 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 (let 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 let prevCmd, ctlPtx, ctlPty;\n let 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 const dx = p.shift();\n const 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 const start = points[4];\n const dTheta = points[5];\n const end = 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 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.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 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 let lineTranslateX = 0;\n let lineTranslateY = 0;\n const obj = textArr[n], text = obj.text, width = obj.width, lastLine = obj.lastInParagraph;\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 const lineWidth = 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 const lineWidth = 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 const 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);\n const shouldConsiderEllipsis = shouldAddEllipsis &&\n fixedHeight &&\n currentHeightPx + lineHeightPx > maxHeightPx;\n const effectiveWidth = shouldConsiderEllipsis\n ? substrWidth + additionalWidth\n : substrWidth;\n if (effectiveWidth <= 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 if (node._attrsAffectingSize.length) {\n const additionalEvents = node._attrsAffectingSize\n .map((prop) => prop + 'Change.' + this._getEventNamespace())\n .join(' ');\n node.on(additionalEvents, onChange);\n }\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 let centeredScaling = this.centeredScaling() || e.altKey;\n if (this._movingAnchorName === 'top-left') {\n if (keepProportion) {\n const 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 const reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;\n const 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 const 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 const reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;\n const 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 const 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 const reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;\n const 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 const 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 const reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;\n const 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 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"],"names":["Object","defineProperty","exports","value","Animation","Global_1","Util_1","now","glob","performance","Date","getTime","constructor","func","layers","this","id","animIdCounter","frame","time","timeDiff","lastTime","frameRate","setLayers","lays","Array","isArray","getLayers","addLayer","layer","len","length","n","_id","push","isRunning","animations","start","stop","_addAnimation","_removeAnimation","_updateFrameObject","anim","_handleAnimation","splice","_runFrames","layerHash","layersLen","needRedraw","call","i","undefined","key","hasOwnProperty","batchDraw","_animationLoop","Anim","Util","requestAnimFrame","animRunning","BFunc","xs","ys","t","xbase","getDerivative","ybase","combined","Math","sqrt","t2length","getQuadraticArcLength","getCubicArcLength","binomialCoefficients","cValues","tValues","sum","correctedT","z","ax","ay","bx","by","A","B","C","pow","b","u","k","uuk","bbk","term","log","abs","derivative","vs","_vs","totalLength","error","step","numIterations","increasedTLength","increasedTError","decreasedTLength","decreasedTError","HitCanvas","SceneCanvas","Canvas","Context_1","_pixelRatio","config","pixelRatio","width","height","isCache","Konva","canvas","createCanvasElement","context","getContext","_global","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","releaseCanvas","getDevicePixelRatio","_canvas","style","padding","margin","border","background","position","top","left","getPixelRatio","setPixelRatio","previousRatio","setSize","getWidth","getHeight","setWidth","_context","scale","setHeight","toDataURL","mimeType","quality","e","err","message","willReadFrequently","super","SceneContext","hitCanvas","HitContext","Container","Factory_1","Node_1","Validators_1","Node","arguments","children","getChildren","filterFunc","filter","hasChildren","removeChildren","forEach","child","parent","index","remove","_requestDraw","destroyChildren","destroy","add","getParent","moveTo","_validateAdd","_clearCaches","_fire","find","selector","_generalFind","findOne","result","retArr","_descendants","node","valid","_isMatch","fn","shouldStop","toObject","obj","prototype","isAncestorOf","clone","no","getAllIntersections","pos","arr","shape","isVisible","intersects","_clearSelfAndDescendantCache","attr","_a","isCached","_setChildrenIndices","drawScene","can","bufferCanvas","getLayer","getCanvas","cachedCanvas","_getCanvasCache","cachedSceneCanvas","scene","caching","save","m","getAbsoluteTransform","getMatrix","transform","_drawCachedSceneCanvas","restore","_drawChildren","drawHit","shouldDrawHit","hit","_drawCachedHitCanvas","drawMethod","clipWidth","clipHeight","clipFunc","hasClip","selfCache","clipArgs","beginPath","clipX","clipY","rect","clip","apply","copy","invert","hasComposition","globalCompositeOperation","_applyGlobalCompositeOperation","getClientRect","skipTransform","relativeTo","minX","minY","maxX","maxY","selfRect","x","Infinity","y","that","visible","skipShadow","skipStroke","min","max","shapes","hasVisible","_isVisible","_transformedRect","Factory","addComponentsGetterSetter","addGetterSetter","getNumberValidator","Context","CONTEXT_METHODS","enableTrace","traceArr","_enableTrace","fillShape","fillEnabled","_fill","strokeShape","hasStroke","_stroke","fillStrokeShape","attrs","fillAfterStrokeEnabled","getTrace","relaxed","rounded","trace","method","args","str","_isArray","join","map","a","floor","property","val","clearTrace","_trace","shift","reset","setTransform","clear","bounds","clearRect","_applyLineCap","lineCap","setAttr","_applyOpacity","absOpacity","getAbsoluteOpacity","_applyLineJoin","lineJoin","arc","radius","startAngle","endAngle","counterClockwise","arcTo","x1","y1","x2","y2","bezierCurveTo","cp1x","cp1y","cp2x","cp2y","closePath","createImageData","createLinearGradient","x0","y0","createPattern","image","repetition","createRadialGradient","r0","r1","drawImage","sx","sy","sWidth","sHeight","dx","dy","dWidth","dHeight","ellipse","radiusX","radiusY","rotation","counterclockwise","isPointInPath","path","fillRule","fill","fillRect","strokeRect","fillText","text","maxWidth","measureText","getImageData","sw","sh","lineTo","roundRect","radii","putImageData","imageData","quadraticCurveTo","cpx","cpy","rotate","angle","setLineDash","segments","getLineDash","c","d","f","stroke","path2d","strokeText","translate","origSetter","methodName","ret","origMethod","util","_isNumber","round","_isString","simplifyArray","slice","prop","op","get","set","_fillColor","_fillFunc","_fillPattern","_getFillPattern","_fillLinearGradient","grd","_getLinearGradient","_fillRadialGradient","_getRadialGradient","hasColor","fillPriority","getFillPriority","hasPattern","getFillPatternImage","hasLinearGradient","getFillLinearGradientColorStops","hasRadialGradient","getFillRadialGradientColorStops","_strokeLinearGradient","getStrokeLinearGradientStartPoint","end","getStrokeLinearGradientEndPoint","colorStops","getStrokeLinearGradientColorStops","addColorStop","dash","strokeScaleEnabled","getStrokeScaleEnabled","dashEnabled","dashOffset","strokeWidth","getShadowForStrokeEnabled","_strokeFunc","_applyShadow","_b","_c","color","getShadowRGBA","blur","getShadowBlur","offset","getShadowOffset","getAbsoluteScale","ratio","scaleX","scaleY","colorKey","_fillFuncHit","hasHitStroke","hitStrokeWidth","_strokeFuncHit","DD","isDragging","flag","_dragElements","elem","dragStatus","justDragged","Map","_drag","evt","nodesToFireEvents","stage","getStage","setPointersPositions","pointerId","_getFirstPointerId","_changedPointerPositions","dragDistance","startPointerPos","startDrag","_setDragPosition","fire","type","target","_endDragBefore","drawNodes","_mouseListenClick","_touchListenClick","_pointerListenClick","drawNode","indexOf","draw","_endDragAfter","delete","isBrowser","window","addEventListener","GET","SET","def","validator","after","addGetter","addSetter","addOverloadedGetterSetter","_capitalize","overWriteSetter","_setAttr","components","capitalize","getter","setter","component","getAttr","basicValidator","getComponentValidator","oldVal","_fireChangeEvent","capitalizedAttr","addDeprecatedGetterSetter","backCompat","methods","each","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","afterSetFilter","_filterUpToDate","FastLayer","Layer_1","Layer","listening","warn","nodeType","_registerNode","PI_OVER_180","PI","g","WorkerGlobalScope","self","version","toString","isUnminified","test","param","dblClickWindow","getAngle","angleDeg","pointerEventsEnabled","autoDrawEnabled","hitOnDragEnabled","capturePointerEventsEnabled","_mouseInDblClickWindow","_touchInDblClickWindow","_pointerInDblClickWindow","_mouseDblClickPointerId","_touchDblClickPointerId","_pointerDblClickPointerId","_fixTextRendering","showWarnings","dragButtons","isTransforming","isDragReady","releaseCanvasOnDestroy","document","_injectGlobal","NodeClass","getClassName","Group","Container_1","getType","throw","Canvas_1","Shape_1","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","_waitingForDraw","on","_checkVisibility","_setSmoothEnabled","createPNGStream","getNativeCanvasElement","getHitCanvas","setZIndex","content","removeChild","insertBefore","appendChild","moveToTop","moveUp","moveDown","moveToBottom","parentNode","_isInDocument","_toKonvaCanvas","display","imageSmoothingEnabled","getIntersection","isListening","spiralSearchDistance","continueSearch","intersectionOffset","_getIntersection","antialiased","p","data","p3","_rgbToHex","clearBeforeDraw","enableHitGraph","hitGraphEnabled","disableHitGraph","setHitGraphEnabled","getHitGraphEnabled","toggleHitCanvas","getBooleanValidator","DragAndDrop_1","ABSOLUTE_OPACITY","ALL_LISTENERS","ABSOLUTE_TRANSFORM","ABSOLUTE_SCALE","CANVAS","LISTENING","SHAPE","SPACE","STAGE","TRANSFORM","VISIBLE","TRANSFORM_CHANGE_STR","idCounter","eventListeners","_allEventListeners","_cache","_attachedDepsListeners","_lastPos","_batchingTransformChange","_needClearTransformCache","_isUnderCache","_dragEventId","_shouldFireChangeEvents","setAttrs","_clearCache","dirty","_getCache","privateGetter","cache","_calculate","name","deps","depsString","dep","clearCache","has","buffer","conf","ceil","drawBorder","hitCanvasPixelRatio","cachedFilterCanvas","cachedHitCanvas","sceneContext","hitContext","bufferContext","Error","points","trans","point","transformed","canvasCache","cacheCanvas","_getCachedSceneCanvas","filters","sceneCanvas","filterCanvas","filterContext","evtStr","handler","_delegate","events","split","parts","baseEvent","off","callback","event","_off","dispatchEvent","removeEventListener","stopNode","targets","findAncestors","cloneObject","currentTarget","stopDrag","_remove","_isFunction","getAncestors","ancestors","getAttrs","_batchTransformChanges","_isListening","skipDragCheck","layerUnderDrag","dragSkip","show","hide","getZIndex","getAbsoluteZIndex","nodes","depth","getDepth","addChildren","concat","setPosition","getPosition","getRelativePointerPosition","getPointerPosition","getAbsolutePosition","haveCachedParent","absoluteMatrix","absoluteTransform","Transform","getTranslation","setAbsolutePosition","origTrans","_clearTransform","it","_getAbsoluteTransform","_setTransform","offsetX","offsetY","skewX","skewY","move","change","changeX","changeY","_eachAncestorReverse","family","unshift","theta","zIndex","_getAbsoluteOpacity","opacity","newContainer","defaultValue","nonPlainObject","className","isObject","_isPlainObject","_prepareToStringify","toJSON","JSON","stringify","includeSelf","res","ancestor","findAncestor","sel","selectorArr","replace","isValidSelector","charAt","hasName","_getStage","eventType","bubble","_fireAndBubble","at","transformsEnabled","multiply","getTransform","copyInto","decompose","getAbsoluteRotation","_getTransform","skew","allListeners","listener","box","toCanvas","url","toImage","Promise","resolve","reject","_urlToImage","img","toBlob","blob","size","getSize","getDragDistance","evtName","evtListeners","newVal","addName","oldName","newName","fullName","removeName","names","_setComponentAttr","compareShape","nonBubbling","stopBubble","cancelBubble","_getProtoListeners","getPrototypeOf","hierarchyEvents","topListeners","selfListeners","_createDragElement","ap","_getPointerById","bubbleEvent","newNodePos","dbf","dragBoundFunc","bounded","setDraggable","draggable","_dragChange","_listenDrag","_dragCleanup","hasDraggingChild","dragElement","isReady","isClientRectOnScreen","screenRect","haveIntersection","create","container","parse","_createNode","Class","_attrsAffectingSize","getStringValidator","rotateDeg","setRotationDeg","getRotationDeg","getCapturedShape","Captures","createEvent","hasPointerCapture","setPointerCapture","releaseCapture","SUPPORT_POINTER_EVENTS","PointerEvent","Shape","Global_2","PointerEvents","HAS_SHADOW","SHADOW_RGBA","patternImage","linearGradient","radialGradient","dummyContext","getDummyContext","getRandomColor","getSceneFunc","sceneFunc","getHitFunc","hitFunc","hasShadow","_hasShadow","shadowEnabled","shadowOpacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","__getFillPattern","fillPatternImage","pattern","fillPatternRepeat","tr","fillPatternX","fillPatternY","fillPatternRotation","fillPatternScaleX","fillPatternScaleY","fillPatternOffsetX","fillPatternOffsetY","matrix","DOMMatrix","__getLinearGradient","fillLinearGradientColorStops","ctx","fillLinearGradientStartPoint","fillLinearGradientEndPoint","__getRadialGradient","fillRadialGradientColorStops","fillRadialGradientStartPoint","fillRadialGradientEndPoint","fillRadialGradientStartRadius","fillRadialGradientEndRadius","_getShadowRGBA","rgba","colorToRGBA","r","hasFill","strokeEnabled","strokeLinearGradientColorStops","bufferHitCanvas","_useBufferCanvas","forceFill","perfectDrawEnabled","isTransparent","strokeForShadow","shadowForStrokeEnabled","setStrokeHitEnabled","getStrokeHitEnabled","getSelfRect","_centroid","hasCachedParent","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","preWidth","preHeight","blurRadius","drawFunc","cachingSelf","bc","o","drawHitFromCache","alphaThreshold","hitWidth","hitHeight","hitImageData","hitData","rgbColorKey","_hexToRgb","getStringOrGradientValidator","getNumberOrAutoValidator","dashArray","getDashArray","setDashArray","getDrawFunc","setDrawFunc","drawHitFunc","getDrawHitFunc","setDrawHitFunc","Stage","stages","MOUSELEAVE","MOUSEOVER","MOUSEENTER","MOUSEMOVE","MOUSEDOWN","MOUSEUP","POINTERMOVE","POINTERDOWN","POINTERUP","POINTERCANCEL","POINTEROUT","POINTERLEAVE","POINTEROVER","POINTERENTER","CONTEXTMENU","TOUCHSTART","TOUCHEND","TOUCHMOVE","TOUCHCANCEL","WHEEL","EVENTS","EVENTS_MAP","mouse","pointerclick","pointerdblclick","touch","pointer","getEventType","getEventsMap","checkNoClip","_pointerPositions","_buildDOM","_bindContentEvents","_resizeDOM","isLayer","isFastLayer","setContainer","getElementsByClassName","getElementById","parentElement","createElement","getPointersPositions","getContent","layerCanvas","rest","passive","_pointerenter","pointerenter","_pointerover","pointerover","_getTargetShape","evenType","_pointerleave","targetShape","eventsEnabled","pointerout","pointerleave","pointerPos","_pointerdown","triggeredOnShape","pointerdown","isTouch","preventDefault","cancelable","_pointermove","processedShapesIds","differentTarget","pointermove","_pointerup","clickStartShape","clickEndShape","fireDblClick","clearTimeout","setTimeout","pointerup","_contextmenu","_wheel","_pointercancel","_lostpointercapture","contentPosition","_getContentPosition","touches","identifier","clientX","clientY","changedTouches","_setPointerPosition","getBoundingClientRect","clientWidth","clientHeight","innerHTML","userSelect","setAttribute","Easings","Tween","Animation_1","blacklist","duration","easing","onFinish","yoyo","colorAttrs","TweenEngine","propFunc","begin","finish","_pos","_change","prevPos","_time","_position","_startTime","_finish","pause","setTime","reverse","play","update","state","getTimer","onEnterFrame","seek","nodeId","Linear","tween","_tweenFunc","_addListeners","tweens","_addAttr","onReset","onUpdate","diff","trueEnd","trueStart","endRGBA","tweenId","_prepareArrayForTween","closed","startRGBA","onPlay","onReverse","onPause","thisId","keys","to","params","BackEaseIn","s","BackEaseOut","BackEaseInOut","ElasticEaseIn","asin","sin","ElasticEaseOut","ElasticEaseInOut","BounceEaseOut","BounceEaseIn","BounceEaseInOut","EaseIn","EaseOut","EaseInOut","StrongEaseIn","StrongEaseOut","StrongEaseInOut","rad","cos","m11","m12","m21","m22","m0","m1","m2","m3","m4","m5","delta","acos","_getRotation","PI_OVER_DEG180","DEG180_OVER_PI","KONVA_ERROR","COLORS","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","transparent","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","RGB_REGEX","animQueue","req","requestAnimationFrame","_isElement","isNaN","isFinite","_isBoolean","firstChar","toUpperCase","_sign","number","queue","cb","createImageElement","el","imageObj","onload","src","hex","bigint","parseInt","randColor","random","getRGB","rgb","substring","substr","exec","_namedColorToRBA","_hex3ColorToRGBA","_hex4ColorToRGBA","_hex6ColorToRGBA","_hex8ColorToRGBA","_rgbColorToRGBA","_rgbaColorToRGBA","_hslColorToRGBA","toLowerCase","match","Number","_","hsl","h","l","t2","t3","t1","r2","retObj","cloneArray","degToRad","deg","radToDeg","_degToRad","_radToDeg","radians","console","_inRange","right","_getProjectionToSegment","x3","y3","dist","pd2","_getProjectionToLine","pt","line","isClosed","pc","MAX_VALUE","p1","p2","proj","px","py","pdist","startArray","endArray","temp","newStart","pr","desc","visitedByCircularReferenceRemoval","getOwnPropertyDescriptor","configurable","_assign","source","canvases","drawRoundedRectPath","cornerRadius","topLeft","topRight","bottomLeft","bottomRight","RGBComponent","alphaComponent","_formatValue","getNumberOrArrayOfNumbersValidator","noOfElements","isNumber","isValidArray","isString","isGradient","getFunctionValidator","getNumberArrayValidator","TypedArray","Int8Array","item","Stage_1","FastLayer_1","Group_1","Tween_1","_CoreInternals_1","Arc_1","Arrow_1","Circle_1","Ellipse_1","Image_1","Label_1","Line_1","Path_1","Rect_1","RegularPolygon_1","Ring_1","Sprite_1","Star_1","Text_1","TextPath_1","Transformer_1","Wedge_1","Blur_1","Brighten_1","Contrast_1","Emboss_1","Enhance_1","Grayscale_1","HSL_1","HSV_1","Invert_1","Kaleidoscope_1","Mask_1","Noise_1","Pixelate_1","Posterize_1","RGB_1","RGBA_1","Sepia_1","Solarize_1","Threshold_1","Arc","Arrow","Circle","Ellipse","Image","Label","Tag","Line","Path","Rect","RegularPolygon","Ring","Sprite","Star","Text","TextPath","Transformer","Wedge","Filters","Blur","Brighten","Contrast","Emboss","Enhance","Grayscale","HSL","HSV","Invert","Kaleidoscope","Mask","Noise","Pixelate","Posterize","RGB","RGBA","Sepia","Solarize","Threshold","BlurStack","next","mul_table","shg_table","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","yp","filterGaussBlurRGBA","brightness","adjust","contrast","nPixels","strength","embossStrength","greyLevel","embossWhiteLevel","direction","embossDirection","blend","embossBlend","w","w4","dirY","dirX","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","dif","absDif","remap","fromValue","fromMin","fromMax","toMin","toMax","fromRange","toRange","toValue","nSubPixels","rMin","rMax","gMin","gMax","bMin","bMax","enhanceAmount","enhance","rGoalMax","rGoalMin","gGoalMax","gGoalMin","bGoalMax","bGoalMin","rMid","gMid","bMid","saturation","hue","luminance","vsu","vsw","rr","rg","rb","gr","gg","gb","br","bg","bb","v","xSize","ySize","xoff","srcPos","dstPos","power","kaleidoscopePower","kaleidoscopeAngle","tempCanvas","scratchData","dst","opt","srcPixels","dstPixels","xMid","polarCenterX","yMid","polarCenterY","rSize","tSize","conversion","ToPolar","minSectionSize","sectionSize","xStart","xEnd","xDelta","phaseShift","polarRotation","atan2","FromPolar","pixelAt","idata","idx","rgbDistance","mask","threshold","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","pTab","rgbMean","backgroundMask","weights","side","halfSide","maskResult","so","cy","cx","scy","scx","wt","erodeMask","dilateMask","smoothEdgeMask","applyMask","amount","noise","half","pixelSize","nBinsX","nBinsY","xBin","yBin","alpha","xBinStart","xBinEnd","yBinStart","yBinEnd","pixelsInBin","levels","ia","level","_FullInternals_1","module","_sceneFunc","clockwise","outerRadius","innerRadius","boundLeftRatio","boundTopRatio","boundBottomRatio","boundLeft","boundTop","boundBottom","PI2","tp","fromTension","tension","getTensionPoints","pointerLength","lp","lastLength","calcLength","previous","getPointOnQuadraticBezier","pointerWidth","pointerAtEnding","__fillStroke","pointerAtBeginning","isDashEnabled","lineRect","rx","ry","_loadListener","props","_removeImageLoad","_setImageLoad","complete","readyState","hasCornerRadius","cropWidth","cropHeight","cropX","cropY","_hitFunc","fromURL","onError","onerror","crossOrigin","ATTR_CHANGE_LIST","UP","RIGHT","DOWN","LEFT","attrChangeListLen","_sync","getText","getTag","pointerDirection","pointerHeight","tag","getControlPoints","d01","d12","fa","fb","expandPoints","allPoints","cp","bezier","_getTensionPoints","_getTensionPointsClosed","firstControlPoints","lastControlPoints","middle","BezierFunctions_1","dataArray","pathLength","_readDataAttribute","parsePathData","getPathLength","ca","command","dTheta","psi","fs","inc","getPointOnEllipticalArc","getPointOnCubicBezier","getLength","getPointAtLength","getPointAtLengthOfDataArray","getLineLength","ii","getPointOnLine","P1x","P1y","P2x","P2y","fromX","fromY","run","rise","ix","iy","pRise","pRun","adjustedRun","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cs","cc","RegExp","coords","re","j","jlen","parsed","parseFloat","cmd","startX","startY","prevCmd","ctlPtx","ctlPty","convertEndpointToCenterParameterization","psiDeg","xp","lambda","cxp","cyp","vMag","vRatio","vAngle","_getPoints","sides","PIx2","_updated","updated","frameIndex","clearInterval","interval","_setInterval","animation","ix4","offsets","frameOffsets","ix2","setInterval","_updateIndex","getIndex","setIndex","numPoints","stringToArray","string","reduce","acc","char","array","nextChar","AUTO","INHERIT","JUSTIFY","MIDDLE","NORMAL","NONE","checkDefaultFill","_partialTextX","_partialTextY","_setTextData","textArr","textArrLen","fontSize","lineHeightPx","lineHeight","verticalAlign","alignY","align","totalWidth","letterSpacing","textDecoration","shouldUnderline","shouldLineThrough","translateY","baseline","metrics","measureSize","fontBoundingBoxAscent","fontBoundingBoxDescent","_getContextFont","lineTranslateX","lineTranslateY","lastLine","lastInParagraph","lineWidth","gradient","strokeStyle","yOffset","_partialText","spacesNumber","li","letter","setText","getTextWidth","textWidth","getTextHeight","textHeight","_d","_e","_f","_g","_h","_j","_k","_l","font","scaleFactor","actualBoundingBoxAscent","actualBoundingBoxDescent","actualBoundingBoxLeft","actualBoundingBoxRight","alphabeticBaseline","emHeightAscent","emHeightDescent","hangingBaseline","ideographicBaseline","fontStyle","fontVariant","fontFamily","hasSpace","trim","hasQuotes","_addTextLine","_getTextWidth","lines","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","wrap","wrapAtWord","shouldAddEllipsis","ellipsis","additionalWidth","low","high","matchWidth","mid","substrWidth","lineArray","matchArray","wrapIndex","lastSpaceIndex","lastIndexOf","lastDashIndex","trimRight","_shouldHandleEllipsis","_tryToAddEllipsisToLastLine","trimLeft","hasLine","partialText","dummyCanvas","_getTextPathLength","_getPointAtLength","textBaseline","glyphInfo","p0","_getTextSize","kerningFunc","charArr","offsetToGlyph","charStartPoint","glyphWidth","numberOfSpaces","charEndPoint","kern","midpoint","transposeX","transposeY","info","EVENTS_NAME","NODES_RECT","ANGLES","TOUCH_DEVICE","ANCHORS_NAMES","rotateAroundPoint","angleRad","activeTransformersCount","_movingAnchorName","_transforming","_createElements","_handleMouseMove","bind","_handleMouseUp","getNode","attachTo","setNode","setNodes","_nodes","_getEventNamespace","detach","filteredNodes","useSingleNodeRotation","onChange","_resetTransformCache","additionalEvents","_proxyDrag","lastPos","otherNode","otherAbs","getNodes","getActiveAnchor","_getNodeRect","__getNodeRect","__getNodeShape","rot","relative","ignoreStroke","absScale","absPos","totalPoints","getX","getY","_createBack","_createAnchor","anchor","_handleMouseDown","rotateCursor","rotateAnchorCursor","cursor","anchorName","getCursor","_cursorChange","back","rotateEnabled","rotateLineVisible","rotateAnchorOffset","shouldOverdrawWholeArea","hypotenuse","_anchorDragOffset","newHypotenuse","anchorNode","pp","oldAbs","anchorDragBoundFunc","newAbs","newRotation","tol","rotationSnapTolerance","snappedRot","snaps","newRotationRad","snapped","absDiff","getSnap","rotationSnaps","deltaRad","center","getCenter","rotateAroundCenter","_fitNodesInto","shiftBehavior","keepProportion","keepRatio","shiftKey","centeredScaling","altKey","comparePoint","reverseX","reverseY","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","_removeEvents","newAttrs","oldAttrs","boundBoxFunc","baseSize","oldTr","newTr","newScaleX","newScaleY","flipEnabled","parentTransform","localTransform","newLocalTransform","forceUpdate","_batchChangeChild","enabledAnchors","resizeEnabled","anchorSize","anchors","anchorStroke","anchorStrokeWidth","anchorFill","anchorCornerRadius","borderEnabled","borderStroke","borderStrokeWidth","borderDash","styleFunc","anchorStyleFunc","stopTransform","lineEnabled","rotateHandlerOffset","enabledHandlers","getAngleDeg","setAngleDeg"],"sourceRoot":""}
|