{"version":3,"file":"svg-line.vue2.mjs","sources":["../../../../../../src/components/design/svg/svg-line.vue"],"sourcesContent":["<template>\n    <svg-base\n        :element=\"element\"\n        :svgOptions=\"svgOptions\"\n        :draw=\"draw\"\n        :dragIng=\"dragIng\"\n        :dragEnd=\"dragEnd\"\n    />\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue-demi';\n\nimport * as d3Path from 'd3-path';\nimport { Path } from 'd3-path';\nimport { MyElement, PointLabel } from '@myprint/design/types/entity';\nimport { unit2px } from '@myprint/design/utils/devicePixelRatio';\nimport { moveableDragOffsetResize } from '@myprint/design/plugins/moveable/moveable';\nimport SvgBase from '@myprint/design/components/design/svg/svg-base.vue';\nimport { computedShapeBound, getRecursionParentPanel } from '@myprint/design/utils/elementUtil';\nimport { D3DragEvent } from '@myprint/design/types/d3Type';\nimport { stringify } from '@myprint/design/utils/utils';\n\nconst props = withDefaults(defineProps<{\n    element?: MyElement\n}>(), {\n    element: () => ({} as MyElement)\n});\n\nlet path: Path;\n\nconst svgOptions = reactive({\n    width: 0,\n    height: 0,\n    rotateControl: {},\n    // svg 形状点\n    linePoints: [] as Array<PointLabel>,\n    allPoint: [] as Array<PointLabel>,\n    drawAuxiliary: false\n});\n\nsvgOptions.width = unit2px(props.element.width, getRecursionParentPanel(props.element));\nsvgOptions.height = unit2px(props.element.height, getRecursionParentPanel(props.element));\n\ninitPoint();\n\nfunction draw() {\n    path = d3Path.path() as Path;\n    if (svgOptions.linePoints.length > 1) {\n        path.moveTo(svgOptions.linePoints[0].x, svgOptions.linePoints[0].y);\n        path.lineTo(svgOptions.linePoints[1].x, svgOptions.linePoints[1].y);\n    }\n    return path;\n}\n\nfunction initPoint() {\n    if (props.element.data) {\n        const data = JSON.parse(props.element.data);\n        svgOptions.linePoints = data.points;\n    }\n    svgOptions.allPoint = [...svgOptions.linePoints];\n}\n\nfunction dragIng(subject: PointLabel, event: D3DragEvent, dx: number, dy: number) {\n    subject.x = event.x + dx;\n    subject.y = event.y + dy;\n}\n\nfunction dragEnd() {\n    const rect = computedShapeBound(svgOptions.linePoints);\n    \n    moveableDragOffsetResize(rect.x, rect.y, rect.width, rect.height, props.element);\n    \n    svgOptions.width = rect.width;\n    svgOptions.height = rect.height;\n    // 偏移svg\n    for (let allPointElement of svgOptions.allPoint) {\n        allPointElement.x -= rect.x;\n        allPointElement.y -= rect.y;\n    }\n    \n    props.element.data = stringify({ points: svgOptions.linePoints });\n}\n\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuBA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAMd,IAAI,IAAA,IAAA,CAAA;AAEJ,IAAA,MAAM,aAAa,QAAS,CAAA;AAAA,MACxB,KAAO,EAAA,CAAA;AAAA,MACP,MAAQ,EAAA,CAAA;AAAA,MACR,eAAe,EAAC;AAAA,MAEhB,YAAY,EAAC;AAAA,MACb,UAAU,EAAC;AAAA,MACX,aAAe,EAAA,KAAA;AAAA,KAClB,CAAA,CAAA;AAED,IAAW,UAAA,CAAA,KAAA,GAAQ,QAAQ,KAAM,CAAA,OAAA,CAAQ,OAAO,uBAAwB,CAAA,KAAA,CAAM,OAAO,CAAC,CAAA,CAAA;AACtF,IAAW,UAAA,CAAA,MAAA,GAAS,QAAQ,KAAM,CAAA,OAAA,CAAQ,QAAQ,uBAAwB,CAAA,KAAA,CAAM,OAAO,CAAC,CAAA,CAAA;AAExF,IAAU,SAAA,EAAA,CAAA;AAEV,IAAA,SAAS,IAAO,GAAA;AACZ,MAAA,IAAA,GAAO,OAAO,IAAK,EAAA,CAAA;AACnB,MAAI,IAAA,UAAA,CAAW,UAAW,CAAA,MAAA,GAAS,CAAG,EAAA;AAClC,QAAK,IAAA,CAAA,MAAA,CAAO,WAAW,UAAW,CAAA,CAAA,CAAA,CAAG,GAAG,UAAW,CAAA,UAAA,CAAW,GAAG,CAAC,CAAA,CAAA;AAClE,QAAK,IAAA,CAAA,MAAA,CAAO,WAAW,UAAW,CAAA,CAAA,CAAA,CAAG,GAAG,UAAW,CAAA,UAAA,CAAW,GAAG,CAAC,CAAA,CAAA;AAAA,OACtE;AACA,MAAO,OAAA,IAAA,CAAA;AAAA,KACX;AAEA,IAAA,SAAS,SAAY,GAAA;AACjB,MAAI,IAAA,KAAA,CAAM,QAAQ,IAAM,EAAA;AACpB,QAAA,MAAM,IAAO,GAAA,IAAA,CAAK,KAAM,CAAA,KAAA,CAAM,QAAQ,IAAI,CAAA,CAAA;AAC1C,QAAA,UAAA,CAAW,aAAa,IAAK,CAAA,MAAA,CAAA;AAAA,OACjC;AACA,MAAA,UAAA,CAAW,QAAW,GAAA,CAAC,GAAG,UAAA,CAAW,UAAU,CAAA,CAAA;AAAA,KACnD;AAEA,IAAA,SAAS,OAAQ,CAAA,OAAA,EAAqB,KAAoB,EAAA,EAAA,EAAY,EAAY,EAAA;AAC9E,MAAQ,OAAA,CAAA,CAAA,GAAI,MAAM,CAAI,GAAA,EAAA,CAAA;AACtB,MAAQ,OAAA,CAAA,CAAA,GAAI,MAAM,CAAI,GAAA,EAAA,CAAA;AAAA,KAC1B;AAEA,IAAA,SAAS,OAAU,GAAA;AACf,MAAM,MAAA,IAAA,GAAO,kBAAmB,CAAA,UAAA,CAAW,UAAU,CAAA,CAAA;AAErD,MAAyB,wBAAA,CAAA,IAAA,CAAK,GAAG,IAAK,CAAA,CAAA,EAAG,KAAK,KAAO,EAAA,IAAA,CAAK,MAAQ,EAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAE/E,MAAA,UAAA,CAAW,QAAQ,IAAK,CAAA,KAAA,CAAA;AACxB,MAAA,UAAA,CAAW,SAAS,IAAK,CAAA,MAAA,CAAA;AAEzB,MAAS,KAAA,IAAA,eAAA,IAAmB,WAAW,QAAU,EAAA;AAC7C,QAAA,eAAA,CAAgB,KAAK,IAAK,CAAA,CAAA,CAAA;AAC1B,QAAA,eAAA,CAAgB,KAAK,IAAK,CAAA,CAAA,CAAA;AAAA,OAC9B;AAEA,MAAA,KAAA,CAAM,QAAQ,IAAO,GAAA,SAAA,CAAU,EAAE,MAAQ,EAAA,UAAA,CAAW,YAAY,CAAA,CAAA;AAAA,KACpE;;;;;;;;;;;;;;;"}