{"version":3,"file":"useQRCode.mjs","sources":["../../../src/qrcode/hooks/useQRCode.ts"],"sourcesContent":["import { computed, ComputedRef } from 'vue';\nimport type { CrossOrigin, ErrorCorrectionLevel, Excavation, ImageSettings } from '../../_common/js/qrcode/types';\nimport { ERROR_LEVEL_MAP, getImageSettings, getMarginSize } from '../../_common/js/qrcode/utils';\nimport { QrCode, QrSegment } from '../../_common/js/qrcode/qrcodegen';\n\ninterface Options {\n  value: string;\n  level: ErrorCorrectionLevel;\n  minVersion: number;\n  includeMargin: boolean;\n  marginSize?: number;\n  imageSettings?: ImageSettings;\n  size: number;\n}\n\ninterface QRCodeResult {\n  cells: ComputedRef<boolean[][]>;\n  margin: ComputedRef<number>;\n  numCells: ComputedRef<number>;\n  calculatedImageSettings: ComputedRef<{\n    x: number;\n    y: number;\n    h: number;\n    w: number;\n    excavation: Excavation | null;\n    opacity: number;\n    crossOrigin: CrossOrigin;\n  }>;\n  qrcode: ComputedRef<QrCode>;\n}\n\nexport const useQRCode = (opt: Options): QRCodeResult => {\n  const { value, level, minVersion, includeMargin, marginSize, imageSettings, size } = opt;\n\n  const memoizedQrcode = computed(() => {\n    const segments = QrSegment.makeSegments(value);\n    return QrCode.encodeSegments(segments, ERROR_LEVEL_MAP[level], minVersion);\n  });\n\n  const cs = computed(() => memoizedQrcode.value.getModules());\n  const mg = computed(() => getMarginSize(includeMargin, marginSize));\n  const cis = computed(() => getImageSettings(cs.value, size, mg.value, imageSettings));\n\n  return {\n    cells: cs,\n    margin: mg,\n    numCells: computed(() => cs.value.length + mg.value * 2),\n    calculatedImageSettings: cis,\n    qrcode: memoizedQrcode,\n  };\n};\n"],"names":["useQRCode","opt","value","level","minVersion","includeMargin","marginSize","imageSettings","size","memoizedQrcode","computed","segments","QrSegment","makeSegments","QrCode","encodeSegments","ERROR_LEVEL_MAP","cs","getModules","mg","getMarginSize","cis","getImageSettings","cells","margin","numCells","length","calculatedImageSettings","qrcode"],"mappings":";;;;;;;;;;;;;IA+BaA,SAAA,GAAY,SAAZA,SAAAA,CAAaC,GAA+B,EAAA;AACjD,EAAA,IAAEC,QAA6ED,GAAA,CAA7EC;IAAOC,KAAO,GAA+DF,GAAA,CAAtEE,KAAO;IAAAC,UAAA,GAA+DH,GAAA,CAA/DG,UAAA;IAAYC,gBAAmDJ,GAAA,CAAnDI;IAAeC,UAAY,GAAwBL,GAAA,CAApCK,UAAY;IAAAC,aAAA,GAAwBN,GAAA,CAAxBM,aAAA;IAAeC,OAASP,GAAA,CAATO;AAEtE,EAAA,IAAAC,cAAA,GAAiBC,SAAS,YAAM;AAC9B,IAAA,IAAAC,QAAA,GAAWC,SAAU,CAAAC,YAAA,CAAaX,KAAK,CAAA,CAAA;AAC7C,IAAA,OAAOY,MAAO,CAAAC,cAAA,CAAeJ,QAAU,EAAAK,eAAA,CAAgBb,QAAQC,UAAU,CAAA,CAAA;AAC3E,GAAC,CAAA,CAAA;EAED,IAAMa,KAAKP,QAAS,CAAA,YAAA;AAAA,IAAA,OAAMD,cAAe,CAAAP,KAAA,CAAMgB,YAAY,CAAA;GAAA,CAAA,CAAA;EAC3D,IAAMC,KAAKT,QAAS,CAAA,YAAA;AAAA,IAAA,OAAMU,aAAc,CAAAf,aAAA,EAAeC,UAAU,CAAC,CAAA;GAAA,CAAA,CAAA;EAC5D,IAAAe,GAAA,GAAMX,QAAS,CAAA,YAAA;AAAA,IAAA,OAAMY,gBAAiB,CAAAL,EAAA,CAAGf,OAAOM,IAAM,EAAAW,EAAA,CAAGjB,KAAO,EAAAK,aAAa,CAAC,CAAA;GAAA,CAAA,CAAA;EAE7E,OAAA;AACLgB,IAAAA,KAAO,EAAAN,EAAA;AACPO,IAAAA,MAAQ,EAAAL,EAAA;IACRM,QAAA,EAAUf,SAAS,YAAA;MAAA,OAAMO,EAAA,CAAGf,MAAMwB,MAAS,GAAAP,EAAA,CAAGjB,QAAQ,CAAC,CAAA;KAAA,CAAA;AACvDyB,IAAAA,uBAAyB,EAAAN,GAAA;AACzBO,IAAAA,MAAQ,EAAAnB,cAAAA;GACV,CAAA;AACF;;;;"}