{"version":3,"file":"QRCode.mjs","sources":["../../../../../../packages/components/qrcode/src/QRCode.tsx"],"sourcesContent":["import type { CSSProperties } from 'vue';\nimport type { QRCodeProps } from './props';\nimport { ReloadOutlined } from '@ant-design/icons-vue';\nimport { useToken } from '@antdv/theme';\nimport { devWarning } from '@antdv/utils';\nimport { computed, defineComponent, ref } from 'vue';\nimport Button from '../../button';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { useLocaleReceiver } from '../../locale-provider';\nimport Spin from '../../spin';\nimport useStyle from '../style';\nimport QRCodeCanvas from './Canvas';\nimport { qrcodeProps } from './props';\nimport QRCodeSVG from './SVG';\n\nexport default defineComponent({\n  name: 'AQrcode',\n  inheritAttrs: false,\n  props: qrcodeProps(),\n  emits: ['refresh'],\n  setup(props, { emit, attrs, expose }) {\n    if (process.env.NODE_ENV !== 'production') {\n      devWarning(\n        !(props.icon && props.errorLevel === 'L'),\n        'QRCode',\n        'ErrorLevel `L` is not recommended to be used with `icon`, for scanning result would be affected by low level.',\n      );\n    }\n    const [locale] = useLocaleReceiver('QRCode');\n    const { prefixCls } = useConfigInject('qrcode', props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    const [, token] = useToken();\n    const qrCodeCanvas = ref();\n    expose({\n      toDataURL: (type?: string, quality?: any) => {\n        return qrCodeCanvas.value?.toDataURL(type, quality);\n      },\n    });\n    const qrCodeProps = computed(() => {\n      const {\n        value,\n        icon = '',\n        size = 160,\n        iconSize = 40,\n        color = token.value.colorText,\n        bgColor = 'transparent',\n        errorLevel = 'M',\n      } = props;\n      const imageSettings: QRCodeProps['imageSettings'] = {\n        src: icon,\n        x: undefined,\n        y: undefined,\n        height: iconSize,\n        width: iconSize,\n        excavate: true,\n      };\n      return {\n        value,\n        size: size - (token.value.paddingSM + token.value.lineWidth) * 2,\n        level: errorLevel,\n        bgColor,\n        fgColor: color,\n        imageSettings: icon ? imageSettings : undefined,\n      };\n    });\n    return () => {\n      const pre = prefixCls.value;\n      return wrapSSR(\n        <div\n          {...attrs}\n          style={[\n            attrs.style as CSSProperties,\n            {\n              width: `${props.size}px`,\n              height: `${props.size}px`,\n              backgroundColor: qrCodeProps.value.bgColor,\n            },\n          ]}\n          class={[\n            hashId.value,\n            pre,\n            {\n              [`${pre}-borderless`]: !props.bordered,\n            },\n          ]}\n        >\n          {props.status !== 'active' && (\n            <div class={`${pre}-mask`}>\n              {props.status === 'loading' && <Spin />}\n              {props.status === 'expired' && (\n                <>\n                  <p class={`${pre}-expired`}>{locale.value.expired}</p>\n                  <Button\n                    type=\"link\"\n                    onClick={e => emit('refresh', e)}\n                    v-slots={{ icon: () => <ReloadOutlined /> }}\n                  >\n                    {locale.value.refresh}\n                  </Button>\n                </>\n              )}\n              {props.status === 'scanned' && <p class={`${pre}-scanned`}>{locale.value.scanned}</p>}\n            </div>\n          )}\n          {props.type === 'canvas'\n            ? (\n                <QRCodeCanvas ref={qrCodeCanvas} {...qrCodeProps.value} />\n              )\n            : (\n                <QRCodeSVG {...qrCodeProps.value} />\n              )}\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["name","inheritAttrs","props","qrcodeProps","emits","setup","emit","attrs","expose","process","env","NODE_ENV","devWarning","icon","errorLevel","locale","useLocaleReceiver","prefixCls","useConfigInject","wrapSSR","hashId","useStyle","token","useToken","qrCodeCanvas","ref","toDataURL","type","quality","value","qrCodeProps","computed","size","iconSize","color","colorText","bgColor","imageSettings","src","x","undefined","y","height","width","excavate","paddingSM","lineWidth","level","fgColor","pre","_createVNode","style","backgroundColor","bordered","status","Spin","_Fragment","expired","Button","e","default","refresh","ReloadOutlined","scanned","QRCodeCanvas","QRCodeSVG"],"mappings":"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"}