{"version":3,"file":"qrcode-svg.mjs","sources":["../../../../components/qrcode/components/qrcode-svg.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport { QRCodeSubComponentProps } from './props';\nimport {\n  DEFAULT_NEED_MARGIN,\n  DEFAULT_MINVERSION,\n  excavateModules,\n  generatePath,\n} from '@tdesign/common-js/qrcode/utils';\nimport { useQRCode } from '../hooks/useQRCode';\n\nexport default defineComponent({\n  name: 'QRCodeSVG',\n  props: QRCodeSubComponentProps,\n  setup(props) {\n    const qrCodeData = computed(() =>\n      useQRCode({\n        value: props.value,\n        level: props.level,\n        minVersion: DEFAULT_MINVERSION,\n        includeMargin: DEFAULT_NEED_MARGIN,\n        marginSize: props.marginSize,\n        imageSettings: props.imageSettings,\n        size: props.size,\n      }),\n    );\n\n    const cellsToDraw = computed(() => {\n      const { cells, calculatedImageSettings } = qrCodeData.value;\n      if (props.imageSettings && calculatedImageSettings.value?.excavation != null) {\n        return excavateModules(cells.value, calculatedImageSettings.value.excavation);\n      }\n      return cells.value;\n    });\n\n    const imageNode = computed(() => {\n      const { calculatedImageSettings, margin } = qrCodeData.value;\n      if (!props.imageSettings || !calculatedImageSettings.value) return null;\n\n      return (\n        <image\n          href={props.imageSettings.src}\n          height={calculatedImageSettings.value.h}\n          width={calculatedImageSettings.value.w}\n          x={calculatedImageSettings.value.x + margin.value}\n          y={calculatedImageSettings.value.y + margin.value}\n          crossOrigin={calculatedImageSettings.value.crossOrigin}\n        />\n      );\n    });\n\n    return () => {\n      const { margin, numCells } = qrCodeData.value;\n      const fgPath = generatePath(cellsToDraw.value, margin.value);\n      return (\n        <svg\n          height={props.size}\n          width={props.size}\n          viewBox={`0 0 ${numCells.value} ${numCells.value}`}\n          role=\"img\"\n          style={props.style}\n        >\n          {!!props.title && <title>{props.title}</title>}\n          <path fill={props.bgColor} d={`M0,0 h${numCells.value}v${numCells.value}H0z`} shape-rendering=\"crispEdges\" />\n          <path fill={props.fgColor} d={fgPath} shape-rendering=\"crispEdges\" />\n          {imageNode.value}\n        </svg>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","QRCodeSubComponentProps","setup","qrCodeData","computed","useQRCode","value","level","minVersion","DEFAULT_MINVERSION","includeMargin","DEFAULT_NEED_MARGIN","marginSize","imageSettings","size","cellsToDraw","_calculatedImageSetti","_qrCodeData$value","cells","calculatedImageSettings","excavation","excavateModules","imageNode","_qrCodeData$value2","margin","_createVNode","src","h","w","x","y","crossOrigin","_qrCodeData$value3","numCells","fgPath","generatePath","concat","style","title","bgColor","fgColor"],"mappings":"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"}