@sansitech/react-img-editor 0.4.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/LICENSE +21 -0
- package/README.md +65 -0
- package/lib/common/PubSub.d.ts +6 -0
- package/lib/common/constants.d.ts +13 -0
- package/lib/common/type.d.ts +22 -0
- package/lib/common/utils.d.ts +1 -0
- package/lib/common/withContext.d.ts +2 -0
- package/lib/components/EditorContext.d.ts +20 -0
- package/lib/components/Palette.d.ts +9 -0
- package/lib/components/ParamSetting/ColorSetting.d.ts +7 -0
- package/lib/components/ParamSetting/FontSizeSetting.d.ts +7 -0
- package/lib/components/ParamSetting/LineTypeSetting.d.ts +7 -0
- package/lib/components/ParamSetting/StrokeWidthSetting.d.ts +7 -0
- package/lib/components/ParamSetting/index.d.ts +9 -0
- package/lib/components/Toolbar.d.ts +3 -0
- package/lib/index.css +386 -0
- package/lib/index.d.ts +19 -0
- package/lib/index.es.js +19375 -0
- package/lib/index.es.js.map +1 -0
- package/lib/index.js +19395 -0
- package/lib/index.js.map +1 -0
- package/lib/plugins/Arrow.d.ts +28 -0
- package/lib/plugins/Circle.d.ts +28 -0
- package/lib/plugins/Crop.d.ts +32 -0
- package/lib/plugins/Download.d.ts +11 -0
- package/lib/plugins/Eraser.d.ts +18 -0
- package/lib/plugins/Mosaic.d.ts +25 -0
- package/lib/plugins/Pen.d.ts +18 -0
- package/lib/plugins/Plugin.d.ts +19 -0
- package/lib/plugins/PluginFactory.d.ts +13 -0
- package/lib/plugins/Rect.d.ts +28 -0
- package/lib/plugins/Repeal.d.ts +11 -0
- package/lib/plugins/Text.d.ts +25 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../node_modules/konva/lib/Global.js","../node_modules/konva/lib/Util.js","../node_modules/konva/lib/Context.js","../node_modules/konva/lib/Canvas.js","../node_modules/konva/lib/DragAndDrop.js","../node_modules/konva/lib/Validators.js","../node_modules/konva/lib/Factory.js","../node_modules/konva/lib/Node.js","../node_modules/konva/lib/Container.js","../node_modules/konva/lib/PointerEvents.js","../node_modules/konva/lib/Stage.js","../node_modules/konva/lib/Shape.js","../node_modules/konva/lib/Layer.js","../node_modules/konva/lib/FastLayer.js","../node_modules/konva/lib/Group.js","../node_modules/konva/lib/Animation.js","../node_modules/konva/lib/Tween.js","../node_modules/konva/lib/_CoreInternals.js","../node_modules/konva/lib/shapes/Arc.js","../node_modules/konva/lib/shapes/Line.js","../node_modules/konva/lib/BezierFunctions.js","../node_modules/konva/lib/shapes/Path.js","../node_modules/konva/lib/shapes/Arrow.js","../node_modules/konva/lib/shapes/Circle.js","../node_modules/konva/lib/shapes/Ellipse.js","../node_modules/konva/lib/shapes/Image.js","../node_modules/konva/lib/shapes/Label.js","../node_modules/konva/lib/shapes/Rect.js","../node_modules/konva/lib/shapes/RegularPolygon.js","../node_modules/konva/lib/shapes/Ring.js","../node_modules/konva/lib/shapes/Sprite.js","../node_modules/konva/lib/shapes/Star.js","../node_modules/konva/lib/shapes/Text.js","../node_modules/konva/lib/shapes/TextPath.js","../node_modules/konva/lib/shapes/Transformer.js","../node_modules/konva/lib/shapes/Wedge.js","../node_modules/konva/lib/filters/Blur.js","../node_modules/konva/lib/filters/Brighten.js","../node_modules/konva/lib/filters/Contrast.js","../node_modules/konva/lib/filters/Emboss.js","../node_modules/konva/lib/filters/Enhance.js","../node_modules/konva/lib/filters/Grayscale.js","../node_modules/konva/lib/filters/HSL.js","../node_modules/konva/lib/filters/HSV.js","../node_modules/konva/lib/filters/Invert.js","../node_modules/konva/lib/filters/Kaleidoscope.js","../node_modules/konva/lib/filters/Mask.js","../node_modules/konva/lib/filters/Noise.js","../node_modules/konva/lib/filters/Pixelate.js","../node_modules/konva/lib/filters/Posterize.js","../node_modules/konva/lib/filters/RGB.js","../node_modules/konva/lib/filters/RGBA.js","../node_modules/konva/lib/filters/Sepia.js","../node_modules/konva/lib/filters/Solarize.js","../node_modules/konva/lib/filters/Threshold.js","../node_modules/konva/lib/_FullInternals.js","../node_modules/konva/lib/index-node.js","../src/plugins/Plugin.ts","../src/common/constants.ts","../src/common/utils.ts","../src/plugins/Arrow.ts","../src/plugins/Circle.ts","../src/plugins/Crop.ts","../src/plugins/Download.ts","../src/plugins/Eraser.ts","../src/plugins/Mosaic.ts","../src/plugins/Pen.ts","../src/plugins/Rect.ts","../src/plugins/Repeal.ts","../src/plugins/Text.ts","../src/plugins/PluginFactory.ts","../node_modules/pubsub-js/src/pubsub.js","../src/common/PubSub.ts","../src/common/withContext.tsx","../src/components/EditorContext.tsx","../src/components/Palette.tsx","../src/components/ParamSetting/ColorSetting.tsx","../src/components/ParamSetting/FontSizeSetting.tsx","../src/components/ParamSetting/LineTypeSetting.tsx","../src/components/ParamSetting/StrokeWidthSetting.tsx","../src/components/ParamSetting/index.tsx","../node_modules/classnames/index.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.development.js","../node_modules/rc-util/node_modules/react-is/index.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/React/isFragment.js","../node_modules/rc-util/es/ref.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Tooltip.js","../src/components/Toolbar.tsx","../src/index.tsx"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._registerNode = exports.Konva = exports.glob = void 0;\nconst PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return (typeof window !== 'undefined' &&\n ({}.toString.call(window) === '[object Window]' ||\n {}.toString.call(window) === '[object global]'));\n}\nexports.glob = typeof global !== 'undefined'\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof WorkerGlobalScope !== 'undefined'\n ? self\n : {};\nexports.Konva = {\n _global: exports.glob,\n version: '9.3.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.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.HitContext = exports.SceneContext = exports.Context = void 0;\nconst Util_1 = require(\"./Util\");\nconst Global_1 = require(\"./Global\");\nfunction simplifyArray(arr) {\n const retArr = [], len = arr.length, util = Util_1.Util;\n for (let n = 0; n < len; n++) {\n let val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n }\n else if (!util._isString(val)) {\n val = val + '';\n }\n retArr.push(val);\n }\n return retArr;\n}\nconst COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()', EQUALS = '=', CONTEXT_METHODS = [\n 'arc',\n 'arcTo',\n 'beginPath',\n 'bezierCurveTo',\n 'clearRect',\n 'clip',\n 'closePath',\n 'createLinearGradient',\n 'createPattern',\n 'createRadialGradient',\n 'drawImage',\n 'ellipse',\n 'fill',\n 'fillText',\n 'getImageData',\n 'createImageData',\n 'lineTo',\n 'moveTo',\n 'putImageData',\n 'quadraticCurveTo',\n 'rect',\n 'roundRect',\n 'restore',\n 'rotate',\n 'save',\n 'scale',\n 'setLineDash',\n 'setTransform',\n 'stroke',\n 'strokeText',\n 'transform',\n 'translate',\n];\nconst CONTEXT_PROPERTIES = [\n 'fillStyle',\n 'strokeStyle',\n 'shadowColor',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'letterSpacing',\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit',\n 'direction',\n 'font',\n 'textAlign',\n 'textBaseline',\n 'globalAlpha',\n 'globalCompositeOperation',\n 'imageSmoothingEnabled',\n];\nconst traceArrMax = 100;\nclass Context {\n constructor(canvas) {\n this.canvas = canvas;\n if (Global_1.Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n fillShape(shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n }\n _fill(shape) {\n }\n strokeShape(shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n }\n fillStrokeShape(shape) {\n if (shape.attrs.fillAfterStrokeEnabled) {\n this.strokeShape(shape);\n this.fillShape(shape);\n }\n else {\n this.fillShape(shape);\n this.strokeShape(shape);\n }\n }\n getTrace(relaxed, rounded) {\n let traceArr = this.traceArr, len = traceArr.length, str = '', n, trace, method, args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n }\n else {\n if (Util_1.Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n }\n else {\n if (rounded) {\n args = args.map((a) => typeof a === 'number' ? Math.floor(a) : a);\n }\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n }\n else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n }\n clearTrace() {\n this.traceArr = [];\n }\n _trace(str) {\n let traceArr = this.traceArr, len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n }\n reset() {\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n }\n getCanvas() {\n return this.canvas;\n }\n clear(bounds) {\n const canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n }\n else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n }\n _applyLineCap(shape) {\n const lineCap = shape.attrs.lineCap;\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n }\n _applyOpacity(shape) {\n const absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n }\n _applyLineJoin(shape) {\n const lineJoin = shape.attrs.lineJoin;\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n }\n setAttr(attr, val) {\n this._context[attr] = val;\n }\n arc(x, y, radius, startAngle, endAngle, counterClockwise) {\n this._context.arc(x, y, radius, startAngle, endAngle, counterClockwise);\n }\n arcTo(x1, y1, x2, y2, radius) {\n this._context.arcTo(x1, y1, x2, y2, radius);\n }\n beginPath() {\n this._context.beginPath();\n }\n bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n this._context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n }\n clearRect(x, y, width, height) {\n this._context.clearRect(x, y, width, height);\n }\n clip(...args) {\n this._context.clip.apply(this._context, args);\n }\n closePath() {\n this._context.closePath();\n }\n createImageData(width, height) {\n const a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(width, height);\n }\n else if (a.length === 1) {\n return this._context.createImageData(width);\n }\n }\n createLinearGradient(x0, y0, x1, y1) {\n return this._context.createLinearGradient(x0, y0, x1, y1);\n }\n createPattern(image, repetition) {\n return this._context.createPattern(image, repetition);\n }\n createRadialGradient(x0, y0, r0, x1, y1, r1) {\n return this._context.createRadialGradient(x0, y0, r0, x1, y1, r1);\n }\n drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) {\n const a = arguments, _context = this._context;\n if (a.length === 3) {\n _context.drawImage(image, sx, sy);\n }\n else if (a.length === 5) {\n _context.drawImage(image, sx, sy, sWidth, sHeight);\n }\n else if (a.length === 9) {\n _context.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);\n }\n }\n ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise) {\n this._context.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise);\n }\n isPointInPath(x, y, path, fillRule) {\n if (path) {\n return this._context.isPointInPath(path, x, y, fillRule);\n }\n return this._context.isPointInPath(x, y, fillRule);\n }\n fill(...args) {\n this._context.fill.apply(this._context, args);\n }\n fillRect(x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n }\n strokeRect(x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n }\n fillText(text, x, y, maxWidth) {\n if (maxWidth) {\n this._context.fillText(text, x, y, maxWidth);\n }\n else {\n this._context.fillText(text, x, y);\n }\n }\n measureText(text) {\n return this._context.measureText(text);\n }\n getImageData(sx, sy, sw, sh) {\n return this._context.getImageData(sx, sy, sw, sh);\n }\n lineTo(x, y) {\n this._context.lineTo(x, y);\n }\n moveTo(x, y) {\n this._context.moveTo(x, y);\n }\n rect(x, y, width, height) {\n this._context.rect(x, y, width, height);\n }\n roundRect(x, y, width, height, radii) {\n this._context.roundRect(x, y, width, height, radii);\n }\n putImageData(imageData, dx, dy) {\n this._context.putImageData(imageData, dx, dy);\n }\n quadraticCurveTo(cpx, cpy, x, y) {\n this._context.quadraticCurveTo(cpx, cpy, x, y);\n }\n restore() {\n this._context.restore();\n }\n rotate(angle) {\n this._context.rotate(angle);\n }\n save() {\n this._context.save();\n }\n scale(x, y) {\n this._context.scale(x, y);\n }\n setLineDash(segments) {\n if (this._context.setLineDash) {\n this._context.setLineDash(segments);\n }\n else if ('mozDash' in this._context) {\n this._context['mozDash'] = segments;\n }\n else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = segments;\n }\n }\n getLineDash() {\n return this._context.getLineDash();\n }\n setTransform(a, b, c, d, e, f) {\n this._context.setTransform(a, b, c, d, e, f);\n }\n stroke(path2d) {\n if (path2d) {\n this._context.stroke(path2d);\n }\n else {\n this._context.stroke();\n }\n }\n strokeText(text, x, y, maxWidth) {\n this._context.strokeText(text, x, y, maxWidth);\n }\n transform(a, b, c, d, e, f) {\n this._context.transform(a, b, c, d, e, f);\n }\n translate(x, y) {\n this._context.translate(x, y);\n }\n _enableTrace() {\n let that = this, len = CONTEXT_METHODS.length, origSetter = this.setAttr, n, args;\n const func = function (methodName) {\n let origMethod = that[methodName], ret;\n that[methodName] = function () {\n args = simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args,\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n const prop = arguments[0];\n let val = arguments[1];\n if (prop === 'shadowOffsetX' ||\n prop === 'shadowOffsetY' ||\n prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val,\n });\n };\n }\n _applyGlobalCompositeOperation(node) {\n const op = node.attrs.globalCompositeOperation;\n const def = !op || op === 'source-over';\n if (!def) {\n this.setAttr('globalCompositeOperation', op);\n }\n }\n}\nexports.Context = Context;\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get() {\n return this._context[prop];\n },\n set(val) {\n this._context[prop] = val;\n },\n });\n});\nclass SceneContext extends Context {\n constructor(canvas, { willReadFrequently = false } = {}) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently,\n });\n }\n _fillColor(shape) {\n const fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n }\n _fillPattern(shape) {\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n }\n _fillLinearGradient(shape) {\n const grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fillRadialGradient(shape) {\n const grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fill(shape) {\n const hasColor = shape.fill(), fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n const hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n const hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n const hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n }\n else if (hasPattern) {\n this._fillPattern(shape);\n }\n else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n }\n else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n }\n _strokeLinearGradient(shape) {\n const start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n }\n _stroke(shape) {\n const dash = shape.dash(), strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n const hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n }\n else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n _applyShadow(shape) {\n var _a, _b, _c;\n const color = (_a = shape.getShadowRGBA()) !== null && _a !== void 0 ? _a : 'black', blur = (_b = shape.getShadowBlur()) !== null && _b !== void 0 ? _b : 5, offset = (_c = shape.getShadowOffset()) !== null && _c !== void 0 ? _c : {\n x: 0,\n y: 0,\n }, scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n }\n}\nexports.SceneContext = SceneContext;\nclass HitContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently: true,\n });\n }\n _fill(shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n }\n strokeShape(shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n if (shape.hasHitStroke()) {\n const strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n const hitStrokeWidth = shape.hitStrokeWidth();\n const strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n}\nexports.HitContext = HitContext;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HitCanvas = exports.SceneCanvas = exports.Canvas = void 0;\nconst Util_1 = require(\"./Util\");\nconst Context_1 = require(\"./Context\");\nconst Global_1 = require(\"./Global\");\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.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.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.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.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.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.getCapturedShape = getCapturedShape;\nexports.createEvent = createEvent;\nexports.hasPointerCapture = hasPointerCapture;\nexports.setPointerCapture = setPointerCapture;\nexports.releaseCapture = releaseCapture;\nconst Global_1 = require(\"./Global\");\nconst Captures = new Map();\nconst SUPPORT_POINTER_EVENTS = Global_1.Konva._global['PointerEvent'] !== undefined;\nfunction getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nfunction createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nfunction hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nfunction setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n const stage = shape.getStage();\n if (!stage)\n return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nfunction releaseCapture(pointerId, target) {\n const shape = Captures.get(pointerId);\n if (!shape)\n return;\n const stage = shape.getStage();\n if (stage && stage.content) {\n }\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stage = exports.stages = void 0;\nconst Util_1 = require(\"./Util\");\nconst Factory_1 = require(\"./Factory\");\nconst Container_1 = require(\"./Container\");\nconst Global_1 = require(\"./Global\");\nconst Canvas_1 = require(\"./Canvas\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Global_2 = require(\"./Global\");\nconst PointerEvents = require(\"./PointerEvents\");\nconst STAGE = 'Stage', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup', POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', POINTEROUT = 'pointerout', POINTERLEAVE = 'pointerleave', POINTEROVER = 'pointerover', POINTERENTER = 'pointerenter', CONTEXTMENU = 'contextmenu', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TOUCHMOVE = 'touchmove', TOUCHCANCEL = 'touchcancel', WHEEL = 'wheel', MAX_LAYERS_NUMBER = 5, EVENTS = [\n [MOUSEENTER, '_pointerenter'],\n [MOUSEDOWN, '_pointerdown'],\n [MOUSEMOVE, '_pointermove'],\n [MOUSEUP, '_pointerup'],\n [MOUSELEAVE, '_pointerleave'],\n [TOUCHSTART, '_pointerdown'],\n [TOUCHMOVE, '_pointermove'],\n [TOUCHEND, '_pointerup'],\n [TOUCHCANCEL, '_pointercancel'],\n [MOUSEOVER, '_pointerover'],\n [WHEEL, '_wheel'],\n [CONTEXTMENU, '_contextmenu'],\n [POINTERDOWN, '_pointerdown'],\n [POINTERMOVE, '_pointermove'],\n [POINTERUP, '_pointerup'],\n [POINTERCANCEL, '_pointercancel'],\n [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.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.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.FastLayer = void 0;\nconst Util_1 = require(\"./Util\");\nconst Layer_1 = require(\"./Layer\");\nconst Global_1 = require(\"./Global\");\nclass FastLayer extends Layer_1.Layer {\n constructor(attrs) {\n super(attrs);\n this.listening(false);\n Util_1.Util.warn('Konva.Fast layer is deprecated. Please use \"new Konva.Layer({ listening: false })\" instead.');\n }\n}\nexports.FastLayer = FastLayer;\nFastLayer.prototype.nodeType = 'FastLayer';\n(0, Global_1._registerNode)(FastLayer);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Group = void 0;\nconst Util_1 = require(\"./Util\");\nconst Container_1 = require(\"./Container\");\nconst Global_1 = require(\"./Global\");\nclass Group extends Container_1.Container {\n _validateAdd(child) {\n const type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to groups.');\n }\n }\n}\nexports.Group = Group;\nGroup.prototype.nodeType = 'Group';\n(0, Global_1._registerNode)(Group);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Animation = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst now = (function () {\n if (Global_1.glob.performance && Global_1.glob.performance.now) {\n return function () {\n return Global_1.glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n})();\nclass Animation {\n constructor(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0,\n };\n this.func = func;\n this.setLayers(layers);\n }\n setLayers(layers) {\n let lays = [];\n if (layers) {\n lays = Array.isArray(layers) ? layers : [layers];\n }\n this.layers = lays;\n return this;\n }\n getLayers() {\n return this.layers;\n }\n addLayer(layer) {\n const layers = this.layers;\n const len = layers.length;\n for (let n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n }\n isRunning() {\n const a = Animation;\n const animations = a.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n }\n start() {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n }\n stop() {\n Animation._removeAnimation(this);\n return this;\n }\n _updateFrameObject(time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n }\n static _addAnimation(anim) {\n this.animations.push(anim);\n this._handleAnimation();\n }\n static _removeAnimation(anim) {\n const id = anim.id;\n const animations = this.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n }\n static _runFrames() {\n const layerHash = {};\n const animations = this.animations;\n for (let n = 0; n < animations.length; n++) {\n const anim = animations[n];\n const layers = anim.layers;\n const func = anim.func;\n anim._updateFrameObject(now());\n const layersLen = layers.length;\n let needRedraw;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n }\n else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (let i = 0; i < layersLen; i++) {\n const layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (const key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].batchDraw();\n }\n }\n static _animationLoop() {\n const Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n Util_1.Util.requestAnimFrame(Anim._animationLoop);\n }\n else {\n Anim.animRunning = false;\n }\n }\n static _handleAnimation() {\n if (!this.animRunning) {\n this.animRunning = true;\n Util_1.Util.requestAnimFrame(this._animationLoop);\n }\n }\n}\nexports.Animation = Animation;\nAnimation.animations = [];\nAnimation.animIdCounter = 0;\nAnimation.animRunning = false;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Easings = exports.Tween = void 0;\nconst Util_1 = require(\"./Util\");\nconst Animation_1 = require(\"./Animation\");\nconst Node_1 = require(\"./Node\");\nconst Global_1 = require(\"./Global\");\nconst blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1,\n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, colorAttrs = ['fill', 'stroke', 'shadowColor'];\nlet idCounter = 0;\nclass TweenEngine {\n constructor(prop, propFunc, func, begin, finish, duration, yoyo) {\n this.prop = prop;\n this.propFunc = propFunc;\n this.begin = begin;\n this._pos = begin;\n this.duration = duration;\n this._change = 0;\n this.prevPos = 0;\n this.yoyo = yoyo;\n this._time = 0;\n this._position = 0;\n this._startTime = 0;\n this._finish = 0;\n this.func = func;\n this._change = finish - this.begin;\n this.pause();\n }\n fire(str) {\n const handler = this[str];\n if (handler) {\n handler();\n }\n }\n setTime(t) {\n if (t > this.duration) {\n if (this.yoyo) {\n this._time = this.duration;\n this.reverse();\n }\n else {\n this.finish();\n }\n }\n else if (t < 0) {\n if (this.yoyo) {\n this._time = 0;\n this.play();\n }\n else {\n this.reset();\n }\n }\n else {\n this._time = t;\n this.update();\n }\n }\n getTime() {\n return this._time;\n }\n setPosition(p) {\n this.prevPos = this._pos;\n this.propFunc(p);\n this._pos = p;\n }\n getPosition(t) {\n if (t === undefined) {\n t = this._time;\n }\n return this.func(t, this.begin, this._change, this.duration);\n }\n play() {\n this.state = PLAYING;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onPlay');\n }\n reverse() {\n this.state = REVERSING;\n this._time = this.duration - this._time;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onReverse');\n }\n seek(t) {\n this.pause();\n this._time = t;\n this.update();\n this.fire('onSeek');\n }\n reset() {\n this.pause();\n this._time = 0;\n this.update();\n this.fire('onReset');\n }\n finish() {\n this.pause();\n this._time = this.duration;\n this.update();\n this.fire('onFinish');\n }\n update() {\n this.setPosition(this.getPosition(this._time));\n this.fire('onUpdate');\n }\n onEnterFrame() {\n const t = this.getTimer() - this._startTime;\n if (this.state === PLAYING) {\n this.setTime(t);\n }\n else if (this.state === REVERSING) {\n this.setTime(this.duration - t);\n }\n }\n pause() {\n this.state = PAUSED;\n this.fire('onPause');\n }\n getTimer() {\n return new Date().getTime();\n }\n}\nclass Tween {\n constructor(config) {\n const that = this, node = config.node, nodeId = node._id, easing = config.easing || exports.Easings.Linear, yoyo = !!config.yoyo;\n let duration, key;\n if (typeof config.duration === 'undefined') {\n duration = 0.3;\n }\n else if (config.duration === 0) {\n duration = 0.001;\n }\n else {\n duration = config.duration;\n }\n this.node = node;\n this._id = idCounter++;\n const layers = node.getLayer() ||\n (node instanceof Global_1.Konva['Stage'] ? node.getLayers() : null);\n if (!layers) {\n Util_1.Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');\n }\n this.anim = new Animation_1.Animation(function () {\n that.tween.onEnterFrame();\n }, layers);\n this.tween = new TweenEngine(key, function (i) {\n that._tweenFunc(i);\n }, easing, 0, 1, duration * 1000, yoyo);\n this._addListeners();\n if (!Tween.attrs[nodeId]) {\n Tween.attrs[nodeId] = {};\n }\n if (!Tween.attrs[nodeId][this._id]) {\n Tween.attrs[nodeId][this._id] = {};\n }\n if (!Tween.tweens[nodeId]) {\n Tween.tweens[nodeId] = {};\n }\n for (key in config) {\n if (blacklist[key] === undefined) {\n this._addAttr(key, config[key]);\n }\n }\n this.reset();\n this.onFinish = config.onFinish;\n this.onReset = config.onReset;\n this.onUpdate = config.onUpdate;\n }\n _addAttr(key, end) {\n const node = this.node, nodeId = node._id;\n let diff, len, trueEnd, trueStart, endRGBA;\n const tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n let start = node.getAttr(key);\n if (Util_1.Util._isArray(end)) {\n diff = [];\n len = Math.max(end.length, start.length);\n if (key === 'points' && end.length !== start.length) {\n if (end.length > start.length) {\n trueStart = start;\n start = Util_1.Util._prepareArrayForTween(start, end, node.closed());\n }\n else {\n trueEnd = end;\n end = Util_1.Util._prepareArrayForTween(end, start, node.closed());\n }\n }\n if (key.indexOf('fill') === 0) {\n for (let n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n }\n else {\n const startRGBA = Util_1.Util.colorToRGBA(start[n]);\n endRGBA = Util_1.Util.colorToRGBA(end[n]);\n start[n] = startRGBA;\n diff.push({\n r: endRGBA.r - startRGBA.r,\n g: endRGBA.g - startRGBA.g,\n b: endRGBA.b - startRGBA.b,\n a: endRGBA.a - startRGBA.a,\n });\n }\n }\n }\n else {\n for (let n = 0; n < len; n++) {\n diff.push(end[n] - start[n]);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n start = Util_1.Util.colorToRGBA(start);\n endRGBA = Util_1.Util.colorToRGBA(end);\n diff = {\n r: endRGBA.r - start.r,\n g: endRGBA.g - start.g,\n b: endRGBA.b - start.b,\n a: endRGBA.a - start.a,\n };\n }\n else {\n diff = end - start;\n }\n Tween.attrs[nodeId][this._id][key] = {\n start: start,\n diff: diff,\n end: end,\n trueEnd: trueEnd,\n trueStart: trueStart,\n };\n Tween.tweens[nodeId][key] = this._id;\n }\n _tweenFunc(i) {\n const node = this.node, attrs = Tween.attrs[node._id][this._id];\n let key, attr, start, diff, newVal, n, len, end;\n for (key in attrs) {\n attr = attrs[key];\n start = attr.start;\n diff = attr.diff;\n end = attr.end;\n if (Util_1.Util._isArray(start)) {\n newVal = [];\n len = Math.max(start.length, end.length);\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n else {\n newVal.push('rgba(' +\n Math.round(start[n].r + diff[n].r * i) +\n ',' +\n Math.round(start[n].g + diff[n].g * i) +\n ',' +\n Math.round(start[n].b + diff[n].b * i) +\n ',' +\n (start[n].a + diff[n].a * i) +\n ')');\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n newVal =\n 'rgba(' +\n Math.round(start.r + diff.r * i) +\n ',' +\n Math.round(start.g + diff.g * i) +\n ',' +\n Math.round(start.b + diff.b * i) +\n ',' +\n (start.a + diff.a * i) +\n ')';\n }\n else {\n newVal = start + diff * i;\n }\n node.setAttr(key, newVal);\n }\n }\n _addListeners() {\n this.tween.onPlay = () => {\n this.anim.start();\n };\n this.tween.onReverse = () => {\n this.anim.start();\n };\n this.tween.onPause = () => {\n this.anim.stop();\n };\n this.tween.onFinish = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueEnd) {\n node.setAttr('points', attrs.points.trueEnd);\n }\n if (this.onFinish) {\n this.onFinish.call(this);\n }\n };\n this.tween.onReset = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueStart) {\n node.points(attrs.points.trueStart);\n }\n if (this.onReset) {\n this.onReset();\n }\n };\n this.tween.onUpdate = () => {\n if (this.onUpdate) {\n this.onUpdate.call(this);\n }\n };\n }\n play() {\n this.tween.play();\n return this;\n }\n reverse() {\n this.tween.reverse();\n return this;\n }\n reset() {\n this.tween.reset();\n return this;\n }\n seek(t) {\n this.tween.seek(t * 1000);\n return this;\n }\n pause() {\n this.tween.pause();\n return this;\n }\n finish() {\n this.tween.finish();\n return this;\n }\n destroy() {\n const nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId];\n this.pause();\n 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.Konva = void 0;\nconst Global_1 = require(\"./Global\");\nconst Util_1 = require(\"./Util\");\nconst Node_1 = require(\"./Node\");\nconst Container_1 = require(\"./Container\");\nconst Stage_1 = require(\"./Stage\");\nconst Layer_1 = require(\"./Layer\");\nconst FastLayer_1 = require(\"./FastLayer\");\nconst Group_1 = require(\"./Group\");\nconst DragAndDrop_1 = require(\"./DragAndDrop\");\nconst Shape_1 = require(\"./Shape\");\nconst Animation_1 = require(\"./Animation\");\nconst Tween_1 = require(\"./Tween\");\nconst Context_1 = require(\"./Context\");\nconst Canvas_1 = require(\"./Canvas\");\nexports.Konva = Util_1.Util._assign(Global_1.Konva, {\n Util: Util_1.Util,\n Transform: Util_1.Transform,\n Node: Node_1.Node,\n Container: Container_1.Container,\n Stage: Stage_1.Stage,\n stages: Stage_1.stages,\n Layer: Layer_1.Layer,\n FastLayer: FastLayer_1.FastLayer,\n Group: Group_1.Group,\n DD: DragAndDrop_1.DD,\n Shape: Shape_1.Shape,\n shapes: Shape_1.shapes,\n Animation: Animation_1.Animation,\n Tween: Tween_1.Tween,\n Easings: Tween_1.Easings,\n Context: Context_1.Context,\n Canvas: Canvas_1.Canvas,\n});\nexports.default = exports.Konva;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Arc = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst Shape_1 = require(\"../Shape\");\nconst Global_1 = require(\"../Global\");\nconst Validators_1 = require(\"../Validators\");\nconst Global_2 = require(\"../Global\");\nclass Arc extends Shape_1.Shape {\n _sceneFunc(context) {\n const angle = Global_1.Konva.getAngle(this.angle()), clockwise = this.clockwise();\n context.beginPath();\n context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);\n context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n getSelfRect() {\n const innerRadius = this.innerRadius();\n const outerRadius = this.outerRadius();\n const clockwise = this.clockwise();\n const angle = Global_1.Konva.getAngle(clockwise ? 360 - this.angle() : this.angle());\n const boundLeftRatio = Math.cos(Math.min(angle, Math.PI));\n const boundRightRatio = 1;\n const boundTopRatio = Math.sin(Math.min(Math.max(Math.PI, angle), (3 * Math.PI) / 2));\n const boundBottomRatio = Math.sin(Math.min(angle, Math.PI / 2));\n const boundLeft = boundLeftRatio * (boundLeftRatio > 0 ? innerRadius : outerRadius);\n const boundRight = boundRightRatio * (boundRightRatio > 0 ? outerRadius : innerRadius);\n const boundTop = boundTopRatio * (boundTopRatio > 0 ? innerRadius : outerRadius);\n const boundBottom = boundBottomRatio * (boundBottomRatio > 0 ? outerRadius : innerRadius);\n return {\n x: boundLeft,\n y: clockwise ? -1 * boundBottom : boundTop,\n width: boundRight - boundLeft,\n height: boundBottom - boundTop,\n };\n }\n}\nexports.Arc = Arc;\nArc.prototype._centroid = true;\nArc.prototype.className = 'Arc';\nArc.prototype._attrsAffectingSize = [\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.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.t2length = exports.getQuadraticArcLength = exports.getCubicArcLength = exports.binomialCoefficients = exports.cValues = exports.tValues = void 0;\nexports.tValues = [\n [],\n [],\n [\n -0.5773502691896257645091487805019574556476,\n 0.5773502691896257645091487805019574556476,\n ],\n [\n 0, -0.7745966692414833770358530799564799221665,\n 0.7745966692414833770358530799564799221665,\n ],\n [\n -0.3399810435848562648026657591032446872005,\n 0.3399810435848562648026657591032446872005,\n -0.8611363115940525752239464888928095050957,\n 0.8611363115940525752239464888928095050957,\n ],\n [\n 0, -0.5384693101056830910363144207002088049672,\n 0.5384693101056830910363144207002088049672,\n -0.9061798459386639927976268782993929651256,\n 0.9061798459386639927976268782993929651256,\n ],\n [\n 0.6612093864662645136613995950199053470064,\n -0.6612093864662645136613995950199053470064,\n -0.2386191860831969086305017216807119354186,\n 0.2386191860831969086305017216807119354186,\n -0.9324695142031520278123015544939946091347,\n 0.9324695142031520278123015544939946091347,\n ],\n [\n 0, 0.4058451513773971669066064120769614633473,\n -0.4058451513773971669066064120769614633473,\n -0.7415311855993944398638647732807884070741,\n 0.7415311855993944398638647732807884070741,\n -0.9491079123427585245261896840478512624007,\n 0.9491079123427585245261896840478512624007,\n ],\n [\n -0.1834346424956498049394761423601839806667,\n 0.1834346424956498049394761423601839806667,\n -0.5255324099163289858177390491892463490419,\n 0.5255324099163289858177390491892463490419,\n -0.7966664774136267395915539364758304368371,\n 0.7966664774136267395915539364758304368371,\n -0.9602898564975362316835608685694729904282,\n 0.9602898564975362316835608685694729904282,\n ],\n [\n 0, -0.8360311073266357942994297880697348765441,\n 0.8360311073266357942994297880697348765441,\n -0.9681602395076260898355762029036728700494,\n 0.9681602395076260898355762029036728700494,\n -0.3242534234038089290385380146433366085719,\n 0.3242534234038089290385380146433366085719,\n -0.6133714327005903973087020393414741847857,\n 0.6133714327005903973087020393414741847857,\n ],\n [\n -0.1488743389816312108848260011297199846175,\n 0.1488743389816312108848260011297199846175,\n -0.4333953941292471907992659431657841622,\n 0.4333953941292471907992659431657841622,\n -0.6794095682990244062343273651148735757692,\n 0.6794095682990244062343273651148735757692,\n -0.8650633666889845107320966884234930485275,\n 0.8650633666889845107320966884234930485275,\n -0.9739065285171717200779640120844520534282,\n 0.9739065285171717200779640120844520534282,\n ],\n [\n 0, -0.2695431559523449723315319854008615246796,\n 0.2695431559523449723315319854008615246796,\n -0.5190961292068118159257256694586095544802,\n 0.5190961292068118159257256694586095544802,\n -0.7301520055740493240934162520311534580496,\n 0.7301520055740493240934162520311534580496,\n -0.8870625997680952990751577693039272666316,\n 0.8870625997680952990751577693039272666316,\n -0.9782286581460569928039380011228573907714,\n 0.9782286581460569928039380011228573907714,\n ],\n [\n -0.1252334085114689154724413694638531299833,\n 0.1252334085114689154724413694638531299833,\n -0.3678314989981801937526915366437175612563,\n 0.3678314989981801937526915366437175612563,\n -0.587317954286617447296702418940534280369,\n 0.587317954286617447296702418940534280369,\n -0.7699026741943046870368938332128180759849,\n 0.7699026741943046870368938332128180759849,\n -0.9041172563704748566784658661190961925375,\n 0.9041172563704748566784658661190961925375,\n -0.9815606342467192506905490901492808229601,\n 0.9815606342467192506905490901492808229601,\n ],\n [\n 0, -0.2304583159551347940655281210979888352115,\n 0.2304583159551347940655281210979888352115,\n -0.4484927510364468528779128521276398678019,\n 0.4484927510364468528779128521276398678019,\n -0.6423493394403402206439846069955156500716,\n 0.6423493394403402206439846069955156500716,\n -0.8015780907333099127942064895828598903056,\n 0.8015780907333099127942064895828598903056,\n -0.9175983992229779652065478365007195123904,\n 0.9175983992229779652065478365007195123904,\n -0.9841830547185881494728294488071096110649,\n 0.9841830547185881494728294488071096110649,\n ],\n [\n -0.1080549487073436620662446502198347476119,\n 0.1080549487073436620662446502198347476119,\n -0.3191123689278897604356718241684754668342,\n 0.3191123689278897604356718241684754668342,\n -0.5152486363581540919652907185511886623088,\n 0.5152486363581540919652907185511886623088,\n -0.6872929048116854701480198030193341375384,\n 0.6872929048116854701480198030193341375384,\n -0.8272013150697649931897947426503949610397,\n 0.8272013150697649931897947426503949610397,\n -0.928434883663573517336391139377874264477,\n 0.928434883663573517336391139377874264477,\n -0.986283808696812338841597266704052801676,\n 0.986283808696812338841597266704052801676,\n ],\n [\n 0, -0.2011940939974345223006283033945962078128,\n 0.2011940939974345223006283033945962078128,\n -0.3941513470775633698972073709810454683627,\n 0.3941513470775633698972073709810454683627,\n -0.5709721726085388475372267372539106412383,\n 0.5709721726085388475372267372539106412383,\n -0.7244177313601700474161860546139380096308,\n 0.7244177313601700474161860546139380096308,\n -0.8482065834104272162006483207742168513662,\n 0.8482065834104272162006483207742168513662,\n -0.9372733924007059043077589477102094712439,\n 0.9372733924007059043077589477102094712439,\n -0.9879925180204854284895657185866125811469,\n 0.9879925180204854284895657185866125811469,\n ],\n [\n -0.0950125098376374401853193354249580631303,\n 0.0950125098376374401853193354249580631303,\n -0.281603550779258913230460501460496106486,\n 0.281603550779258913230460501460496106486,\n -0.45801677765722738634241944298357757354,\n 0.45801677765722738634241944298357757354,\n -0.6178762444026437484466717640487910189918,\n 0.6178762444026437484466717640487910189918,\n -0.7554044083550030338951011948474422683538,\n 0.7554044083550030338951011948474422683538,\n -0.8656312023878317438804678977123931323873,\n 0.8656312023878317438804678977123931323873,\n -0.9445750230732325760779884155346083450911,\n 0.9445750230732325760779884155346083450911,\n -0.9894009349916499325961541734503326274262,\n 0.9894009349916499325961541734503326274262,\n ],\n [\n 0, -0.1784841814958478558506774936540655574754,\n 0.1784841814958478558506774936540655574754,\n -0.3512317634538763152971855170953460050405,\n 0.3512317634538763152971855170953460050405,\n -0.5126905370864769678862465686295518745829,\n 0.5126905370864769678862465686295518745829,\n -0.6576711592166907658503022166430023351478,\n 0.6576711592166907658503022166430023351478,\n -0.7815140038968014069252300555204760502239,\n 0.7815140038968014069252300555204760502239,\n -0.8802391537269859021229556944881556926234,\n 0.8802391537269859021229556944881556926234,\n -0.9506755217687677612227169578958030214433,\n 0.9506755217687677612227169578958030214433,\n -0.9905754753144173356754340199406652765077,\n 0.9905754753144173356754340199406652765077,\n ],\n [\n -0.0847750130417353012422618529357838117333,\n 0.0847750130417353012422618529357838117333,\n -0.2518862256915055095889728548779112301628,\n 0.2518862256915055095889728548779112301628,\n -0.4117511614628426460359317938330516370789,\n 0.4117511614628426460359317938330516370789,\n -0.5597708310739475346078715485253291369276,\n 0.5597708310739475346078715485253291369276,\n -0.6916870430603532078748910812888483894522,\n 0.6916870430603532078748910812888483894522,\n -0.8037049589725231156824174550145907971032,\n 0.8037049589725231156824174550145907971032,\n -0.8926024664975557392060605911271455154078,\n 0.8926024664975557392060605911271455154078,\n -0.9558239495713977551811958929297763099728,\n 0.9558239495713977551811958929297763099728,\n -0.9915651684209309467300160047061507702525,\n 0.9915651684209309467300160047061507702525,\n ],\n [\n 0, -0.1603586456402253758680961157407435495048,\n 0.1603586456402253758680961157407435495048,\n -0.3165640999636298319901173288498449178922,\n 0.3165640999636298319901173288498449178922,\n -0.4645707413759609457172671481041023679762,\n 0.4645707413759609457172671481041023679762,\n -0.6005453046616810234696381649462392798683,\n 0.6005453046616810234696381649462392798683,\n -0.7209661773352293786170958608237816296571,\n 0.7209661773352293786170958608237816296571,\n -0.8227146565371428249789224867127139017745,\n 0.8227146565371428249789224867127139017745,\n -0.9031559036148179016426609285323124878093,\n 0.9031559036148179016426609285323124878093,\n -0.960208152134830030852778840687651526615,\n 0.960208152134830030852778840687651526615,\n -0.9924068438435844031890176702532604935893,\n 0.9924068438435844031890176702532604935893,\n ],\n [\n -0.0765265211334973337546404093988382110047,\n 0.0765265211334973337546404093988382110047,\n -0.227785851141645078080496195368574624743,\n 0.227785851141645078080496195368574624743,\n -0.3737060887154195606725481770249272373957,\n 0.3737060887154195606725481770249272373957,\n -0.5108670019508270980043640509552509984254,\n 0.5108670019508270980043640509552509984254,\n -0.6360536807265150254528366962262859367433,\n 0.6360536807265150254528366962262859367433,\n -0.7463319064601507926143050703556415903107,\n 0.7463319064601507926143050703556415903107,\n -0.8391169718222188233945290617015206853296,\n 0.8391169718222188233945290617015206853296,\n -0.9122344282513259058677524412032981130491,\n 0.9122344282513259058677524412032981130491,\n -0.963971927277913791267666131197277221912,\n 0.963971927277913791267666131197277221912,\n -0.9931285991850949247861223884713202782226,\n 0.9931285991850949247861223884713202782226,\n ],\n [\n 0, -0.1455618541608950909370309823386863301163,\n 0.1455618541608950909370309823386863301163,\n -0.288021316802401096600792516064600319909,\n 0.288021316802401096600792516064600319909,\n -0.4243421202074387835736688885437880520964,\n 0.4243421202074387835736688885437880520964,\n -0.551618835887219807059018796724313286622,\n 0.551618835887219807059018796724313286622,\n -0.667138804197412319305966669990339162597,\n 0.667138804197412319305966669990339162597,\n -0.7684399634756779086158778513062280348209,\n 0.7684399634756779086158778513062280348209,\n -0.8533633645833172836472506385875676702761,\n 0.8533633645833172836472506385875676702761,\n -0.9200993341504008287901871337149688941591,\n 0.9200993341504008287901871337149688941591,\n -0.9672268385663062943166222149076951614246,\n 0.9672268385663062943166222149076951614246,\n -0.9937521706203895002602420359379409291933,\n 0.9937521706203895002602420359379409291933,\n ],\n [\n -0.0697392733197222212138417961186280818222,\n 0.0697392733197222212138417961186280818222,\n -0.2078604266882212854788465339195457342156,\n 0.2078604266882212854788465339195457342156,\n -0.3419358208920842251581474204273796195591,\n 0.3419358208920842251581474204273796195591,\n -0.4693558379867570264063307109664063460953,\n 0.4693558379867570264063307109664063460953,\n -0.5876404035069115929588769276386473488776,\n 0.5876404035069115929588769276386473488776,\n -0.6944872631866827800506898357622567712673,\n 0.6944872631866827800506898357622567712673,\n -0.7878168059792081620042779554083515213881,\n 0.7878168059792081620042779554083515213881,\n -0.8658125777203001365364256370193787290847,\n 0.8658125777203001365364256370193787290847,\n -0.9269567721871740005206929392590531966353,\n 0.9269567721871740005206929392590531966353,\n -0.9700604978354287271239509867652687108059,\n 0.9700604978354287271239509867652687108059,\n -0.994294585482399292073031421161298980393,\n 0.994294585482399292073031421161298980393,\n ],\n [\n 0, -0.1332568242984661109317426822417661370104,\n 0.1332568242984661109317426822417661370104,\n -0.264135680970344930533869538283309602979,\n 0.264135680970344930533869538283309602979,\n -0.390301038030290831421488872880605458578,\n 0.390301038030290831421488872880605458578,\n -0.5095014778460075496897930478668464305448,\n 0.5095014778460075496897930478668464305448,\n -0.6196098757636461563850973116495956533871,\n 0.6196098757636461563850973116495956533871,\n -0.7186613631319501944616244837486188483299,\n 0.7186613631319501944616244837486188483299,\n -0.8048884016188398921511184069967785579414,\n 0.8048884016188398921511184069967785579414,\n -0.8767523582704416673781568859341456716389,\n 0.8767523582704416673781568859341456716389,\n -0.9329710868260161023491969890384229782357,\n 0.9329710868260161023491969890384229782357,\n -0.9725424712181152319560240768207773751816,\n 0.9725424712181152319560240768207773751816,\n -0.9947693349975521235239257154455743605736,\n 0.9947693349975521235239257154455743605736,\n ],\n [\n -0.0640568928626056260850430826247450385909,\n 0.0640568928626056260850430826247450385909,\n -0.1911188674736163091586398207570696318404,\n 0.1911188674736163091586398207570696318404,\n -0.3150426796961633743867932913198102407864,\n 0.3150426796961633743867932913198102407864,\n -0.4337935076260451384870842319133497124524,\n 0.4337935076260451384870842319133497124524,\n -0.5454214713888395356583756172183723700107,\n 0.5454214713888395356583756172183723700107,\n -0.6480936519369755692524957869107476266696,\n 0.6480936519369755692524957869107476266696,\n -0.7401241915785543642438281030999784255232,\n 0.7401241915785543642438281030999784255232,\n -0.8200019859739029219539498726697452080761,\n 0.8200019859739029219539498726697452080761,\n -0.8864155270044010342131543419821967550873,\n 0.8864155270044010342131543419821967550873,\n -0.9382745520027327585236490017087214496548,\n 0.9382745520027327585236490017087214496548,\n -0.9747285559713094981983919930081690617411,\n 0.9747285559713094981983919930081690617411,\n -0.9951872199970213601799974097007368118745,\n 0.9951872199970213601799974097007368118745,\n ],\n];\nexports.cValues = [\n [],\n [],\n [1.0, 1.0],\n [\n 0.8888888888888888888888888888888888888888,\n 0.5555555555555555555555555555555555555555,\n 0.5555555555555555555555555555555555555555,\n ],\n [\n 0.6521451548625461426269360507780005927646,\n 0.6521451548625461426269360507780005927646,\n 0.3478548451374538573730639492219994072353,\n 0.3478548451374538573730639492219994072353,\n ],\n [\n 0.5688888888888888888888888888888888888888,\n 0.4786286704993664680412915148356381929122,\n 0.4786286704993664680412915148356381929122,\n 0.2369268850561890875142640407199173626432,\n 0.2369268850561890875142640407199173626432,\n ],\n [\n 0.3607615730481386075698335138377161116615,\n 0.3607615730481386075698335138377161116615,\n 0.4679139345726910473898703439895509948116,\n 0.4679139345726910473898703439895509948116,\n 0.1713244923791703450402961421727328935268,\n 0.1713244923791703450402961421727328935268,\n ],\n [\n 0.4179591836734693877551020408163265306122,\n 0.3818300505051189449503697754889751338783,\n 0.3818300505051189449503697754889751338783,\n 0.2797053914892766679014677714237795824869,\n 0.2797053914892766679014677714237795824869,\n 0.1294849661688696932706114326790820183285,\n 0.1294849661688696932706114326790820183285,\n ],\n [\n 0.3626837833783619829651504492771956121941,\n 0.3626837833783619829651504492771956121941,\n 0.3137066458778872873379622019866013132603,\n 0.3137066458778872873379622019866013132603,\n 0.2223810344533744705443559944262408844301,\n 0.2223810344533744705443559944262408844301,\n 0.1012285362903762591525313543099621901153,\n 0.1012285362903762591525313543099621901153,\n ],\n [\n 0.3302393550012597631645250692869740488788,\n 0.1806481606948574040584720312429128095143,\n 0.1806481606948574040584720312429128095143,\n 0.0812743883615744119718921581105236506756,\n 0.0812743883615744119718921581105236506756,\n 0.3123470770400028400686304065844436655987,\n 0.3123470770400028400686304065844436655987,\n 0.2606106964029354623187428694186328497718,\n 0.2606106964029354623187428694186328497718,\n ],\n [\n 0.295524224714752870173892994651338329421,\n 0.295524224714752870173892994651338329421,\n 0.2692667193099963550912269215694693528597,\n 0.2692667193099963550912269215694693528597,\n 0.2190863625159820439955349342281631924587,\n 0.2190863625159820439955349342281631924587,\n 0.1494513491505805931457763396576973324025,\n 0.1494513491505805931457763396576973324025,\n 0.0666713443086881375935688098933317928578,\n 0.0666713443086881375935688098933317928578,\n ],\n [\n 0.272925086777900630714483528336342189156,\n 0.2628045445102466621806888698905091953727,\n 0.2628045445102466621806888698905091953727,\n 0.2331937645919904799185237048431751394317,\n 0.2331937645919904799185237048431751394317,\n 0.1862902109277342514260976414316558916912,\n 0.1862902109277342514260976414316558916912,\n 0.1255803694649046246346942992239401001976,\n 0.1255803694649046246346942992239401001976,\n 0.0556685671161736664827537204425485787285,\n 0.0556685671161736664827537204425485787285,\n ],\n [\n 0.2491470458134027850005624360429512108304,\n 0.2491470458134027850005624360429512108304,\n 0.2334925365383548087608498989248780562594,\n 0.2334925365383548087608498989248780562594,\n 0.2031674267230659217490644558097983765065,\n 0.2031674267230659217490644558097983765065,\n 0.160078328543346226334652529543359071872,\n 0.160078328543346226334652529543359071872,\n 0.1069393259953184309602547181939962242145,\n 0.1069393259953184309602547181939962242145,\n 0.047175336386511827194615961485017060317,\n 0.047175336386511827194615961485017060317,\n ],\n [\n 0.2325515532308739101945895152688359481566,\n 0.2262831802628972384120901860397766184347,\n 0.2262831802628972384120901860397766184347,\n 0.2078160475368885023125232193060527633865,\n 0.2078160475368885023125232193060527633865,\n 0.1781459807619457382800466919960979955128,\n 0.1781459807619457382800466919960979955128,\n 0.1388735102197872384636017768688714676218,\n 0.1388735102197872384636017768688714676218,\n 0.0921214998377284479144217759537971209236,\n 0.0921214998377284479144217759537971209236,\n 0.0404840047653158795200215922009860600419,\n 0.0404840047653158795200215922009860600419,\n ],\n [\n 0.2152638534631577901958764433162600352749,\n 0.2152638534631577901958764433162600352749,\n 0.2051984637212956039659240656612180557103,\n 0.2051984637212956039659240656612180557103,\n 0.1855383974779378137417165901251570362489,\n 0.1855383974779378137417165901251570362489,\n 0.1572031671581935345696019386238421566056,\n 0.1572031671581935345696019386238421566056,\n 0.1215185706879031846894148090724766259566,\n 0.1215185706879031846894148090724766259566,\n 0.0801580871597602098056332770628543095836,\n 0.0801580871597602098056332770628543095836,\n 0.0351194603317518630318328761381917806197,\n 0.0351194603317518630318328761381917806197,\n ],\n [\n 0.2025782419255612728806201999675193148386,\n 0.1984314853271115764561183264438393248186,\n 0.1984314853271115764561183264438393248186,\n 0.1861610000155622110268005618664228245062,\n 0.1861610000155622110268005618664228245062,\n 0.1662692058169939335532008604812088111309,\n 0.1662692058169939335532008604812088111309,\n 0.1395706779261543144478047945110283225208,\n 0.1395706779261543144478047945110283225208,\n 0.1071592204671719350118695466858693034155,\n 0.1071592204671719350118695466858693034155,\n 0.0703660474881081247092674164506673384667,\n 0.0703660474881081247092674164506673384667,\n 0.0307532419961172683546283935772044177217,\n 0.0307532419961172683546283935772044177217,\n ],\n [\n 0.1894506104550684962853967232082831051469,\n 0.1894506104550684962853967232082831051469,\n 0.1826034150449235888667636679692199393835,\n 0.1826034150449235888667636679692199393835,\n 0.1691565193950025381893120790303599622116,\n 0.1691565193950025381893120790303599622116,\n 0.1495959888165767320815017305474785489704,\n 0.1495959888165767320815017305474785489704,\n 0.1246289712555338720524762821920164201448,\n 0.1246289712555338720524762821920164201448,\n 0.0951585116824927848099251076022462263552,\n 0.0951585116824927848099251076022462263552,\n 0.0622535239386478928628438369943776942749,\n 0.0622535239386478928628438369943776942749,\n 0.0271524594117540948517805724560181035122,\n 0.0271524594117540948517805724560181035122,\n ],\n [\n 0.1794464703562065254582656442618856214487,\n 0.1765627053669926463252709901131972391509,\n 0.1765627053669926463252709901131972391509,\n 0.1680041021564500445099706637883231550211,\n 0.1680041021564500445099706637883231550211,\n 0.1540457610768102880814315948019586119404,\n 0.1540457610768102880814315948019586119404,\n 0.1351363684685254732863199817023501973721,\n 0.1351363684685254732863199817023501973721,\n 0.1118838471934039710947883856263559267358,\n 0.1118838471934039710947883856263559267358,\n 0.0850361483171791808835353701910620738504,\n 0.0850361483171791808835353701910620738504,\n 0.0554595293739872011294401653582446605128,\n 0.0554595293739872011294401653582446605128,\n 0.0241483028685479319601100262875653246916,\n 0.0241483028685479319601100262875653246916,\n ],\n [\n 0.1691423829631435918406564701349866103341,\n 0.1691423829631435918406564701349866103341,\n 0.1642764837458327229860537764659275904123,\n 0.1642764837458327229860537764659275904123,\n 0.1546846751262652449254180038363747721932,\n 0.1546846751262652449254180038363747721932,\n 0.1406429146706506512047313037519472280955,\n 0.1406429146706506512047313037519472280955,\n 0.1225552067114784601845191268002015552281,\n 0.1225552067114784601845191268002015552281,\n 0.1009420441062871655628139849248346070628,\n 0.1009420441062871655628139849248346070628,\n 0.0764257302548890565291296776166365256053,\n 0.0764257302548890565291296776166365256053,\n 0.0497145488949697964533349462026386416808,\n 0.0497145488949697964533349462026386416808,\n 0.0216160135264833103133427102664524693876,\n 0.0216160135264833103133427102664524693876,\n ],\n [\n 0.1610544498487836959791636253209167350399,\n 0.1589688433939543476499564394650472016787,\n 0.1589688433939543476499564394650472016787,\n 0.152766042065859666778855400897662998461,\n 0.152766042065859666778855400897662998461,\n 0.1426067021736066117757461094419029724756,\n 0.1426067021736066117757461094419029724756,\n 0.1287539625393362276755157848568771170558,\n 0.1287539625393362276755157848568771170558,\n 0.1115666455473339947160239016817659974813,\n 0.1115666455473339947160239016817659974813,\n 0.0914900216224499994644620941238396526609,\n 0.0914900216224499994644620941238396526609,\n 0.0690445427376412265807082580060130449618,\n 0.0690445427376412265807082580060130449618,\n 0.0448142267656996003328381574019942119517,\n 0.0448142267656996003328381574019942119517,\n 0.0194617882297264770363120414644384357529,\n 0.0194617882297264770363120414644384357529,\n ],\n [\n 0.1527533871307258506980843319550975934919,\n 0.1527533871307258506980843319550975934919,\n 0.1491729864726037467878287370019694366926,\n 0.1491729864726037467878287370019694366926,\n 0.1420961093183820513292983250671649330345,\n 0.1420961093183820513292983250671649330345,\n 0.1316886384491766268984944997481631349161,\n 0.1316886384491766268984944997481631349161,\n 0.118194531961518417312377377711382287005,\n 0.118194531961518417312377377711382287005,\n 0.1019301198172404350367501354803498761666,\n 0.1019301198172404350367501354803498761666,\n 0.0832767415767047487247581432220462061001,\n 0.0832767415767047487247581432220462061001,\n 0.0626720483341090635695065351870416063516,\n 0.0626720483341090635695065351870416063516,\n 0.040601429800386941331039952274932109879,\n 0.040601429800386941331039952274932109879,\n 0.0176140071391521183118619623518528163621,\n 0.0176140071391521183118619623518528163621,\n ],\n [\n 0.1460811336496904271919851476833711882448,\n 0.1445244039899700590638271665537525436099,\n 0.1445244039899700590638271665537525436099,\n 0.1398873947910731547221334238675831108927,\n 0.1398873947910731547221334238675831108927,\n 0.132268938633337461781052574496775604329,\n 0.132268938633337461781052574496775604329,\n 0.1218314160537285341953671771257335983563,\n 0.1218314160537285341953671771257335983563,\n 0.1087972991671483776634745780701056420336,\n 0.1087972991671483776634745780701056420336,\n 0.0934444234560338615532897411139320884835,\n 0.0934444234560338615532897411139320884835,\n 0.0761001136283793020170516533001831792261,\n 0.0761001136283793020170516533001831792261,\n 0.0571344254268572082836358264724479574912,\n 0.0571344254268572082836358264724479574912,\n 0.0369537897708524937999506682993296661889,\n 0.0369537897708524937999506682993296661889,\n 0.0160172282577743333242246168584710152658,\n 0.0160172282577743333242246168584710152658,\n ],\n [\n 0.1392518728556319933754102483418099578739,\n 0.1392518728556319933754102483418099578739,\n 0.1365414983460151713525738312315173965863,\n 0.1365414983460151713525738312315173965863,\n 0.1311735047870623707329649925303074458757,\n 0.1311735047870623707329649925303074458757,\n 0.1232523768105124242855609861548144719594,\n 0.1232523768105124242855609861548144719594,\n 0.1129322960805392183934006074217843191142,\n 0.1129322960805392183934006074217843191142,\n 0.1004141444428809649320788378305362823508,\n 0.1004141444428809649320788378305362823508,\n 0.0859416062170677274144436813727028661891,\n 0.0859416062170677274144436813727028661891,\n 0.0697964684245204880949614189302176573987,\n 0.0697964684245204880949614189302176573987,\n 0.0522933351526832859403120512732112561121,\n 0.0522933351526832859403120512732112561121,\n 0.0337749015848141547933022468659129013491,\n 0.0337749015848141547933022468659129013491,\n 0.0146279952982722006849910980471854451902,\n 0.0146279952982722006849910980471854451902,\n ],\n [\n 0.1336545721861061753514571105458443385831,\n 0.132462039404696617371642464703316925805,\n 0.132462039404696617371642464703316925805,\n 0.1289057221880821499785953393997936532597,\n 0.1289057221880821499785953393997936532597,\n 0.1230490843067295304675784006720096548158,\n 0.1230490843067295304675784006720096548158,\n 0.1149966402224113649416435129339613014914,\n 0.1149966402224113649416435129339613014914,\n 0.1048920914645414100740861850147438548584,\n 0.1048920914645414100740861850147438548584,\n 0.0929157660600351474770186173697646486034,\n 0.0929157660600351474770186173697646486034,\n 0.0792814117767189549228925247420432269137,\n 0.0792814117767189549228925247420432269137,\n 0.0642324214085258521271696151589109980391,\n 0.0642324214085258521271696151589109980391,\n 0.0480376717310846685716410716320339965612,\n 0.0480376717310846685716410716320339965612,\n 0.0309880058569794443106942196418845053837,\n 0.0309880058569794443106942196418845053837,\n 0.0134118594871417720813094934586150649766,\n 0.0134118594871417720813094934586150649766,\n ],\n [\n 0.1279381953467521569740561652246953718517,\n 0.1279381953467521569740561652246953718517,\n 0.1258374563468282961213753825111836887264,\n 0.1258374563468282961213753825111836887264,\n 0.121670472927803391204463153476262425607,\n 0.121670472927803391204463153476262425607,\n 0.1155056680537256013533444839067835598622,\n 0.1155056680537256013533444839067835598622,\n 0.1074442701159656347825773424466062227946,\n 0.1074442701159656347825773424466062227946,\n 0.0976186521041138882698806644642471544279,\n 0.0976186521041138882698806644642471544279,\n 0.086190161531953275917185202983742667185,\n 0.086190161531953275917185202983742667185,\n 0.0733464814110803057340336152531165181193,\n 0.0733464814110803057340336152531165181193,\n 0.0592985849154367807463677585001085845412,\n 0.0592985849154367807463677585001085845412,\n 0.0442774388174198061686027482113382288593,\n 0.0442774388174198061686027482113382288593,\n 0.0285313886289336631813078159518782864491,\n 0.0285313886289336631813078159518782864491,\n 0.0123412297999871995468056670700372915759,\n 0.0123412297999871995468056670700372915759,\n ],\n];\nexports.binomialCoefficients = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]];\nconst getCubicArcLength = (xs, ys, t) => {\n let sum;\n let correctedT;\n const n = 20;\n const z = t / 2;\n sum = 0;\n for (let i = 0; i < n; i++) {\n correctedT = z * exports.tValues[n][i] + z;\n sum += exports.cValues[n][i] * BFunc(xs, ys, correctedT);\n }\n return z * sum;\n};\nexports.getCubicArcLength = getCubicArcLength;\nconst getQuadraticArcLength = (xs, ys, t) => {\n if (t === undefined) {\n t = 1;\n }\n const ax = xs[0] - 2 * xs[1] + xs[2];\n const ay = ys[0] - 2 * ys[1] + ys[2];\n const bx = 2 * xs[1] - 2 * xs[0];\n const by = 2 * ys[1] - 2 * ys[0];\n const A = 4 * (ax * ax + ay * ay);\n const B = 4 * (ax * bx + ay * by);\n const C = bx * bx + by * by;\n if (A === 0) {\n return (t * Math.sqrt(Math.pow(xs[2] - xs[0], 2) + Math.pow(ys[2] - ys[0], 2)));\n }\n const b = B / (2 * A);\n const c = C / A;\n const u = t + b;\n const k = c - b * b;\n const uuk = u * u + k > 0 ? Math.sqrt(u * u + k) : 0;\n const bbk = b * b + k > 0 ? Math.sqrt(b * b + k) : 0;\n const term = b + Math.sqrt(b * b + k) !== 0\n ? k * Math.log(Math.abs((u + uuk) / (b + bbk)))\n : 0;\n return (Math.sqrt(A) / 2) * (u * uuk - b * bbk + term);\n};\nexports.getQuadraticArcLength = getQuadraticArcLength;\nfunction BFunc(xs, ys, t) {\n const xbase = getDerivative(1, t, xs);\n const ybase = getDerivative(1, t, ys);\n const combined = xbase * xbase + ybase * ybase;\n return Math.sqrt(combined);\n}\nconst getDerivative = (derivative, t, vs) => {\n const n = vs.length - 1;\n let _vs;\n let value;\n if (n === 0) {\n return 0;\n }\n if (derivative === 0) {\n value = 0;\n for (let k = 0; k <= n; k++) {\n value +=\n exports.binomialCoefficients[n][k] *\n Math.pow(1 - t, n - k) *\n Math.pow(t, k) *\n vs[k];\n }\n return value;\n }\n else {\n _vs = new Array(n);\n for (let k = 0; k < n; k++) {\n _vs[k] = n * (vs[k + 1] - vs[k]);\n }\n return getDerivative(derivative - 1, t, _vs);\n }\n};\nconst t2length = (length, totalLength, func) => {\n let error = 1;\n let t = length / totalLength;\n let step = (length - func(t)) / totalLength;\n let numIterations = 0;\n while (error > 0.001) {\n const increasedTLength = func(t + step);\n const increasedTError = Math.abs(length - increasedTLength) / totalLength;\n if (increasedTError < error) {\n error = increasedTError;\n t += step;\n }\n else {\n const decreasedTLength = func(t - step);\n const decreasedTError = Math.abs(length - decreasedTLength) / totalLength;\n if (decreasedTError < error) {\n error = decreasedTError;\n t -= step;\n }\n else {\n step /= 2;\n }\n }\n numIterations++;\n if (numIterations > 500) {\n break;\n }\n }\n return t;\n};\nexports.t2length = t2length;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Path = void 0;\nconst Factory_1 = require(\"../Factory\");\nconst 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.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.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","\"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 });\nexports.Konva = void 0;\nconst _CoreInternals_1 = require(\"./_CoreInternals\");\nconst Arc_1 = require(\"./shapes/Arc\");\nconst Arrow_1 = require(\"./shapes/Arrow\");\nconst Circle_1 = require(\"./shapes/Circle\");\nconst Ellipse_1 = require(\"./shapes/Ellipse\");\nconst Image_1 = require(\"./shapes/Image\");\nconst Label_1 = require(\"./shapes/Label\");\nconst Line_1 = require(\"./shapes/Line\");\nconst Path_1 = require(\"./shapes/Path\");\nconst Rect_1 = require(\"./shapes/Rect\");\nconst RegularPolygon_1 = require(\"./shapes/RegularPolygon\");\nconst Ring_1 = require(\"./shapes/Ring\");\nconst Sprite_1 = require(\"./shapes/Sprite\");\nconst Star_1 = require(\"./shapes/Star\");\nconst Text_1 = require(\"./shapes/Text\");\nconst TextPath_1 = require(\"./shapes/TextPath\");\nconst Transformer_1 = require(\"./shapes/Transformer\");\nconst Wedge_1 = require(\"./shapes/Wedge\");\nconst Blur_1 = require(\"./filters/Blur\");\nconst Brighten_1 = require(\"./filters/Brighten\");\nconst Contrast_1 = require(\"./filters/Contrast\");\nconst Emboss_1 = require(\"./filters/Emboss\");\nconst Enhance_1 = require(\"./filters/Enhance\");\nconst Grayscale_1 = require(\"./filters/Grayscale\");\nconst HSL_1 = require(\"./filters/HSL\");\nconst HSV_1 = require(\"./filters/HSV\");\nconst Invert_1 = require(\"./filters/Invert\");\nconst Kaleidoscope_1 = require(\"./filters/Kaleidoscope\");\nconst Mask_1 = require(\"./filters/Mask\");\nconst Noise_1 = require(\"./filters/Noise\");\nconst Pixelate_1 = require(\"./filters/Pixelate\");\nconst Posterize_1 = require(\"./filters/Posterize\");\nconst RGB_1 = require(\"./filters/RGB\");\nconst RGBA_1 = require(\"./filters/RGBA\");\nconst Sepia_1 = require(\"./filters/Sepia\");\nconst Solarize_1 = require(\"./filters/Solarize\");\nconst Threshold_1 = require(\"./filters/Threshold\");\nexports.Konva = _CoreInternals_1.Konva.Util._assign(_CoreInternals_1.Konva, {\n Arc: Arc_1.Arc,\n Arrow: Arrow_1.Arrow,\n Circle: Circle_1.Circle,\n Ellipse: Ellipse_1.Ellipse,\n Image: Image_1.Image,\n Label: Label_1.Label,\n Tag: Label_1.Tag,\n Line: Line_1.Line,\n Path: Path_1.Path,\n Rect: Rect_1.Rect,\n RegularPolygon: RegularPolygon_1.RegularPolygon,\n Ring: Ring_1.Ring,\n Sprite: Sprite_1.Sprite,\n Star: Star_1.Star,\n Text: Text_1.Text,\n TextPath: TextPath_1.TextPath,\n Transformer: Transformer_1.Transformer,\n Wedge: Wedge_1.Wedge,\n Filters: {\n Blur: Blur_1.Blur,\n Brighten: Brighten_1.Brighten,\n Contrast: Contrast_1.Contrast,\n Emboss: Emboss_1.Emboss,\n Enhance: Enhance_1.Enhance,\n Grayscale: Grayscale_1.Grayscale,\n HSL: HSL_1.HSL,\n HSV: HSV_1.HSV,\n Invert: Invert_1.Invert,\n Kaleidoscope: Kaleidoscope_1.Kaleidoscope,\n Mask: Mask_1.Mask,\n Noise: Noise_1.Noise,\n Pixelate: Pixelate_1.Pixelate,\n Posterize: Posterize_1.Posterize,\n RGB: RGB_1.RGB,\n RGBA: RGBA_1.RGBA,\n Sepia: Sepia_1.Sepia,\n Solarize: Solarize_1.Solarize,\n Threshold: Threshold_1.Threshold,\n },\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _FullInternals_1 = require(\"./_FullInternals\");\nconst Canvas = require(\"canvas\");\nconst canvas = Canvas['default'] || Canvas;\nglobal.DOMMatrix = canvas.DOMMatrix;\nconst isNode = typeof global.document === 'undefined';\nif (isNode) {\n _FullInternals_1.Konva.Util['createCanvasElement'] = () => {\n const node = canvas.createCanvas(300, 300);\n if (!node['style']) {\n node['style'] = {};\n }\n return node;\n };\n _FullInternals_1.Konva.Util.createImageElement = () => {\n const node = new canvas.Image();\n return node;\n };\n}\nmodule.exports = _FullInternals_1.Konva;\n","import { DrawEventParams, PluginParamName, PluginParamValue } from '../common/type'\n\nexport default abstract class Plugin {\n abstract name: string;\n abstract iconfont: string;\n abstract title: { [lang: string]: string };\n language: string;\n params?: PluginParamName[];\n defaultParamValue?: PluginParamValue;\n shapeName?: string;\n\n onEnter?: (params: DrawEventParams) => void;\n onDrawStart?: (params: DrawEventParams) => void;\n onClick?: (params: DrawEventParams) => void;\n onDraw?: (params: DrawEventParams) => void;\n onDrawEnd?: (params: DrawEventParams) => void;\n onLeave?: (params: DrawEventParams) => void;\n onNodeRecreate?: (params: DrawEventParams, node: any) => void;\n}","export const prefixCls = 'react-img-editor'\nexport const transformerStyle = {\n centeredScaling: false,\n rotateEnabled: false,\n anchorCornerRadius: 3,\n anchorStrokeWidth: 1,\n borderStrokeWidth: 1,\n anchorStroke: '#007AFF',\n borderStroke: '#007AFF',\n anchorFill: '#FFF',\n anchorSize: 6,\n rotateAnchorOffset: 20,\n}","export function uuid() {\n return '_' + Math.random().toString(36).substr(2, 9)\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams, PluginParamName, PluginParamValue } from '../common/type'\nimport { transformerStyle } from '../common/constants'\nimport { uuid } from '../common/utils'\n\nexport default class Arrow extends Plugin {\n name = 'arrow'\n iconfont = 'iconfont icon-arrow'\n title = { en: 'Insert Arrow', de: 'Pfeil einfügen' }\n params = ['strokeWidth', 'color'] as PluginParamName[]\n defaultParamValue = {\n strokeWidth: 6,\n lineType: 'solid',\n color: '#F5222D',\n } as PluginParamValue\n shapeName = 'arrow'\n\n lastArrow: any = null\n transformer: any = null\n selectedNode: any = null\n isPaint = false\n started = false\n startPoints = [0, 0]\n\n enableTransform = (drawEventParams: DrawEventParams, node: any) => {\n const {stage, drawLayer} = drawEventParams\n\n if (!this.transformer) {\n this.transformer = new Konva.Transformer({ ...transformerStyle, rotateEnabled: true })\n drawLayer.add(this.transformer)\n this.transformer.attachTo(node)\n node.on('mouseenter', function() {\n stage.container().style.cursor = 'move'\n })\n node.on('mouseleave', function() {\n stage.container().style.cursor = 'default'\n })\n stage.container().style.cursor = 'move'\n }\n\n node && node.draggable(true)\n drawLayer.draw()\n }\n\n disableTransform = (drawEventParams: DrawEventParams, node: any, remove?: boolean) => {\n const {stage, drawLayer, pubSub} = drawEventParams\n\n if (this.transformer) {\n this.transformer.remove()\n this.transformer = null\n }\n\n if (node) {\n node.draggable(false)\n node.off('mouseenter')\n node.off('mouseleave')\n stage.container().style.cursor = 'default'\n\n if (remove) {\n node.hide()\n // 使用隐藏节点占位并覆盖堆栈中已有节点\n pubSub.pub('PUSH_HISTORY', node)\n node.remove()\n }\n }\n\n this.selectedNode = null\n drawLayer.draw()\n }\n\n onEnter = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer} = drawEventParams\n const container = stage.container()\n container.tabIndex = 1 // make it focusable\n container.focus()\n container.addEventListener('keyup', (e: any) => {\n if (e.key === 'Backspace' && this.selectedNode) {\n this.disableTransform(drawEventParams, this.selectedNode, true)\n drawLayer.draw()\n }\n })\n }\n\n onClick = (drawEventParams: DrawEventParams) => {\n const {event} = drawEventParams\n\n if (event.target.name && event.target.name() === 'arrow') {\n // 之前没有选中节点或者在相同节点之间切换点击\n if (!this.selectedNode || this.selectedNode._id !== event.target._id) {\n this.selectedNode && this.disableTransform(drawEventParams, this.selectedNode)\n this.enableTransform(drawEventParams, event.target)\n this.selectedNode = event.target\n }\n } else {\n this.disableTransform(drawEventParams, this.selectedNode)\n }\n }\n\n onDrawStart = () => {\n this.isPaint = true\n }\n\n onDraw = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer, paramValue, pubSub} = drawEventParams\n const pos = stage.getPointerPosition()\n\n if (!this.isPaint || this.transformer || !pos) return\n\n if (!this.started && pos) {\n this.startPoints = [pos.x, pos.y]\n const strokeColor = (paramValue && paramValue.color) ? paramValue.color : this.defaultParamValue.color\n this.lastArrow = new Konva.Arrow({\n id: uuid(),\n name: 'arrow',\n stroke: strokeColor,\n strokeWidth: (paramValue && paramValue.strokeWidth) ? paramValue.strokeWidth : this.defaultParamValue.strokeWidth,\n globalCompositeOperation: 'source-over',\n points: this.startPoints,\n dashEnabled: !!(paramValue && paramValue.lineType && paramValue.lineType === 'dash'),\n dash: [8],\n fill: strokeColor,\n strokeScaleEnabled: false,\n })\n this.lastArrow.on('transformend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n this.lastArrow.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n drawLayer.add(this.lastArrow)\n this.started = true\n }\n\n this.lastArrow.points([this.startPoints[0], this.startPoints[1], pos.x, pos.y])\n drawLayer.batchDraw()\n }\n\n onDrawEnd = (drawEventParams: DrawEventParams) => {\n const {pubSub} = drawEventParams\n // mouseup event is triggered by move event but click event\n if (this.started) {\n this.disableTransform(drawEventParams, this.selectedNode)\n if (this.lastArrow) {\n pubSub.pub('PUSH_HISTORY', this.lastArrow)\n }\n }\n this.isPaint = false\n this.started = false\n }\n\n onLeave = (drawEventParams: DrawEventParams) => {\n this.isPaint = false\n this.started = false\n this.disableTransform(drawEventParams, this.selectedNode)\n }\n\n onNodeRecreate = (drawEventParams: DrawEventParams, node: any) => {\n const {pubSub} = drawEventParams\n node.on('transformend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n node.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n }\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams, PluginParamName, PluginParamValue } from '../common/type'\nimport { transformerStyle } from '../common/constants'\nimport { uuid } from '../common/utils'\n\nexport default class Circle extends Plugin {\n name = 'circle'\n iconfont = 'iconfont icon-circle'\n title = { en: 'Insert circle', de: 'Kreis einfügen' }\n params = ['strokeWidth', 'lineType', 'color'] as PluginParamName[]\n defaultParamValue = {\n strokeWidth: 6,\n lineType: 'solid',\n color: '#F5222D',\n } as PluginParamValue\n shapeName = 'circle'\n\n lastCircle: any = null\n transformer: any = null\n selectedNode: any = null\n isPaint = false // 防止切换插件时,onDraw 没有释放\n started = false // start draw 的标志\n startPoint = [0, 0]\n\n enableTransform = (drawEventParams: DrawEventParams, node: any) => {\n const {stage, drawLayer} = drawEventParams\n\n if (!this.transformer) {\n this.transformer = new Konva.Transformer({ ...transformerStyle })\n drawLayer.add(this.transformer)\n this.transformer.attachTo(node)\n node.on('mouseenter', function() {\n stage.container().style.cursor = 'move'\n })\n node.on('mouseleave', function() {\n stage.container().style.cursor = 'default'\n })\n stage.container().style.cursor = 'move'\n }\n\n node && node.draggable(true)\n drawLayer.draw()\n }\n\n disableTransform = (drawEventParams: DrawEventParams, node: any, remove?: boolean) => {\n const {stage, drawLayer, pubSub} = drawEventParams\n\n if (this.transformer) {\n this.transformer.remove()\n this.transformer = null\n }\n\n if (node) {\n node.draggable(false)\n node.off('mouseenter')\n node.off('mouseleave')\n stage.container().style.cursor = 'default'\n\n if (remove) {\n node.hide()\n // 使用隐藏节点占位并覆盖堆栈中已有节点\n pubSub.pub('PUSH_HISTORY', node)\n node.remove()\n }\n }\n\n this.selectedNode = null\n drawLayer.draw()\n }\n\n onEnter = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer} = drawEventParams\n const container = stage.container()\n container.tabIndex = 1 // make it focusable\n container.focus()\n container.addEventListener('keyup', (e: any) => {\n if (e.key === 'Backspace' && this.selectedNode) {\n this.disableTransform(drawEventParams, this.selectedNode, true)\n drawLayer.draw()\n }\n })\n }\n\n onClick = (drawEventParams: DrawEventParams) => {\n const {event} = drawEventParams\n\n if (event.target.name && event.target.name() === 'circle') {\n // 之前没有选中节点或者在相同节点之间切换点击\n if (!this.selectedNode || this.selectedNode._id !== event.target._id) {\n this.selectedNode && this.disableTransform(drawEventParams, this.selectedNode)\n this.enableTransform(drawEventParams, event.target)\n this.selectedNode = event.target\n }\n } else {\n this.disableTransform(drawEventParams, this.selectedNode)\n }\n }\n\n onDrawStart = () => {\n this.isPaint = true\n }\n\n onDraw = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer, paramValue, pubSub} = drawEventParams\n const pos = stage.getPointerPosition()\n\n if (!this.isPaint || this.transformer || !pos) return\n\n if (!this.started) {\n this.startPoint = [pos.x, pos.y]\n this.lastCircle = new Konva.Circle({\n id: uuid(),\n name: 'circle',\n stroke: (paramValue && paramValue.color) ? paramValue.color : this.defaultParamValue.color,\n strokeWidth: (paramValue && paramValue.strokeWidth) ? paramValue.strokeWidth : this.defaultParamValue.strokeWidth,\n globalCompositeOperation: 'source-over',\n radius: 0,\n dashEnabled: !!(paramValue && paramValue.lineType && paramValue.lineType === 'dash'),\n dash: [8],\n strokeScaleEnabled: false,\n })\n this.lastCircle.on('transformend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n this.lastCircle.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n drawLayer.add(this.lastCircle)\n this.started = true\n }\n\n const radius = Math.sqrt(Math.pow(pos.x - this.startPoint[0], 2) + Math.pow(pos.y - this.startPoint[1], 2)) / 2\n this.lastCircle.x((pos.x + this.startPoint[0]) / 2)\n this.lastCircle.y((pos.y + this.startPoint[1]) / 2)\n this.lastCircle.setAttr('radius', radius)\n drawLayer.batchDraw()\n }\n\n onDrawEnd = (drawEventParams: DrawEventParams) => {\n const {pubSub} = drawEventParams\n // mouseup event is triggered by move event but click event\n if (this.started) {\n this.disableTransform(drawEventParams, this.selectedNode)\n if (this.lastCircle) {\n pubSub.pub('PUSH_HISTORY', this.lastCircle)\n }\n }\n this.isPaint = false\n this.started = false\n }\n\n onLeave = (drawEventParams: DrawEventParams) => {\n this.isPaint = false\n this.started = false\n this.disableTransform(drawEventParams, this.selectedNode)\n }\n\n onNodeRecreate = (drawEventParams: DrawEventParams, node: any) => {\n const {pubSub} = drawEventParams\n node.on('transformend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n node.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n }\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams } from '../common/type'\nimport { transformerStyle } from '../common/constants'\nimport { uuid } from '../common/utils'\n\nconst toolbarWidth = 300\nconst toolbarHeight = 40\n\nexport default class Crop extends Plugin {\n name = 'crop'\n iconfont = 'iconfont icon-cut'\n title = { en: 'Image cropping', de: 'Bild zuschneiden' }\n params = []\n\n isPaint = false\n virtualLayer: any = null\n rect: any = null\n transformer: any = null\n toolbarId = 'react-img-editor-crop-toolbar' + uuid()\n usage = {\n en: 'Drag the border to adjust the scope of the image display',\n de: 'Ziehen Sie den Rand um den Umfang des Ausschnitts anzupassen',\n }\n\n // 一直为正数\n getRectWidth = () => {\n return this.rect ? this.rect.getClientRect({skipTransform: false}).width : 0\n }\n\n // 一直为正数\n getRectHeight = () => {\n return this.rect ? this.rect.getClientRect({skipTransform: false}).height : 0\n }\n\n getRectX = () => {\n return this.rect ? this.rect.getClientRect({skipTransform: false}).x : 0\n }\n\n getRectY = () => {\n return this.rect ? this.rect.getClientRect({skipTransform: false}).y : 0\n }\n\n adjustToolbarPosition = (stage: any) => {\n // 需要考虑宽和高为负数的情况\n const $toolbar = document.getElementById(this.toolbarId)\n if (!$toolbar) return\n\n let left: number\n let top: number\n\n if (this.getRectWidth() >= 0) {\n left = this.getRectX()\n } else {\n left = this.getRectX() - toolbarWidth\n }\n\n if (this.getRectHeight() >= 0) {\n top = this.getRectHeight() + this.getRectY() + 20\n } else {\n top = this.getRectY() + 20\n }\n\n if (left < 0) left = 0\n if (left > stage.width() - toolbarWidth) left = stage.width() - toolbarWidth\n if (top < 0) top = 0\n if (top > stage.height()) top = stage.height()\n\n $toolbar.style.left = `${left}px`\n $toolbar.style.top = `${top}px`\n }\n\n createCropToolbar = (stage: any, sureBtnEvent: () => void, cancelBtnEvent: () => void) => {\n if (document.getElementById(this.toolbarId)) return\n\n const fragment = new DocumentFragment()\n\n // 创建截图工具栏\n const $cropToolbar = document.createElement('div')\n $cropToolbar.setAttribute('id', this.toolbarId)\n const cropToolbarStyle = 'position: absolute; z-index: 1000; box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.15);' +\n `background: #FFF; width: ${toolbarWidth}px; height: ${toolbarHeight}px; display: flex; align-items: center; padding: 0 12px;` +\n 'font-size: 12px;'\n $cropToolbar.setAttribute('style', cropToolbarStyle)\n fragment.appendChild($cropToolbar)\n\n const $textNode = document.createTextNode(this.usage[this.language] || this.usage['en'])\n $cropToolbar.appendChild($textNode)\n\n const btnStyle = 'display: inline-block; width: 32px; height: 24px; border: 1px solid #C9C9D0;' +\n 'border-radius: 2px; text-align: center; cursor: pointer; line-height: 24px;'\n\n // 创建取消按钮\n const $cancelBtn = document.createElement('span')\n $cancelBtn.setAttribute('style', btnStyle + 'background: #FFF; margin: 0 8px 0 10px;')\n $cancelBtn.onclick = cancelBtnEvent\n $cropToolbar.appendChild($cancelBtn)\n\n // 创建取消按钮图标\n const $closeIcon = document.createElement('i')\n $closeIcon.setAttribute('class', 'iconfont icon-close')\n $closeIcon.setAttribute('style', 'font-size: 12px;')\n $cancelBtn.appendChild($closeIcon)\n\n // 创建确认按钮\n const $sureBtn = document.createElement('span')\n $sureBtn.setAttribute('style', btnStyle + 'background: #007AFF; color: #FFF;')\n $sureBtn.onclick = sureBtnEvent\n $cropToolbar.appendChild($sureBtn)\n\n // 创建确认按钮图标\n const $checkIcon = document.createElement('i')\n $checkIcon.setAttribute('class', 'iconfont icon-check')\n $checkIcon.setAttribute('style', 'font-size: 12px;')\n $sureBtn.appendChild($checkIcon)\n\n stage.container().appendChild(fragment)\n }\n\n reset = (stage: any) => {\n const $toolbar = document.getElementById(this.toolbarId)\n $toolbar && stage.container().removeChild($toolbar)\n this.virtualLayer && this.virtualLayer.remove()\n if (this.rect) {\n this.rect.off('mouseenter')\n this.rect.off('mouseleave')\n }\n }\n\n onEnter = (drawEventParams: DrawEventParams) => {\n const {stage} = drawEventParams\n stage.container().style.cursor = 'crosshair'\n }\n\n onDrawStart = (drawEventParams: DrawEventParams) => {\n const {stage} = drawEventParams\n const startPos = stage.getPointerPosition()\n // 当鼠标移出 stage 时,不会触发 mouseup,重新回到 stage 时,会重新触发 onDrawStart,这里就是为了防止重新触发 onDrawStart\n if (this.isPaint || !startPos) return\n\n if (document.getElementById(this.toolbarId)) return\n this.isPaint = true\n\n this.virtualLayer = new Konva.Layer()\n stage.add(this.virtualLayer)\n this.virtualLayer.setZIndex(2)\n\n // 绘制透明黑色遮罩\n const maskRect = new Konva.Rect({\n globalCompositeOperation: 'source-over',\n x: 0,\n y: 0,\n width: stage.width(),\n height: stage.height(),\n fill: 'rgba(0, 0, 0, .6)',\n })\n\n this.virtualLayer.add(maskRect)\n\n this.rect = new Konva.Rect({\n x: startPos.x,\n y: startPos.y,\n fill: '#FFF',\n draggable: true,\n globalCompositeOperation: 'destination-out',\n })\n this.rect.on('mouseenter', function() {\n stage.container().style.cursor = 'move'\n })\n this.rect.on('mouseleave', function() {\n stage.container().style.cursor = 'default'\n })\n\n this.virtualLayer.add(this.rect)\n\n this.virtualLayer.draw()\n }\n\n onDraw = (drawEventParams: DrawEventParams) => {\n const {stage} = drawEventParams\n const endPos = stage.getPointerPosition()\n\n if (!this.isPaint || !endPos) return\n if (document.getElementById(this.toolbarId)) return\n\n // 绘制初始裁剪区域\n this.rect.width(endPos.x - this.getRectX())\n this.rect.height(endPos.y - this.getRectY())\n this.rect.dragBoundFunc((pos: any) => {\n let x = pos.x\n let y = pos.y\n\n if (this.transformer.width() >= 0) {\n if (pos.x <= 0) x = 0\n if (pos.x >= stage.width() - this.transformer.width()) x = stage.width() - this.transformer.width()\n } else {\n if (pos.x >= stage.width()) x = stage.width()\n if (pos.x <= - this.transformer.width()) x = - this.transformer.width()\n }\n\n if (this.transformer.height() >= 0) {\n if (pos.y <= 0) y = 0\n if (pos.y >= stage.height() - this.transformer.height()) y = stage.height() - this.transformer.height()\n } else {\n if (pos.y >= stage.height()) y = stage.height()\n if (pos.y <= - this.transformer.height()) y = - this.transformer.height()\n }\n\n this.adjustToolbarPosition(stage)\n return {x, y}\n })\n\n this.virtualLayer.draw()\n }\n\n onDrawEnd = (drawEventParams: DrawEventParams) => {\n const {stage, pixelRatio, reload} = drawEventParams\n\n if (!this.isPaint) {\n this.isPaint = false\n return\n }\n\n this.isPaint = false\n\n // 允许改变裁剪区域\n this.transformer = new Konva.Transformer({\n node: this.rect,\n ...transformerStyle,\n boundBoxFunc: (oldBox: any, newBox: any) => {\n let x = newBox.x\n let y = newBox.y\n let width = newBox.width\n let height = newBox.height\n\n if (newBox.width >= 0) {\n if (newBox.x <= 0) {\n x = 0\n width = newBox.width + newBox.x\n }\n\n if (newBox.x >= stage.width() - newBox.width) {\n width = stage.width() - oldBox.x\n }\n } else {\n if (newBox.x >= stage.width()) {\n x = stage.width()\n width = newBox.width + (newBox.x - stage.width())\n }\n\n if (newBox.x <= - newBox.width) {\n width = - oldBox.x\n }\n }\n\n if (newBox.height >= 0) {\n if (newBox.y <= 0) {\n y = 0\n height = newBox.height + newBox.y\n }\n\n if (newBox.y >= stage.height() - newBox.height) {\n height = stage.height() - oldBox.y\n }\n } else {\n if (newBox.y >= stage.height()) {\n y = stage.height()\n height = newBox.height + (newBox.y - stage.height())\n }\n\n if (newBox.y <= - newBox.height) {\n height = - oldBox.y\n }\n }\n\n\n this.adjustToolbarPosition(stage)\n return {x, y, width, height} as any\n },\n })\n this.virtualLayer.add(this.transformer)\n this.virtualLayer.draw()\n\n this.createCropToolbar(stage, () => {\n // 裁剪区域太小不允许裁剪\n if (this.getRectWidth() < 2 || this.getRectHeight() < 2) return\n\n // 提前清除拉伸框\n this.virtualLayer.remove(this.transformer)\n const dataURL = stage.toDataURL({\n x: this.getRectX(),\n y: this.getRectY(),\n width: this.getRectWidth(),\n height: this.getRectHeight(),\n pixelRatio,\n mimeType: 'image/jpeg',\n })\n const imageObj = new Image()\n imageObj.onload = () => {\n reload(imageObj, this.getRectWidth(), this.getRectHeight())\n this.reset(stage)\n }\n imageObj.src = dataURL\n stage.container().style.cursor = 'crosshair'\n }, () => {\n this.reset(stage)\n stage.container().style.cursor = 'crosshair'\n })\n this.adjustToolbarPosition(stage)\n }\n\n onLeave = (drawEventParams: DrawEventParams) => {\n const {stage} = drawEventParams\n this.reset(stage)\n stage.container().style.cursor = 'default'\n this.isPaint = false\n }\n}","\nimport { DrawEventParams } from '../common/type'\nimport Plugin from './Plugin'\n\nexport default class Download extends Plugin {\n name = 'download'\n iconfont = 'iconfont icon-download'\n title = { en: 'Download image', de: 'Bild herunterladen' }\n\n onEnter = (drawEventParams: DrawEventParams) => {\n const {stage, pixelRatio} = drawEventParams\n // 延迟下载,等触发 plugin 的 onLeave 生命周期,清除未完成的现场\n setTimeout(() => {\n const canvas = stage.toCanvas({ pixelRatio })\n canvas.toBlob(function(blob: any) {\n const link = document.createElement('a')\n link.download = ''\n link.href = URL.createObjectURL(blob)\n link.click()\n }, 'image/jpeg')\n }, 100)\n }\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams, PluginParamName, PluginParamValue } from '../common/type'\nimport { uuid } from '../common/utils'\n\nexport default class Eraser extends Plugin {\n name = 'eraser'\n iconfont = 'iconfont icon-eraser'\n title = { en: 'Erase', de: 'Radieren' }\n params = ['strokeWidth'] as PluginParamName[]\n defaultParamValue = {\n strokeWidth: 6,\n } as PluginParamValue\n\n lastLine: any = null\n isPaint = false\n\n onDrawStart = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer, paramValue} = drawEventParams\n const pos = stage.getPointerPosition()\n\n if (!pos) return\n\n this.isPaint = true\n this.lastLine = new Konva.Line({\n id: uuid(),\n stroke: '#df4b26',\n strokeWidth: (paramValue && paramValue.strokeWidth) ? paramValue.strokeWidth : this.defaultParamValue.strokeWidth,\n globalCompositeOperation: 'destination-out',\n points: [pos.x, pos.y],\n })\n drawLayer.add(this.lastLine)\n }\n\n onDraw = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer} = drawEventParams\n const pos = stage.getPointerPosition()\n\n if (!this.isPaint || !pos) return\n\n const newPoints = this.lastLine.points().concat([pos.x, pos.y])\n this.lastLine.points(newPoints)\n drawLayer.batchDraw()\n }\n\n onDrawEnd = (drawEventParams: DrawEventParams) => {\n const {pubSub} = drawEventParams\n this.isPaint = false\n pubSub.pub('PUSH_HISTORY', this.lastLine)\n }\n\n onLeave = () => {\n this.isPaint = false\n }\n}","\nimport Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams, PluginParamValue, PluginParamName } from '../common/type'\nimport { uuid } from '../common/utils'\n\nconst tileHeight = 5\nconst tileWidth = 5\n\nexport default class Mosaic extends Plugin {\n name = 'mosaic'\n iconfont = 'iconfont icon-mosaic'\n title = { en: 'Mosaic', de: 'Mosaik' }\n params = ['strokeWidth'] as PluginParamName[]\n defaultParamValue = {\n strokeWidth: 6,\n } as PluginParamValue\n\n isPaint = false\n tiles: any = []\n tileRowSize = 0\n tileColumnSize = 0\n width = 0\n height = 0\n rectGroup: any = null\n\n drawTile = (tiles: any, drawLayer: any) => {\n tiles = [].concat(tiles)\n tiles.forEach((tile: any) => {\n if (tile.isFilled) {\n return\n }\n\n if (!tile.color) {\n const dataLen = tile.data.length\n let r = 0, g = 0, b = 0, a = 0\n for (let i = 0; i < dataLen; i += 4) {\n r += tile.data[i]\n g += tile.data[i + 1]\n b += tile.data[i + 2]\n a += tile.data[i + 3]\n }\n\n // Set tile color.\n const pixelLen = dataLen / 4\n tile.color = {\n r: Math.round(r / pixelLen),\n g: Math.round(g / pixelLen),\n b: Math.round(b / pixelLen),\n a: Math.round(a / pixelLen),\n }\n }\n\n const color = tile.color\n const x = tile.column * tileWidth\n const y = tile.row * tileHeight\n const w = tile.pixelWidth\n const h = tile.pixelHeight\n\n const rect = new Konva.Rect({\n globalCompositeOperation: 'source-over',\n x,\n y,\n width: w,\n height: h,\n fill: `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a / 255})`,\n })\n this.rectGroup.add(rect)\n\n tile.isFilled = true\n })\n\n drawLayer.add(this.rectGroup)\n drawLayer.draw()\n }\n\n getTilesByPoint = (x: number, y: number, strokeWidth: number) => {\n const ts: any = []\n let startRow = Math.max(0, Math.floor(y / tileHeight) - Math.floor(strokeWidth / 2))\n const startColumn = Math.max(0, Math.floor(x / tileWidth) - Math.floor(strokeWidth / 2))\n const endRow = Math.min(this.tileRowSize, startRow + strokeWidth)\n const endColumn = Math.min(this.tileColumnSize, startColumn + strokeWidth)\n\n while (startRow < endRow) {\n let column = startColumn\n while (column < endColumn) {\n ts.push(this.tiles[startRow * this.tileColumnSize + column])\n column += 1\n }\n startRow += 1\n }\n\n return ts\n }\n\n onDrawStart = (drawEventParams: DrawEventParams) => {\n const {stage, imageData} = drawEventParams\n this.tiles = []\n this.width = stage.width()\n this.height = stage.height()\n this.tileRowSize = Math.ceil(this.height / tileHeight)\n this.tileColumnSize = Math.ceil(this.width / tileWidth)\n\n this.rectGroup = new Konva.Group({id: uuid()})\n\n // 将图片切分成一个个大一点的贴片\n for (let i = 0; i < this.tileRowSize; i++) {\n for (let j = 0; j < this.tileColumnSize; j++) {\n const tile = {\n row: i,\n column: j,\n pixelWidth: tileWidth,\n pixelHeight: tileHeight,\n data: [],\n }\n\n let data: any = []\n // 转换为像素图形下,起始像素位置\n const pixelPosition = (this.width * tileHeight * tile.row + tile.column * tileWidth) * 4\n // 转换为像素图形下,包含多少行\n const pixelRowAmount = tile.pixelHeight\n // 计算,转换为像素图形使,一个贴片所包含的所有像素数据。先遍历贴片范围内的每一列,每一列中再单独统计行的像素数量\n for (let i = 0; i < pixelRowAmount; i++) {\n // 当前列的起始像素位置\n const position = pixelPosition + this.width * 4 * i\n // 贴片范围内一行的像素数据,等于贴片宽度 * 4\n data = [...data, ...imageData.data.slice(position, position + tile.pixelWidth * 4)]\n }\n tile.data = data\n this.tiles.push(tile)\n }\n }\n\n this.isPaint = true\n }\n\n onDraw = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer, paramValue} = drawEventParams\n const pos = stage.getPointerPosition()\n if (!this.isPaint || !pos) return\n\n const strokeWidth = (paramValue && paramValue.strokeWidth) ? paramValue.strokeWidth : this.defaultParamValue.strokeWidth\n this.drawTile(this.getTilesByPoint(pos.x, pos.y, strokeWidth!), drawLayer)\n }\n\n onDrawEnd = (drawEventParams: DrawEventParams) => {\n const {pubSub} = drawEventParams\n this.isPaint = false\n pubSub.pub('PUSH_HISTORY', this.rectGroup)\n }\n\n onLeave = () => {\n this.isPaint = false\n }\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams, PluginParamName, PluginParamValue } from '../common/type'\nimport { uuid } from '../common/utils'\n\nexport default class Pen extends Plugin {\n name = 'pen'\n iconfont = 'iconfont icon-pen'\n title = { en: 'Brushes', de: 'Frei zeichnen' }\n params = ['strokeWidth', 'lineType', 'color'] as PluginParamName[]\n defaultParamValue = {\n strokeWidth: 6,\n lineType: 'solid',\n color: '#F5222D',\n } as PluginParamValue\n\n lastLine: any = null\n isPaint = false\n\n onDrawStart = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer, paramValue} = drawEventParams\n const pos = stage.getPointerPosition()\n\n if (!pos) return\n\n this.isPaint = true\n this.lastLine = new Konva.Line({\n id: uuid(),\n stroke: (paramValue && paramValue.color) ? paramValue.color : this.defaultParamValue.color,\n strokeWidth: (paramValue && paramValue.strokeWidth) ? paramValue.strokeWidth : this.defaultParamValue.strokeWidth,\n globalCompositeOperation: 'source-over',\n points: [pos.x, pos.y],\n dashEnabled: !!(paramValue && paramValue.lineType && paramValue.lineType === 'dash'),\n dash: [8],\n tension: 1,\n lineCap: 'round',\n lineJoin: 'round',\n })\n drawLayer.add(this.lastLine)\n }\n\n onDraw = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer} = drawEventParams\n const pos = stage.getPointerPosition()\n\n if (!this.isPaint || !pos) return\n\n const newPoints = this.lastLine.points().concat([pos.x, pos.y])\n this.lastLine.points(newPoints)\n drawLayer.batchDraw()\n }\n\n onDrawEnd = (drawEventParams: DrawEventParams) => {\n const {pubSub} = drawEventParams\n this.isPaint = false\n pubSub.pub('PUSH_HISTORY', this.lastLine)\n }\n\n onLeave = () => {\n this.isPaint = false\n }\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams, PluginParamName, PluginParamValue } from '../common/type'\nimport { transformerStyle } from '../common/constants'\nimport { uuid } from '../common/utils'\n\nexport default class Rect extends Plugin {\n name = 'rect'\n iconfont = 'iconfont icon-square'\n title = { en: 'Insert Rectangle', de: 'Rechteck einfügen' }\n params = ['strokeWidth', 'lineType', 'color'] as PluginParamName[]\n defaultParamValue = {\n strokeWidth: 6,\n lineType: 'solid',\n color: '#F5222D',\n } as PluginParamValue\n shapeName = 'rect'\n\n lastRect: any = null\n transformer: any = null\n selectedNode: any = null\n isPaint = false // 防止切换插件时,onDraw 没有释放\n started = false // start draw 的标志\n startPoint = [0, 0]\n\n enableTransform = (drawEventParams: DrawEventParams, node: any) => {\n const {stage, drawLayer} = drawEventParams\n\n if (!this.transformer) {\n this.transformer = new Konva.Transformer({ ...transformerStyle, borderStrokeWidth: 0 })\n drawLayer.add(this.transformer)\n this.transformer.attachTo(node)\n node.on('mouseenter', function() {\n stage.container().style.cursor = 'move'\n })\n node.on('mouseleave', function() {\n stage.container().style.cursor = 'default'\n })\n stage.container().style.cursor = 'move'\n }\n\n node && node.draggable(true)\n drawLayer.draw()\n }\n\n disableTransform = (drawEventParams: DrawEventParams, node: any, remove?: boolean) => {\n const {stage, drawLayer, pubSub} = drawEventParams\n\n if (this.transformer) {\n this.transformer.remove()\n this.transformer = null\n }\n\n if (node) {\n node.draggable(false)\n node.off('mouseenter')\n node.off('mouseleave')\n stage.container().style.cursor = 'default'\n\n if (remove) {\n node.hide()\n // 使用隐藏节点占位并覆盖堆栈中已有节点\n pubSub.pub('PUSH_HISTORY', node)\n node.remove()\n }\n }\n\n this.selectedNode = null\n drawLayer.draw()\n }\n\n onEnter = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer} = drawEventParams\n const container = stage.container()\n container.tabIndex = 1 // make it focusable\n container.focus()\n container.addEventListener('keyup', (e: any) => {\n if (e.key === 'Backspace' && this.selectedNode) {\n this.disableTransform(drawEventParams, this.selectedNode, true)\n drawLayer.draw()\n }\n })\n }\n\n onClick = (drawEventParams: DrawEventParams) => {\n const {event} = drawEventParams\n\n if (event.target.name && event.target.name() === 'rect') {\n // 之前没有选中节点或者在相同节点之间切换点击\n if (!this.selectedNode || this.selectedNode._id !== event.target._id) {\n this.selectedNode && this.disableTransform(drawEventParams, this.selectedNode)\n this.enableTransform(drawEventParams, event.target)\n this.selectedNode = event.target\n }\n } else {\n this.disableTransform(drawEventParams, this.selectedNode)\n }\n }\n\n onDrawStart = () => {\n this.isPaint = true\n }\n\n onDraw = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer, paramValue, pubSub} = drawEventParams\n const pos = stage.getPointerPosition()\n\n if (!this.isPaint || this.transformer || !pos) return\n\n if (!this.started) {\n this.startPoint = [pos.x, pos.y]\n this.lastRect = new Konva.Rect({\n id: uuid(),\n name: 'rect',\n stroke: (paramValue && paramValue.color) ? paramValue.color : this.defaultParamValue.color,\n strokeWidth: (paramValue && paramValue.strokeWidth) ? paramValue.strokeWidth : this.defaultParamValue.strokeWidth,\n globalCompositeOperation: 'source-over',\n x: pos.x,\n y: pos.y,\n dashEnabled: !!(paramValue && paramValue.lineType && paramValue.lineType === 'dash'),\n dash: [8],\n strokeScaleEnabled: false,\n })\n this.lastRect.on('transformend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n this.lastRect.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n drawLayer.add(this.lastRect)\n this.started = true\n }\n\n this.lastRect.width(pos.x - this.startPoint[0])\n this.lastRect.height(pos.y - this.startPoint[1])\n drawLayer.batchDraw()\n }\n\n onDrawEnd = (drawEventParams: DrawEventParams) => {\n const {pubSub} = drawEventParams\n\n // mouseup event is triggered by move event but click event\n if (this.started) {\n this.disableTransform(drawEventParams, this.selectedNode)\n if (this.lastRect) {\n pubSub.pub('PUSH_HISTORY', this.lastRect)\n }\n }\n this.isPaint = false\n this.started = false\n }\n\n onLeave = (drawEventParams: DrawEventParams) => {\n this.isPaint = false\n this.started = false\n this.disableTransform(drawEventParams, this.selectedNode)\n }\n\n onNodeRecreate = (drawEventParams: DrawEventParams, node: any) => {\n const {pubSub} = drawEventParams\n node.on('transformend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n node.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n }\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport { DrawEventParams } from '../common/type'\n\nexport default class Repeal extends Plugin {\n name = 'repeal'\n iconfont = 'iconfont icon-repeal'\n title = { en: 'Revoke', de: 'Rückgängig machen' }\n\n onEnter = (drawEventParams: DrawEventParams) => {\n const {drawLayer, historyStack, plugins, pubSub} = drawEventParams\n drawLayer.removeChildren()\n\n historyStack.pop()\n pubSub.pub('POP_HISTORY', historyStack)\n\n historyStack.forEach((node, index) => {\n let flag = false\n for (let i = index + 1; i < historyStack.length; i++) {\n if(historyStack[i].attrs.id === node.attrs.id) {\n flag = true\n break\n }\n }\n if (!flag) {\n const recreatedNode = Konva.Node.create(node)\n drawLayer.add(recreatedNode)\n setTimeout(() => {\n for (let i = 0; i < plugins.length; i++) {\n if (plugins[i].shapeName && plugins[i].shapeName === recreatedNode.name()) {\n plugins[i].onNodeRecreate && plugins[i].onNodeRecreate!(drawEventParams, recreatedNode)\n break\n }\n }\n })\n }\n })\n\n drawLayer.draw()\n }\n}","import Konva from 'konva'\nimport Plugin from './Plugin'\nimport PubSub from '../common/PubSub'\nimport { DrawEventParams, PluginParamValue, PluginParamName } from '../common/type'\nimport { transformerStyle } from '../common/constants'\nimport { uuid } from '../common/utils'\n\nexport default class Text extends Plugin {\n name = 'text'\n iconfont = 'iconfont icon-text'\n title = { en: 'Insert text', de: 'Text einfügen' }\n params = ['fontSize', 'color'] as PluginParamName[]\n defaultParamValue = {\n fontSize: 24,\n color: '#F5222D',\n } as PluginParamValue\n shapeName = 'text'\n\n transformer: any = null\n selectedNode: any = null\n\n removeTextareaBlurModal = () => {\n const textareaBlurModal = document.getElementById('textareaBlurModal')\n if (textareaBlurModal) {\n textareaBlurModal.removeEventListener('click', this.removeTextareaBlurModal)\n document.body.removeChild(textareaBlurModal)\n }\n }\n\n // 防止 textarea blur 时触发 stage click 事件\n addTextareaBlurModal = (stage: any) => {\n if (document.getElementById('textareaBlurModal')) return\n\n const container = stage.container().getBoundingClientRect()\n const textareaBlurModal = document.createElement('div')\n textareaBlurModal.id = 'textareaBlurModal'\n textareaBlurModal.style.position = 'fixed'\n textareaBlurModal.style.left = container.left + 'px'\n textareaBlurModal.style.top = container.top + 'px'\n textareaBlurModal.style.width = container.width + 'px'\n textareaBlurModal.style.height = container.height + 'px'\n textareaBlurModal.style.zIndex = '999'\n\n document.body.appendChild(textareaBlurModal)\n\n textareaBlurModal.addEventListener('click', this.removeTextareaBlurModal)\n }\n\n createTextarea = (stage: any, drawLayer: any, transformer: any, textNode: any, pubSub: PubSub) => {\n const textarea = document.createElement('textarea')\n textarea.value = textNode.text()\n textarea.style.position = 'absolute'\n textarea.style.left = textNode.x() + 'px'\n textarea.style.top = textNode.y() + 'px'\n textarea.style.width = textNode.width() + 'px'\n textarea.style.height = textNode.height() + 'px'\n textarea.style.lineHeight = String(textNode.lineHeight())\n textarea.style.padding = textNode.padding() + 'px'\n textarea.style.margin = '0px'\n textarea.style.fontSize = textNode.fontSize() + 'px'\n textarea.style.fontWeight = 'bold'\n textarea.style.color = textNode.fill()\n textarea.style.fontFamily = textNode.fontFamily()\n textarea.style.border = 'none'\n textarea.style.outline = 'none'\n textarea.style.overflow = 'hidden'\n textarea.style.background = 'none'\n textarea.style.resize = 'none'\n textarea.style.zIndex = '1000'\n textarea.style.boxSizing = 'content-box'\n\n textarea.addEventListener('keyup', (e: any) => {\n textNode.text(e.target.value)\n drawLayer.draw()\n textarea.style.width = textNode.width() + 'px'\n textarea.style.height = textNode.height() + 'px'\n })\n\n textarea.addEventListener('blur', () => {\n if (textarea.value !== '') {\n textNode.text(textarea.value)\n transformer.hide()\n textNode.show()\n } else {\n textNode.destroy()\n transformer.destroy()\n }\n\n textarea.parentNode!.removeChild(textarea)\n drawLayer.draw()\n this.removeTextareaBlurModal()\n pubSub.pub('PUSH_HISTORY', textNode)\n })\n\n return textarea\n }\n\n enableTransform = (drawEventParams: DrawEventParams, node: any) => {\n const {stage, drawLayer} = drawEventParams\n\n if (!this.transformer) {\n this.transformer = new Konva.Transformer({ ...transformerStyle, enabledAnchors: [], padding: 2 })\n drawLayer.add(this.transformer)\n this.transformer.attachTo(node)\n node.on('mouseenter', function() {\n stage.container().style.cursor = 'move'\n })\n node.on('mouseleave', function() {\n stage.container().style.cursor = 'text'\n })\n stage.container().style.cursor = 'move'\n }\n\n node && node.draggable(true)\n drawLayer.draw()\n }\n\n disableTransform = (drawEventParams: DrawEventParams, node: any, remove?: boolean) => {\n const {stage, drawLayer, pubSub} = drawEventParams\n\n if (this.transformer) {\n this.transformer.remove()\n this.transformer = null\n }\n\n if (node) {\n node.draggable(false)\n node.off('mouseenter')\n node.off('mouseleave')\n stage.container().style.cursor = 'text'\n\n if (remove) {\n node.hide()\n // 使用隐藏节点占位并覆盖堆栈中已有节点\n pubSub.pub('PUSH_HISTORY', node)\n node.remove()\n node.remove()\n }\n }\n\n this.selectedNode = null\n drawLayer.draw()\n }\n\n onEnter = (drawEventParams: DrawEventParams) => {\n const {stage, drawLayer} = drawEventParams\n const container = stage.container()\n container.style.cursor = 'text'\n container.tabIndex = 1 // make it focusable\n container.focus()\n container.addEventListener('keyup', (e: any) => {\n if (e.key === 'Backspace' && this.selectedNode) {\n this.disableTransform(drawEventParams, this.selectedNode, true)\n drawLayer.draw()\n }\n })\n }\n\n onClick = (drawEventParams: DrawEventParams) => {\n const {event, stage, drawLayer, paramValue, pubSub} = drawEventParams\n\n if (event.target.name && event.target.name() === 'text') {\n // 之前没有选中节点或者在相同节点之间切换点击\n if (!this.selectedNode || this.selectedNode._id !== event.target._id) {\n this.selectedNode && this.disableTransform(drawEventParams, this.selectedNode)\n this.enableTransform(drawEventParams, event.target)\n this.selectedNode = event.target\n }\n return\n } else if (this.selectedNode) {\n this.disableTransform(drawEventParams, this.selectedNode)\n return\n }\n\n const fontSize = (paramValue && paramValue.fontSize) ? paramValue.fontSize : this.defaultParamValue.fontSize\n const color = (paramValue && paramValue.color) ? paramValue.color : this.defaultParamValue.color\n const startPos = stage.getPointerPosition()\n\n if (!startPos) return\n\n const textNode = new Konva.Text({\n id: uuid(),\n name: 'text',\n x: startPos.x,\n y: startPos.y - 10, // fix konvajs incorrect position of text\n fontSize,\n fontStyle: 'bold',\n fill: color,\n padding: 3,\n lineHeight: 1.1,\n })\n textNode.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n\n // 由于 konvajs 的文本渲染和浏览器渲染的样式不一致,所以使用 Transformer 的边框来代替 textarea 自身的边框\n const textareaTransformer = new Konva.Transformer({\n node: textNode as any,\n enabledAnchors: [],\n rotateEnabled: false,\n borderStroke: color,\n })\n\n drawLayer.add(textNode)\n drawLayer.add(textareaTransformer)\n textNode.hide()\n drawLayer.draw()\n\n const textarea = this.createTextarea(stage, drawLayer, textareaTransformer, textNode, pubSub)\n stage.container().appendChild(textarea)\n textarea.focus()\n this.addTextareaBlurModal(stage)\n\n textNode.on('dblclick dbltap', (e) => {\n // dblclick 前会触发两次 onClick 事件,因此要清楚 onClick 事件里的状态\n this.disableTransform(drawEventParams, this.selectedNode)\n\n e.cancelBubble = true\n const textarea = this.createTextarea(stage, drawLayer, textareaTransformer, textNode, pubSub)\n stage.container().appendChild(textarea)\n textarea.focus()\n textNode.hide()\n textareaTransformer.show()\n drawLayer.draw()\n this.addTextareaBlurModal(stage)\n })\n }\n\n onLeave = (drawEventParams: DrawEventParams) => {\n const {stage} = drawEventParams\n stage.container().style.cursor = 'default'\n this.removeTextareaBlurModal()\n this.disableTransform(drawEventParams, this.selectedNode)\n }\n\n onNodeRecreate = (drawEventParams: DrawEventParams, node: any) => {\n const {pubSub} = drawEventParams\n node.on('dragend', function() {\n pubSub.pub('PUSH_HISTORY', this)\n })\n }\n}","import Arrow from './Arrow'\nimport Circle from './Circle'\nimport Crop from './Crop'\nimport Download from './Download'\nimport Eraser from './Eraser'\nimport Mosaic from './Mosaic'\nimport Pen from './Pen'\nimport Rect from './Rect'\nimport Repeal from './Repeal'\nimport Text from './Text'\n\nexport default class PluginFactory {\n plugins = [\n new Arrow(),\n new Circle(),\n new Crop(),\n new Download(),\n new Eraser(),\n new Mosaic(),\n new Pen(),\n new Rect(),\n new Repeal(),\n new Text(),\n ]\n}","/**\n * Copyright (c) 2010,2011,2012,2013,2014 Morgan Roderick http://roderick.dk\n * License: MIT - http://mrgnrdrck.mit-license.org\n *\n * https://github.com/mroderick/PubSubJS\n */\n\n(function (root, factory){\n 'use strict';\n\n var PubSub = {};\n\n if (root.PubSub) {\n PubSub = root.PubSub;\n console.warn(\"PubSub already loaded, using existing version\");\n } else {\n root.PubSub = PubSub;\n factory(PubSub);\n }\n // CommonJS and Node.js module support\n if (typeof exports === 'object'){\n if (module !== undefined && module.exports) {\n exports = module.exports = PubSub; // Node.js specific `module.exports`\n }\n exports.PubSub = PubSub; // CommonJS module 1.1.1 spec\n module.exports = exports = PubSub; // CommonJS\n }\n // AMD support\n /* eslint-disable no-undef */\n else if (typeof define === 'function' && define.amd){\n define(function() { return PubSub; });\n /* eslint-enable no-undef */\n }\n\n}(( typeof window === 'object' && window ) || this || global, function (PubSub){\n 'use strict';\n\n var messages = {},\n lastUid = -1,\n ALL_SUBSCRIBING_MSG = '*';\n\n function hasKeys(obj){\n var key;\n\n for (key in obj){\n if ( Object.prototype.hasOwnProperty.call(obj, key) ){\n return true;\n }\n }\n return false;\n }\n\n /**\n * Returns a function that throws the passed exception, for use as argument for setTimeout\n * @alias throwException\n * @function\n * @param { Object } ex An Error object\n */\n function throwException( ex ){\n return function reThrowException(){\n throw ex;\n };\n }\n\n function callSubscriberWithDelayedExceptions( subscriber, message, data ){\n try {\n subscriber( message, data );\n } catch( ex ){\n setTimeout( throwException( ex ), 0);\n }\n }\n\n function callSubscriberWithImmediateExceptions( subscriber, message, data ){\n subscriber( message, data );\n }\n\n function deliverMessage( originalMessage, matchedMessage, data, immediateExceptions ){\n var subscribers = messages[matchedMessage],\n callSubscriber = immediateExceptions ? callSubscriberWithImmediateExceptions : callSubscriberWithDelayedExceptions,\n s;\n\n if ( !Object.prototype.hasOwnProperty.call( messages, matchedMessage ) ) {\n return;\n }\n\n for (s in subscribers){\n if ( Object.prototype.hasOwnProperty.call(subscribers, s)){\n callSubscriber( subscribers[s], originalMessage, data );\n }\n }\n }\n\n function createDeliveryFunction( message, data, immediateExceptions ){\n return function deliverNamespaced(){\n var topic = String( message ),\n position = topic.lastIndexOf( '.' );\n\n // deliver the message as it is now\n deliverMessage(message, message, data, immediateExceptions);\n\n // trim the hierarchy and deliver message to each level\n while( position !== -1 ){\n topic = topic.substr( 0, position );\n position = topic.lastIndexOf('.');\n deliverMessage( message, topic, data, immediateExceptions );\n }\n\n deliverMessage(message, ALL_SUBSCRIBING_MSG, data, immediateExceptions);\n };\n }\n\n function hasDirectSubscribersFor( message ) {\n var topic = String( message ),\n found = Boolean(Object.prototype.hasOwnProperty.call( messages, topic ) && hasKeys(messages[topic]));\n\n return found;\n }\n\n function messageHasSubscribers( message ){\n var topic = String( message ),\n found = hasDirectSubscribersFor(topic) || hasDirectSubscribersFor(ALL_SUBSCRIBING_MSG),\n position = topic.lastIndexOf( '.' );\n\n while ( !found && position !== -1 ){\n topic = topic.substr( 0, position );\n position = topic.lastIndexOf( '.' );\n found = hasDirectSubscribersFor(topic);\n }\n\n return found;\n }\n\n function publish( message, data, sync, immediateExceptions ){\n message = (typeof message === 'symbol') ? message.toString() : message;\n\n var deliver = createDeliveryFunction( message, data, immediateExceptions ),\n hasSubscribers = messageHasSubscribers( message );\n\n if ( !hasSubscribers ){\n return false;\n }\n\n if ( sync === true ){\n deliver();\n } else {\n setTimeout( deliver, 0 );\n }\n return true;\n }\n\n /**\n * Publishes the message, passing the data to it's subscribers\n * @function\n * @alias publish\n * @param { String } message The message to publish\n * @param {} data The data to pass to subscribers\n * @return { Boolean }\n */\n PubSub.publish = function( message, data ){\n return publish( message, data, false, PubSub.immediateExceptions );\n };\n\n /**\n * Publishes the message synchronously, passing the data to it's subscribers\n * @function\n * @alias publishSync\n * @param { String } message The message to publish\n * @param {} data The data to pass to subscribers\n * @return { Boolean }\n */\n PubSub.publishSync = function( message, data ){\n return publish( message, data, true, PubSub.immediateExceptions );\n };\n\n /**\n * Subscribes the passed function to the passed message. Every returned token is unique and should be stored if you need to unsubscribe\n * @function\n * @alias subscribe\n * @param { String } message The message to subscribe to\n * @param { Function } func The function to call when a new message is published\n * @return { String }\n */\n PubSub.subscribe = function( message, func ){\n if ( typeof func !== 'function'){\n return false;\n }\n\n message = (typeof message === 'symbol') ? message.toString() : message;\n\n // message is not registered yet\n if ( !Object.prototype.hasOwnProperty.call( messages, message ) ){\n messages[message] = {};\n }\n\n // forcing token as String, to allow for future expansions without breaking usage\n // and allow for easy use as key names for the 'messages' object\n var token = 'uid_' + String(++lastUid);\n messages[message][token] = func;\n\n // return token for unsubscribing\n return token;\n };\n\n PubSub.subscribeAll = function( func ){\n return PubSub.subscribe(ALL_SUBSCRIBING_MSG, func);\n };\n\n /**\n * Subscribes the passed function to the passed message once\n * @function\n * @alias subscribeOnce\n * @param { String } message The message to subscribe to\n * @param { Function } func The function to call when a new message is published\n * @return { PubSub }\n */\n PubSub.subscribeOnce = function( message, func ){\n var token = PubSub.subscribe( message, function(){\n // before func apply, unsubscribe message\n PubSub.unsubscribe( token );\n func.apply( this, arguments );\n });\n return PubSub;\n };\n\n /**\n * Clears all subscriptions\n * @function\n * @public\n * @alias clearAllSubscriptions\n */\n PubSub.clearAllSubscriptions = function clearAllSubscriptions(){\n messages = {};\n };\n\n /**\n * Clear subscriptions by the topic\n * @function\n * @public\n * @alias clearAllSubscriptions\n * @return { int }\n */\n PubSub.clearSubscriptions = function clearSubscriptions(topic){\n var m;\n for (m in messages){\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0){\n delete messages[m];\n }\n }\n };\n\n /**\n Count subscriptions by the topic\n * @function\n * @public\n * @alias countSubscriptions\n * @return { Array }\n */\n PubSub.countSubscriptions = function countSubscriptions(topic){\n var m;\n // eslint-disable-next-line no-unused-vars\n var token;\n var count = 0;\n for (m in messages) {\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0) {\n for (token in messages[m]) {\n count++;\n }\n break;\n }\n }\n return count;\n };\n\n\n /**\n Gets subscriptions by the topic\n * @function\n * @public\n * @alias getSubscriptions\n */\n PubSub.getSubscriptions = function getSubscriptions(topic){\n var m;\n var list = [];\n for (m in messages){\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0){\n list.push(m);\n }\n }\n return list;\n };\n\n /**\n * Removes subscriptions\n *\n * - When passed a token, removes a specific subscription.\n *\n\t * - When passed a function, removes all subscriptions for that function\n *\n\t * - When passed a topic, removes all subscriptions for that topic (hierarchy)\n * @function\n * @public\n * @alias subscribeOnce\n * @param { String | Function } value A token, function or topic to unsubscribe from\n * @example // Unsubscribing with a token\n * var token = PubSub.subscribe('mytopic', myFunc);\n * PubSub.unsubscribe(token);\n * @example // Unsubscribing with a function\n * PubSub.unsubscribe(myFunc);\n * @example // Unsubscribing from a topic\n * PubSub.unsubscribe('mytopic');\n */\n PubSub.unsubscribe = function(value){\n var descendantTopicExists = function(topic) {\n var m;\n for ( m in messages ){\n if ( Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0 ){\n // a descendant of the topic exists:\n return true;\n }\n }\n\n return false;\n },\n isTopic = typeof value === 'string' && ( Object.prototype.hasOwnProperty.call(messages, value) || descendantTopicExists(value) ),\n isToken = !isTopic && typeof value === 'string',\n isFunction = typeof value === 'function',\n result = false,\n m, message, t;\n\n if (isTopic){\n PubSub.clearSubscriptions(value);\n return;\n }\n\n for ( m in messages ){\n if ( Object.prototype.hasOwnProperty.call( messages, m ) ){\n message = messages[m];\n\n if ( isToken && message[value] ){\n delete message[value];\n result = value;\n // tokens are unique, so we can just stop here\n break;\n }\n\n if (isFunction) {\n for ( t in message ){\n if (Object.prototype.hasOwnProperty.call(message, t) && message[t] === value){\n delete message[t];\n result = true;\n }\n }\n }\n }\n }\n\n return result;\n };\n}));\n","import pubSub from 'pubsub-js'\n\nexport default class PubSub {\n id: string\n constructor(id: string) {\n this.id = id\n }\n\n pub = (name: string, param?: any) => {\n pubSub.publish(`${this.id}_${name}`, param)\n }\n\n sub = (name: string, callback: any) => {\n pubSub.subscribe(`${this.id}_${name}`, callback)\n }\n}","import React from 'react'\n\nexport default function<CP>(Context: React.Context<CP>, shouldRender: (context: CP) => boolean = () => true) {\n return function<P extends CP>(WrappedComponent: React.ComponentClass<P>) {\n type WrappedComponentInstance = InstanceType<typeof WrappedComponent>\n type WrappedComponentProps = Omit<React.PropsWithChildren<P>, keyof CP>\n type WrappedComponentPropsWithForwardRef = WrappedComponentProps & {\n forwardRef: React.Ref<WrappedComponentInstance>;\n }\n\n const InjectContext: React.FC<WrappedComponentPropsWithForwardRef> = props => {\n const { forwardRef, ...rest } = props\n\n return (\n <Context.Consumer>\n {context =>\n shouldRender(context) ? <WrappedComponent ref={forwardRef} {...(rest as any)} {...context} /> : null\n }\n </Context.Consumer>\n )\n }\n\n return React.forwardRef<WrappedComponentInstance, WrappedComponentProps>((props, ref) => (\n <InjectContext forwardRef={ref} {...(props as any)} />\n ))\n }\n}","import React from 'react'\nimport Plugin from '../plugins/Plugin'\nimport withContext from '../common/withContext'\nimport { PluginParamValue } from '../common/type'\n\nexport interface EditorContextProps {\n containerWidth: number;\n containerHeight: number;\n plugins: Plugin[];\n toolbar: {\n items: string[];\n };\n currentPlugin: Plugin | null;\n handlePluginChange: (plugin: Plugin) => void;\n paramValue: PluginParamValue | null;\n handlePluginParamValueChange: (paramValue: PluginParamValue) => void;\n toolbarItemConfig: any;\n updateToolbarItemConfig: (config: any) => void;\n language: string;\n}\n\nexport const EditorContext = React.createContext({} as EditorContextProps)\nexport const withEditorContext = withContext<EditorContextProps>(EditorContext)","import Konva from 'konva'\nimport PubSub from '../common/PubSub'\nimport React from 'react'\nimport { EditorContextProps, withEditorContext } from './EditorContext'\nimport { DrawEventParams } from '../common/type'\nimport { prefixCls } from '../common/constants'\nimport { uuid } from '../common/utils'\nimport { Stage } from 'konva/lib/Stage'\nimport { Layer } from 'konva/lib/Layer'\n\ninterface PaletteProps extends EditorContextProps {\n height: number;\n imageObj: HTMLImageElement;\n getStage?: (stage: any) => void;\n}\n\nclass Palette extends React.Component<PaletteProps> {\n containerId = prefixCls + uuid()\n canvasWidth: number\n canvasHeight: number\n pixelRatio: number\n stage: Stage | null = null\n imageLayer: Layer | null = null\n drawLayer: Layer | null = null\n imageData: ImageData | null = null\n historyStack: any[] = []\n pubSub: InstanceType<typeof PubSub>\n\n constructor(props: PaletteProps) {\n super(props)\n\n const { containerWidth, imageObj } = props\n\n const imageNatureWidth = imageObj.naturalWidth\n const imageNatureHeight = imageObj.naturalHeight\n const wRatio = containerWidth / imageNatureWidth\n const hRatio = props.height / imageNatureHeight\n const scaleRatio = Math.min (wRatio, hRatio, 1)\n\n this.canvasWidth = Math.round(imageNatureWidth * scaleRatio)\n this.canvasHeight = Math.round(imageNatureHeight * scaleRatio)\n this.pixelRatio = 1 / scaleRatio\n\n Konva.pixelRatio = this.pixelRatio\n\n this.pubSub = new PubSub(this.containerId)\n this.subHistoryStack()\n }\n\n componentDidMount() {\n this.init()\n\n const { currentPlugin } = this.props\n if (currentPlugin && currentPlugin.onEnter) {\n currentPlugin.onEnter(this.getDrawEventParams(null))\n }\n }\n\n componentDidUpdate(prevProps: PaletteProps) {\n const prevCurrentPlugin = prevProps.currentPlugin\n const { currentPlugin } = this.props\n\n // 撤销等操作,点击后会再自动清除当前插件\n if (currentPlugin !== prevCurrentPlugin) {\n if (currentPlugin) {\n this.bindEvents()\n\n if (currentPlugin.onEnter) {\n currentPlugin.onEnter(this.getDrawEventParams(null))\n }\n }\n\n if (prevCurrentPlugin && prevCurrentPlugin.onLeave) {\n prevCurrentPlugin.onLeave(this.getDrawEventParams(null))\n }\n }\n }\n\n componentWillUnmount() {\n const { currentPlugin } = this.props\n currentPlugin && currentPlugin.onLeave && currentPlugin.onLeave(this.getDrawEventParams(null))\n }\n\n init = () => {\n const { getStage, imageObj } = this.props\n\n this.stage = new Konva.Stage({\n container: this.containerId,\n width: this.canvasWidth,\n height: this.canvasHeight,\n })\n\n getStage && getStage(this.resetStage(this.stage!))\n\n const img = new Konva.Image({\n x: 0,\n y: 0,\n image: imageObj,\n width: this.canvasWidth,\n height: this.canvasHeight,\n })\n this.imageLayer = new Konva.Layer()\n this.stage.add(this.imageLayer)\n this.imageLayer.setZIndex(0)\n this.imageLayer.add(img)\n this.imageLayer.draw()\n\n this.imageData = this.generateImageData(imageObj, this.canvasWidth, this.canvasHeight)\n\n this.drawLayer = new Konva.Layer()\n this.stage.add(this.drawLayer)\n this.bindEvents()\n }\n\n // 裁剪等操作执行后需要重新初始化\n reload = (imgObj: any, width: number, height: number) => {\n const { getStage } = this.props\n\n this.removeEvents()\n this.historyStack = []\n this.stage = new Konva.Stage({\n container: this.containerId,\n width: width,\n height: height,\n })\n\n getStage && getStage(this.resetStage(this.stage!))\n\n const img = new Konva.Image({\n x: 0,\n y: 0,\n image: imgObj,\n width: width,\n height: height,\n })\n\n this.imageLayer = new Konva.Layer()\n this.stage.add(this.imageLayer)\n this.imageLayer.add(img)\n this.imageLayer.draw()\n\n this.imageData = this.generateImageData(imgObj, width, height)\n\n this.drawLayer = new Konva.Layer()\n this.stage.add(this.drawLayer)\n this.bindEvents()\n }\n\n resetStage = (stage: Stage) => {\n // @ts-ignore\n stage._pixelRatio = this.pixelRatio\n // @ts-ignore\n stage.clearAndToCanvas = (config: any) => {\n const { currentPlugin } = this.props\n currentPlugin && currentPlugin.onLeave && currentPlugin.onLeave(this.getDrawEventParams(null))\n return stage.toCanvas(config)\n }\n return stage\n }\n\n bindEvents = () => {\n if (!this.stage || !this.drawLayer) return\n\n const { plugins, currentPlugin, handlePluginChange } = this.props\n this.removeEvents()\n this.stage.add(this.drawLayer)\n this.drawLayer.setZIndex(1)\n\n this.stage.on('click tap', (e: any) => {\n if (e.target.name && e.target.name()) {\n const name = e.target.name()\n for (let i = 0; i < plugins.length; i++) {\n // 点击具体图形,会切到对应的插件去\n if (plugins[i].shapeName && plugins[i].shapeName === name\n && (!currentPlugin || !currentPlugin.shapeName || name !== currentPlugin.shapeName)) {\n ((event: any) => {\n setTimeout(() => {\n plugins[i].onClick && plugins[i].onClick!(this.getDrawEventParams(event))\n })\n })(e)\n handlePluginChange(plugins[i])\n return\n }\n }\n }\n\n if (currentPlugin && currentPlugin.onClick) {\n currentPlugin.onClick(this.getDrawEventParams(e))\n }\n })\n\n this.stage.on('mousedown touchstart', (e: any) => {\n if (currentPlugin && currentPlugin.onDrawStart) {\n currentPlugin.onDrawStart(this.getDrawEventParams(e))\n }\n })\n\n this.stage.on('mousemove touchmove', (e: any) => {\n if (currentPlugin && currentPlugin.onDraw) {\n currentPlugin.onDraw(this.getDrawEventParams(e))\n }\n })\n\n this.stage.on('mouseup touchend', (e: any) => {\n if (currentPlugin && currentPlugin.onDrawEnd) {\n currentPlugin.onDrawEnd(this.getDrawEventParams(e))\n }\n })\n }\n\n removeEvents = () => {\n if (!this.stage) return\n\n this.stage.off('click tap')\n this.stage.off('mousedown touchstart')\n this.stage.off('mousemove touchmove')\n this.stage.off('mouseup touchend')\n }\n\n subHistoryStack = () => {\n this.pubSub.sub('PUSH_HISTORY', (_: any, node: any) => {\n const { toolbarItemConfig, updateToolbarItemConfig } = this.props\n // 撤销按钮更新为激活状态\n if (this.historyStack.length === 0) {\n const newToolbarItemConfig = { ...toolbarItemConfig }\n if (newToolbarItemConfig.repeal) {\n newToolbarItemConfig.repeal.disable = false\n updateToolbarItemConfig(newToolbarItemConfig)\n }\n }\n this.historyStack.push(node.toObject())\n })\n\n // 仅接收状态,不实际 pop history\n this.pubSub.sub('POP_HISTORY', (_: any, historyStack: any[]) => {\n const { toolbarItemConfig, updateToolbarItemConfig } = this.props\n if (historyStack.length === 0) {\n const newToolbarItemConfig = { ...toolbarItemConfig }\n if (newToolbarItemConfig.repeal) {\n newToolbarItemConfig.repeal.disable = true\n updateToolbarItemConfig(newToolbarItemConfig)\n }\n }\n })\n }\n\n // 主要用于在马赛克时,进行图片像素处理\n generateImageData = (imgObj: any, width: number, height: number) => {\n const canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n const ctx = canvas.getContext('2d')\n ctx!.drawImage(imgObj, 0, 0, width, height)\n return ctx!.getImageData(0, 0, width, height)\n }\n\n // 生命周期的统一参数生成函数\n getDrawEventParams = (e: any) => {\n const props = this.props\n const drawEventParams: DrawEventParams = {\n event: e,\n stage: this.stage!,\n imageLayer: this.imageLayer!,\n drawLayer: this.drawLayer!,\n imageData: this.imageData!,\n reload: this.reload,\n historyStack: this.historyStack,\n pixelRatio: this.pixelRatio,\n pubSub: this.pubSub,\n // editor context\n containerWidth: props.containerWidth,\n containerHeight: props.containerHeight,\n plugins: props.plugins,\n toolbar: props.toolbar,\n currentPlugin: props.currentPlugin,\n handlePluginChange: props.handlePluginChange,\n paramValue: props.paramValue,\n handlePluginParamValueChange: props.handlePluginParamValueChange,\n toolbarItemConfig: props.toolbarItemConfig,\n updateToolbarItemConfig: props.updateToolbarItemConfig,\n language: props.language,\n }\n\n return drawEventParams\n }\n\n render() {\n const { height, containerWidth } = this.props\n const style = {\n width: containerWidth,\n height: height, // 高度是用户设置的高度减掉工具栏的高度\n }\n\n return (\n <div className={`${prefixCls}-palette`} style={style}>\n <div id={this.containerId} className={`${prefixCls}-container`} />\n </div>\n )\n }\n}\n\nexport default withEditorContext(Palette)","import React from 'react'\nimport { prefixCls } from '../../common/constants'\n\ninterface ColorSettingProps {\n value?: string;\n onChange: (color: string) => void;\n}\n\nconst colors = ['#F5222D', '#FFEB00', '#00B4FF', '#52C51A ', '#19191A', '#FFFFFF']\n\nexport default function ColorSetting(props: ColorSettingProps) {\n return (\n <span style={{ margin: '0 8px', fontSize: 0 }}>\n {\n colors.map(color => {\n return (\n <span\n key={color}\n className={`${prefixCls}-color-square ${props.value === color ? prefixCls + '-color-square-activated' : ''}`}\n style={{ backgroundColor: color }}\n onClick={() => props.onChange(color)}\n />\n )\n })\n }\n </span>\n )\n}","import React from 'react'\nimport { prefixCls } from '../../common/constants'\n\ninterface FontSizeSettingProps {\n value?: number;\n onChange: (fontSize: number) => void;\n}\n\nexport default function FontSizeSetting(props: FontSizeSettingProps) {\n return (\n <span style={{ margin: '0 8px' }}>\n <button\n className={`${prefixCls}-font-size ${props.value === 16 ? prefixCls + '-font-size-activated' : ''}`}\n onClick={() => props.onChange(16)}\n >S</button>\n <button\n className={`${prefixCls}-font-size ${props.value === 24 ? prefixCls + '-font-size-activated' : ''}`}\n onClick={() => props.onChange(24)}\n >M</button>\n <button\n className={`${prefixCls}-font-size ${props.value === 32 ? prefixCls + '-font-size-activated' : ''}`}\n onClick={() => props.onChange(32)}\n >L</button>\n </span>\n )\n}","import React from 'react'\nimport { prefixCls } from '../../common/constants'\n\ninterface LineTypeSettingProps {\n value?: string;\n onChange: (lineType: 'solid' | 'dash') => void;\n}\n\nexport default function LineTypeSetting(props: LineTypeSettingProps) {\n return (\n <>\n <i\n className={`iconfont icon-line2 ${prefixCls}-line-type\n ${props.value === 'solid' ? prefixCls + '-line-type-activated' : ''}`}\n onClick={() => props.onChange('solid')}\n />\n <i\n className={`iconfont icon-dotted-line ${prefixCls}-line-type\n ${props.value === 'dash' ? prefixCls + '-line-type-activated' : ''}`}\n onClick={() => props.onChange('dash')}\n />\n </>\n )\n}","import React from 'react'\nimport { prefixCls } from '../../common/constants'\n\ninterface StrokeWidthSettingProps {\n value?: number;\n onChange: (strokeWidth: number) => void;\n}\n\nexport default function StrokeWidthSetting(props: StrokeWidthSettingProps) {\n return (\n <>\n <span\n className={`${prefixCls}-stroke-circle ${prefixCls}-stroke-circle-small\n ${props.value === 2 ? prefixCls + '-stroke-circle-activated' : ''}`}\n onClick={() => props.onChange(2)}\n />\n <span\n className={`${prefixCls}-stroke-circle ${prefixCls}-stroke-circle-medium\n ${props.value === 6 ? prefixCls + '-stroke-circle-activated' : ''}`}\n onClick={() => props.onChange(6)}\n />\n <span\n className={`${prefixCls}-stroke-circle ${prefixCls}-stroke-circle-large\n ${props.value === 8 ? prefixCls + '-stroke-circle-activated' : ''}`}\n onClick={() => props.onChange(8)}\n />\n </>\n )\n}","import ColorSetting from './ColorSetting'\nimport FontSizeSetting from './FontSizeSetting'\nimport LineTypeSetting from './LineTypeSetting'\nimport React from 'react'\nimport StrokeWidthSetting from './StrokeWidthSetting'\nimport { PluginParamName, PluginParamValue } from '../../common/type'\nimport { prefixCls } from '../../common/constants'\n\ninterface ParamSettingProps {\n paramNames: PluginParamName[];\n paramValue: PluginParamValue | null;\n onChange: (value: PluginParamValue) => void;\n}\n\nexport default function ParamSetting(props: ParamSettingProps) {\n function handleStrokeWidthChange(strokeWidth: number) {\n props.onChange({ ...props.paramValue, strokeWidth })\n }\n\n function handleLineTypeChange(lineType: 'solid' | 'dash') {\n props.onChange({ ...props.paramValue, lineType })\n }\n\n function handleColorChange(color: string) {\n props.onChange({ ...props.paramValue, color })\n }\n\n function handleFontSizeChange(fontSize: number) {\n props.onChange({ ...props.paramValue, fontSize })\n }\n\n function renderParamComponent(paramName: PluginParamName) {\n switch (paramName) {\n case 'strokeWidth':\n return (\n <StrokeWidthSetting\n key=\"stroke-width-setting\"\n value={props.paramValue ? props.paramValue['strokeWidth'] : undefined}\n onChange={handleStrokeWidthChange}\n />\n )\n case 'lineType':\n return (\n <LineTypeSetting\n key=\"line-type-setting\"\n value={props.paramValue ? props.paramValue['lineType'] : undefined}\n onChange={handleLineTypeChange}\n />\n )\n case 'color':\n return (\n <ColorSetting\n key=\"color-setting\"\n value={props.paramValue ? props.paramValue['color'] : undefined}\n onChange={handleColorChange}\n />\n )\n case 'fontSize':\n return (\n <FontSizeSetting\n key=\"font-size-setting\"\n value={props.paramValue ? props.paramValue['fontSize'] : undefined}\n onChange={handleFontSizeChange}\n />\n )\n default:\n return null\n }\n }\n\n return (\n <div className={`${prefixCls}-param-setting`}>\n {\n props.paramNames.map(paramName => (\n renderParamComponent(paramName)\n ))\n }\n </div>\n )\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Popup(props) {\n var children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n innerStyle = props.overlayInnerStyle,\n bodyClassName = props.bodyClassName,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-inner\"), bodyClassName),\n id: id,\n role: \"tooltip\",\n style: innerStyle\n }, typeof children === 'function' ? children() : children));\n}","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar REACT_ELEMENT_TYPE_18 = Symbol.for('react.element');\nvar REACT_ELEMENT_TYPE_19 = Symbol.for('react.transitional.element');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\n\n/**\n * Compatible with React 18 or 19 to check if node is a Fragment.\n */\nexport default function isFragment(object) {\n return (\n // Base object type\n object && _typeof(object) === 'object' && (\n // React Element type\n object.$$typeof === REACT_ELEMENT_TYPE_18 || object.$$typeof === REACT_ELEMENT_TYPE_19) &&\n // React Fragment type\n object.type === REACT_FRAGMENT_TYPE\n );\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement, version } from 'react';\nimport { ForwardRef, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nimport isFragment from \"./React/isFragment\";\nvar ReactMajorVersion = Number(version.split('.')[0]);\nexport var fillRef = function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(Boolean);\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n};\nexport var useComposeRef = function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n if (!nodeOrComponent) {\n return false;\n }\n\n // React 19 no need `forwardRef` anymore. So just pass if is a React element.\n if (isReactElement(nodeOrComponent) && ReactMajorVersion >= 19) {\n return true;\n }\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n return false;\n }\n return true;\n};\nfunction isReactElement(node) {\n return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = function getNodeRef(node) {\n if (node && isReactElement(node)) {\n var ele = node;\n\n // Source from:\n // https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/getReactNodeRef/getReactNodeRef.ts\n return ele.props.propertyIsEnumerable('ref') ? ele.props.ref : ele.ref;\n }\n return null;\n};","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = _objectSpread(_objectSpread({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","/* eslint-disable no-param-reassign */\nimport { removeCSS, updateCSS } from \"./Dom/dynamicCSS\";\nvar cached;\nfunction measureScrollbarSize(ele) {\n var randomId = \"rc-scrollbar-measure-\".concat(Math.random().toString(36).substring(7));\n var measureEle = document.createElement('div');\n measureEle.id = randomId;\n\n // Create Style\n var measureStyle = measureEle.style;\n measureStyle.position = 'absolute';\n measureStyle.left = '0';\n measureStyle.top = '0';\n measureStyle.width = '100px';\n measureStyle.height = '100px';\n measureStyle.overflow = 'scroll';\n\n // Clone Style if needed\n var fallbackWidth;\n var fallbackHeight;\n if (ele) {\n var targetStyle = getComputedStyle(ele);\n measureStyle.scrollbarColor = targetStyle.scrollbarColor;\n measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;\n\n // Set Webkit style\n var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');\n var width = parseInt(webkitScrollbarStyle.width, 10);\n var height = parseInt(webkitScrollbarStyle.height, 10);\n\n // Try wrap to handle CSP case\n try {\n var widthStyle = width ? \"width: \".concat(webkitScrollbarStyle.width, \";\") : '';\n var heightStyle = height ? \"height: \".concat(webkitScrollbarStyle.height, \";\") : '';\n updateCSS(\"\\n#\".concat(randomId, \"::-webkit-scrollbar {\\n\").concat(widthStyle, \"\\n\").concat(heightStyle, \"\\n}\"), randomId);\n } catch (e) {\n // Can't wrap, just log error\n console.error(e);\n\n // Get from style directly\n fallbackWidth = width;\n fallbackHeight = height;\n }\n }\n document.body.appendChild(measureEle);\n\n // Measure. Get fallback style if provided\n var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;\n var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;\n\n // Clean up\n document.body.removeChild(measureEle);\n removeCSS(randomId);\n return {\n width: scrollWidth,\n height: scrollHeight\n };\n}\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n cached = measureScrollbarSize();\n }\n return cached.width;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n return measureScrollbarSize(target);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import isFragment from \"../React/isFragment\";\nimport React from 'react';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.\n */\nexport function getDOM(node) {\n if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) {\n return node.nativeElement;\n }\n if (isDOM(node)) {\n return node;\n }\n return null;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n var domNode = getDOM(node);\n if (domNode) {\n return domNode;\n }\n if (node instanceof React.Component) {\n var _ReactDOM$findDOMNode;\n return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node);\n }\n return null;\n}","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { supportRef, useComposeRef, getNodeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { CollectionContext } from \"../Collection\";\nimport { observe, unobserve } from \"../utils/observerUtil\";\nimport DomWrapper from \"./DomWrapper\";\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? getNodeRef(mergedChildren) : null;\n var mergedRef = useComposeRef(originRef, elementRef);\n var getDom = function getDom() {\n var _elementRef$current;\n return findDOMNode(elementRef.current) || (\n // Support `nativeElement` format\n elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from \"./SingleObserver\";\nimport { Collection } from \"./Collection\";\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from \"./utils/observerUtil\";\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nvar useOriginId = getUseId();\nexport default useOriginId ?\n// Use React `useId`\nfunction useId(id) {\n var reactId = useOriginId();\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n return reactId;\n} :\n// Use compatible of `useId`\nfunction useCompatId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return innerId;\n};","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from \"./useEvent\";\n/**\n * Same as React.useState but will always get latest state.\n * This is useful when React merge multiple state updates into one.\n * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.\n */\nexport default function useSyncState(defaultValue) {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n var currentValueRef = React.useRef(defaultValue);\n var getValue = useEvent(function () {\n return currentValueRef.current;\n });\n var setValue = useEvent(function (updater) {\n currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;\n forceUpdate();\n });\n return [getValue, setValue];\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (onInternalMotionEnd) {\n var cacheElementRef = useRef();\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nexport default wrapperRaf;","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport useState from \"rc-util/es/hooks/useState\";\nimport useSyncState from \"rc-util/es/hooks/useSyncState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useSyncState = useSyncState(STATUS_NONE),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n getStatus = _useSyncState2[0],\n setStatus = _useSyncState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n style = _useState4[0],\n setStyle = _useState4[1];\n var currentStatus = getStatus();\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE);\n setStyle(null, true);\n }\n var onInternalMotionEnd = useEvent(function (event) {\n var status = getStatus();\n // Do nothing since not in any transition status.\n // This may happen when `motionDeadline` trigger.\n if (status === STATUS_NONE) {\n return;\n }\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n });\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onAppearPrepare), STEP_START, onAppearStart), STEP_ACTIVE, onAppearActive);\n case STATUS_ENTER:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onEnterPrepare), STEP_START, onEnterStart), STEP_ACTIVE, onEnterActive);\n case STATUS_LEAVE:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onLeavePrepare), STEP_START, onLeaveStart), STEP_ACTIVE, onLeaveActive);\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(currentStatus);\n }, [currentStatus]);\n var _useStepQueue = useStepQueue(currentStatus, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE && currentStatus !== STATUS_NONE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n var visibleRef = useRef(null);\n\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n // When use Suspense, the `visible` will repeat trigger,\n // But not real change of the `visible`, we need to skip it.\n // https://github.com/ant-design/ant-design/issues/44379\n if (mountedRef.current && visibleRef.current === visible) {\n return;\n }\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n visibleRef.current = visible;\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n currentStatus === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n currentStatus === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n currentStatus === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && currentStatus === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, currentStatus]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, getNodeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), _defineProperty(_defineProperty({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var originNodeRef = getNodeRef(motionChildren);\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n _this.setState(function (prevState) {\n var nextKeyEntities = prevState.keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n return {\n keyEntities: nextKeyEntities\n };\n }, function () {\n var keyEntities = _this.state.keyEntities;\n var restKeysCount = keyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n if (restKeysCount === 0 && _this.props.onAllRemoved) {\n _this.props.onAllRemoved();\n }\n });\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), function (props, ref) {\n return children(_objectSpread(_objectSpread({}, props), {}, {\n index: index\n }), ref);\n });\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Arrow(props) {\n var prefixCls = props.prefixCls,\n align = props.align,\n arrow = props.arrow,\n arrowPos = props.arrowPos;\n var _ref = arrow || {},\n className = _ref.className,\n content = _ref.content;\n var _arrowPos$x = arrowPos.x,\n x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,\n _arrowPos$y = arrowPos.y,\n y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;\n var arrowRef = React.useRef();\n\n // Skip if no align\n if (!align || !align.points) {\n return null;\n }\n var alignStyle = {\n position: 'absolute'\n };\n\n // Skip if no need to align\n if (align.autoArrow !== false) {\n var popupPoints = align.points[0];\n var targetPoints = align.points[1];\n var popupTB = popupPoints[0];\n var popupLR = popupPoints[1];\n var targetTB = targetPoints[0];\n var targetLR = targetPoints[1];\n\n // Top & Bottom\n if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n alignStyle.top = y;\n } else if (popupTB === 't') {\n alignStyle.top = 0;\n } else {\n alignStyle.bottom = 0;\n }\n\n // Left & Right\n if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n alignStyle.left = x;\n } else if (popupLR === 'l') {\n alignStyle.left = 0;\n } else {\n alignStyle.right = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), className),\n style: alignStyle\n }, content);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n open = props.open,\n zIndex = props.zIndex,\n mask = props.mask,\n motion = props.motion;\n if (!mask) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n motionAppear: true,\n visible: open,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import * as React from 'react';\nvar PopupContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, next) {\n return next.cache;\n});\nif (process.env.NODE_ENV !== 'production') {\n PopupContent.displayName = 'PopupContent';\n}\nexport default PopupContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nimport PopupContent from \"./PopupContent\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n fresh = props.fresh,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n arrowPos = props.arrowPos,\n align = props.align,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onPointerEnter = props.onPointerEnter,\n onPointerDownCapture = props.onPointerDownCapture,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n offsetR = props.offsetR,\n offsetB = props.offsetB,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n useLayoutEffect(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var AUTO = 'auto';\n var offsetStyle = {\n left: '-1000vw',\n top: '-1000vh',\n right: AUTO,\n bottom: AUTO\n };\n\n // Set align style\n if (ready || !open) {\n var _experimental;\n var points = align.points;\n var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n var alignRight = dynamicInset && points[0][1] === 'r';\n var alignBottom = dynamicInset && points[0][0] === 'b';\n if (alignRight) {\n offsetStyle.right = offsetR;\n offsetStyle.left = AUTO;\n } else {\n offsetStyle.left = offsetX;\n offsetStyle.right = AUTO;\n }\n if (alignBottom) {\n offsetStyle.bottom = offsetB;\n offsetStyle.top = AUTO;\n } else {\n offsetStyle.top = offsetY;\n offsetStyle.bottom = AUTO;\n }\n }\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classNames(prefixCls, motionClassName, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: composeRef(resizeObserverRef, ref, motionRef),\n className: cls,\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n }, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onClick: onClick,\n onPointerDownCapture: onPointerDownCapture\n }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n prefixCls: prefixCls,\n arrow: arrow,\n arrowPos: arrowPos,\n align: align\n }), /*#__PURE__*/React.createElement(PopupContent, {\n cache: !open && !fresh\n }, childNode));\n });\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popup.displayName = 'Popup';\n}\nexport default Popup;","import { fillRef, getNodeRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n getTriggerDOMNode = props.getTriggerDOMNode;\n var canUseRef = supportRef(children);\n\n // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n var setRef = React.useCallback(function (node) {\n fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n }, [getTriggerDOMNode]);\n var mergedRef = useComposeRef(setRef, getNodeRef(children));\n return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import * as React from 'react';\nfunction toArray(val) {\n return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n return React.useMemo(function () {\n var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n var showActionSet = new Set(mergedShowAction);\n var hideActionSet = new Set(mergedHideAction);\n if (mobile) {\n if (showActionSet.has('hover')) {\n showActionSet.delete('hover');\n showActionSet.add('click');\n }\n if (hideActionSet.has('hover')) {\n hideActionSet.delete('hover');\n hideActionSet.add('click');\n }\n }\n return [showActionSet, hideActionSet];\n }, [mobile, action, showAction, hideAction]);\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n for (var i = 0; i < placements.length; i += 1) {\n var _builtinPlacements$pl;\n var placement = placements[i];\n if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n if (motion) {\n return motion;\n }\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n return null;\n}\nexport function getWin(ele) {\n return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele The element to be detected\n * @param areaOnly Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n var scrollerList = [];\n var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];\n while (current) {\n var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n overflowX = _getWin$getComputedSt.overflowX,\n overflowY = _getWin$getComputedSt.overflowY,\n overflow = _getWin$getComputedSt.overflow;\n if ([overflowX, overflowY, overflow].some(function (o) {\n return scrollStyle.includes(o);\n })) {\n scrollerList.push(current);\n }\n current = current.parentElement;\n }\n return scrollerList;\n}\nexport function toNum(num) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Number.isNaN(num) ? defaultValue : num;\n}\nfunction getPxValue(val) {\n return toNum(parseFloat(val), 0);\n}\n/**\n *\n *\n * **************************************\n * * Border *\n * * ************************** *\n * * * * * *\n * * B * * S * B *\n * * o * * c * o *\n * * r * Content * r * r *\n * * d * * o * d *\n * * e * * l * e *\n * * r ******************** l * r *\n * * * Scroll * *\n * * ************************** *\n * * Border *\n * **************************************\n *\n */\n/**\n * Get visible area of element\n */\nexport function getVisibleArea(initArea, scrollerList) {\n var visibleArea = _objectSpread({}, initArea);\n (scrollerList || []).forEach(function (ele) {\n if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {\n return;\n }\n\n // Skip if static position which will not affect visible area\n var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n overflow = _getWin$getComputedSt2.overflow,\n overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,\n borderTopWidth = _getWin$getComputedSt2.borderTopWidth,\n borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,\n borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,\n borderRightWidth = _getWin$getComputedSt2.borderRightWidth;\n var eleRect = ele.getBoundingClientRect();\n var eleOutHeight = ele.offsetHeight,\n eleInnerHeight = ele.clientHeight,\n eleOutWidth = ele.offsetWidth,\n eleInnerWidth = ele.clientWidth;\n var borderTopNum = getPxValue(borderTopWidth);\n var borderBottomNum = getPxValue(borderBottomWidth);\n var borderLeftNum = getPxValue(borderLeftWidth);\n var borderRightNum = getPxValue(borderRightWidth);\n var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n\n // Original visible area\n var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;\n var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;\n\n // Cut border size\n var scaledBorderTopWidth = borderTopNum * scaleY;\n var scaledBorderBottomWidth = borderBottomNum * scaleY;\n var scaledBorderLeftWidth = borderLeftNum * scaleX;\n var scaledBorderRightWidth = borderRightNum * scaleX;\n\n // Clip margin\n var clipMarginWidth = 0;\n var clipMarginHeight = 0;\n if (overflow === 'clip') {\n var clipNum = getPxValue(overflowClipMargin);\n clipMarginWidth = clipNum * scaleX;\n clipMarginHeight = clipNum * scaleY;\n }\n\n // Region\n var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;\n var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;\n var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;\n var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;\n visibleArea.left = Math.max(visibleArea.left, eleLeft);\n visibleArea.top = Math.max(visibleArea.top, eleTop);\n visibleArea.right = Math.min(visibleArea.right, eleRight);\n visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n });\n return visibleArea;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction getUnitOffset(size) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var offsetStr = \"\".concat(offset);\n var cells = offsetStr.match(/^(.*)\\%$/);\n if (cells) {\n return size * (parseFloat(cells[1]) / 100);\n }\n return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n var _ref = offset || [],\n _ref2 = _slicedToArray(_ref, 2),\n offsetX = _ref2[0],\n offsetY = _ref2[1];\n return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = React.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n offsetR: 0,\n offsetB: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = React.useRef(0);\n var scrollerList = React.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return collectScroller(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = React.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = useEvent(function () {\n if (popupEle && target && open) {\n var _popupElement$parentE, _popupRect$x, _popupRect$y, _popupElement$parentE2;\n var popupElement = popupEle;\n var doc = popupElement.ownerDocument;\n var win = getWin(popupElement);\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n popupPosition = _win$getComputedStyle.position;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var originRight = popupElement.style.right;\n var originBottom = popupElement.style.bottom;\n var originOverflow = popupElement.style.overflow;\n\n // Placement\n var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n // placeholder element\n var placeholderElement = doc.createElement('div');\n (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n placeholderElement.style.position = popupPosition;\n placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n popupElement.style.right = 'auto';\n popupElement.style.bottom = 'auto';\n popupElement.style.overflow = 'hidden';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var _rect$x, _rect$y;\n var rect = target.getBoundingClientRect();\n rect.x = (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left;\n rect.y = (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top;\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n var _win$getComputedStyle2 = win.getComputedStyle(popupElement),\n height = _win$getComputedStyle2.height,\n width = _win$getComputedStyle2.width;\n popupRect.x = (_popupRect$x = popupRect.x) !== null && _popupRect$x !== void 0 ? _popupRect$x : popupRect.left;\n popupRect.y = (_popupRect$y = popupRect.y) !== null && _popupRect$y !== void 0 ? _popupRect$y : popupRect.top;\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleRegion = {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n var scrollRegion = {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n };\n var htmlRegion = placementInfo.htmlRegion;\n var VISIBLE = 'visible';\n var VISIBLE_FIRST = 'visibleFirst';\n if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n htmlRegion = VISIBLE;\n }\n var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n var scrollRegionArea = getVisibleArea(scrollRegion, scrollerList);\n var visibleRegionArea = getVisibleArea(visibleRegion, scrollerList);\n var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n // When set to `visibleFirst`,\n // the check `adjust` logic will use `visibleRegion` for check first.\n var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n // Record right & bottom align data\n popupElement.style.left = 'auto';\n popupElement.style.top = 'auto';\n popupElement.style.right = '0';\n popupElement.style.bottom = '0';\n var popupMirrorRect = popupElement.getBoundingClientRect();\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n popupElement.style.right = originRight;\n popupElement.style.bottom = originBottom;\n popupElement.style.overflow = originOverflow;\n (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n // Calculate scale\n var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _getNumberOffset = getNumberOffset(popupRect, offset),\n _getNumberOffset2 = _slicedToArray(_getNumberOffset, 2),\n popupOffsetX = _getNumberOffset2[0],\n popupOffsetY = _getNumberOffset2[1];\n var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n _getNumberOffset4 = _slicedToArray(_getNumberOffset3, 2),\n targetOffsetX = _getNumberOffset4[0],\n targetOffsetY = _getNumberOffset4[1];\n targetRect.x -= targetOffsetX;\n targetRect.y -= targetOffsetY;\n\n // Points\n var _ref3 = placementInfo.points || [],\n _ref4 = _slicedToArray(_ref3, 2),\n popupPoint = _ref4[0],\n targetPoint = _ref4[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = _objectSpread({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, area.left);\n var visibleT = Math.max(t, area.top);\n var visibleR = Math.min(r, area.right);\n var visibleB = Math.min(b, area.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // As `visibleFirst`, we prepare this for check\n var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleRegionArea.left) {\n nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleRegionArea.right) {\n nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n if (targetRect.x > visibleRegionArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleRegionArea.top) {\n nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n // When target if far away from visible area\n // Stop shift\n if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleRegionArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n // Additional calculate right & bottom position\n var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n if (_scaleX === 1) {\n nextOffsetX = Math.round(nextOffsetX);\n offsetX4Right = Math.round(offsetX4Right);\n }\n if (_scaleY === 1) {\n nextOffsetY = Math.round(nextOffsetY);\n offsetY4Bottom = Math.round(offsetY4Bottom);\n }\n var nextOffsetInfo = {\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n offsetR: offsetX4Right / _scaleX,\n offsetB: offsetY4Bottom / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n };\n setOffsetInfo(nextOffsetInfo);\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, {\n ready: false\n });\n });\n };\n useLayoutEffect(resetReady, [placement]);\n useLayoutEffect(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign, onScroll) {\n useLayoutEffect(function () {\n if (open && target && popup) {\n var targetElement = target;\n var popupElement = popup;\n var targetScrollList = collectScroller(targetElement);\n var popupScrollList = collectScroller(popupElement);\n var win = getWin(popupElement);\n var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n function notifyScroll() {\n onAlign();\n onScroll();\n }\n mergedList.forEach(function (scroller) {\n scroller.addEventListener('scroll', notifyScroll, {\n passive: true\n });\n });\n win.addEventListener('resize', notifyScroll, {\n passive: true\n });\n\n // First time always do align\n onAlign();\n return function () {\n mergedList.forEach(function (scroller) {\n scroller.removeEventListener('scroll', notifyScroll);\n win.removeEventListener('resize', notifyScroll);\n });\n };\n }\n }, [open, target, popup]);\n}","import { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { getWin } from \"../util\";\nexport default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n var openRef = React.useRef(open);\n openRef.current = open;\n var popupPointerDownRef = React.useRef(false);\n\n // Click to hide is special action since click popup element should not hide\n React.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var onPointerDown = function onPointerDown() {\n popupPointerDownRef.current = false;\n };\n var onTriggerClose = function onTriggerClose(e) {\n var _e$composedPath;\n if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target) && !popupPointerDownRef.current) {\n triggerOpen(false);\n }\n };\n var win = getWin(popupEle);\n win.addEventListener('pointerdown', onPointerDown, true);\n win.addEventListener('mousedown', onTriggerClose, true);\n win.addEventListener('contextmenu', onTriggerClose, true);\n\n // shadow root\n var targetShadowRoot = getShadowRoot(targetEle);\n if (targetShadowRoot) {\n targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);\n }\n\n // Warning if target and popup not in same root\n if (process.env.NODE_ENV !== 'production') {\n var _targetEle$getRootNod, _popupEle$getRootNode;\n var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('pointerdown', onPointerDown, true);\n win.removeEventListener('mousedown', onTriggerClose, true);\n win.removeEventListener('contextmenu', onTriggerClose, true);\n if (targetShadowRoot) {\n targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n function onPopupPointerDown() {\n popupPointerDownRef.current = true;\n }\n return onPopupPointerDown;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport useWinClick from \"./hooks/useWinClick\";\nimport { getAlignPopupClassName, getMotion } from \"./util\";\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nexport function generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n fresh = props.fresh,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = React.useRef({});\n var parentContext = React.useContext(TriggerContext);\n var context = React.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = useId();\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n\n // Used for forwardRef popup. Not use internal\n var externalPopupRef = React.useRef(null);\n var setPopupRef = useEvent(function (node) {\n externalPopupRef.current = node;\n if (isDOM(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n\n // Used for forwardRef target. Not use internal\n var externalForwardRef = React.useRef(null);\n var setTargetRef = useEvent(function (node) {\n if (isDOM(node) && targetEle !== node) {\n setTargetEle(node);\n externalForwardRef.current = node;\n }\n });\n\n // ========================== Children ==========================\n var child = React.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = useEvent(function (ele) {\n var _getShadowRoot, _getShadowRoot2;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = getShadowRoot(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = getShadowRoot(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = React.useState(defaultPopupVisible || false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = useEvent(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n useLayoutEffect(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = React.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var lastTriggerRef = React.useRef([]);\n lastTriggerRef.current = [];\n var internalTriggerOpen = useEvent(function (nextOpen) {\n var _lastTriggerRef$curre;\n setMergedOpen(nextOpen);\n\n // Enter or Pointer will both trigger open state change\n // We only need take one to avoid duplicated change event trigger\n // Use `lastTriggerRef` to record last open type\n if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n lastTriggerRef.current.push(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n }\n });\n\n // Trigger for delay\n var delayRef = React.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n React.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n useLayoutEffect(function (firstMount) {\n if (!firstMount || mergedOpen) {\n setInMotion(true);\n }\n }, [mergedOpen]);\n var _React$useState11 = React.useState(null),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = React.useState(null),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = useAlign(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = _slicedToArray(_useAlign, 11),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n offsetR = _useAlign2[3],\n offsetB = _useAlign2[4],\n arrowX = _useAlign2[5],\n arrowY = _useAlign2[6],\n scaleX = _useAlign2[7],\n scaleY = _useAlign2[8],\n alignInfo = _useAlign2[9],\n onAlign = _useAlign2[10];\n var _useAction = useAction(mobile, action, showAction, hideAction),\n _useAction2 = _slicedToArray(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n var triggerAlign = useEvent(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n var onScroll = function onScroll() {\n if (openRef.current && alignPoint && clickToHide) {\n triggerOpen(false);\n }\n };\n useWatch(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n useLayoutEffect(function () {\n triggerAlign();\n }, [mousePos, popupPlacement]);\n\n // When no builtinPlacements and popupAlign changed\n useLayoutEffect(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = React.useMemo(function () {\n var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n // ============================ Refs ============================\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: externalForwardRef.current,\n popupElement: externalPopupRef.current,\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Stretch ===========================\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var syncTargetSize = function syncTargetSize() {\n if (stretch && targetEle) {\n var rect = targetEle.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n var onTargetResize = function onTargetResize() {\n syncTargetSize();\n triggerAlign();\n };\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n syncTargetSize();\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n useLayoutEffect(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // =========================== Action ===========================\n /**\n * Util wrapper for trigger action\n */\n function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 || preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n }\n\n // ======================= Action: Click ========================\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n var onPopupPointerDown = useWinClick(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n // Compatible with old browser which not support pointer event\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter(event) {\n // Only trigger re-open when popup is visible\n if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n triggerOpen(true, mouseEnterDelay);\n }\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n if (openRef.current && hideActions.has('contextMenu')) {\n triggerOpen(false);\n } else {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n event.preventDefault();\n\n // Pass to origin\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classNames(originChildProps.className, className);\n }\n\n // ============================ Perf ============================\n var renderedRef = React.useRef(false);\n renderedRef.current || (renderedRef.current = forceRender || mergedOpen || inMotion);\n\n // =========================== Render ===========================\n var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n var arrowPos = {\n x: arrowX,\n y: arrowY\n };\n var innerArrow = arrow ? _objectSpread({}, arrow !== true ? arrow : {}) : null;\n\n // Render\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), renderedRef.current && /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Popup, {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classNames(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave\n // https://github.com/ant-design/ant-design/issues/43924\n ,\n onPointerEnter: onPopupMouseEnter,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion,\n fresh: fresh\n // Click\n ,\n onClick: onPopupClick,\n onPointerDownCapture: onPopupPointerDown\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: innerArrow,\n arrowPos: arrowPos\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n offsetR: offsetR,\n offsetB: offsetB,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflowTopBottom = {\n shiftX: 64,\n adjustY: 1\n};\nvar autoAdjustOverflowLeftRight = {\n adjustX: 1,\n shiftY: true\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\", \"classNames\", \"styles\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { placements } from \"./placements\";\nimport Popup from \"./Popup\";\nimport useId from \"rc-util/es/hooks/useId\";\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n tooltipClassNames = props.classNames,\n tooltipStyles = props.styles,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var triggerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var extraProps = _objectSpread({}, restProps);\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n key: \"content\",\n prefixCls: prefixCls,\n id: mergedId,\n bodyClassName: tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.body,\n overlayInnerStyle: _objectSpread(_objectSpread({}, overlayInnerStyle), tooltipStyles === null || tooltipStyles === void 0 ? void 0 : tooltipStyles.body)\n }, overlay);\n };\n var getChildren = function getChildren() {\n var child = React.Children.only(children);\n var originalProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var childProps = _objectSpread(_objectSpread({}, originalProps), {}, {\n 'aria-describedby': overlay ? mergedId : null\n });\n return /*#__PURE__*/React.cloneElement(children, childProps);\n };\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: classNames(overlayClassName, tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.root),\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: triggerRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n autoDestroy: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: _objectSpread(_objectSpread({}, overlayStyle), tooltipStyles === null || tooltipStyles === void 0 ? void 0 : tooltipStyles.root),\n mouseEnterDelay: mouseEnterDelay,\n arrow: showArrow\n }, extraProps), getChildren());\n};\nexport default /*#__PURE__*/forwardRef(Tooltip);","import ParamSetting from './ParamSetting'\nimport Plugin from '../plugins/Plugin'\nimport React, { useContext } from 'react'\nimport Tooltip from 'rc-tooltip'\nimport { prefixCls } from '../common/constants'\nimport { EditorContext } from './EditorContext'\nimport 'rc-tooltip/assets/bootstrap_white.css'\n\nexport default function Toolbar() {\n const {\n containerWidth,\n plugins,\n toolbar,\n currentPlugin,\n paramValue,\n handlePluginChange,\n handlePluginParamValueChange,\n toolbarItemConfig,\n language,\n } = useContext(EditorContext)\n\n const style = { width: containerWidth }\n\n function renderPlugin(plugin: Plugin) {\n const isActivated = !!(currentPlugin && currentPlugin.name === plugin.name)\n const paramNames = currentPlugin ? currentPlugin.params : []\n const isDisabled = toolbarItemConfig[plugin.name].disable\n const title = plugin.title[language] || plugin.title['en']\n\n if (!paramNames || paramNames.length === 0) {\n return (\n <span\n key={plugin.name}\n className={`${prefixCls}-toolbar-icon ${isActivated ? 'activated' : ''} ${isDisabled ? 'disabled' : ''}`}\n >\n <i title={title} className={plugin.iconfont} onClick={() => handlePluginChange(plugin)} />\n </span>\n )\n }\n\n return (\n <Tooltip\n key={plugin.name}\n placement=\"bottom\"\n overlay={(\n <ParamSetting\n paramNames={paramNames}\n paramValue={paramValue}\n onChange={handlePluginParamValueChange}\n />\n )}\n visible={isActivated}\n overlayClassName={`${prefixCls}-tooltip`}\n arrowContent={<div className=\"rc-tooltip-arrow-inner\"/>}\n >\n <span\n key={plugin.name}\n className={`${prefixCls}-toolbar-icon ${isActivated ? 'activated' : ''} ${isDisabled ? 'disabled' : ''}`}\n >\n <i title={title} className={plugin.iconfont} onClick={() => handlePluginChange(plugin)} />\n </span>\n </Tooltip>\n )\n }\n\n return (\n <div className={`${prefixCls}-toolbar`} style={style}>\n {\n toolbar.items.map(item => {\n if (item === '|') return <span key={item} className={`${prefixCls}-toolbar-separator`} />\n for(let i = 0; i < plugins.length; i++) {\n if (plugins[i].name === item) {\n return renderPlugin(plugins[i])\n }\n }\n return null\n })\n }\n </div>\n )\n}","import Plugin from './plugins/Plugin'\nimport PluginFactory from './plugins/PluginFactory'\nimport Palette from './components/Palette'\nimport React, { useEffect, useState } from 'react'\nimport Toolbar from './components/Toolbar'\nimport { PluginParamValue } from './common/type'\nimport { EditorContext } from './components/EditorContext'\nimport './styles/index.less'\n\ninterface ReactImageEditorProps {\n width?: number;\n height?: number;\n style?: React.CSSProperties;\n plugins?: Plugin[];\n toolbar?: {\n items: string[];\n };\n src: string;\n getStage?: (stage: any) => void;\n defaultPluginName?: string;\n crossOrigin?: string;\n language?: string;\n}\n\nexport default function ReactImageEditor({\n width = 700,\n height = 500,\n style = {},\n plugins = [],\n toolbar = {\n items: ['pen', 'eraser', 'arrow', 'rect', 'circle', 'mosaic', 'text', '|', 'repeal', 'download', 'crop'],\n },\n src,\n getStage,\n defaultPluginName,\n crossOrigin,\n language: languageProp,\n}: ReactImageEditorProps) {\n const [imageObj, setImageObj] = useState<HTMLImageElement | null>(null)\n // Convert en-US to en\n const language = (languageProp || 'en').substring(0, 2)\n\n const pluginFactory = new PluginFactory()\n const allPlugins = [...pluginFactory.plugins, ...plugins]\n let defaultPlugin = null\n let defaultParamValue = {}\n for (let i = 0; i < allPlugins.length; i++) {\n allPlugins[i].language = language\n if (defaultPluginName && toolbar && allPlugins[i].name === defaultPluginName) {\n defaultPlugin = allPlugins[i]\n\n if (defaultPlugin.defaultParamValue) {\n defaultParamValue = defaultPlugin.defaultParamValue\n }\n }\n }\n const [currentPlugin, setCurrentPlugin] = useState<Plugin | null>(defaultPlugin)\n const [paramValue, setParamValue] = useState<PluginParamValue>(defaultParamValue)\n\n // 生成默认 toolbarItemConfig\n const config: any = {}\n allPlugins.map(plugin => {\n if (plugin.name === 'repeal') {\n config[plugin.name] = { disable: true }\n } else {\n config[plugin.name] = { disable: false }\n }\n })\n\n const [toolbarItemConfig, setToolbarItemConfig] = useState(config)\n\n useEffect(() => {\n const image = new Image()\n image.onload = () => {\n setImageObj(image)\n }\n if (crossOrigin !== undefined) {\n image.crossOrigin = crossOrigin\n }\n image.src = src\n }, [src, crossOrigin])\n\n function handlePluginChange(plugin: Plugin) {\n setCurrentPlugin(plugin)\n plugin.defaultParamValue && setParamValue(plugin.defaultParamValue)\n if (!plugin.params) {\n setTimeout(() => {\n setCurrentPlugin(null)\n })\n }\n }\n\n function handlePluginParamValueChange(value: PluginParamValue) {\n setParamValue(value)\n }\n\n function updateToolbarItemConfig(config: any) {\n setToolbarItemConfig(config)\n }\n\n const containerStyle = {\n width: width + 'px',\n height: height + 'px',\n ...style,\n }\n\n return (\n <EditorContext.Provider\n value={{\n containerWidth: width,\n containerHeight: height,\n plugins: allPlugins,\n toolbar: toolbar,\n currentPlugin,\n paramValue,\n handlePluginChange,\n handlePluginParamValueChange,\n toolbarItemConfig,\n updateToolbarItemConfig,\n language,\n }}\n >\n <div className=\"react-img-editor\" style={containerStyle}>\n {\n imageObj ? (\n <>\n <Palette\n height={height - 42}\n imageObj={imageObj}\n getStage={getStage}\n />\n <Toolbar />\n </>\n ) : null\n }\n </div>\n </EditorContext.Provider>\n )\n}"],"names":["exports","global","require$$0","Context_1","require$$1","Canvas_1","require$$2","Canvas","Node_1","require$$3","require$$4","require$$5","Node","Container_1","Container","require$$6","Layer_1","require$$7","Layer","FastLayer_1","FastLayer","Group_1","Group","Animation_1","Animation","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","Arc_1","Arc","Line_1","Line","Path_1","Path","Arrow_1","Circle_1","Ellipse_1","Ellipse","Image_1","Label_1","Label","Rect_1","RegularPolygon_1","RegularPolygon","Ring_1","Ring","Sprite_1","Sprite","Star_1","Star","Text_1","TextPath_1","TextPath","Transformer_1","Transformer","Wedge_1","Wedge","Blur_1","Blur","Brighten_1","Brighten","Contrast_1","Contrast","Emboss_1","Emboss","Enhance_1","Enhance","Grayscale_1","Grayscale","HSL_1","HSL","HSV_1","HSV","Invert_1","Invert","Kaleidoscope_1","Kaleidoscope","Mask_1","Noise_1","Noise","Pixelate_1","Pixelate","Posterize_1","Posterize","RGB_1","RGB","RGBA_1","RGBA","Sepia_1","Sepia","Solarize_1","Solarize","Threshold_1","Threshold","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","indexNodeModule","uuid","Arrow","this","React","Palette","Popup","defineProperty","objectWithoutPropertiesLoose","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","reactIsModule","isMemo","ForwardRef","arrayWithoutHoles","iterableToArray","nonIterableSpread","_objectSpread","warning","toArray","ResizeObserver","setPrototypeOf","assertThisInitialized","isNativeReflectConstruct","getPrototypeOf","possibleConstructorReturn","DomWrapper","SingleObserver","canUseDOM","useLayoutEffect","raf","useState","_excluded","CSSMotion","OriginCSSMotion","Tooltip"],"mappings":"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AQ,yCAAyC;AACjD,UAAQ,yCAAyC;AACjD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,yCAAyC;AACjD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,yCAAyC;AACjD,UAAQ,yCAAyC;AACjD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,yCAAyC;AACjD,UAAQ,yCAAyC;OAC5C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,yCAAyC;AACjD,UAAQ,yCAAyC;AACjD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,yCAAyC;AACjD,UAAQ,yCAAyC;AACjD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,yCAAyC;AACjD,UAAQ,yCAAyC;AACjD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,yCAAyC;AACjD,UAAQ,yCAAyC;AACjD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;OAC7C;MACD;AACJ,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CAA0C;AAClD,UAAQ,0CA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,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC7E,KAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC5E;AACD,CAAA,MAAM,SAAS,GAAG;AAClB,KAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACjF,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9E,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9E,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9E,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9E,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9E,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9E,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9E,KAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,71,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169]}
|