{"version":3,"file":"resize.min.cjs","sources":["../../../../../../src/in/packages/resize/src/PathScaler.ts","../../../../../../src/in/packages/resize/src/scaler.ts","../../../../../../src/in/packages/resize/src/resize.ts","../../../../../../src/in/packages/resize/src/index.ts"],"sourcesContent":["import { IPathCommandData } from '@leafer-ui/interface'\n\nimport { PathCommandMap as Command } from '@leafer-ui/draw'\n\n\nconst { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = Command\n\nexport const PathScaler = {\n\n    scale(data: IPathCommandData, scaleX: number, scaleY: number): void {\n        if (!data) return\n\n        let command: number\n        let i = 0, len = data.length\n\n        while (i < len) {\n            command = data[i]\n            switch (command) {\n                case M:  //moveto(x, y)\n                case L:  //lineto(x, y)\n                    scalePoints(data, scaleX, scaleY, i, 1)\n                    i += 3\n                    break\n                case C:  //bezierCurveTo(x1, y1, x2, y2, x, y)\n                    scalePoints(data, scaleX, scaleY, i, 3)\n                    i += 7\n                    break\n                case Q:  //quadraticCurveTo(x1, y1, x, y)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 5\n                    break\n                case Z:  //closepath()\n                    i += 1\n                    break\n\n                // canvas command\n\n                case N: // rect(x, y, width, height)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 5\n                    break\n                case D: // roundRect(x, y, width, height, radius1, radius2, radius3, radius4)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 9\n                    break\n                case X: // simple roundRect(x, y, width, height, radius)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 6\n                    break\n                case G: // ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 9\n                    break\n                case F: // simple ellipse(x, y, radiusX, radiusY)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 5\n                    break\n                case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n                    data[i] = G // to ellipse\n                    data.splice(i + 4, 0, data[i + 3], 0)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 7 + 2\n                    len += 2\n                    break\n                case P: // simple arc(x, y, radius)\n                    data[i] = F // to simple ellipse\n                    data.splice(i + 4, 0, data[i + 3])\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 4 + 1\n                    len += 1\n                    break\n                case U: // arcTo(x1, y1, x2, y2, radius)\n                    scalePoints(data, scaleX, scaleY, i, 2)\n                    i += 6\n                    break\n            }\n        }\n\n    },\n\n    scalePoints(data: IPathCommandData, scaleX: number, scaleY: number, start?: number, pointCount?: number): void {\n        for (let i = pointCount ? start + 1 : 0, end = pointCount ? i + pointCount * 2 : data.length; i < end; i += 2) {\n            data[i] *= scaleX\n            data[i + 1] *= scaleY\n        }\n    }\n\n}\n\nconst { scalePoints } = PathScaler","import { IBranch, ILeaf, ILine, IPolygon, IText, IPointData } from '@leafer-ui/interface'\nimport { Direction9, MatrixHelper, isArray, isObject, isUndefined } from '@leafer-ui/draw'\n\nimport { PathScaler } from './PathScaler'\n\n\nconst matrix = MatrixHelper.get()\nconst { topLeft, top, topRight, right, bottom, left } = Direction9\n\nexport function scaleResize(leaf: ILeaf, scaleX: number, scaleY: number): void {\n    if (leaf.pathInputed) {\n        scaleResizePath(leaf, scaleX, scaleY)\n    } else {\n        // fix: Text / Box auto width / height, need check scale === 1\n        if (scaleX !== 1) leaf.width *= scaleX\n        if (scaleY !== 1) leaf.height *= scaleY\n    }\n}\n\nexport function scaleResizeFontSize(leaf: IText, scaleX: number, scaleY: number, direction?: Direction9): void {\n    let fontScale = scaleX\n\n    if (!isUndefined(direction)) {\n\n        const layout = leaf.__layout\n\n        let { width, height } = layout.boxBounds\n        width *= scaleY - scaleX\n        height *= scaleX - scaleY\n\n        switch (direction) { // 编辑器控制点的位置\n            case top:\n            case bottom:\n                fontScale = scaleY\n                layout.affectScaleOrRotation ? leaf.moveInner(-width / 2, 0) : leaf.x -= width / 2\n                break\n            case left:\n            case right:\n                layout.affectScaleOrRotation ? leaf.moveInner(0, -height / 2) : leaf.y -= height / 2\n                break\n            case topLeft:\n            case topRight:\n                layout.affectScaleOrRotation ? leaf.moveInner(0, -height) : leaf.y -= height\n                break\n        }\n\n    }\n\n    leaf.fontSize *= fontScale\n\n    const data = leaf.__, { padding, lineHeight, letterSpacing } = data\n    if (padding) leaf.padding = isArray(padding) ? padding.map(item => item * fontScale) : padding * fontScale\n    if (!data.__autoWidth) leaf.width *= fontScale\n    if (!data.__autoHeight) leaf.height *= fontScale\n\n    if (isObject(lineHeight)) {\n        if (lineHeight.type === 'px') data.lineHeight = { type: 'px', value: lineHeight.value * fontScale }\n    } else if (lineHeight) data.lineHeight = lineHeight * fontScale\n\n    if (isObject(letterSpacing)) {\n        if (letterSpacing.type === 'px') data.letterSpacing = { type: 'px', value: letterSpacing.value * fontScale }\n    } else if (letterSpacing) data.letterSpacing = letterSpacing * fontScale\n\n}\n\nexport function scaleResizePath(leaf: ILeaf, scaleX: number, scaleY: number): void {\n    PathScaler.scale(leaf.__.path, scaleX, scaleY)\n    leaf.path = leaf.__.path\n}\n\nexport function scaleResizePoints(leaf: ILine | IPolygon, scaleX: number, scaleY: number): void {\n    const { points } = leaf\n    isObject(points[0]) ? (points as IPointData[]).forEach(p => { p.x *= scaleX, p.y *= scaleY }) : PathScaler.scalePoints(points as number[], scaleX, scaleY)\n    leaf.points = points\n}\n\n\nexport function scaleResizeGroup(group: IBranch, scaleX: number, scaleY: number): void {\n    const { children } = group\n    for (let i = 0; i < children.length; i++) {\n        matrix.a = scaleX // must update\n        matrix.d = scaleY\n        children[i].transform(matrix, true)\n    }\n}","import { IBoundsType, ILeaf, IPointData } from '@leafer-ui/interface'\nimport { Leaf, Path, Line, Text, Polygon, Group, Box, UI, MatrixHelper } from '@leafer-ui/draw'\n\nimport { scaleResize, scaleResizeFontSize, scaleResizeGroup, scaleResizePath, scaleResizePoints } from './scaler'\n\n\n// leaf\nconst leaf = Leaf.prototype as ILeaf, tempPoint = {} as IPointData, { scale, toOuterPoint } = MatrixHelper\n\nleaf.scaleResize = function (scaleX: number, scaleY = scaleX, noResize?: boolean, boundsType?: IBoundsType): void {\n    const data = this as UI\n    if (noResize || (data.editConfig && data.editConfig.editSize === 'scale')) {\n        data.scaleX *= scaleX\n        data.scaleY *= scaleY\n    } else {\n        const local = this.__localMatrix\n        if (scaleX < 0) data.scaleX *= -1, scaleX = -scaleX, scale(local, -1, 1)\n        if (scaleY < 0) data.scaleY *= -1, scaleY = -scaleY, scale(local, 1, -1)\n\n        if (boundsType === 'stroke') {\n            const { boxBounds, strokeBounds } = this.__layout, { x, y, width, height } = strokeBounds\n            tempPoint.x = (x - boxBounds.x) * (scaleX - 1)\n            tempPoint.y = (y - boxBounds.y) * (scaleY - 1)\n            toOuterPoint(local, tempPoint, tempPoint, true)\n            this.x += tempPoint.x\n            this.y += tempPoint.y\n\n            scaleX = (width * scaleX - (width - boxBounds.width)) / boxBounds.width\n            scaleY = (height * scaleY - (height - boxBounds.height)) / boxBounds.height\n        }\n\n        this.__scaleResize(scaleX, scaleY)\n    }\n}\n\n\nleaf.__scaleResize = function (scaleX: number, scaleY: number): void {\n    scaleResize(this, scaleX, scaleY)\n}\n\n\nleaf.resizeWidth = function (width: number): void {\n    const scale = width / this.getBounds('box', 'local').width || 1 // 不允许为0\n    this.scaleOf(this.__layout.boxBounds, scale, this.__.lockRatio ? scale : 1, true)\n}\n\n\nleaf.resizeHeight = function (height: number): void {\n    const scale = height / this.getBounds('box', 'local').height || 1 // 不允许为0\n    this.scaleOf(this.__layout.boxBounds, this.__.lockRatio ? scale : 1, scale, true)\n}\n\n\n// UI\n\nText.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n    const { app, editConfig } = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint\n\n    if (this.__.resizeFontSize || (editConfig && editConfig.editSize === 'font-size') || (dragPoint && editor.mergedConfig.editSize === 'font-size')) {\n        scaleResizeFontSize(this, scaleX, scaleY, dragPoint && dragPoint.direction)\n    } else {\n        const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout\n        if (__autoWidth && textAlign !== 'left' && scaleX !== 1) this.x += boxBounds.x\n        if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1) this.y += boxBounds.y\n        scaleResize(this, scaleX, scaleY)\n    }\n}\n\n\nPath.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n    scaleResizePath(this, scaleX, scaleY)\n}\n\n\nLine.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n    if (this.pathInputed) {\n        scaleResizePath(this, scaleX, scaleY)\n    } else if (this.points) {\n        scaleResizePoints(this, scaleX, scaleY)\n    } else {\n        this.width *= scaleX\n    }\n}\n\n\nPolygon.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n    if (this.pathInputed) {\n        scaleResizePath(this, scaleX, scaleY)\n    } else if (this.points) {\n        scaleResizePoints(this, scaleX, scaleY)\n    } else {\n        scaleResize(this, scaleX, scaleY)\n    }\n}\n\n\n// group\n\nGroup.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n    scaleResizeGroup(this, scaleX, scaleY)\n}\n\n\nBox.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n    const { resizeChildren, __autoSize } = this.__\n    if (!(__autoSize && resizeChildren)) scaleResize(this, scaleX, scaleY)\n    if (resizeChildren) scaleResizeGroup(this, scaleX, scaleY)\n}","export { PathScaler } from './PathScaler'\nexport { scaleResize, scaleResizeGroup, scaleResizeFontSize, scaleResizePath, scaleResizePoints } from './scaler'\n\nimport { Plugin } from '@leafer-ui/draw'\n\nimport './resize'\n\nPlugin.add('resize')"],"names":["M","L","C","Q","Z","N","D","X","G","F","O","P","U","Command","PathScaler","scale","data","scaleX","scaleY","command","i","len","length","scalePoints","splice","start","pointCount","end","matrix","MatrixHelper","get","topLeft","top","topRight","right","bottom","left","Direction9","scaleResize","leaf","pathInputed","scaleResizePath","width","height","scaleResizeFontSize","direction","fontScale","isUndefined","layout","__layout","boxBounds","affectScaleOrRotation","moveInner","x","y","fontSize","__","padding","lineHeight","letterSpacing","isArray","map","item","__autoWidth","__autoHeight","isObject","type","value","path","scaleResizePoints","points","forEach","p","scaleResizeGroup","group","children","a","d","transform","Leaf","prototype","tempPoint","toOuterPoint","noResize","boundsType","this","editConfig","editSize","local","__localMatrix","strokeBounds","__scaleResize","resizeWidth","getBounds","scaleOf","lockRatio","resizeHeight","Text","app","editor","dragPoint","resizeFontSize","mergedConfig","textAlign","verticalAlign","Path","Line","Polygon","Group","Box","resizeChildren","__autoSize","Plugin","add"],"mappings":"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"}