@paykka/card-checkout-ui 0.8.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/card-checkout-ui.js +20 -13
- package/dist/card-checkout-ui.umd.cjs +20 -13
- package/dist/es/_commonjsHelpers.js +1 -0
- package/dist/es/api/http.js +19 -21
- package/dist/es/api/index.js +1 -0
- package/dist/es/api/modules/ali-pay/index.js +19 -11
- package/dist/es/api/modules/apple-pay/index.js +10 -26
- package/dist/es/api/modules/boost/index.js +56 -0
- package/dist/es/api/modules/card/index.js +17 -11
- package/dist/es/api/modules/checkout/index.js +6 -6
- package/dist/es/api/modules/checkout/map.js +23 -6
- package/dist/es/api/modules/gcash/index.js +56 -0
- package/dist/es/api/modules/get-browser-params.js +2 -2
- package/dist/es/api/modules/google-pay/index.js +10 -26
- package/dist/es/api/modules/grab-pay/index.js +56 -0
- package/dist/es/api/modules/index.js +1 -0
- package/dist/es/api/modules/line-pay/index.js +56 -0
- package/dist/es/api/modules/may-bank-qr-pay/index.js +56 -0
- package/dist/es/api/modules/nine-pay/index.js +56 -0
- package/dist/es/api/modules/paymaya/index.js +56 -0
- package/dist/es/api/modules/sepa/index.js +19 -11
- package/dist/es/api/modules/shopee-pay/index.js +56 -0
- package/dist/es/api/modules/tng-wallet/index.js +56 -0
- package/dist/es/api/modules/wechat-pay/index.js +18 -31
- package/dist/es/components/AccordionItem/AccordionItem.js +36 -0
- package/dist/es/components/AliPay/index.js +27 -39
- package/dist/es/components/ApplePay/index.js +16 -37
- package/dist/es/components/Boost/index.js +322 -0
- package/dist/es/components/Card/index.js +52 -41
- package/dist/es/components/CardBrands/index.js +2 -2
- package/dist/es/components/CardNumberField/index.js +113 -106
- package/dist/es/components/DropIn/index.js +204 -49
- package/dist/es/components/GooglePay/index.js +5 -4
- package/dist/es/components/GrabPay/index.js +322 -0
- package/dist/es/components/GuideCard/index.js +43 -0
- package/dist/es/components/LinePay/index.js +322 -0
- package/dist/es/components/MayBankQRPay/index.js +322 -0
- package/dist/es/components/NinePay/index.js +322 -0
- package/dist/es/components/SecuredIframe/index.js +3 -2
- package/dist/es/components/Sepa/index.js +6 -9
- package/dist/es/components/ShopeePay/index.js +322 -0
- package/dist/es/components/SubmitButton/index.js +6 -20
- package/dist/es/components/TNGWallet/index.js +322 -0
- package/dist/es/components/WechatPay/index.js +30 -49
- package/dist/es/components/business/QRCodeModal/QRCodeModal.js +41 -0
- package/dist/es/components/business/QRCodeModal/index.js +6 -0
- package/dist/es/components/business/QRCodeModal/qr-code-modal.js +1 -0
- package/dist/es/components/business/QRCodeModal/type.js +1 -0
- package/dist/es/components/business/index.js +6 -0
- package/dist/es/components/index.js +9 -0
- package/dist/es/components/internal/Accordion/Accordion.js +14 -0
- package/dist/es/components/internal/Accordion/accordion2.js +1 -0
- package/dist/es/components/internal/Accordion/accordionTransition.js +26 -0
- package/dist/es/components/internal/Accordion/index.js +7 -0
- package/dist/es/components/internal/Accordion/type.js +10 -0
- package/dist/es/components/internal/Modal/Modal.js +17 -3
- package/dist/es/components/internal/Modal/index.js +1 -0
- package/dist/es/components/internal/Modal/type.js +1 -0
- package/dist/es/components/internal/QRCode/QRCode.js +31 -0
- package/dist/es/components/internal/QRCode/index.js +4 -0
- package/dist/es/components/internal/QRCode/type.js +1 -0
- package/dist/es/components/internal/icons/IconBoost.js +63 -0
- package/dist/es/components/internal/icons/IconCard.js +1 -40
- package/dist/es/components/internal/icons/IconCard2.js +60 -0
- package/dist/es/components/internal/icons/IconGCash.js +196 -0
- package/dist/es/components/internal/icons/IconGcashComplete.js +184 -0
- package/dist/es/components/internal/icons/IconGrabPay.js +59 -0
- package/dist/es/components/internal/icons/IconLinePay.js +99 -0
- package/dist/es/components/internal/icons/IconMayBankQRPay.js +69 -0
- package/dist/es/components/internal/icons/IconNinePay.js +255 -0
- package/dist/es/components/internal/icons/IconPaymaya.js +114 -0
- package/dist/es/components/internal/icons/IconRedirect.js +58 -0
- package/dist/es/components/internal/icons/IconScan.js +102 -0
- package/dist/es/components/internal/icons/IconShopeePay.js +108 -0
- package/dist/es/components/internal/icons/IconTNGWallet.js +119 -0
- package/dist/es/components/internal/icons/IconUnionPay.js +65 -0
- package/dist/es/components/wallets/GCash/GCash.js +356 -0
- package/dist/es/components/wallets/GCash/g-cash.js +1 -0
- package/dist/es/components/wallets/GCash/index.js +1 -0
- package/dist/es/components/wallets/GCash/type.js +1 -0
- package/dist/es/components/wallets/Paymaya/Paymaya.js +323 -0
- package/dist/es/components/wallets/Paymaya/index.js +1 -0
- package/dist/es/components/wallets/Paymaya/paymaya2.js +1 -0
- package/dist/es/components/wallets/Paymaya/type.js +1 -0
- package/dist/es/config.js +12 -12
- package/dist/es/constant.js +84 -4
- package/dist/es/core/PayKKaCheckout.js +28 -3
- package/dist/es/core/Session.js +24 -23
- package/dist/es/core/error.js +7 -0
- package/dist/es/core/query.js +3 -2
- package/dist/es/core.js +2082 -70
- package/dist/es/hooks/usePayState.js +0 -3
- package/dist/es/i18n/I18n.js +8 -2
- package/dist/es/i18n/locales/de-DE.js +16 -1
- package/dist/es/i18n/locales/en-GB.js +16 -1
- package/dist/es/i18n/locales/es-ES.js +16 -1
- package/dist/es/i18n/locales/fr-FR.js +16 -1
- package/dist/es/i18n/locales/ja-JP.js +16 -1
- package/dist/es/i18n/locales/ko-KR.js +16 -1
- package/dist/es/i18n/locales/pt-PT.js +16 -1
- package/dist/es/i18n/locales/ru-RU.js +16 -1
- package/dist/es/i18n/locales/zh-CN.js +16 -1
- package/dist/es/i18n/locales/zh-HK.js +16 -1
- package/dist/es/i18n/locales/zh-TW.js +16 -1
- package/dist/es/i18n/util.js +12 -3
- package/dist/es/index.js +20 -0
- package/dist/es/style.css +1 -1192
- package/dist/es/types/index.js +1 -0
- package/dist/es/utils/array.js +9 -0
- package/dist/es/utils/card-brand/brands.js +11 -1
- package/dist/es/utils/card-brand/index.js +4 -3
- package/dist/es/utils/card-brand/luhn.js +25 -0
- package/dist/es/utils/date.js +25 -0
- package/dist/es/utils/detect.js +6 -0
- package/dist/es/utils/format.js +28 -12
- package/dist/es/utils/index.js +9 -1
- package/dist/es/utils/location.js +37 -0
- package/dist/es/utils/object.js +14 -0
- package/dist/es/utils/redirect.js +32 -0
- package/dist/es/utils/system-info/get-browser-info.js +4 -4
- package/dist/es/utils/system-info/get-system-info.js +11 -7
- package/dist/es/utils/system-info/index.js +4 -4
- package/dist/style.css +1 -1
- package/dist/types/api/http.d.ts +4 -10
- package/dist/types/api/modules/ali-pay/index.d.ts +2 -1
- package/dist/types/api/modules/apple-pay/index.d.ts +2 -1
- package/dist/types/api/modules/boost/index.d.ts +24 -0
- package/dist/types/api/modules/card/index.d.ts +1 -1
- package/dist/types/api/modules/checkout/index.d.ts +2 -2
- package/dist/types/api/modules/checkout/type.d.ts +9 -0
- package/dist/types/api/modules/gcash/index.d.ts +24 -0
- package/dist/types/api/modules/get-browser-params.d.ts +2 -2
- package/dist/types/api/modules/google-pay/index.d.ts +2 -1
- package/dist/types/api/modules/grab-pay/index.d.ts +24 -0
- package/dist/types/api/modules/index.d.ts +9 -0
- package/dist/types/api/modules/line-pay/index.d.ts +24 -0
- package/dist/types/api/modules/may-bank-qr-pay/index.d.ts +24 -0
- package/dist/types/api/modules/nine-pay/index.d.ts +24 -0
- package/dist/types/api/modules/paymaya/index.d.ts +24 -0
- package/dist/types/api/modules/sepa/index.d.ts +2 -1
- package/dist/types/api/modules/shopee-pay/index.d.ts +24 -0
- package/dist/types/api/modules/tng-wallet/index.d.ts +24 -0
- package/dist/types/api/modules/wechat-pay/index.d.ts +2 -1
- package/dist/types/components/Boost/Boost.d.ts +7 -0
- package/dist/types/components/Boost/index.d.ts +2 -0
- package/dist/types/components/Boost/type.d.ts +61 -0
- package/dist/types/components/DropIn/components/PaymentTabs/type.d.ts +1 -1
- package/dist/types/components/DropIn/config.d.ts +7 -0
- package/dist/types/components/DropIn/type.d.ts +11 -3
- package/dist/types/components/GrabPay/GrabPay.d.ts +7 -0
- package/dist/types/components/GrabPay/index.d.ts +2 -0
- package/dist/types/components/GrabPay/type.d.ts +61 -0
- package/dist/types/components/GuideCard/GuideCard.d.ts +3 -0
- package/dist/types/components/GuideCard/index.d.ts +2 -0
- package/dist/types/components/GuideCard/type.d.ts +4 -0
- package/dist/types/components/LinePay/LinePay.d.ts +7 -0
- package/dist/types/components/LinePay/index.d.ts +2 -0
- package/dist/types/components/LinePay/type.d.ts +61 -0
- package/dist/types/components/MayBankQRPay/MayBankQRPay.d.ts +6 -0
- package/dist/types/components/MayBankQRPay/index.d.ts +2 -0
- package/dist/types/components/MayBankQRPay/type.d.ts +61 -0
- package/dist/types/components/NinePay/NinePay.d.ts +6 -0
- package/dist/types/components/NinePay/index.d.ts +2 -0
- package/dist/types/components/NinePay/type.d.ts +61 -0
- package/dist/types/components/SecuredIframe/useSecuredInput.d.ts +1 -1
- package/dist/types/components/ShopeePay/ShopeePay.d.ts +7 -0
- package/dist/types/components/ShopeePay/index.d.ts +2 -0
- package/dist/types/components/ShopeePay/type.d.ts +61 -0
- package/dist/types/components/SubmitButton/SubmitButton.d.ts +1 -1
- package/dist/types/components/TNGWallet/TNGWallet.d.ts +7 -0
- package/dist/types/components/TNGWallet/index.d.ts +2 -0
- package/dist/types/components/TNGWallet/type.d.ts +61 -0
- package/dist/types/components/business/QRCodeModal/QRCodeModal.d.ts +3 -0
- package/dist/types/components/business/QRCodeModal/index.d.ts +2 -0
- package/dist/types/components/business/QRCodeModal/type.d.ts +18 -0
- package/dist/types/components/business/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +9 -0
- package/dist/types/components/internal/Accordion/Accordion.d.ts +3 -0
- package/dist/types/components/internal/Accordion/accordionTransition.d.ts +8 -0
- package/dist/types/components/internal/Accordion/components/AccordionItem/AccordionItem.d.ts +3 -0
- package/dist/types/components/internal/Accordion/components/AccordionItem/index.d.ts +2 -0
- package/dist/types/components/internal/Accordion/components/AccordionItem/type.d.ts +18 -0
- package/dist/types/components/internal/Accordion/index.d.ts +3 -0
- package/dist/types/components/internal/Accordion/type.d.ts +18 -0
- package/dist/types/components/internal/Modal/type.d.ts +2 -0
- package/dist/types/components/internal/QRCode/QRCode.d.ts +2 -0
- package/dist/types/components/internal/QRCode/index.d.ts +2 -0
- package/dist/types/components/internal/QRCode/type.d.ts +9 -0
- package/dist/types/components/internal/icons/IconBoost.d.ts +2 -0
- package/dist/types/components/internal/icons/IconCard2.d.ts +2 -0
- package/dist/types/components/internal/icons/IconGCash.d.ts +2 -0
- package/dist/types/components/internal/icons/IconGcashComplete.d.ts +2 -0
- package/dist/types/components/internal/icons/IconGrabPay.d.ts +2 -0
- package/dist/types/components/internal/icons/IconLinePay.d.ts +2 -0
- package/dist/types/components/internal/icons/IconMayBankQRPay.d.ts +2 -0
- package/dist/types/components/internal/icons/IconNinePay.d.ts +2 -0
- package/dist/types/components/internal/icons/IconPaymaya.d.ts +2 -0
- package/dist/types/components/internal/icons/IconRedirect.d.ts +2 -0
- package/dist/types/components/internal/icons/IconScan.d.ts +2 -0
- package/dist/types/components/internal/icons/IconShopeePay.d.ts +2 -0
- package/dist/types/components/internal/icons/IconTNGWallet.d.ts +2 -0
- package/dist/types/components/internal/icons/IconUnionPay.d.ts +2 -0
- package/dist/types/components/internal/icons/index.d.ts +13 -0
- package/dist/types/components/wallets/GCash/GCash.d.ts +6 -0
- package/dist/types/components/wallets/GCash/index.d.ts +2 -0
- package/dist/types/components/wallets/GCash/type.d.ts +66 -0
- package/dist/types/components/wallets/Paymaya/Paymaya.d.ts +6 -0
- package/dist/types/components/wallets/Paymaya/index.d.ts +2 -0
- package/dist/types/components/wallets/Paymaya/type.d.ts +61 -0
- package/dist/types/config.d.ts +9 -9
- package/dist/types/constant.d.ts +28 -3
- package/dist/types/core/PayKKaCheckout.d.ts +10 -0
- package/dist/types/core/Session.d.ts +2 -0
- package/dist/types/core/error.d.ts +3 -1
- package/dist/types/core/query.d.ts +2 -2
- package/dist/types/hooks/usePayState.d.ts +0 -3
- package/dist/types/i18n/I18n.d.ts +1 -1
- package/dist/types/i18n/locales/de-DE.d.ts +13 -0
- package/dist/types/i18n/locales/en-GB.d.ts +13 -0
- package/dist/types/i18n/locales/es-ES.d.ts +13 -0
- package/dist/types/i18n/locales/fr-FR.d.ts +13 -0
- package/dist/types/i18n/locales/ja-JP.d.ts +13 -0
- package/dist/types/i18n/locales/ko-KR.d.ts +13 -0
- package/dist/types/i18n/locales/pt-PT.d.ts +13 -0
- package/dist/types/i18n/locales/ru-RU.d.ts +13 -0
- package/dist/types/i18n/locales/zh-CN.d.ts +13 -0
- package/dist/types/i18n/locales/zh-HK.d.ts +13 -0
- package/dist/types/i18n/locales/zh-TW.d.ts +13 -0
- package/dist/types/i18n/util.d.ts +5 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types/index.d.ts +10 -3
- package/dist/types/types/message.d.ts +1 -0
- package/dist/types/utils/array.d.ts +1 -0
- package/dist/types/utils/card-brand/brands.d.ts +4 -3
- package/dist/types/utils/card-brand/index.d.ts +9 -6
- package/dist/types/utils/card-brand/luhn.d.ts +9 -0
- package/dist/types/utils/date.d.ts +9 -0
- package/dist/types/utils/detect.d.ts +1 -0
- package/dist/types/utils/format.d.ts +7 -1
- package/dist/types/utils/index.d.ts +7 -0
- package/dist/types/utils/location.d.ts +7 -0
- package/dist/types/utils/object.d.ts +1 -0
- package/dist/types/utils/redirect.d.ts +5 -0
- package/dist/types/utils/system-info/get-browser-info.d.ts +1 -1
- package/dist/types/utils/system-info/get-system-info.d.ts +3 -2
- package/dist/types/utils/system-info/index.d.ts +3 -3
- package/package.json +4 -2
package/dist/es/core.js
CHANGED
|
@@ -57,7 +57,7 @@ function M$3() {
|
|
|
57
57
|
n2.__d && (u2 = i$2.length, o2 = void 0, e2 = (r2 = (t2 = n2).__v).__e, c2 = [], s2 = [], t2.__P && ((o2 = d$3({}, r2)).__v = r2.__v + 1, l$3.vnode && l$3.vnode(o2), O(t2.__P, o2, r2, t2.__n, t2.__P.namespaceURI, 32 & r2.__u ? [e2] : null, c2, null == e2 ? x$2(r2) : e2, !!(32 & r2.__u), s2), o2.__v = r2.__v, o2.__.__k[o2.__i] = o2, j$2(c2, o2, s2), o2.__e != e2 && C$1(o2)), i$2.length > u2 && i$2.sort(f$3));
|
|
58
58
|
M$3.__r = 0;
|
|
59
59
|
}
|
|
60
|
-
function P(n2, l2, u2, t2, i2, o2, r2, f2, e2, c2, s2) {
|
|
60
|
+
function P$1(n2, l2, u2, t2, i2, o2, r2, f2, e2, c2, s2) {
|
|
61
61
|
var a2, p2, y2, d2, w2, _2 = t2 && t2.__k || v$2, g2 = l2.length;
|
|
62
62
|
for (u2.__d = e2, $(u2, l2, _2), e2 = u2.__d, a2 = 0; a2 < g2; a2++)
|
|
63
63
|
null != (y2 = u2.__k[a2]) && (p2 = -1 === y2.__i ? h$2 : _2[y2.__i] || h$2, y2.__i = a2, O(n2, y2, p2, i2, o2, r2, f2, e2, c2, s2), d2 = y2.__e, y2.ref && p2.ref != y2.ref && (p2.ref && N$1(p2.ref, null, y2), s2.push(y2.ref, y2.__c || d2, y2)), null == w2 && null != d2 && (w2 = d2), 65536 & y2.__u || p2.__k === y2.__k ? e2 = I(y2, e2, n2) : "function" == typeof y2.type && void 0 !== y2.__d ? e2 = y2.__d : d2 && (e2 = d2.nextSibling), y2.__d = void 0, y2.__u &= -196609);
|
|
@@ -69,7 +69,7 @@ function $(n2, l2, u2) {
|
|
|
69
69
|
null != (i2 = l2[t2]) && "boolean" != typeof i2 && "function" != typeof i2 ? (r2 = t2 + a2, (i2 = n2.__k[t2] = "string" == typeof i2 || "number" == typeof i2 || "bigint" == typeof i2 || i2.constructor == String ? g$2(null, i2, null, null, null) : y$2(i2) ? g$2(b$1, { children: i2 }, null, null, null) : void 0 === i2.constructor && i2.__b > 0 ? g$2(i2.type, i2.props, i2.key, i2.ref ? i2.ref : null, i2.__v) : i2).__ = n2, i2.__b = n2.__b + 1, o2 = null, -1 !== (f2 = i2.__i = L$1(i2, u2, r2, s2)) && (s2--, (o2 = u2[f2]) && (o2.__u |= 131072)), null == o2 || null === o2.__v ? (-1 == f2 && a2--, "function" != typeof i2.type && (i2.__u |= 65536)) : f2 !== r2 && (f2 == r2 - 1 ? a2-- : f2 == r2 + 1 ? a2++ : (f2 > r2 ? a2-- : a2++, i2.__u |= 65536))) : i2 = n2.__k[t2] = null;
|
|
70
70
|
if (s2)
|
|
71
71
|
for (t2 = 0; t2 < c2; t2++)
|
|
72
|
-
null != (o2 = u2[t2]) && 0 == (131072 & o2.__u) && (o2.__e == n2.__d && (n2.__d = x$2(o2)), V(o2, o2));
|
|
72
|
+
null != (o2 = u2[t2]) && 0 == (131072 & o2.__u) && (o2.__e == n2.__d && (n2.__d = x$2(o2)), V$1(o2, o2));
|
|
73
73
|
}
|
|
74
74
|
function I(n2, l2, u2) {
|
|
75
75
|
var t2, i2;
|
|
@@ -182,7 +182,7 @@ function O(n2, u2, t2, i2, o2, r2, f2, e2, c2, s2) {
|
|
|
182
182
|
do {
|
|
183
183
|
h2.__d = false, $2 && $2(u2), a2 = h2.render(h2.props, h2.state, h2.context), h2.state = h2.__s;
|
|
184
184
|
} while (h2.__d && ++I2 < 25);
|
|
185
|
-
h2.state = h2.__s, null != h2.getChildContext && (i2 = d$3(d$3({}, i2), h2.getChildContext())), x2 && !v2 && null != h2.getSnapshotBeforeUpdate && (_2 = h2.getSnapshotBeforeUpdate(p2, w2)), P(n2, y$2(L2 = null != a2 && a2.type === b$1 && null == a2.key ? a2.props.children : a2) ? L2 : [L2], u2, t2, i2, o2, r2, f2, e2, c2, s2), h2.base = u2.__e, u2.__u &= -161, h2.__h.length && f2.push(h2), g2 && (h2.__E = h2.__ = null);
|
|
185
|
+
h2.state = h2.__s, null != h2.getChildContext && (i2 = d$3(d$3({}, i2), h2.getChildContext())), x2 && !v2 && null != h2.getSnapshotBeforeUpdate && (_2 = h2.getSnapshotBeforeUpdate(p2, w2)), P$1(n2, y$2(L2 = null != a2 && a2.type === b$1 && null == a2.key ? a2.props.children : a2) ? L2 : [L2], u2, t2, i2, o2, r2, f2, e2, c2, s2), h2.base = u2.__e, u2.__u &= -161, h2.__h.length && f2.push(h2), g2 && (h2.__E = h2.__ = null);
|
|
186
186
|
} catch (n3) {
|
|
187
187
|
if (u2.__v = null, c2 || null != r2) {
|
|
188
188
|
for (u2.__u |= c2 ? 160 : 128; e2 && 8 === e2.nodeType && e2.nextSibling; )
|
|
@@ -244,7 +244,7 @@ function z$2(u2, t2, i2, o2, r2, f2, e2, c2, s2) {
|
|
|
244
244
|
_2 = k2[a2], "children" == a2 ? d2 = _2 : "dangerouslySetInnerHTML" == a2 ? v2 = _2 : "value" == a2 ? g2 = _2 : "checked" == a2 ? m2 = _2 : c2 && "function" != typeof _2 || b2[a2] === _2 || A$2(u2, a2, _2, b2[a2], r2);
|
|
245
245
|
if (v2)
|
|
246
246
|
c2 || p2 && (v2.__html === p2.__html || v2.__html === u2.innerHTML) || (u2.innerHTML = v2.__html), t2.__k = [];
|
|
247
|
-
else if (p2 && (u2.innerHTML = ""), P(u2, y$2(d2) ? d2 : [d2], t2, i2, o2, "foreignObject" === C3 ? "http://www.w3.org/1999/xhtml" : r2, f2, e2, f2 ? f2[0] : i2.__k && x$2(i2, 0), c2, s2), null != f2)
|
|
247
|
+
else if (p2 && (u2.innerHTML = ""), P$1(u2, y$2(d2) ? d2 : [d2], t2, i2, o2, "foreignObject" === C3 ? "http://www.w3.org/1999/xhtml" : r2, f2, e2, f2 ? f2[0] : i2.__k && x$2(i2, 0), c2, s2), null != f2)
|
|
248
248
|
for (a2 = f2.length; a2--; )
|
|
249
249
|
w$3(f2[a2]);
|
|
250
250
|
c2 || (a2 = "value", "progress" === C3 && null == g2 ? u2.removeAttribute("value") : void 0 !== g2 && (g2 !== u2[a2] || "progress" === C3 && !g2 || "option" === C3 && g2 !== b2[a2]) && A$2(u2, a2, g2, b2[a2], r2), a2 = "checked", void 0 !== m2 && m2 !== u2[a2] && A$2(u2, a2, m2, b2[a2], r2));
|
|
@@ -262,7 +262,7 @@ function N$1(n2, u2, t2) {
|
|
|
262
262
|
l$3.__e(n3, t2);
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
|
-
function V(n2, u2, t2) {
|
|
265
|
+
function V$1(n2, u2, t2) {
|
|
266
266
|
var i2, o2;
|
|
267
267
|
if (l$3.unmount && l$3.unmount(n2), (i2 = n2.ref) && (i2.current && i2.current !== n2.__e || N$1(i2, null, u2)), null != (i2 = n2.__c)) {
|
|
268
268
|
if (i2.componentWillUnmount)
|
|
@@ -275,7 +275,7 @@ function V(n2, u2, t2) {
|
|
|
275
275
|
}
|
|
276
276
|
if (i2 = n2.__k)
|
|
277
277
|
for (o2 = 0; o2 < i2.length; o2++)
|
|
278
|
-
i2[o2] && V(i2[o2], u2, t2 || "function" != typeof n2.type);
|
|
278
|
+
i2[o2] && V$1(i2[o2], u2, t2 || "function" != typeof n2.type);
|
|
279
279
|
t2 || w$3(n2.__e), n2.__c = n2.__ = n2.__e = n2.__d = void 0;
|
|
280
280
|
}
|
|
281
281
|
function q$1(n2, l2, u2) {
|
|
@@ -602,6 +602,29 @@ var U = function(n2, t2, e2) {
|
|
|
602
602
|
n2.u = e2 = e2[2];
|
|
603
603
|
}
|
|
604
604
|
};
|
|
605
|
+
function V(n2) {
|
|
606
|
+
return this.getChildContext = function() {
|
|
607
|
+
return n2.context;
|
|
608
|
+
}, n2.children;
|
|
609
|
+
}
|
|
610
|
+
function W(n2) {
|
|
611
|
+
var e2 = this, r2 = n2.i;
|
|
612
|
+
e2.componentWillUnmount = function() {
|
|
613
|
+
B$2(null, e2.l), e2.l = null, e2.i = null;
|
|
614
|
+
}, e2.i && e2.i !== r2 && e2.componentWillUnmount(), e2.l || (e2.i = r2, e2.l = { nodeType: 1, parentNode: r2, childNodes: [], contains: function() {
|
|
615
|
+
return true;
|
|
616
|
+
}, appendChild: function(n3) {
|
|
617
|
+
this.childNodes.push(n3), e2.i.appendChild(n3);
|
|
618
|
+
}, insertBefore: function(n3, t2) {
|
|
619
|
+
this.childNodes.push(n3), e2.i.appendChild(n3);
|
|
620
|
+
}, removeChild: function(n3) {
|
|
621
|
+
this.childNodes.splice(this.childNodes.indexOf(n3) >>> 1, 1), e2.i.removeChild(n3);
|
|
622
|
+
} }), B$2(_$3(V, { context: e2.context }, n2.__v), e2.l);
|
|
623
|
+
}
|
|
624
|
+
function P(n2, e2) {
|
|
625
|
+
var r2 = _$3(W, { __v: n2, i: e2 });
|
|
626
|
+
return r2.containerInfo = e2, r2;
|
|
627
|
+
}
|
|
605
628
|
(F.prototype = new k$1()).__a = function(n2) {
|
|
606
629
|
var t2 = this, e2 = L(t2.__v), r2 = t2.o.get(n2);
|
|
607
630
|
return r2[0]++, function(u2) {
|
|
@@ -675,6 +698,36 @@ l$3.diffed = function(n2) {
|
|
|
675
698
|
var t2 = n2.props, e2 = n2.__e;
|
|
676
699
|
null != e2 && "textarea" === n2.type && "value" in t2 && t2.value !== e2.value && (e2.value = null == t2.value ? "" : t2.value);
|
|
677
700
|
};
|
|
701
|
+
function e$1(e2, n2) {
|
|
702
|
+
return n2 = n2 || {}, new Promise(function(t2, r2) {
|
|
703
|
+
var s2 = new XMLHttpRequest(), o2 = [], u2 = {}, a2 = function e3() {
|
|
704
|
+
return { ok: 2 == (s2.status / 100 | 0), statusText: s2.statusText, status: s2.status, url: s2.responseURL, text: function() {
|
|
705
|
+
return Promise.resolve(s2.responseText);
|
|
706
|
+
}, json: function() {
|
|
707
|
+
return Promise.resolve(s2.responseText).then(JSON.parse);
|
|
708
|
+
}, blob: function() {
|
|
709
|
+
return Promise.resolve(new Blob([s2.response]));
|
|
710
|
+
}, clone: e3, headers: { keys: function() {
|
|
711
|
+
return o2;
|
|
712
|
+
}, entries: function() {
|
|
713
|
+
return o2.map(function(e4) {
|
|
714
|
+
return [e4, s2.getResponseHeader(e4)];
|
|
715
|
+
});
|
|
716
|
+
}, get: function(e4) {
|
|
717
|
+
return s2.getResponseHeader(e4);
|
|
718
|
+
}, has: function(e4) {
|
|
719
|
+
return null != s2.getResponseHeader(e4);
|
|
720
|
+
} } };
|
|
721
|
+
};
|
|
722
|
+
for (var i2 in s2.open(n2.method || "get", e2, true), s2.onload = function() {
|
|
723
|
+
s2.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm, function(e3, n3) {
|
|
724
|
+
u2[n3] || o2.push(u2[n3] = n3);
|
|
725
|
+
}), t2(a2());
|
|
726
|
+
}, s2.onerror = r2, s2.withCredentials = "include" == n2.credentials, n2.headers)
|
|
727
|
+
s2.setRequestHeader(i2, n2.headers[i2]);
|
|
728
|
+
s2.send(n2.body || null);
|
|
729
|
+
});
|
|
730
|
+
}
|
|
678
731
|
var __assign = function() {
|
|
679
732
|
__assign = Object.assign || function __assign2(t2) {
|
|
680
733
|
for (var s2, i2 = 1, n2 = arguments.length; i2 < n2; i2++) {
|
|
@@ -805,7 +858,7 @@ typeof SuppressedError === "function" ? SuppressedError : function(error, suppre
|
|
|
805
858
|
var e2 = new Error(message);
|
|
806
859
|
return e2.name = "SuppressedError", e2.error = error, e2.suppressed = suppressed, e2;
|
|
807
860
|
};
|
|
808
|
-
var version = "4.3.0";
|
|
861
|
+
var version$1 = "4.3.0";
|
|
809
862
|
function wait(durationMs, resolveWith) {
|
|
810
863
|
return new Promise(function(resolve) {
|
|
811
864
|
return setTimeout(resolve, durationMs, resolveWith);
|
|
@@ -1934,14 +1987,14 @@ function getCanvasFingerprint() {
|
|
|
1934
1987
|
}
|
|
1935
1988
|
function getUnstableCanvasFingerprint(skipImages) {
|
|
1936
1989
|
return __awaiter(this, void 0, void 0, function() {
|
|
1937
|
-
var winding, geometry, text, _a,
|
|
1990
|
+
var winding, geometry, text, _a, canvas2, context;
|
|
1938
1991
|
var _b;
|
|
1939
1992
|
return __generator(this, function(_c) {
|
|
1940
1993
|
switch (_c.label) {
|
|
1941
1994
|
case 0:
|
|
1942
1995
|
winding = false;
|
|
1943
|
-
_a = makeCanvasContext(),
|
|
1944
|
-
if (!!isSupported(
|
|
1996
|
+
_a = makeCanvasContext(), canvas2 = _a[0], context = _a[1];
|
|
1997
|
+
if (!!isSupported(canvas2, context))
|
|
1945
1998
|
return [3, 1];
|
|
1946
1999
|
geometry = text = "unsupported";
|
|
1947
2000
|
return [3, 4];
|
|
@@ -1952,7 +2005,7 @@ function getUnstableCanvasFingerprint(skipImages) {
|
|
|
1952
2005
|
geometry = text = "skipped";
|
|
1953
2006
|
return [3, 4];
|
|
1954
2007
|
case 2:
|
|
1955
|
-
return [4, renderImages(
|
|
2008
|
+
return [4, renderImages(canvas2, context)];
|
|
1956
2009
|
case 3:
|
|
1957
2010
|
_b = _c.sent(), geometry = _b[0], text = _b[1];
|
|
1958
2011
|
_c.label = 4;
|
|
@@ -1963,31 +2016,31 @@ function getUnstableCanvasFingerprint(skipImages) {
|
|
|
1963
2016
|
});
|
|
1964
2017
|
}
|
|
1965
2018
|
function makeCanvasContext() {
|
|
1966
|
-
var
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
return [
|
|
2019
|
+
var canvas2 = document.createElement("canvas");
|
|
2020
|
+
canvas2.width = 1;
|
|
2021
|
+
canvas2.height = 1;
|
|
2022
|
+
return [canvas2, canvas2.getContext("2d")];
|
|
1970
2023
|
}
|
|
1971
|
-
function isSupported(
|
|
1972
|
-
return !!(context &&
|
|
2024
|
+
function isSupported(canvas2, context) {
|
|
2025
|
+
return !!(context && canvas2.toDataURL);
|
|
1973
2026
|
}
|
|
1974
2027
|
function doesSupportWinding(context) {
|
|
1975
2028
|
context.rect(0, 0, 10, 10);
|
|
1976
2029
|
context.rect(2, 2, 6, 6);
|
|
1977
2030
|
return !context.isPointInPath(5, 5, "evenodd");
|
|
1978
2031
|
}
|
|
1979
|
-
function renderImages(
|
|
2032
|
+
function renderImages(canvas2, context) {
|
|
1980
2033
|
return __awaiter(this, void 0, void 0, function() {
|
|
1981
2034
|
var textImage1, textImage2, geometryImage;
|
|
1982
2035
|
return __generator(this, function(_a) {
|
|
1983
2036
|
switch (_a.label) {
|
|
1984
2037
|
case 0:
|
|
1985
|
-
renderTextImage(
|
|
2038
|
+
renderTextImage(canvas2, context);
|
|
1986
2039
|
return [4, releaseEventLoop()];
|
|
1987
2040
|
case 1:
|
|
1988
2041
|
_a.sent();
|
|
1989
|
-
textImage1 = canvasToString(
|
|
1990
|
-
textImage2 = canvasToString(
|
|
2042
|
+
textImage1 = canvasToString(canvas2);
|
|
2043
|
+
textImage2 = canvasToString(canvas2);
|
|
1991
2044
|
if (textImage1 !== textImage2) {
|
|
1992
2045
|
return [2, [
|
|
1993
2046
|
"unstable",
|
|
@@ -1995,19 +2048,19 @@ function renderImages(canvas, context) {
|
|
|
1995
2048
|
/* ImageStatus.Unstable */
|
|
1996
2049
|
]];
|
|
1997
2050
|
}
|
|
1998
|
-
renderGeometryImage(
|
|
2051
|
+
renderGeometryImage(canvas2, context);
|
|
1999
2052
|
return [4, releaseEventLoop()];
|
|
2000
2053
|
case 2:
|
|
2001
2054
|
_a.sent();
|
|
2002
|
-
geometryImage = canvasToString(
|
|
2055
|
+
geometryImage = canvasToString(canvas2);
|
|
2003
2056
|
return [2, [geometryImage, textImage1]];
|
|
2004
2057
|
}
|
|
2005
2058
|
});
|
|
2006
2059
|
});
|
|
2007
2060
|
}
|
|
2008
|
-
function renderTextImage(
|
|
2009
|
-
|
|
2010
|
-
|
|
2061
|
+
function renderTextImage(canvas2, context) {
|
|
2062
|
+
canvas2.width = 240;
|
|
2063
|
+
canvas2.height = 60;
|
|
2011
2064
|
context.textBaseline = "alphabetic";
|
|
2012
2065
|
context.fillStyle = "#f60";
|
|
2013
2066
|
context.fillRect(100, 1, 62, 20);
|
|
@@ -2022,9 +2075,9 @@ function renderTextImage(canvas, context) {
|
|
|
2022
2075
|
context.font = "18pt Arial";
|
|
2023
2076
|
context.fillText(printedText, 4, 45);
|
|
2024
2077
|
}
|
|
2025
|
-
function renderGeometryImage(
|
|
2026
|
-
|
|
2027
|
-
|
|
2078
|
+
function renderGeometryImage(canvas2, context) {
|
|
2079
|
+
canvas2.width = 122;
|
|
2080
|
+
canvas2.height = 110;
|
|
2028
2081
|
context.globalCompositeOperation = "multiply";
|
|
2029
2082
|
for (var _i = 0, _a = [
|
|
2030
2083
|
["#f2f", 40, 40],
|
|
@@ -2043,8 +2096,8 @@ function renderGeometryImage(canvas, context) {
|
|
|
2043
2096
|
context.arc(60, 60, 20, 0, Math.PI * 2, true);
|
|
2044
2097
|
context.fill("evenodd");
|
|
2045
2098
|
}
|
|
2046
|
-
function canvasToString(
|
|
2047
|
-
return
|
|
2099
|
+
function canvasToString(canvas2) {
|
|
2100
|
+
return canvas2.toDataURL();
|
|
2048
2101
|
}
|
|
2049
2102
|
function doesBrowserPerformAntifingerprinting() {
|
|
2050
2103
|
return isWebKit() && isWebKit616OrNewer() && isSafariWebKit();
|
|
@@ -2807,7 +2860,7 @@ function getMathFingerprint() {
|
|
|
2807
2860
|
var cosh = M.cosh || fallbackFn;
|
|
2808
2861
|
var tan = M.tan || fallbackFn;
|
|
2809
2862
|
var tanh = M.tanh || fallbackFn;
|
|
2810
|
-
var
|
|
2863
|
+
var exp2 = M.exp || fallbackFn;
|
|
2811
2864
|
var expm1 = M.expm1 || fallbackFn;
|
|
2812
2865
|
var log1p = M.log1p || fallbackFn;
|
|
2813
2866
|
var powPI = function(value) {
|
|
@@ -2856,7 +2909,7 @@ function getMathFingerprint() {
|
|
|
2856
2909
|
tan: tan(-1e300),
|
|
2857
2910
|
tanh: tanh(1),
|
|
2858
2911
|
tanhPf: tanhPf(1),
|
|
2859
|
-
exp:
|
|
2912
|
+
exp: exp2(1),
|
|
2860
2913
|
expm1: expm1(1),
|
|
2861
2914
|
expm1Pf: expm1Pf(1),
|
|
2862
2915
|
log1p: log1p(10),
|
|
@@ -3172,15 +3225,15 @@ function getWebGLContext(cache) {
|
|
|
3172
3225
|
if (cache.webgl) {
|
|
3173
3226
|
return cache.webgl.context;
|
|
3174
3227
|
}
|
|
3175
|
-
var
|
|
3228
|
+
var canvas2 = document.createElement("canvas");
|
|
3176
3229
|
var context;
|
|
3177
|
-
|
|
3230
|
+
canvas2.addEventListener("webglCreateContextError", function() {
|
|
3178
3231
|
return context = void 0;
|
|
3179
3232
|
});
|
|
3180
3233
|
for (var _i = 0, _a = ["webgl", "experimental-webgl"]; _i < _a.length; _i++) {
|
|
3181
3234
|
var type = _a[_i];
|
|
3182
3235
|
try {
|
|
3183
|
-
context =
|
|
3236
|
+
context = canvas2.getContext(type);
|
|
3184
3237
|
} catch (_b) {
|
|
3185
3238
|
}
|
|
3186
3239
|
if (context) {
|
|
@@ -3322,7 +3375,7 @@ function makeLazyGetResult(components) {
|
|
|
3322
3375
|
},
|
|
3323
3376
|
confidence,
|
|
3324
3377
|
components,
|
|
3325
|
-
version
|
|
3378
|
+
version: version$1
|
|
3326
3379
|
};
|
|
3327
3380
|
}
|
|
3328
3381
|
function prepareForSources(delayFallback) {
|
|
@@ -3361,7 +3414,7 @@ function monitor() {
|
|
|
3361
3414
|
}
|
|
3362
3415
|
try {
|
|
3363
3416
|
var request = new XMLHttpRequest();
|
|
3364
|
-
request.open("get", "https://m1.openfpcdn.io/fingerprintjs/v".concat(version, "/npm-monitoring"), true);
|
|
3417
|
+
request.open("get", "https://m1.openfpcdn.io/fingerprintjs/v".concat(version$1, "/npm-monitoring"), true);
|
|
3365
3418
|
request.send();
|
|
3366
3419
|
} catch (error) {
|
|
3367
3420
|
console.error(error);
|
|
@@ -3887,7 +3940,7 @@ function t() {
|
|
|
3887
3940
|
}
|
|
3888
3941
|
var o = void 0;
|
|
3889
3942
|
var h = void 0, s$1 = 0, f = 0, v = 0;
|
|
3890
|
-
function e
|
|
3943
|
+
function e(i2) {
|
|
3891
3944
|
if (void 0 !== o) {
|
|
3892
3945
|
var t2 = i2.n;
|
|
3893
3946
|
if (void 0 === t2 || t2.t !== o) {
|
|
@@ -3978,7 +4031,7 @@ u.prototype.peek = function() {
|
|
|
3978
4031
|
}
|
|
3979
4032
|
};
|
|
3980
4033
|
Object.defineProperty(u.prototype, "value", { get: function() {
|
|
3981
|
-
var i2 = e
|
|
4034
|
+
var i2 = e(this);
|
|
3982
4035
|
if (void 0 !== i2)
|
|
3983
4036
|
i2.i = this.i;
|
|
3984
4037
|
return this.v;
|
|
@@ -4109,7 +4162,7 @@ y.prototype.N = function() {
|
|
|
4109
4162
|
Object.defineProperty(y.prototype, "value", { get: function() {
|
|
4110
4163
|
if (1 & this.f)
|
|
4111
4164
|
throw new Error("Cycle detected");
|
|
4112
|
-
var i2 = e
|
|
4165
|
+
var i2 = e(this);
|
|
4113
4166
|
this.h();
|
|
4114
4167
|
if (void 0 !== i2)
|
|
4115
4168
|
i2.i = this.i;
|
|
@@ -4392,46 +4445,2005 @@ function useSignal(n2) {
|
|
|
4392
4445
|
return d$1(n2);
|
|
4393
4446
|
}, []);
|
|
4394
4447
|
}
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4448
|
+
var browser = {};
|
|
4449
|
+
var canPromise$1 = function() {
|
|
4450
|
+
return typeof Promise === "function" && Promise.prototype && Promise.prototype.then;
|
|
4451
|
+
};
|
|
4452
|
+
var qrcode = {};
|
|
4453
|
+
var utils$1 = {};
|
|
4454
|
+
let toSJISFunction;
|
|
4455
|
+
const CODEWORDS_COUNT = [
|
|
4456
|
+
0,
|
|
4457
|
+
// Not used
|
|
4458
|
+
26,
|
|
4459
|
+
44,
|
|
4460
|
+
70,
|
|
4461
|
+
100,
|
|
4462
|
+
134,
|
|
4463
|
+
172,
|
|
4464
|
+
196,
|
|
4465
|
+
242,
|
|
4466
|
+
292,
|
|
4467
|
+
346,
|
|
4468
|
+
404,
|
|
4469
|
+
466,
|
|
4470
|
+
532,
|
|
4471
|
+
581,
|
|
4472
|
+
655,
|
|
4473
|
+
733,
|
|
4474
|
+
815,
|
|
4475
|
+
901,
|
|
4476
|
+
991,
|
|
4477
|
+
1085,
|
|
4478
|
+
1156,
|
|
4479
|
+
1258,
|
|
4480
|
+
1364,
|
|
4481
|
+
1474,
|
|
4482
|
+
1588,
|
|
4483
|
+
1706,
|
|
4484
|
+
1828,
|
|
4485
|
+
1921,
|
|
4486
|
+
2051,
|
|
4487
|
+
2185,
|
|
4488
|
+
2323,
|
|
4489
|
+
2465,
|
|
4490
|
+
2611,
|
|
4491
|
+
2761,
|
|
4492
|
+
2876,
|
|
4493
|
+
3034,
|
|
4494
|
+
3196,
|
|
4495
|
+
3362,
|
|
4496
|
+
3532,
|
|
4497
|
+
3706
|
|
4498
|
+
];
|
|
4499
|
+
utils$1.getSymbolSize = function getSymbolSize(version2) {
|
|
4500
|
+
if (!version2)
|
|
4501
|
+
throw new Error('"version" cannot be null or undefined');
|
|
4502
|
+
if (version2 < 1 || version2 > 40)
|
|
4503
|
+
throw new Error('"version" should be in range from 1 to 40');
|
|
4504
|
+
return version2 * 4 + 17;
|
|
4505
|
+
};
|
|
4506
|
+
utils$1.getSymbolTotalCodewords = function getSymbolTotalCodewords(version2) {
|
|
4507
|
+
return CODEWORDS_COUNT[version2];
|
|
4508
|
+
};
|
|
4509
|
+
utils$1.getBCHDigit = function(data) {
|
|
4510
|
+
let digit = 0;
|
|
4511
|
+
while (data !== 0) {
|
|
4512
|
+
digit++;
|
|
4513
|
+
data >>>= 1;
|
|
4514
|
+
}
|
|
4515
|
+
return digit;
|
|
4516
|
+
};
|
|
4517
|
+
utils$1.setToSJISFunction = function setToSJISFunction(f2) {
|
|
4518
|
+
if (typeof f2 !== "function") {
|
|
4519
|
+
throw new Error('"toSJISFunc" is not a valid function.');
|
|
4520
|
+
}
|
|
4521
|
+
toSJISFunction = f2;
|
|
4522
|
+
};
|
|
4523
|
+
utils$1.isKanjiModeEnabled = function() {
|
|
4524
|
+
return typeof toSJISFunction !== "undefined";
|
|
4525
|
+
};
|
|
4526
|
+
utils$1.toSJIS = function toSJIS(kanji2) {
|
|
4527
|
+
return toSJISFunction(kanji2);
|
|
4528
|
+
};
|
|
4529
|
+
var errorCorrectionLevel = {};
|
|
4530
|
+
(function(exports) {
|
|
4531
|
+
exports.L = { bit: 1 };
|
|
4532
|
+
exports.M = { bit: 0 };
|
|
4533
|
+
exports.Q = { bit: 3 };
|
|
4534
|
+
exports.H = { bit: 2 };
|
|
4535
|
+
function fromString(string) {
|
|
4536
|
+
if (typeof string !== "string") {
|
|
4537
|
+
throw new Error("Param is not a string");
|
|
4538
|
+
}
|
|
4539
|
+
const lcStr = string.toLowerCase();
|
|
4540
|
+
switch (lcStr) {
|
|
4541
|
+
case "l":
|
|
4542
|
+
case "low":
|
|
4543
|
+
return exports.L;
|
|
4544
|
+
case "m":
|
|
4545
|
+
case "medium":
|
|
4546
|
+
return exports.M;
|
|
4547
|
+
case "q":
|
|
4548
|
+
case "quartile":
|
|
4549
|
+
return exports.Q;
|
|
4550
|
+
case "h":
|
|
4551
|
+
case "high":
|
|
4552
|
+
return exports.H;
|
|
4553
|
+
default:
|
|
4554
|
+
throw new Error("Unknown EC Level: " + string);
|
|
4555
|
+
}
|
|
4556
|
+
}
|
|
4557
|
+
exports.isValid = function isValid2(level) {
|
|
4558
|
+
return level && typeof level.bit !== "undefined" && level.bit >= 0 && level.bit < 4;
|
|
4559
|
+
};
|
|
4560
|
+
exports.from = function from(value, defaultValue) {
|
|
4561
|
+
if (exports.isValid(value)) {
|
|
4562
|
+
return value;
|
|
4563
|
+
}
|
|
4564
|
+
try {
|
|
4565
|
+
return fromString(value);
|
|
4566
|
+
} catch (e2) {
|
|
4567
|
+
return defaultValue;
|
|
4568
|
+
}
|
|
4569
|
+
};
|
|
4570
|
+
})(errorCorrectionLevel);
|
|
4571
|
+
function BitBuffer$1() {
|
|
4572
|
+
this.buffer = [];
|
|
4573
|
+
this.length = 0;
|
|
4574
|
+
}
|
|
4575
|
+
BitBuffer$1.prototype = {
|
|
4576
|
+
get: function(index2) {
|
|
4577
|
+
const bufIndex = Math.floor(index2 / 8);
|
|
4578
|
+
return (this.buffer[bufIndex] >>> 7 - index2 % 8 & 1) === 1;
|
|
4579
|
+
},
|
|
4580
|
+
put: function(num, length) {
|
|
4581
|
+
for (let i2 = 0; i2 < length; i2++) {
|
|
4582
|
+
this.putBit((num >>> length - i2 - 1 & 1) === 1);
|
|
4583
|
+
}
|
|
4584
|
+
},
|
|
4585
|
+
getLengthInBits: function() {
|
|
4586
|
+
return this.length;
|
|
4587
|
+
},
|
|
4588
|
+
putBit: function(bit) {
|
|
4589
|
+
const bufIndex = Math.floor(this.length / 8);
|
|
4590
|
+
if (this.buffer.length <= bufIndex) {
|
|
4591
|
+
this.buffer.push(0);
|
|
4592
|
+
}
|
|
4593
|
+
if (bit) {
|
|
4594
|
+
this.buffer[bufIndex] |= 128 >>> this.length % 8;
|
|
4595
|
+
}
|
|
4596
|
+
this.length++;
|
|
4597
|
+
}
|
|
4598
|
+
};
|
|
4599
|
+
var bitBuffer = BitBuffer$1;
|
|
4600
|
+
function BitMatrix$1(size) {
|
|
4601
|
+
if (!size || size < 1) {
|
|
4602
|
+
throw new Error("BitMatrix size must be defined and greater than 0");
|
|
4603
|
+
}
|
|
4604
|
+
this.size = size;
|
|
4605
|
+
this.data = new Uint8Array(size * size);
|
|
4606
|
+
this.reservedBit = new Uint8Array(size * size);
|
|
4607
|
+
}
|
|
4608
|
+
BitMatrix$1.prototype.set = function(row, col, value, reserved) {
|
|
4609
|
+
const index2 = row * this.size + col;
|
|
4610
|
+
this.data[index2] = value;
|
|
4611
|
+
if (reserved)
|
|
4612
|
+
this.reservedBit[index2] = true;
|
|
4613
|
+
};
|
|
4614
|
+
BitMatrix$1.prototype.get = function(row, col) {
|
|
4615
|
+
return this.data[row * this.size + col];
|
|
4616
|
+
};
|
|
4617
|
+
BitMatrix$1.prototype.xor = function(row, col, value) {
|
|
4618
|
+
this.data[row * this.size + col] ^= value;
|
|
4619
|
+
};
|
|
4620
|
+
BitMatrix$1.prototype.isReserved = function(row, col) {
|
|
4621
|
+
return this.reservedBit[row * this.size + col];
|
|
4622
|
+
};
|
|
4623
|
+
var bitMatrix = BitMatrix$1;
|
|
4624
|
+
var alignmentPattern = {};
|
|
4625
|
+
(function(exports) {
|
|
4626
|
+
const getSymbolSize3 = utils$1.getSymbolSize;
|
|
4627
|
+
exports.getRowColCoords = function getRowColCoords(version2) {
|
|
4628
|
+
if (version2 === 1)
|
|
4629
|
+
return [];
|
|
4630
|
+
const posCount = Math.floor(version2 / 7) + 2;
|
|
4631
|
+
const size = getSymbolSize3(version2);
|
|
4632
|
+
const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2;
|
|
4633
|
+
const positions = [size - 7];
|
|
4634
|
+
for (let i2 = 1; i2 < posCount - 1; i2++) {
|
|
4635
|
+
positions[i2] = positions[i2 - 1] - intervals;
|
|
4636
|
+
}
|
|
4637
|
+
positions.push(6);
|
|
4638
|
+
return positions.reverse();
|
|
4639
|
+
};
|
|
4640
|
+
exports.getPositions = function getPositions2(version2) {
|
|
4641
|
+
const coords = [];
|
|
4642
|
+
const pos = exports.getRowColCoords(version2);
|
|
4643
|
+
const posLength = pos.length;
|
|
4644
|
+
for (let i2 = 0; i2 < posLength; i2++) {
|
|
4645
|
+
for (let j2 = 0; j2 < posLength; j2++) {
|
|
4646
|
+
if (i2 === 0 && j2 === 0 || // top-left
|
|
4647
|
+
i2 === 0 && j2 === posLength - 1 || // bottom-left
|
|
4648
|
+
i2 === posLength - 1 && j2 === 0) {
|
|
4649
|
+
continue;
|
|
4650
|
+
}
|
|
4651
|
+
coords.push([pos[i2], pos[j2]]);
|
|
4652
|
+
}
|
|
4653
|
+
}
|
|
4654
|
+
return coords;
|
|
4655
|
+
};
|
|
4656
|
+
})(alignmentPattern);
|
|
4657
|
+
var finderPattern = {};
|
|
4658
|
+
const getSymbolSize2 = utils$1.getSymbolSize;
|
|
4659
|
+
const FINDER_PATTERN_SIZE = 7;
|
|
4660
|
+
finderPattern.getPositions = function getPositions(version2) {
|
|
4661
|
+
const size = getSymbolSize2(version2);
|
|
4662
|
+
return [
|
|
4663
|
+
// top-left
|
|
4664
|
+
[0, 0],
|
|
4665
|
+
// top-right
|
|
4666
|
+
[size - FINDER_PATTERN_SIZE, 0],
|
|
4667
|
+
// bottom-left
|
|
4668
|
+
[0, size - FINDER_PATTERN_SIZE]
|
|
4669
|
+
];
|
|
4670
|
+
};
|
|
4671
|
+
var maskPattern = {};
|
|
4672
|
+
(function(exports) {
|
|
4673
|
+
exports.Patterns = {
|
|
4674
|
+
PATTERN000: 0,
|
|
4675
|
+
PATTERN001: 1,
|
|
4676
|
+
PATTERN010: 2,
|
|
4677
|
+
PATTERN011: 3,
|
|
4678
|
+
PATTERN100: 4,
|
|
4679
|
+
PATTERN101: 5,
|
|
4680
|
+
PATTERN110: 6,
|
|
4681
|
+
PATTERN111: 7
|
|
4682
|
+
};
|
|
4683
|
+
const PenaltyScores = {
|
|
4684
|
+
N1: 3,
|
|
4685
|
+
N2: 3,
|
|
4686
|
+
N3: 40,
|
|
4687
|
+
N4: 10
|
|
4688
|
+
};
|
|
4689
|
+
exports.isValid = function isValid2(mask) {
|
|
4690
|
+
return mask != null && mask !== "" && !isNaN(mask) && mask >= 0 && mask <= 7;
|
|
4691
|
+
};
|
|
4692
|
+
exports.from = function from(value) {
|
|
4693
|
+
return exports.isValid(value) ? parseInt(value, 10) : void 0;
|
|
4694
|
+
};
|
|
4695
|
+
exports.getPenaltyN1 = function getPenaltyN1(data) {
|
|
4696
|
+
const size = data.size;
|
|
4697
|
+
let points = 0;
|
|
4698
|
+
let sameCountCol = 0;
|
|
4699
|
+
let sameCountRow = 0;
|
|
4700
|
+
let lastCol = null;
|
|
4701
|
+
let lastRow = null;
|
|
4702
|
+
for (let row = 0; row < size; row++) {
|
|
4703
|
+
sameCountCol = sameCountRow = 0;
|
|
4704
|
+
lastCol = lastRow = null;
|
|
4705
|
+
for (let col = 0; col < size; col++) {
|
|
4706
|
+
let module = data.get(row, col);
|
|
4707
|
+
if (module === lastCol) {
|
|
4708
|
+
sameCountCol++;
|
|
4709
|
+
} else {
|
|
4710
|
+
if (sameCountCol >= 5)
|
|
4711
|
+
points += PenaltyScores.N1 + (sameCountCol - 5);
|
|
4712
|
+
lastCol = module;
|
|
4713
|
+
sameCountCol = 1;
|
|
4714
|
+
}
|
|
4715
|
+
module = data.get(col, row);
|
|
4716
|
+
if (module === lastRow) {
|
|
4717
|
+
sameCountRow++;
|
|
4718
|
+
} else {
|
|
4719
|
+
if (sameCountRow >= 5)
|
|
4720
|
+
points += PenaltyScores.N1 + (sameCountRow - 5);
|
|
4721
|
+
lastRow = module;
|
|
4722
|
+
sameCountRow = 1;
|
|
4723
|
+
}
|
|
4724
|
+
}
|
|
4725
|
+
if (sameCountCol >= 5)
|
|
4726
|
+
points += PenaltyScores.N1 + (sameCountCol - 5);
|
|
4727
|
+
if (sameCountRow >= 5)
|
|
4728
|
+
points += PenaltyScores.N1 + (sameCountRow - 5);
|
|
4729
|
+
}
|
|
4730
|
+
return points;
|
|
4731
|
+
};
|
|
4732
|
+
exports.getPenaltyN2 = function getPenaltyN2(data) {
|
|
4733
|
+
const size = data.size;
|
|
4734
|
+
let points = 0;
|
|
4735
|
+
for (let row = 0; row < size - 1; row++) {
|
|
4736
|
+
for (let col = 0; col < size - 1; col++) {
|
|
4737
|
+
const last = data.get(row, col) + data.get(row, col + 1) + data.get(row + 1, col) + data.get(row + 1, col + 1);
|
|
4738
|
+
if (last === 4 || last === 0)
|
|
4739
|
+
points++;
|
|
4740
|
+
}
|
|
4741
|
+
}
|
|
4742
|
+
return points * PenaltyScores.N2;
|
|
4743
|
+
};
|
|
4744
|
+
exports.getPenaltyN3 = function getPenaltyN3(data) {
|
|
4745
|
+
const size = data.size;
|
|
4746
|
+
let points = 0;
|
|
4747
|
+
let bitsCol = 0;
|
|
4748
|
+
let bitsRow = 0;
|
|
4749
|
+
for (let row = 0; row < size; row++) {
|
|
4750
|
+
bitsCol = bitsRow = 0;
|
|
4751
|
+
for (let col = 0; col < size; col++) {
|
|
4752
|
+
bitsCol = bitsCol << 1 & 2047 | data.get(row, col);
|
|
4753
|
+
if (col >= 10 && (bitsCol === 1488 || bitsCol === 93))
|
|
4754
|
+
points++;
|
|
4755
|
+
bitsRow = bitsRow << 1 & 2047 | data.get(col, row);
|
|
4756
|
+
if (col >= 10 && (bitsRow === 1488 || bitsRow === 93))
|
|
4757
|
+
points++;
|
|
4758
|
+
}
|
|
4759
|
+
}
|
|
4760
|
+
return points * PenaltyScores.N3;
|
|
4761
|
+
};
|
|
4762
|
+
exports.getPenaltyN4 = function getPenaltyN4(data) {
|
|
4763
|
+
let darkCount = 0;
|
|
4764
|
+
const modulesCount = data.data.length;
|
|
4765
|
+
for (let i2 = 0; i2 < modulesCount; i2++)
|
|
4766
|
+
darkCount += data.data[i2];
|
|
4767
|
+
const k2 = Math.abs(Math.ceil(darkCount * 100 / modulesCount / 5) - 10);
|
|
4768
|
+
return k2 * PenaltyScores.N4;
|
|
4769
|
+
};
|
|
4770
|
+
function getMaskAt(maskPattern2, i2, j2) {
|
|
4771
|
+
switch (maskPattern2) {
|
|
4772
|
+
case exports.Patterns.PATTERN000:
|
|
4773
|
+
return (i2 + j2) % 2 === 0;
|
|
4774
|
+
case exports.Patterns.PATTERN001:
|
|
4775
|
+
return i2 % 2 === 0;
|
|
4776
|
+
case exports.Patterns.PATTERN010:
|
|
4777
|
+
return j2 % 3 === 0;
|
|
4778
|
+
case exports.Patterns.PATTERN011:
|
|
4779
|
+
return (i2 + j2) % 3 === 0;
|
|
4780
|
+
case exports.Patterns.PATTERN100:
|
|
4781
|
+
return (Math.floor(i2 / 2) + Math.floor(j2 / 3)) % 2 === 0;
|
|
4782
|
+
case exports.Patterns.PATTERN101:
|
|
4783
|
+
return i2 * j2 % 2 + i2 * j2 % 3 === 0;
|
|
4784
|
+
case exports.Patterns.PATTERN110:
|
|
4785
|
+
return (i2 * j2 % 2 + i2 * j2 % 3) % 2 === 0;
|
|
4786
|
+
case exports.Patterns.PATTERN111:
|
|
4787
|
+
return (i2 * j2 % 3 + (i2 + j2) % 2) % 2 === 0;
|
|
4788
|
+
default:
|
|
4789
|
+
throw new Error("bad maskPattern:" + maskPattern2);
|
|
4790
|
+
}
|
|
4791
|
+
}
|
|
4792
|
+
exports.applyMask = function applyMask(pattern, data) {
|
|
4793
|
+
const size = data.size;
|
|
4794
|
+
for (let col = 0; col < size; col++) {
|
|
4795
|
+
for (let row = 0; row < size; row++) {
|
|
4796
|
+
if (data.isReserved(row, col))
|
|
4797
|
+
continue;
|
|
4798
|
+
data.xor(row, col, getMaskAt(pattern, row, col));
|
|
4799
|
+
}
|
|
4800
|
+
}
|
|
4801
|
+
};
|
|
4802
|
+
exports.getBestMask = function getBestMask(data, setupFormatFunc) {
|
|
4803
|
+
const numPatterns = Object.keys(exports.Patterns).length;
|
|
4804
|
+
let bestPattern = 0;
|
|
4805
|
+
let lowerPenalty = Infinity;
|
|
4806
|
+
for (let p2 = 0; p2 < numPatterns; p2++) {
|
|
4807
|
+
setupFormatFunc(p2);
|
|
4808
|
+
exports.applyMask(p2, data);
|
|
4809
|
+
const penalty = exports.getPenaltyN1(data) + exports.getPenaltyN2(data) + exports.getPenaltyN3(data) + exports.getPenaltyN4(data);
|
|
4810
|
+
exports.applyMask(p2, data);
|
|
4811
|
+
if (penalty < lowerPenalty) {
|
|
4812
|
+
lowerPenalty = penalty;
|
|
4813
|
+
bestPattern = p2;
|
|
4814
|
+
}
|
|
4815
|
+
}
|
|
4816
|
+
return bestPattern;
|
|
4817
|
+
};
|
|
4818
|
+
})(maskPattern);
|
|
4819
|
+
var errorCorrectionCode = {};
|
|
4820
|
+
const ECLevel$1 = errorCorrectionLevel;
|
|
4821
|
+
const EC_BLOCKS_TABLE = [
|
|
4822
|
+
// L M Q H
|
|
4823
|
+
1,
|
|
4824
|
+
1,
|
|
4825
|
+
1,
|
|
4826
|
+
1,
|
|
4827
|
+
1,
|
|
4828
|
+
1,
|
|
4829
|
+
1,
|
|
4830
|
+
1,
|
|
4831
|
+
1,
|
|
4832
|
+
1,
|
|
4833
|
+
2,
|
|
4834
|
+
2,
|
|
4835
|
+
1,
|
|
4836
|
+
2,
|
|
4837
|
+
2,
|
|
4838
|
+
4,
|
|
4839
|
+
1,
|
|
4840
|
+
2,
|
|
4841
|
+
4,
|
|
4842
|
+
4,
|
|
4843
|
+
2,
|
|
4844
|
+
4,
|
|
4845
|
+
4,
|
|
4846
|
+
4,
|
|
4847
|
+
2,
|
|
4848
|
+
4,
|
|
4849
|
+
6,
|
|
4850
|
+
5,
|
|
4851
|
+
2,
|
|
4852
|
+
4,
|
|
4853
|
+
6,
|
|
4854
|
+
6,
|
|
4855
|
+
2,
|
|
4856
|
+
5,
|
|
4857
|
+
8,
|
|
4858
|
+
8,
|
|
4859
|
+
4,
|
|
4860
|
+
5,
|
|
4861
|
+
8,
|
|
4862
|
+
8,
|
|
4863
|
+
4,
|
|
4864
|
+
5,
|
|
4865
|
+
8,
|
|
4866
|
+
11,
|
|
4867
|
+
4,
|
|
4868
|
+
8,
|
|
4869
|
+
10,
|
|
4870
|
+
11,
|
|
4871
|
+
4,
|
|
4872
|
+
9,
|
|
4873
|
+
12,
|
|
4874
|
+
16,
|
|
4875
|
+
4,
|
|
4876
|
+
9,
|
|
4877
|
+
16,
|
|
4878
|
+
16,
|
|
4879
|
+
6,
|
|
4880
|
+
10,
|
|
4881
|
+
12,
|
|
4882
|
+
18,
|
|
4883
|
+
6,
|
|
4884
|
+
10,
|
|
4885
|
+
17,
|
|
4886
|
+
16,
|
|
4887
|
+
6,
|
|
4888
|
+
11,
|
|
4889
|
+
16,
|
|
4890
|
+
19,
|
|
4891
|
+
6,
|
|
4892
|
+
13,
|
|
4893
|
+
18,
|
|
4894
|
+
21,
|
|
4895
|
+
7,
|
|
4896
|
+
14,
|
|
4897
|
+
21,
|
|
4898
|
+
25,
|
|
4899
|
+
8,
|
|
4900
|
+
16,
|
|
4901
|
+
20,
|
|
4902
|
+
25,
|
|
4903
|
+
8,
|
|
4904
|
+
17,
|
|
4905
|
+
23,
|
|
4906
|
+
25,
|
|
4907
|
+
9,
|
|
4908
|
+
17,
|
|
4909
|
+
23,
|
|
4910
|
+
34,
|
|
4911
|
+
9,
|
|
4912
|
+
18,
|
|
4913
|
+
25,
|
|
4914
|
+
30,
|
|
4915
|
+
10,
|
|
4916
|
+
20,
|
|
4917
|
+
27,
|
|
4918
|
+
32,
|
|
4919
|
+
12,
|
|
4920
|
+
21,
|
|
4921
|
+
29,
|
|
4922
|
+
35,
|
|
4923
|
+
12,
|
|
4924
|
+
23,
|
|
4925
|
+
34,
|
|
4926
|
+
37,
|
|
4927
|
+
12,
|
|
4928
|
+
25,
|
|
4929
|
+
34,
|
|
4930
|
+
40,
|
|
4931
|
+
13,
|
|
4932
|
+
26,
|
|
4933
|
+
35,
|
|
4934
|
+
42,
|
|
4935
|
+
14,
|
|
4936
|
+
28,
|
|
4937
|
+
38,
|
|
4938
|
+
45,
|
|
4939
|
+
15,
|
|
4940
|
+
29,
|
|
4941
|
+
40,
|
|
4942
|
+
48,
|
|
4943
|
+
16,
|
|
4944
|
+
31,
|
|
4945
|
+
43,
|
|
4946
|
+
51,
|
|
4947
|
+
17,
|
|
4948
|
+
33,
|
|
4949
|
+
45,
|
|
4950
|
+
54,
|
|
4951
|
+
18,
|
|
4952
|
+
35,
|
|
4953
|
+
48,
|
|
4954
|
+
57,
|
|
4955
|
+
19,
|
|
4956
|
+
37,
|
|
4957
|
+
51,
|
|
4958
|
+
60,
|
|
4959
|
+
19,
|
|
4960
|
+
38,
|
|
4961
|
+
53,
|
|
4962
|
+
63,
|
|
4963
|
+
20,
|
|
4964
|
+
40,
|
|
4965
|
+
56,
|
|
4966
|
+
66,
|
|
4967
|
+
21,
|
|
4968
|
+
43,
|
|
4969
|
+
59,
|
|
4970
|
+
70,
|
|
4971
|
+
22,
|
|
4972
|
+
45,
|
|
4973
|
+
62,
|
|
4974
|
+
74,
|
|
4975
|
+
24,
|
|
4976
|
+
47,
|
|
4977
|
+
65,
|
|
4978
|
+
77,
|
|
4979
|
+
25,
|
|
4980
|
+
49,
|
|
4981
|
+
68,
|
|
4982
|
+
81
|
|
4983
|
+
];
|
|
4984
|
+
const EC_CODEWORDS_TABLE = [
|
|
4985
|
+
// L M Q H
|
|
4986
|
+
7,
|
|
4987
|
+
10,
|
|
4988
|
+
13,
|
|
4989
|
+
17,
|
|
4990
|
+
10,
|
|
4991
|
+
16,
|
|
4992
|
+
22,
|
|
4993
|
+
28,
|
|
4994
|
+
15,
|
|
4995
|
+
26,
|
|
4996
|
+
36,
|
|
4997
|
+
44,
|
|
4998
|
+
20,
|
|
4999
|
+
36,
|
|
5000
|
+
52,
|
|
5001
|
+
64,
|
|
5002
|
+
26,
|
|
5003
|
+
48,
|
|
5004
|
+
72,
|
|
5005
|
+
88,
|
|
5006
|
+
36,
|
|
5007
|
+
64,
|
|
5008
|
+
96,
|
|
5009
|
+
112,
|
|
5010
|
+
40,
|
|
5011
|
+
72,
|
|
5012
|
+
108,
|
|
5013
|
+
130,
|
|
5014
|
+
48,
|
|
5015
|
+
88,
|
|
5016
|
+
132,
|
|
5017
|
+
156,
|
|
5018
|
+
60,
|
|
5019
|
+
110,
|
|
5020
|
+
160,
|
|
5021
|
+
192,
|
|
5022
|
+
72,
|
|
5023
|
+
130,
|
|
5024
|
+
192,
|
|
5025
|
+
224,
|
|
5026
|
+
80,
|
|
5027
|
+
150,
|
|
5028
|
+
224,
|
|
5029
|
+
264,
|
|
5030
|
+
96,
|
|
5031
|
+
176,
|
|
5032
|
+
260,
|
|
5033
|
+
308,
|
|
5034
|
+
104,
|
|
5035
|
+
198,
|
|
5036
|
+
288,
|
|
5037
|
+
352,
|
|
5038
|
+
120,
|
|
5039
|
+
216,
|
|
5040
|
+
320,
|
|
5041
|
+
384,
|
|
5042
|
+
132,
|
|
5043
|
+
240,
|
|
5044
|
+
360,
|
|
5045
|
+
432,
|
|
5046
|
+
144,
|
|
5047
|
+
280,
|
|
5048
|
+
408,
|
|
5049
|
+
480,
|
|
5050
|
+
168,
|
|
5051
|
+
308,
|
|
5052
|
+
448,
|
|
5053
|
+
532,
|
|
5054
|
+
180,
|
|
5055
|
+
338,
|
|
5056
|
+
504,
|
|
5057
|
+
588,
|
|
5058
|
+
196,
|
|
5059
|
+
364,
|
|
5060
|
+
546,
|
|
5061
|
+
650,
|
|
5062
|
+
224,
|
|
5063
|
+
416,
|
|
5064
|
+
600,
|
|
5065
|
+
700,
|
|
5066
|
+
224,
|
|
5067
|
+
442,
|
|
5068
|
+
644,
|
|
5069
|
+
750,
|
|
5070
|
+
252,
|
|
5071
|
+
476,
|
|
5072
|
+
690,
|
|
5073
|
+
816,
|
|
5074
|
+
270,
|
|
5075
|
+
504,
|
|
5076
|
+
750,
|
|
5077
|
+
900,
|
|
5078
|
+
300,
|
|
5079
|
+
560,
|
|
5080
|
+
810,
|
|
5081
|
+
960,
|
|
5082
|
+
312,
|
|
5083
|
+
588,
|
|
5084
|
+
870,
|
|
5085
|
+
1050,
|
|
5086
|
+
336,
|
|
5087
|
+
644,
|
|
5088
|
+
952,
|
|
5089
|
+
1110,
|
|
5090
|
+
360,
|
|
5091
|
+
700,
|
|
5092
|
+
1020,
|
|
5093
|
+
1200,
|
|
5094
|
+
390,
|
|
5095
|
+
728,
|
|
5096
|
+
1050,
|
|
5097
|
+
1260,
|
|
5098
|
+
420,
|
|
5099
|
+
784,
|
|
5100
|
+
1140,
|
|
5101
|
+
1350,
|
|
5102
|
+
450,
|
|
5103
|
+
812,
|
|
5104
|
+
1200,
|
|
5105
|
+
1440,
|
|
5106
|
+
480,
|
|
5107
|
+
868,
|
|
5108
|
+
1290,
|
|
5109
|
+
1530,
|
|
5110
|
+
510,
|
|
5111
|
+
924,
|
|
5112
|
+
1350,
|
|
5113
|
+
1620,
|
|
5114
|
+
540,
|
|
5115
|
+
980,
|
|
5116
|
+
1440,
|
|
5117
|
+
1710,
|
|
5118
|
+
570,
|
|
5119
|
+
1036,
|
|
5120
|
+
1530,
|
|
5121
|
+
1800,
|
|
5122
|
+
570,
|
|
5123
|
+
1064,
|
|
5124
|
+
1590,
|
|
5125
|
+
1890,
|
|
5126
|
+
600,
|
|
5127
|
+
1120,
|
|
5128
|
+
1680,
|
|
5129
|
+
1980,
|
|
5130
|
+
630,
|
|
5131
|
+
1204,
|
|
5132
|
+
1770,
|
|
5133
|
+
2100,
|
|
5134
|
+
660,
|
|
5135
|
+
1260,
|
|
5136
|
+
1860,
|
|
5137
|
+
2220,
|
|
5138
|
+
720,
|
|
5139
|
+
1316,
|
|
5140
|
+
1950,
|
|
5141
|
+
2310,
|
|
5142
|
+
750,
|
|
5143
|
+
1372,
|
|
5144
|
+
2040,
|
|
5145
|
+
2430
|
|
5146
|
+
];
|
|
5147
|
+
errorCorrectionCode.getBlocksCount = function getBlocksCount(version2, errorCorrectionLevel2) {
|
|
5148
|
+
switch (errorCorrectionLevel2) {
|
|
5149
|
+
case ECLevel$1.L:
|
|
5150
|
+
return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 0];
|
|
5151
|
+
case ECLevel$1.M:
|
|
5152
|
+
return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 1];
|
|
5153
|
+
case ECLevel$1.Q:
|
|
5154
|
+
return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 2];
|
|
5155
|
+
case ECLevel$1.H:
|
|
5156
|
+
return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 3];
|
|
5157
|
+
default:
|
|
5158
|
+
return void 0;
|
|
5159
|
+
}
|
|
5160
|
+
};
|
|
5161
|
+
errorCorrectionCode.getTotalCodewordsCount = function getTotalCodewordsCount(version2, errorCorrectionLevel2) {
|
|
5162
|
+
switch (errorCorrectionLevel2) {
|
|
5163
|
+
case ECLevel$1.L:
|
|
5164
|
+
return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 0];
|
|
5165
|
+
case ECLevel$1.M:
|
|
5166
|
+
return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 1];
|
|
5167
|
+
case ECLevel$1.Q:
|
|
5168
|
+
return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 2];
|
|
5169
|
+
case ECLevel$1.H:
|
|
5170
|
+
return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 3];
|
|
5171
|
+
default:
|
|
5172
|
+
return void 0;
|
|
5173
|
+
}
|
|
5174
|
+
};
|
|
5175
|
+
var polynomial = {};
|
|
5176
|
+
var galoisField = {};
|
|
5177
|
+
const EXP_TABLE = new Uint8Array(512);
|
|
5178
|
+
const LOG_TABLE = new Uint8Array(256);
|
|
5179
|
+
(function initTables() {
|
|
5180
|
+
let x2 = 1;
|
|
5181
|
+
for (let i2 = 0; i2 < 255; i2++) {
|
|
5182
|
+
EXP_TABLE[i2] = x2;
|
|
5183
|
+
LOG_TABLE[x2] = i2;
|
|
5184
|
+
x2 <<= 1;
|
|
5185
|
+
if (x2 & 256) {
|
|
5186
|
+
x2 ^= 285;
|
|
5187
|
+
}
|
|
5188
|
+
}
|
|
5189
|
+
for (let i2 = 255; i2 < 512; i2++) {
|
|
5190
|
+
EXP_TABLE[i2] = EXP_TABLE[i2 - 255];
|
|
5191
|
+
}
|
|
5192
|
+
})();
|
|
5193
|
+
galoisField.log = function log(n2) {
|
|
5194
|
+
if (n2 < 1)
|
|
5195
|
+
throw new Error("log(" + n2 + ")");
|
|
5196
|
+
return LOG_TABLE[n2];
|
|
5197
|
+
};
|
|
5198
|
+
galoisField.exp = function exp(n2) {
|
|
5199
|
+
return EXP_TABLE[n2];
|
|
5200
|
+
};
|
|
5201
|
+
galoisField.mul = function mul(x2, y2) {
|
|
5202
|
+
if (x2 === 0 || y2 === 0)
|
|
5203
|
+
return 0;
|
|
5204
|
+
return EXP_TABLE[LOG_TABLE[x2] + LOG_TABLE[y2]];
|
|
5205
|
+
};
|
|
5206
|
+
(function(exports) {
|
|
5207
|
+
const GF = galoisField;
|
|
5208
|
+
exports.mul = function mul2(p1, p2) {
|
|
5209
|
+
const coeff = new Uint8Array(p1.length + p2.length - 1);
|
|
5210
|
+
for (let i2 = 0; i2 < p1.length; i2++) {
|
|
5211
|
+
for (let j2 = 0; j2 < p2.length; j2++) {
|
|
5212
|
+
coeff[i2 + j2] ^= GF.mul(p1[i2], p2[j2]);
|
|
5213
|
+
}
|
|
5214
|
+
}
|
|
5215
|
+
return coeff;
|
|
5216
|
+
};
|
|
5217
|
+
exports.mod = function mod(divident, divisor) {
|
|
5218
|
+
let result = new Uint8Array(divident);
|
|
5219
|
+
while (result.length - divisor.length >= 0) {
|
|
5220
|
+
const coeff = result[0];
|
|
5221
|
+
for (let i2 = 0; i2 < divisor.length; i2++) {
|
|
5222
|
+
result[i2] ^= GF.mul(divisor[i2], coeff);
|
|
5223
|
+
}
|
|
5224
|
+
let offset = 0;
|
|
5225
|
+
while (offset < result.length && result[offset] === 0)
|
|
5226
|
+
offset++;
|
|
5227
|
+
result = result.slice(offset);
|
|
5228
|
+
}
|
|
5229
|
+
return result;
|
|
5230
|
+
};
|
|
5231
|
+
exports.generateECPolynomial = function generateECPolynomial(degree) {
|
|
5232
|
+
let poly = new Uint8Array([1]);
|
|
5233
|
+
for (let i2 = 0; i2 < degree; i2++) {
|
|
5234
|
+
poly = exports.mul(poly, new Uint8Array([1, GF.exp(i2)]));
|
|
5235
|
+
}
|
|
5236
|
+
return poly;
|
|
5237
|
+
};
|
|
5238
|
+
})(polynomial);
|
|
5239
|
+
const Polynomial = polynomial;
|
|
5240
|
+
function ReedSolomonEncoder$1(degree) {
|
|
5241
|
+
this.genPoly = void 0;
|
|
5242
|
+
this.degree = degree;
|
|
5243
|
+
if (this.degree)
|
|
5244
|
+
this.initialize(this.degree);
|
|
5245
|
+
}
|
|
5246
|
+
ReedSolomonEncoder$1.prototype.initialize = function initialize(degree) {
|
|
5247
|
+
this.degree = degree;
|
|
5248
|
+
this.genPoly = Polynomial.generateECPolynomial(this.degree);
|
|
5249
|
+
};
|
|
5250
|
+
ReedSolomonEncoder$1.prototype.encode = function encode(data) {
|
|
5251
|
+
if (!this.genPoly) {
|
|
5252
|
+
throw new Error("Encoder not initialized");
|
|
5253
|
+
}
|
|
5254
|
+
const paddedData = new Uint8Array(data.length + this.degree);
|
|
5255
|
+
paddedData.set(data);
|
|
5256
|
+
const remainder = Polynomial.mod(paddedData, this.genPoly);
|
|
5257
|
+
const start = this.degree - remainder.length;
|
|
5258
|
+
if (start > 0) {
|
|
5259
|
+
const buff = new Uint8Array(this.degree);
|
|
5260
|
+
buff.set(remainder, start);
|
|
5261
|
+
return buff;
|
|
5262
|
+
}
|
|
5263
|
+
return remainder;
|
|
5264
|
+
};
|
|
5265
|
+
var reedSolomonEncoder = ReedSolomonEncoder$1;
|
|
5266
|
+
var version = {};
|
|
5267
|
+
var mode = {};
|
|
5268
|
+
var versionCheck = {};
|
|
5269
|
+
versionCheck.isValid = function isValid(version2) {
|
|
5270
|
+
return !isNaN(version2) && version2 >= 1 && version2 <= 40;
|
|
5271
|
+
};
|
|
5272
|
+
var regex = {};
|
|
5273
|
+
const numeric = "[0-9]+";
|
|
5274
|
+
const alphanumeric = "[A-Z $%*+\\-./:]+";
|
|
5275
|
+
let kanji = "(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";
|
|
5276
|
+
kanji = kanji.replace(/u/g, "\\u");
|
|
5277
|
+
const byte = "(?:(?![A-Z0-9 $%*+\\-./:]|" + kanji + ")(?:.|[\r\n]))+";
|
|
5278
|
+
regex.KANJI = new RegExp(kanji, "g");
|
|
5279
|
+
regex.BYTE_KANJI = new RegExp("[^A-Z0-9 $%*+\\-./:]+", "g");
|
|
5280
|
+
regex.BYTE = new RegExp(byte, "g");
|
|
5281
|
+
regex.NUMERIC = new RegExp(numeric, "g");
|
|
5282
|
+
regex.ALPHANUMERIC = new RegExp(alphanumeric, "g");
|
|
5283
|
+
const TEST_KANJI = new RegExp("^" + kanji + "$");
|
|
5284
|
+
const TEST_NUMERIC = new RegExp("^" + numeric + "$");
|
|
5285
|
+
const TEST_ALPHANUMERIC = new RegExp("^[A-Z0-9 $%*+\\-./:]+$");
|
|
5286
|
+
regex.testKanji = function testKanji(str) {
|
|
5287
|
+
return TEST_KANJI.test(str);
|
|
5288
|
+
};
|
|
5289
|
+
regex.testNumeric = function testNumeric(str) {
|
|
5290
|
+
return TEST_NUMERIC.test(str);
|
|
5291
|
+
};
|
|
5292
|
+
regex.testAlphanumeric = function testAlphanumeric(str) {
|
|
5293
|
+
return TEST_ALPHANUMERIC.test(str);
|
|
5294
|
+
};
|
|
5295
|
+
(function(exports) {
|
|
5296
|
+
const VersionCheck = versionCheck;
|
|
5297
|
+
const Regex = regex;
|
|
5298
|
+
exports.NUMERIC = {
|
|
5299
|
+
id: "Numeric",
|
|
5300
|
+
bit: 1 << 0,
|
|
5301
|
+
ccBits: [10, 12, 14]
|
|
5302
|
+
};
|
|
5303
|
+
exports.ALPHANUMERIC = {
|
|
5304
|
+
id: "Alphanumeric",
|
|
5305
|
+
bit: 1 << 1,
|
|
5306
|
+
ccBits: [9, 11, 13]
|
|
5307
|
+
};
|
|
5308
|
+
exports.BYTE = {
|
|
5309
|
+
id: "Byte",
|
|
5310
|
+
bit: 1 << 2,
|
|
5311
|
+
ccBits: [8, 16, 16]
|
|
5312
|
+
};
|
|
5313
|
+
exports.KANJI = {
|
|
5314
|
+
id: "Kanji",
|
|
5315
|
+
bit: 1 << 3,
|
|
5316
|
+
ccBits: [8, 10, 12]
|
|
5317
|
+
};
|
|
5318
|
+
exports.MIXED = {
|
|
5319
|
+
bit: -1
|
|
5320
|
+
};
|
|
5321
|
+
exports.getCharCountIndicator = function getCharCountIndicator(mode2, version2) {
|
|
5322
|
+
if (!mode2.ccBits)
|
|
5323
|
+
throw new Error("Invalid mode: " + mode2);
|
|
5324
|
+
if (!VersionCheck.isValid(version2)) {
|
|
5325
|
+
throw new Error("Invalid version: " + version2);
|
|
5326
|
+
}
|
|
5327
|
+
if (version2 >= 1 && version2 < 10)
|
|
5328
|
+
return mode2.ccBits[0];
|
|
5329
|
+
else if (version2 < 27)
|
|
5330
|
+
return mode2.ccBits[1];
|
|
5331
|
+
return mode2.ccBits[2];
|
|
5332
|
+
};
|
|
5333
|
+
exports.getBestModeForData = function getBestModeForData(dataStr) {
|
|
5334
|
+
if (Regex.testNumeric(dataStr))
|
|
5335
|
+
return exports.NUMERIC;
|
|
5336
|
+
else if (Regex.testAlphanumeric(dataStr))
|
|
5337
|
+
return exports.ALPHANUMERIC;
|
|
5338
|
+
else if (Regex.testKanji(dataStr))
|
|
5339
|
+
return exports.KANJI;
|
|
5340
|
+
else
|
|
5341
|
+
return exports.BYTE;
|
|
5342
|
+
};
|
|
5343
|
+
exports.toString = function toString(mode2) {
|
|
5344
|
+
if (mode2 && mode2.id)
|
|
5345
|
+
return mode2.id;
|
|
5346
|
+
throw new Error("Invalid mode");
|
|
5347
|
+
};
|
|
5348
|
+
exports.isValid = function isValid2(mode2) {
|
|
5349
|
+
return mode2 && mode2.bit && mode2.ccBits;
|
|
5350
|
+
};
|
|
5351
|
+
function fromString(string) {
|
|
5352
|
+
if (typeof string !== "string") {
|
|
5353
|
+
throw new Error("Param is not a string");
|
|
5354
|
+
}
|
|
5355
|
+
const lcStr = string.toLowerCase();
|
|
5356
|
+
switch (lcStr) {
|
|
5357
|
+
case "numeric":
|
|
5358
|
+
return exports.NUMERIC;
|
|
5359
|
+
case "alphanumeric":
|
|
5360
|
+
return exports.ALPHANUMERIC;
|
|
5361
|
+
case "kanji":
|
|
5362
|
+
return exports.KANJI;
|
|
5363
|
+
case "byte":
|
|
5364
|
+
return exports.BYTE;
|
|
5365
|
+
default:
|
|
5366
|
+
throw new Error("Unknown mode: " + string);
|
|
5367
|
+
}
|
|
5368
|
+
}
|
|
5369
|
+
exports.from = function from(value, defaultValue) {
|
|
5370
|
+
if (exports.isValid(value)) {
|
|
5371
|
+
return value;
|
|
5372
|
+
}
|
|
5373
|
+
try {
|
|
5374
|
+
return fromString(value);
|
|
5375
|
+
} catch (e2) {
|
|
5376
|
+
return defaultValue;
|
|
5377
|
+
}
|
|
5378
|
+
};
|
|
5379
|
+
})(mode);
|
|
5380
|
+
(function(exports) {
|
|
5381
|
+
const Utils2 = utils$1;
|
|
5382
|
+
const ECCode2 = errorCorrectionCode;
|
|
5383
|
+
const ECLevel2 = errorCorrectionLevel;
|
|
5384
|
+
const Mode2 = mode;
|
|
5385
|
+
const VersionCheck = versionCheck;
|
|
5386
|
+
const G18 = 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0;
|
|
5387
|
+
const G18_BCH = Utils2.getBCHDigit(G18);
|
|
5388
|
+
function getBestVersionForDataLength(mode2, length, errorCorrectionLevel2) {
|
|
5389
|
+
for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {
|
|
5390
|
+
if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel2, mode2)) {
|
|
5391
|
+
return currentVersion;
|
|
5392
|
+
}
|
|
5393
|
+
}
|
|
5394
|
+
return void 0;
|
|
5395
|
+
}
|
|
5396
|
+
function getReservedBitsCount(mode2, version2) {
|
|
5397
|
+
return Mode2.getCharCountIndicator(mode2, version2) + 4;
|
|
5398
|
+
}
|
|
5399
|
+
function getTotalBitsFromDataArray(segments2, version2) {
|
|
5400
|
+
let totalBits = 0;
|
|
5401
|
+
segments2.forEach(function(data) {
|
|
5402
|
+
const reservedBits = getReservedBitsCount(data.mode, version2);
|
|
5403
|
+
totalBits += reservedBits + data.getBitsLength();
|
|
5404
|
+
});
|
|
5405
|
+
return totalBits;
|
|
5406
|
+
}
|
|
5407
|
+
function getBestVersionForMixedData(segments2, errorCorrectionLevel2) {
|
|
5408
|
+
for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {
|
|
5409
|
+
const length = getTotalBitsFromDataArray(segments2, currentVersion);
|
|
5410
|
+
if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel2, Mode2.MIXED)) {
|
|
5411
|
+
return currentVersion;
|
|
5412
|
+
}
|
|
5413
|
+
}
|
|
5414
|
+
return void 0;
|
|
5415
|
+
}
|
|
5416
|
+
exports.from = function from(value, defaultValue) {
|
|
5417
|
+
if (VersionCheck.isValid(value)) {
|
|
5418
|
+
return parseInt(value, 10);
|
|
5419
|
+
}
|
|
5420
|
+
return defaultValue;
|
|
5421
|
+
};
|
|
5422
|
+
exports.getCapacity = function getCapacity(version2, errorCorrectionLevel2, mode2) {
|
|
5423
|
+
if (!VersionCheck.isValid(version2)) {
|
|
5424
|
+
throw new Error("Invalid QR Code version");
|
|
5425
|
+
}
|
|
5426
|
+
if (typeof mode2 === "undefined")
|
|
5427
|
+
mode2 = Mode2.BYTE;
|
|
5428
|
+
const totalCodewords = Utils2.getSymbolTotalCodewords(version2);
|
|
5429
|
+
const ecTotalCodewords = ECCode2.getTotalCodewordsCount(version2, errorCorrectionLevel2);
|
|
5430
|
+
const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;
|
|
5431
|
+
if (mode2 === Mode2.MIXED)
|
|
5432
|
+
return dataTotalCodewordsBits;
|
|
5433
|
+
const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode2, version2);
|
|
5434
|
+
switch (mode2) {
|
|
5435
|
+
case Mode2.NUMERIC:
|
|
5436
|
+
return Math.floor(usableBits / 10 * 3);
|
|
5437
|
+
case Mode2.ALPHANUMERIC:
|
|
5438
|
+
return Math.floor(usableBits / 11 * 2);
|
|
5439
|
+
case Mode2.KANJI:
|
|
5440
|
+
return Math.floor(usableBits / 13);
|
|
5441
|
+
case Mode2.BYTE:
|
|
5442
|
+
default:
|
|
5443
|
+
return Math.floor(usableBits / 8);
|
|
5444
|
+
}
|
|
5445
|
+
};
|
|
5446
|
+
exports.getBestVersionForData = function getBestVersionForData(data, errorCorrectionLevel2) {
|
|
5447
|
+
let seg;
|
|
5448
|
+
const ecl = ECLevel2.from(errorCorrectionLevel2, ECLevel2.M);
|
|
5449
|
+
if (Array.isArray(data)) {
|
|
5450
|
+
if (data.length > 1) {
|
|
5451
|
+
return getBestVersionForMixedData(data, ecl);
|
|
5452
|
+
}
|
|
5453
|
+
if (data.length === 0) {
|
|
5454
|
+
return 1;
|
|
5455
|
+
}
|
|
5456
|
+
seg = data[0];
|
|
5457
|
+
} else {
|
|
5458
|
+
seg = data;
|
|
5459
|
+
}
|
|
5460
|
+
return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl);
|
|
5461
|
+
};
|
|
5462
|
+
exports.getEncodedBits = function getEncodedBits2(version2) {
|
|
5463
|
+
if (!VersionCheck.isValid(version2) || version2 < 7) {
|
|
5464
|
+
throw new Error("Invalid QR Code version");
|
|
5465
|
+
}
|
|
5466
|
+
let d2 = version2 << 12;
|
|
5467
|
+
while (Utils2.getBCHDigit(d2) - G18_BCH >= 0) {
|
|
5468
|
+
d2 ^= G18 << Utils2.getBCHDigit(d2) - G18_BCH;
|
|
5469
|
+
}
|
|
5470
|
+
return version2 << 12 | d2;
|
|
5471
|
+
};
|
|
5472
|
+
})(version);
|
|
5473
|
+
var formatInfo = {};
|
|
5474
|
+
const Utils$3 = utils$1;
|
|
5475
|
+
const G15 = 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0;
|
|
5476
|
+
const G15_MASK = 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1;
|
|
5477
|
+
const G15_BCH = Utils$3.getBCHDigit(G15);
|
|
5478
|
+
formatInfo.getEncodedBits = function getEncodedBits(errorCorrectionLevel2, mask) {
|
|
5479
|
+
const data = errorCorrectionLevel2.bit << 3 | mask;
|
|
5480
|
+
let d2 = data << 10;
|
|
5481
|
+
while (Utils$3.getBCHDigit(d2) - G15_BCH >= 0) {
|
|
5482
|
+
d2 ^= G15 << Utils$3.getBCHDigit(d2) - G15_BCH;
|
|
5483
|
+
}
|
|
5484
|
+
return (data << 10 | d2) ^ G15_MASK;
|
|
5485
|
+
};
|
|
5486
|
+
var segments = {};
|
|
5487
|
+
const Mode$4 = mode;
|
|
5488
|
+
function NumericData(data) {
|
|
5489
|
+
this.mode = Mode$4.NUMERIC;
|
|
5490
|
+
this.data = data.toString();
|
|
5491
|
+
}
|
|
5492
|
+
NumericData.getBitsLength = function getBitsLength(length) {
|
|
5493
|
+
return 10 * Math.floor(length / 3) + (length % 3 ? length % 3 * 3 + 1 : 0);
|
|
5494
|
+
};
|
|
5495
|
+
NumericData.prototype.getLength = function getLength() {
|
|
5496
|
+
return this.data.length;
|
|
5497
|
+
};
|
|
5498
|
+
NumericData.prototype.getBitsLength = function getBitsLength2() {
|
|
5499
|
+
return NumericData.getBitsLength(this.data.length);
|
|
5500
|
+
};
|
|
5501
|
+
NumericData.prototype.write = function write(bitBuffer2) {
|
|
5502
|
+
let i2, group, value;
|
|
5503
|
+
for (i2 = 0; i2 + 3 <= this.data.length; i2 += 3) {
|
|
5504
|
+
group = this.data.substr(i2, 3);
|
|
5505
|
+
value = parseInt(group, 10);
|
|
5506
|
+
bitBuffer2.put(value, 10);
|
|
5507
|
+
}
|
|
5508
|
+
const remainingNum = this.data.length - i2;
|
|
5509
|
+
if (remainingNum > 0) {
|
|
5510
|
+
group = this.data.substr(i2);
|
|
5511
|
+
value = parseInt(group, 10);
|
|
5512
|
+
bitBuffer2.put(value, remainingNum * 3 + 1);
|
|
5513
|
+
}
|
|
5514
|
+
};
|
|
5515
|
+
var numericData = NumericData;
|
|
5516
|
+
const Mode$3 = mode;
|
|
5517
|
+
const ALPHA_NUM_CHARS = [
|
|
5518
|
+
"0",
|
|
5519
|
+
"1",
|
|
5520
|
+
"2",
|
|
5521
|
+
"3",
|
|
5522
|
+
"4",
|
|
5523
|
+
"5",
|
|
5524
|
+
"6",
|
|
5525
|
+
"7",
|
|
5526
|
+
"8",
|
|
5527
|
+
"9",
|
|
5528
|
+
"A",
|
|
5529
|
+
"B",
|
|
5530
|
+
"C",
|
|
5531
|
+
"D",
|
|
5532
|
+
"E",
|
|
5533
|
+
"F",
|
|
5534
|
+
"G",
|
|
5535
|
+
"H",
|
|
5536
|
+
"I",
|
|
5537
|
+
"J",
|
|
5538
|
+
"K",
|
|
5539
|
+
"L",
|
|
5540
|
+
"M",
|
|
5541
|
+
"N",
|
|
5542
|
+
"O",
|
|
5543
|
+
"P",
|
|
5544
|
+
"Q",
|
|
5545
|
+
"R",
|
|
5546
|
+
"S",
|
|
5547
|
+
"T",
|
|
5548
|
+
"U",
|
|
5549
|
+
"V",
|
|
5550
|
+
"W",
|
|
5551
|
+
"X",
|
|
5552
|
+
"Y",
|
|
5553
|
+
"Z",
|
|
5554
|
+
" ",
|
|
5555
|
+
"$",
|
|
5556
|
+
"%",
|
|
5557
|
+
"*",
|
|
5558
|
+
"+",
|
|
5559
|
+
"-",
|
|
5560
|
+
".",
|
|
5561
|
+
"/",
|
|
5562
|
+
":"
|
|
5563
|
+
];
|
|
5564
|
+
function AlphanumericData(data) {
|
|
5565
|
+
this.mode = Mode$3.ALPHANUMERIC;
|
|
5566
|
+
this.data = data;
|
|
5567
|
+
}
|
|
5568
|
+
AlphanumericData.getBitsLength = function getBitsLength3(length) {
|
|
5569
|
+
return 11 * Math.floor(length / 2) + 6 * (length % 2);
|
|
5570
|
+
};
|
|
5571
|
+
AlphanumericData.prototype.getLength = function getLength2() {
|
|
5572
|
+
return this.data.length;
|
|
5573
|
+
};
|
|
5574
|
+
AlphanumericData.prototype.getBitsLength = function getBitsLength4() {
|
|
5575
|
+
return AlphanumericData.getBitsLength(this.data.length);
|
|
5576
|
+
};
|
|
5577
|
+
AlphanumericData.prototype.write = function write2(bitBuffer2) {
|
|
5578
|
+
let i2;
|
|
5579
|
+
for (i2 = 0; i2 + 2 <= this.data.length; i2 += 2) {
|
|
5580
|
+
let value = ALPHA_NUM_CHARS.indexOf(this.data[i2]) * 45;
|
|
5581
|
+
value += ALPHA_NUM_CHARS.indexOf(this.data[i2 + 1]);
|
|
5582
|
+
bitBuffer2.put(value, 11);
|
|
5583
|
+
}
|
|
5584
|
+
if (this.data.length % 2) {
|
|
5585
|
+
bitBuffer2.put(ALPHA_NUM_CHARS.indexOf(this.data[i2]), 6);
|
|
5586
|
+
}
|
|
5587
|
+
};
|
|
5588
|
+
var alphanumericData = AlphanumericData;
|
|
5589
|
+
const Mode$2 = mode;
|
|
5590
|
+
function ByteData(data) {
|
|
5591
|
+
this.mode = Mode$2.BYTE;
|
|
5592
|
+
if (typeof data === "string") {
|
|
5593
|
+
this.data = new TextEncoder().encode(data);
|
|
5594
|
+
} else {
|
|
5595
|
+
this.data = new Uint8Array(data);
|
|
5596
|
+
}
|
|
5597
|
+
}
|
|
5598
|
+
ByteData.getBitsLength = function getBitsLength5(length) {
|
|
5599
|
+
return length * 8;
|
|
5600
|
+
};
|
|
5601
|
+
ByteData.prototype.getLength = function getLength3() {
|
|
5602
|
+
return this.data.length;
|
|
5603
|
+
};
|
|
5604
|
+
ByteData.prototype.getBitsLength = function getBitsLength6() {
|
|
5605
|
+
return ByteData.getBitsLength(this.data.length);
|
|
5606
|
+
};
|
|
5607
|
+
ByteData.prototype.write = function(bitBuffer2) {
|
|
5608
|
+
for (let i2 = 0, l2 = this.data.length; i2 < l2; i2++) {
|
|
5609
|
+
bitBuffer2.put(this.data[i2], 8);
|
|
5610
|
+
}
|
|
5611
|
+
};
|
|
5612
|
+
var byteData = ByteData;
|
|
5613
|
+
const Mode$1 = mode;
|
|
5614
|
+
const Utils$2 = utils$1;
|
|
5615
|
+
function KanjiData(data) {
|
|
5616
|
+
this.mode = Mode$1.KANJI;
|
|
5617
|
+
this.data = data;
|
|
5618
|
+
}
|
|
5619
|
+
KanjiData.getBitsLength = function getBitsLength7(length) {
|
|
5620
|
+
return length * 13;
|
|
5621
|
+
};
|
|
5622
|
+
KanjiData.prototype.getLength = function getLength4() {
|
|
5623
|
+
return this.data.length;
|
|
5624
|
+
};
|
|
5625
|
+
KanjiData.prototype.getBitsLength = function getBitsLength8() {
|
|
5626
|
+
return KanjiData.getBitsLength(this.data.length);
|
|
5627
|
+
};
|
|
5628
|
+
KanjiData.prototype.write = function(bitBuffer2) {
|
|
5629
|
+
let i2;
|
|
5630
|
+
for (i2 = 0; i2 < this.data.length; i2++) {
|
|
5631
|
+
let value = Utils$2.toSJIS(this.data[i2]);
|
|
5632
|
+
if (value >= 33088 && value <= 40956) {
|
|
5633
|
+
value -= 33088;
|
|
5634
|
+
} else if (value >= 57408 && value <= 60351) {
|
|
5635
|
+
value -= 49472;
|
|
5636
|
+
} else {
|
|
5637
|
+
throw new Error(
|
|
5638
|
+
"Invalid SJIS character: " + this.data[i2] + "\nMake sure your charset is UTF-8"
|
|
5639
|
+
);
|
|
5640
|
+
}
|
|
5641
|
+
value = (value >>> 8 & 255) * 192 + (value & 255);
|
|
5642
|
+
bitBuffer2.put(value, 13);
|
|
5643
|
+
}
|
|
5644
|
+
};
|
|
5645
|
+
var kanjiData = KanjiData;
|
|
5646
|
+
var dijkstra = { exports: {} };
|
|
5647
|
+
(function(module) {
|
|
5648
|
+
var dijkstra2 = {
|
|
5649
|
+
single_source_shortest_paths: function(graph, s2, d2) {
|
|
5650
|
+
var predecessors = {};
|
|
5651
|
+
var costs = {};
|
|
5652
|
+
costs[s2] = 0;
|
|
5653
|
+
var open = dijkstra2.PriorityQueue.make();
|
|
5654
|
+
open.push(s2, 0);
|
|
5655
|
+
var closest, u2, v2, cost_of_s_to_u, adjacent_nodes, cost_of_e, cost_of_s_to_u_plus_cost_of_e, cost_of_s_to_v, first_visit;
|
|
5656
|
+
while (!open.empty()) {
|
|
5657
|
+
closest = open.pop();
|
|
5658
|
+
u2 = closest.value;
|
|
5659
|
+
cost_of_s_to_u = closest.cost;
|
|
5660
|
+
adjacent_nodes = graph[u2] || {};
|
|
5661
|
+
for (v2 in adjacent_nodes) {
|
|
5662
|
+
if (adjacent_nodes.hasOwnProperty(v2)) {
|
|
5663
|
+
cost_of_e = adjacent_nodes[v2];
|
|
5664
|
+
cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;
|
|
5665
|
+
cost_of_s_to_v = costs[v2];
|
|
5666
|
+
first_visit = typeof costs[v2] === "undefined";
|
|
5667
|
+
if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {
|
|
5668
|
+
costs[v2] = cost_of_s_to_u_plus_cost_of_e;
|
|
5669
|
+
open.push(v2, cost_of_s_to_u_plus_cost_of_e);
|
|
5670
|
+
predecessors[v2] = u2;
|
|
5671
|
+
}
|
|
5672
|
+
}
|
|
5673
|
+
}
|
|
5674
|
+
}
|
|
5675
|
+
if (typeof d2 !== "undefined" && typeof costs[d2] === "undefined") {
|
|
5676
|
+
var msg = ["Could not find a path from ", s2, " to ", d2, "."].join("");
|
|
5677
|
+
throw new Error(msg);
|
|
5678
|
+
}
|
|
5679
|
+
return predecessors;
|
|
5680
|
+
},
|
|
5681
|
+
extract_shortest_path_from_predecessor_list: function(predecessors, d2) {
|
|
5682
|
+
var nodes = [];
|
|
5683
|
+
var u2 = d2;
|
|
5684
|
+
while (u2) {
|
|
5685
|
+
nodes.push(u2);
|
|
5686
|
+
predecessors[u2];
|
|
5687
|
+
u2 = predecessors[u2];
|
|
5688
|
+
}
|
|
5689
|
+
nodes.reverse();
|
|
5690
|
+
return nodes;
|
|
5691
|
+
},
|
|
5692
|
+
find_path: function(graph, s2, d2) {
|
|
5693
|
+
var predecessors = dijkstra2.single_source_shortest_paths(graph, s2, d2);
|
|
5694
|
+
return dijkstra2.extract_shortest_path_from_predecessor_list(
|
|
5695
|
+
predecessors,
|
|
5696
|
+
d2
|
|
5697
|
+
);
|
|
5698
|
+
},
|
|
5699
|
+
/**
|
|
5700
|
+
* A very naive priority queue implementation.
|
|
5701
|
+
*/
|
|
5702
|
+
PriorityQueue: {
|
|
5703
|
+
make: function(opts) {
|
|
5704
|
+
var T2 = dijkstra2.PriorityQueue, t2 = {}, key;
|
|
5705
|
+
opts = opts || {};
|
|
5706
|
+
for (key in T2) {
|
|
5707
|
+
if (T2.hasOwnProperty(key)) {
|
|
5708
|
+
t2[key] = T2[key];
|
|
5709
|
+
}
|
|
5710
|
+
}
|
|
5711
|
+
t2.queue = [];
|
|
5712
|
+
t2.sorter = opts.sorter || T2.default_sorter;
|
|
5713
|
+
return t2;
|
|
5714
|
+
},
|
|
5715
|
+
default_sorter: function(a2, b2) {
|
|
5716
|
+
return a2.cost - b2.cost;
|
|
5717
|
+
},
|
|
5718
|
+
/**
|
|
5719
|
+
* Add a new item to the queue and ensure the highest priority element
|
|
5720
|
+
* is at the front of the queue.
|
|
5721
|
+
*/
|
|
5722
|
+
push: function(value, cost) {
|
|
5723
|
+
var item = { value, cost };
|
|
5724
|
+
this.queue.push(item);
|
|
5725
|
+
this.queue.sort(this.sorter);
|
|
5726
|
+
},
|
|
5727
|
+
/**
|
|
5728
|
+
* Return the highest priority element in the queue.
|
|
5729
|
+
*/
|
|
5730
|
+
pop: function() {
|
|
5731
|
+
return this.queue.shift();
|
|
5732
|
+
},
|
|
5733
|
+
empty: function() {
|
|
5734
|
+
return this.queue.length === 0;
|
|
5735
|
+
}
|
|
5736
|
+
}
|
|
5737
|
+
};
|
|
5738
|
+
{
|
|
5739
|
+
module.exports = dijkstra2;
|
|
5740
|
+
}
|
|
5741
|
+
})(dijkstra);
|
|
5742
|
+
var dijkstraExports = dijkstra.exports;
|
|
5743
|
+
(function(exports) {
|
|
5744
|
+
const Mode2 = mode;
|
|
5745
|
+
const NumericData2 = numericData;
|
|
5746
|
+
const AlphanumericData2 = alphanumericData;
|
|
5747
|
+
const ByteData2 = byteData;
|
|
5748
|
+
const KanjiData2 = kanjiData;
|
|
5749
|
+
const Regex = regex;
|
|
5750
|
+
const Utils2 = utils$1;
|
|
5751
|
+
const dijkstra2 = dijkstraExports;
|
|
5752
|
+
function getStringByteLength(str) {
|
|
5753
|
+
return unescape(encodeURIComponent(str)).length;
|
|
5754
|
+
}
|
|
5755
|
+
function getSegments(regex2, mode2, str) {
|
|
5756
|
+
const segments2 = [];
|
|
5757
|
+
let result;
|
|
5758
|
+
while ((result = regex2.exec(str)) !== null) {
|
|
5759
|
+
segments2.push({
|
|
5760
|
+
data: result[0],
|
|
5761
|
+
index: result.index,
|
|
5762
|
+
mode: mode2,
|
|
5763
|
+
length: result[0].length
|
|
5764
|
+
});
|
|
5765
|
+
}
|
|
5766
|
+
return segments2;
|
|
5767
|
+
}
|
|
5768
|
+
function getSegmentsFromString(dataStr) {
|
|
5769
|
+
const numSegs = getSegments(Regex.NUMERIC, Mode2.NUMERIC, dataStr);
|
|
5770
|
+
const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode2.ALPHANUMERIC, dataStr);
|
|
5771
|
+
let byteSegs;
|
|
5772
|
+
let kanjiSegs;
|
|
5773
|
+
if (Utils2.isKanjiModeEnabled()) {
|
|
5774
|
+
byteSegs = getSegments(Regex.BYTE, Mode2.BYTE, dataStr);
|
|
5775
|
+
kanjiSegs = getSegments(Regex.KANJI, Mode2.KANJI, dataStr);
|
|
5776
|
+
} else {
|
|
5777
|
+
byteSegs = getSegments(Regex.BYTE_KANJI, Mode2.BYTE, dataStr);
|
|
5778
|
+
kanjiSegs = [];
|
|
5779
|
+
}
|
|
5780
|
+
const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);
|
|
5781
|
+
return segs.sort(function(s1, s2) {
|
|
5782
|
+
return s1.index - s2.index;
|
|
5783
|
+
}).map(function(obj) {
|
|
5784
|
+
return {
|
|
5785
|
+
data: obj.data,
|
|
5786
|
+
mode: obj.mode,
|
|
5787
|
+
length: obj.length
|
|
5788
|
+
};
|
|
5789
|
+
});
|
|
5790
|
+
}
|
|
5791
|
+
function getSegmentBitsLength(length, mode2) {
|
|
5792
|
+
switch (mode2) {
|
|
5793
|
+
case Mode2.NUMERIC:
|
|
5794
|
+
return NumericData2.getBitsLength(length);
|
|
5795
|
+
case Mode2.ALPHANUMERIC:
|
|
5796
|
+
return AlphanumericData2.getBitsLength(length);
|
|
5797
|
+
case Mode2.KANJI:
|
|
5798
|
+
return KanjiData2.getBitsLength(length);
|
|
5799
|
+
case Mode2.BYTE:
|
|
5800
|
+
return ByteData2.getBitsLength(length);
|
|
5801
|
+
}
|
|
5802
|
+
}
|
|
5803
|
+
function mergeSegments(segs) {
|
|
5804
|
+
return segs.reduce(function(acc, curr) {
|
|
5805
|
+
const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;
|
|
5806
|
+
if (prevSeg && prevSeg.mode === curr.mode) {
|
|
5807
|
+
acc[acc.length - 1].data += curr.data;
|
|
5808
|
+
return acc;
|
|
5809
|
+
}
|
|
5810
|
+
acc.push(curr);
|
|
5811
|
+
return acc;
|
|
5812
|
+
}, []);
|
|
5813
|
+
}
|
|
5814
|
+
function buildNodes(segs) {
|
|
5815
|
+
const nodes = [];
|
|
5816
|
+
for (let i2 = 0; i2 < segs.length; i2++) {
|
|
5817
|
+
const seg = segs[i2];
|
|
5818
|
+
switch (seg.mode) {
|
|
5819
|
+
case Mode2.NUMERIC:
|
|
5820
|
+
nodes.push([
|
|
5821
|
+
seg,
|
|
5822
|
+
{ data: seg.data, mode: Mode2.ALPHANUMERIC, length: seg.length },
|
|
5823
|
+
{ data: seg.data, mode: Mode2.BYTE, length: seg.length }
|
|
5824
|
+
]);
|
|
5825
|
+
break;
|
|
5826
|
+
case Mode2.ALPHANUMERIC:
|
|
5827
|
+
nodes.push([
|
|
5828
|
+
seg,
|
|
5829
|
+
{ data: seg.data, mode: Mode2.BYTE, length: seg.length }
|
|
5830
|
+
]);
|
|
5831
|
+
break;
|
|
5832
|
+
case Mode2.KANJI:
|
|
5833
|
+
nodes.push([
|
|
5834
|
+
seg,
|
|
5835
|
+
{ data: seg.data, mode: Mode2.BYTE, length: getStringByteLength(seg.data) }
|
|
5836
|
+
]);
|
|
5837
|
+
break;
|
|
5838
|
+
case Mode2.BYTE:
|
|
5839
|
+
nodes.push([
|
|
5840
|
+
{ data: seg.data, mode: Mode2.BYTE, length: getStringByteLength(seg.data) }
|
|
5841
|
+
]);
|
|
5842
|
+
}
|
|
5843
|
+
}
|
|
5844
|
+
return nodes;
|
|
5845
|
+
}
|
|
5846
|
+
function buildGraph(nodes, version2) {
|
|
5847
|
+
const table = {};
|
|
5848
|
+
const graph = { start: {} };
|
|
5849
|
+
let prevNodeIds = ["start"];
|
|
5850
|
+
for (let i2 = 0; i2 < nodes.length; i2++) {
|
|
5851
|
+
const nodeGroup = nodes[i2];
|
|
5852
|
+
const currentNodeIds = [];
|
|
5853
|
+
for (let j2 = 0; j2 < nodeGroup.length; j2++) {
|
|
5854
|
+
const node = nodeGroup[j2];
|
|
5855
|
+
const key = "" + i2 + j2;
|
|
5856
|
+
currentNodeIds.push(key);
|
|
5857
|
+
table[key] = { node, lastCount: 0 };
|
|
5858
|
+
graph[key] = {};
|
|
5859
|
+
for (let n2 = 0; n2 < prevNodeIds.length; n2++) {
|
|
5860
|
+
const prevNodeId = prevNodeIds[n2];
|
|
5861
|
+
if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {
|
|
5862
|
+
graph[prevNodeId][key] = getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) - getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);
|
|
5863
|
+
table[prevNodeId].lastCount += node.length;
|
|
5864
|
+
} else {
|
|
5865
|
+
if (table[prevNodeId])
|
|
5866
|
+
table[prevNodeId].lastCount = node.length;
|
|
5867
|
+
graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) + 4 + Mode2.getCharCountIndicator(node.mode, version2);
|
|
5868
|
+
}
|
|
5869
|
+
}
|
|
5870
|
+
}
|
|
5871
|
+
prevNodeIds = currentNodeIds;
|
|
5872
|
+
}
|
|
5873
|
+
for (let n2 = 0; n2 < prevNodeIds.length; n2++) {
|
|
5874
|
+
graph[prevNodeIds[n2]].end = 0;
|
|
5875
|
+
}
|
|
5876
|
+
return { map: graph, table };
|
|
5877
|
+
}
|
|
5878
|
+
function buildSingleSegment(data, modesHint) {
|
|
5879
|
+
let mode2;
|
|
5880
|
+
const bestMode = Mode2.getBestModeForData(data);
|
|
5881
|
+
mode2 = Mode2.from(modesHint, bestMode);
|
|
5882
|
+
if (mode2 !== Mode2.BYTE && mode2.bit < bestMode.bit) {
|
|
5883
|
+
throw new Error('"' + data + '" cannot be encoded with mode ' + Mode2.toString(mode2) + ".\n Suggested mode is: " + Mode2.toString(bestMode));
|
|
5884
|
+
}
|
|
5885
|
+
if (mode2 === Mode2.KANJI && !Utils2.isKanjiModeEnabled()) {
|
|
5886
|
+
mode2 = Mode2.BYTE;
|
|
5887
|
+
}
|
|
5888
|
+
switch (mode2) {
|
|
5889
|
+
case Mode2.NUMERIC:
|
|
5890
|
+
return new NumericData2(data);
|
|
5891
|
+
case Mode2.ALPHANUMERIC:
|
|
5892
|
+
return new AlphanumericData2(data);
|
|
5893
|
+
case Mode2.KANJI:
|
|
5894
|
+
return new KanjiData2(data);
|
|
5895
|
+
case Mode2.BYTE:
|
|
5896
|
+
return new ByteData2(data);
|
|
5897
|
+
}
|
|
5898
|
+
}
|
|
5899
|
+
exports.fromArray = function fromArray(array) {
|
|
5900
|
+
return array.reduce(function(acc, seg) {
|
|
5901
|
+
if (typeof seg === "string") {
|
|
5902
|
+
acc.push(buildSingleSegment(seg, null));
|
|
5903
|
+
} else if (seg.data) {
|
|
5904
|
+
acc.push(buildSingleSegment(seg.data, seg.mode));
|
|
5905
|
+
}
|
|
5906
|
+
return acc;
|
|
5907
|
+
}, []);
|
|
5908
|
+
};
|
|
5909
|
+
exports.fromString = function fromString(data, version2) {
|
|
5910
|
+
const segs = getSegmentsFromString(data, Utils2.isKanjiModeEnabled());
|
|
5911
|
+
const nodes = buildNodes(segs);
|
|
5912
|
+
const graph = buildGraph(nodes, version2);
|
|
5913
|
+
const path = dijkstra2.find_path(graph.map, "start", "end");
|
|
5914
|
+
const optimizedSegs = [];
|
|
5915
|
+
for (let i2 = 1; i2 < path.length - 1; i2++) {
|
|
5916
|
+
optimizedSegs.push(graph.table[path[i2]].node);
|
|
5917
|
+
}
|
|
5918
|
+
return exports.fromArray(mergeSegments(optimizedSegs));
|
|
5919
|
+
};
|
|
5920
|
+
exports.rawSplit = function rawSplit(data) {
|
|
5921
|
+
return exports.fromArray(
|
|
5922
|
+
getSegmentsFromString(data, Utils2.isKanjiModeEnabled())
|
|
5923
|
+
);
|
|
5924
|
+
};
|
|
5925
|
+
})(segments);
|
|
5926
|
+
const Utils$1 = utils$1;
|
|
5927
|
+
const ECLevel = errorCorrectionLevel;
|
|
5928
|
+
const BitBuffer = bitBuffer;
|
|
5929
|
+
const BitMatrix = bitMatrix;
|
|
5930
|
+
const AlignmentPattern = alignmentPattern;
|
|
5931
|
+
const FinderPattern = finderPattern;
|
|
5932
|
+
const MaskPattern = maskPattern;
|
|
5933
|
+
const ECCode = errorCorrectionCode;
|
|
5934
|
+
const ReedSolomonEncoder = reedSolomonEncoder;
|
|
5935
|
+
const Version = version;
|
|
5936
|
+
const FormatInfo = formatInfo;
|
|
5937
|
+
const Mode = mode;
|
|
5938
|
+
const Segments = segments;
|
|
5939
|
+
function setupFinderPattern(matrix, version2) {
|
|
5940
|
+
const size = matrix.size;
|
|
5941
|
+
const pos = FinderPattern.getPositions(version2);
|
|
5942
|
+
for (let i2 = 0; i2 < pos.length; i2++) {
|
|
5943
|
+
const row = pos[i2][0];
|
|
5944
|
+
const col = pos[i2][1];
|
|
5945
|
+
for (let r2 = -1; r2 <= 7; r2++) {
|
|
5946
|
+
if (row + r2 <= -1 || size <= row + r2)
|
|
5947
|
+
continue;
|
|
5948
|
+
for (let c2 = -1; c2 <= 7; c2++) {
|
|
5949
|
+
if (col + c2 <= -1 || size <= col + c2)
|
|
5950
|
+
continue;
|
|
5951
|
+
if (r2 >= 0 && r2 <= 6 && (c2 === 0 || c2 === 6) || c2 >= 0 && c2 <= 6 && (r2 === 0 || r2 === 6) || r2 >= 2 && r2 <= 4 && c2 >= 2 && c2 <= 4) {
|
|
5952
|
+
matrix.set(row + r2, col + c2, true, true);
|
|
5953
|
+
} else {
|
|
5954
|
+
matrix.set(row + r2, col + c2, false, true);
|
|
5955
|
+
}
|
|
5956
|
+
}
|
|
5957
|
+
}
|
|
5958
|
+
}
|
|
5959
|
+
}
|
|
5960
|
+
function setupTimingPattern(matrix) {
|
|
5961
|
+
const size = matrix.size;
|
|
5962
|
+
for (let r2 = 8; r2 < size - 8; r2++) {
|
|
5963
|
+
const value = r2 % 2 === 0;
|
|
5964
|
+
matrix.set(r2, 6, value, true);
|
|
5965
|
+
matrix.set(6, r2, value, true);
|
|
5966
|
+
}
|
|
5967
|
+
}
|
|
5968
|
+
function setupAlignmentPattern(matrix, version2) {
|
|
5969
|
+
const pos = AlignmentPattern.getPositions(version2);
|
|
5970
|
+
for (let i2 = 0; i2 < pos.length; i2++) {
|
|
5971
|
+
const row = pos[i2][0];
|
|
5972
|
+
const col = pos[i2][1];
|
|
5973
|
+
for (let r2 = -2; r2 <= 2; r2++) {
|
|
5974
|
+
for (let c2 = -2; c2 <= 2; c2++) {
|
|
5975
|
+
if (r2 === -2 || r2 === 2 || c2 === -2 || c2 === 2 || r2 === 0 && c2 === 0) {
|
|
5976
|
+
matrix.set(row + r2, col + c2, true, true);
|
|
5977
|
+
} else {
|
|
5978
|
+
matrix.set(row + r2, col + c2, false, true);
|
|
5979
|
+
}
|
|
5980
|
+
}
|
|
5981
|
+
}
|
|
5982
|
+
}
|
|
5983
|
+
}
|
|
5984
|
+
function setupVersionInfo(matrix, version2) {
|
|
5985
|
+
const size = matrix.size;
|
|
5986
|
+
const bits = Version.getEncodedBits(version2);
|
|
5987
|
+
let row, col, mod;
|
|
5988
|
+
for (let i2 = 0; i2 < 18; i2++) {
|
|
5989
|
+
row = Math.floor(i2 / 3);
|
|
5990
|
+
col = i2 % 3 + size - 8 - 3;
|
|
5991
|
+
mod = (bits >> i2 & 1) === 1;
|
|
5992
|
+
matrix.set(row, col, mod, true);
|
|
5993
|
+
matrix.set(col, row, mod, true);
|
|
5994
|
+
}
|
|
5995
|
+
}
|
|
5996
|
+
function setupFormatInfo(matrix, errorCorrectionLevel2, maskPattern2) {
|
|
5997
|
+
const size = matrix.size;
|
|
5998
|
+
const bits = FormatInfo.getEncodedBits(errorCorrectionLevel2, maskPattern2);
|
|
5999
|
+
let i2, mod;
|
|
6000
|
+
for (i2 = 0; i2 < 15; i2++) {
|
|
6001
|
+
mod = (bits >> i2 & 1) === 1;
|
|
6002
|
+
if (i2 < 6) {
|
|
6003
|
+
matrix.set(i2, 8, mod, true);
|
|
6004
|
+
} else if (i2 < 8) {
|
|
6005
|
+
matrix.set(i2 + 1, 8, mod, true);
|
|
6006
|
+
} else {
|
|
6007
|
+
matrix.set(size - 15 + i2, 8, mod, true);
|
|
6008
|
+
}
|
|
6009
|
+
if (i2 < 8) {
|
|
6010
|
+
matrix.set(8, size - i2 - 1, mod, true);
|
|
6011
|
+
} else if (i2 < 9) {
|
|
6012
|
+
matrix.set(8, 15 - i2 - 1 + 1, mod, true);
|
|
6013
|
+
} else {
|
|
6014
|
+
matrix.set(8, 15 - i2 - 1, mod, true);
|
|
6015
|
+
}
|
|
6016
|
+
}
|
|
6017
|
+
matrix.set(size - 8, 8, 1, true);
|
|
6018
|
+
}
|
|
6019
|
+
function setupData(matrix, data) {
|
|
6020
|
+
const size = matrix.size;
|
|
6021
|
+
let inc = -1;
|
|
6022
|
+
let row = size - 1;
|
|
6023
|
+
let bitIndex = 7;
|
|
6024
|
+
let byteIndex = 0;
|
|
6025
|
+
for (let col = size - 1; col > 0; col -= 2) {
|
|
6026
|
+
if (col === 6)
|
|
6027
|
+
col--;
|
|
6028
|
+
while (true) {
|
|
6029
|
+
for (let c2 = 0; c2 < 2; c2++) {
|
|
6030
|
+
if (!matrix.isReserved(row, col - c2)) {
|
|
6031
|
+
let dark = false;
|
|
6032
|
+
if (byteIndex < data.length) {
|
|
6033
|
+
dark = (data[byteIndex] >>> bitIndex & 1) === 1;
|
|
6034
|
+
}
|
|
6035
|
+
matrix.set(row, col - c2, dark);
|
|
6036
|
+
bitIndex--;
|
|
6037
|
+
if (bitIndex === -1) {
|
|
6038
|
+
byteIndex++;
|
|
6039
|
+
bitIndex = 7;
|
|
6040
|
+
}
|
|
6041
|
+
}
|
|
6042
|
+
}
|
|
6043
|
+
row += inc;
|
|
6044
|
+
if (row < 0 || size <= row) {
|
|
6045
|
+
row -= inc;
|
|
6046
|
+
inc = -inc;
|
|
6047
|
+
break;
|
|
6048
|
+
}
|
|
6049
|
+
}
|
|
6050
|
+
}
|
|
6051
|
+
}
|
|
6052
|
+
function createData(version2, errorCorrectionLevel2, segments2) {
|
|
6053
|
+
const buffer = new BitBuffer();
|
|
6054
|
+
segments2.forEach(function(data) {
|
|
6055
|
+
buffer.put(data.mode.bit, 4);
|
|
6056
|
+
buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version2));
|
|
6057
|
+
data.write(buffer);
|
|
4423
6058
|
});
|
|
6059
|
+
const totalCodewords = Utils$1.getSymbolTotalCodewords(version2);
|
|
6060
|
+
const ecTotalCodewords = ECCode.getTotalCodewordsCount(version2, errorCorrectionLevel2);
|
|
6061
|
+
const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;
|
|
6062
|
+
if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {
|
|
6063
|
+
buffer.put(0, 4);
|
|
6064
|
+
}
|
|
6065
|
+
while (buffer.getLengthInBits() % 8 !== 0) {
|
|
6066
|
+
buffer.putBit(0);
|
|
6067
|
+
}
|
|
6068
|
+
const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;
|
|
6069
|
+
for (let i2 = 0; i2 < remainingByte; i2++) {
|
|
6070
|
+
buffer.put(i2 % 2 ? 17 : 236, 8);
|
|
6071
|
+
}
|
|
6072
|
+
return createCodewords(buffer, version2, errorCorrectionLevel2);
|
|
6073
|
+
}
|
|
6074
|
+
function createCodewords(bitBuffer2, version2, errorCorrectionLevel2) {
|
|
6075
|
+
const totalCodewords = Utils$1.getSymbolTotalCodewords(version2);
|
|
6076
|
+
const ecTotalCodewords = ECCode.getTotalCodewordsCount(version2, errorCorrectionLevel2);
|
|
6077
|
+
const dataTotalCodewords = totalCodewords - ecTotalCodewords;
|
|
6078
|
+
const ecTotalBlocks = ECCode.getBlocksCount(version2, errorCorrectionLevel2);
|
|
6079
|
+
const blocksInGroup2 = totalCodewords % ecTotalBlocks;
|
|
6080
|
+
const blocksInGroup1 = ecTotalBlocks - blocksInGroup2;
|
|
6081
|
+
const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);
|
|
6082
|
+
const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);
|
|
6083
|
+
const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1;
|
|
6084
|
+
const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1;
|
|
6085
|
+
const rs = new ReedSolomonEncoder(ecCount);
|
|
6086
|
+
let offset = 0;
|
|
6087
|
+
const dcData = new Array(ecTotalBlocks);
|
|
6088
|
+
const ecData = new Array(ecTotalBlocks);
|
|
6089
|
+
let maxDataSize = 0;
|
|
6090
|
+
const buffer = new Uint8Array(bitBuffer2.buffer);
|
|
6091
|
+
for (let b2 = 0; b2 < ecTotalBlocks; b2++) {
|
|
6092
|
+
const dataSize = b2 < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2;
|
|
6093
|
+
dcData[b2] = buffer.slice(offset, offset + dataSize);
|
|
6094
|
+
ecData[b2] = rs.encode(dcData[b2]);
|
|
6095
|
+
offset += dataSize;
|
|
6096
|
+
maxDataSize = Math.max(maxDataSize, dataSize);
|
|
6097
|
+
}
|
|
6098
|
+
const data = new Uint8Array(totalCodewords);
|
|
6099
|
+
let index2 = 0;
|
|
6100
|
+
let i2, r2;
|
|
6101
|
+
for (i2 = 0; i2 < maxDataSize; i2++) {
|
|
6102
|
+
for (r2 = 0; r2 < ecTotalBlocks; r2++) {
|
|
6103
|
+
if (i2 < dcData[r2].length) {
|
|
6104
|
+
data[index2++] = dcData[r2][i2];
|
|
6105
|
+
}
|
|
6106
|
+
}
|
|
6107
|
+
}
|
|
6108
|
+
for (i2 = 0; i2 < ecCount; i2++) {
|
|
6109
|
+
for (r2 = 0; r2 < ecTotalBlocks; r2++) {
|
|
6110
|
+
data[index2++] = ecData[r2][i2];
|
|
6111
|
+
}
|
|
6112
|
+
}
|
|
6113
|
+
return data;
|
|
6114
|
+
}
|
|
6115
|
+
function createSymbol(data, version2, errorCorrectionLevel2, maskPattern2) {
|
|
6116
|
+
let segments2;
|
|
6117
|
+
if (Array.isArray(data)) {
|
|
6118
|
+
segments2 = Segments.fromArray(data);
|
|
6119
|
+
} else if (typeof data === "string") {
|
|
6120
|
+
let estimatedVersion = version2;
|
|
6121
|
+
if (!estimatedVersion) {
|
|
6122
|
+
const rawSegments = Segments.rawSplit(data);
|
|
6123
|
+
estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel2);
|
|
6124
|
+
}
|
|
6125
|
+
segments2 = Segments.fromString(data, estimatedVersion || 40);
|
|
6126
|
+
} else {
|
|
6127
|
+
throw new Error("Invalid data");
|
|
6128
|
+
}
|
|
6129
|
+
const bestVersion = Version.getBestVersionForData(segments2, errorCorrectionLevel2);
|
|
6130
|
+
if (!bestVersion) {
|
|
6131
|
+
throw new Error("The amount of data is too big to be stored in a QR Code");
|
|
6132
|
+
}
|
|
6133
|
+
if (!version2) {
|
|
6134
|
+
version2 = bestVersion;
|
|
6135
|
+
} else if (version2 < bestVersion) {
|
|
6136
|
+
throw new Error(
|
|
6137
|
+
"\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: " + bestVersion + ".\n"
|
|
6138
|
+
);
|
|
6139
|
+
}
|
|
6140
|
+
const dataBits = createData(version2, errorCorrectionLevel2, segments2);
|
|
6141
|
+
const moduleCount = Utils$1.getSymbolSize(version2);
|
|
6142
|
+
const modules = new BitMatrix(moduleCount);
|
|
6143
|
+
setupFinderPattern(modules, version2);
|
|
6144
|
+
setupTimingPattern(modules);
|
|
6145
|
+
setupAlignmentPattern(modules, version2);
|
|
6146
|
+
setupFormatInfo(modules, errorCorrectionLevel2, 0);
|
|
6147
|
+
if (version2 >= 7) {
|
|
6148
|
+
setupVersionInfo(modules, version2);
|
|
6149
|
+
}
|
|
6150
|
+
setupData(modules, dataBits);
|
|
6151
|
+
if (isNaN(maskPattern2)) {
|
|
6152
|
+
maskPattern2 = MaskPattern.getBestMask(
|
|
6153
|
+
modules,
|
|
6154
|
+
setupFormatInfo.bind(null, modules, errorCorrectionLevel2)
|
|
6155
|
+
);
|
|
6156
|
+
}
|
|
6157
|
+
MaskPattern.applyMask(maskPattern2, modules);
|
|
6158
|
+
setupFormatInfo(modules, errorCorrectionLevel2, maskPattern2);
|
|
6159
|
+
return {
|
|
6160
|
+
modules,
|
|
6161
|
+
version: version2,
|
|
6162
|
+
errorCorrectionLevel: errorCorrectionLevel2,
|
|
6163
|
+
maskPattern: maskPattern2,
|
|
6164
|
+
segments: segments2
|
|
6165
|
+
};
|
|
6166
|
+
}
|
|
6167
|
+
qrcode.create = function create(data, options) {
|
|
6168
|
+
if (typeof data === "undefined" || data === "") {
|
|
6169
|
+
throw new Error("No input text");
|
|
6170
|
+
}
|
|
6171
|
+
let errorCorrectionLevel2 = ECLevel.M;
|
|
6172
|
+
let version2;
|
|
6173
|
+
let mask;
|
|
6174
|
+
if (typeof options !== "undefined") {
|
|
6175
|
+
errorCorrectionLevel2 = ECLevel.from(options.errorCorrectionLevel, ECLevel.M);
|
|
6176
|
+
version2 = Version.from(options.version);
|
|
6177
|
+
mask = MaskPattern.from(options.maskPattern);
|
|
6178
|
+
if (options.toSJISFunc) {
|
|
6179
|
+
Utils$1.setToSJISFunction(options.toSJISFunc);
|
|
6180
|
+
}
|
|
6181
|
+
}
|
|
6182
|
+
return createSymbol(data, version2, errorCorrectionLevel2, mask);
|
|
6183
|
+
};
|
|
6184
|
+
var canvas = {};
|
|
6185
|
+
var utils = {};
|
|
6186
|
+
(function(exports) {
|
|
6187
|
+
function hex2rgba(hex) {
|
|
6188
|
+
if (typeof hex === "number") {
|
|
6189
|
+
hex = hex.toString();
|
|
6190
|
+
}
|
|
6191
|
+
if (typeof hex !== "string") {
|
|
6192
|
+
throw new Error("Color should be defined as hex string");
|
|
6193
|
+
}
|
|
6194
|
+
let hexCode = hex.slice().replace("#", "").split("");
|
|
6195
|
+
if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {
|
|
6196
|
+
throw new Error("Invalid hex color: " + hex);
|
|
6197
|
+
}
|
|
6198
|
+
if (hexCode.length === 3 || hexCode.length === 4) {
|
|
6199
|
+
hexCode = Array.prototype.concat.apply([], hexCode.map(function(c2) {
|
|
6200
|
+
return [c2, c2];
|
|
6201
|
+
}));
|
|
6202
|
+
}
|
|
6203
|
+
if (hexCode.length === 6)
|
|
6204
|
+
hexCode.push("F", "F");
|
|
6205
|
+
const hexValue = parseInt(hexCode.join(""), 16);
|
|
6206
|
+
return {
|
|
6207
|
+
r: hexValue >> 24 & 255,
|
|
6208
|
+
g: hexValue >> 16 & 255,
|
|
6209
|
+
b: hexValue >> 8 & 255,
|
|
6210
|
+
a: hexValue & 255,
|
|
6211
|
+
hex: "#" + hexCode.slice(0, 6).join("")
|
|
6212
|
+
};
|
|
6213
|
+
}
|
|
6214
|
+
exports.getOptions = function getOptions(options) {
|
|
6215
|
+
if (!options)
|
|
6216
|
+
options = {};
|
|
6217
|
+
if (!options.color)
|
|
6218
|
+
options.color = {};
|
|
6219
|
+
const margin = typeof options.margin === "undefined" || options.margin === null || options.margin < 0 ? 4 : options.margin;
|
|
6220
|
+
const width = options.width && options.width >= 21 ? options.width : void 0;
|
|
6221
|
+
const scale = options.scale || 4;
|
|
6222
|
+
return {
|
|
6223
|
+
width,
|
|
6224
|
+
scale: width ? 4 : scale,
|
|
6225
|
+
margin,
|
|
6226
|
+
color: {
|
|
6227
|
+
dark: hex2rgba(options.color.dark || "#000000ff"),
|
|
6228
|
+
light: hex2rgba(options.color.light || "#ffffffff")
|
|
6229
|
+
},
|
|
6230
|
+
type: options.type,
|
|
6231
|
+
rendererOpts: options.rendererOpts || {}
|
|
6232
|
+
};
|
|
6233
|
+
};
|
|
6234
|
+
exports.getScale = function getScale(qrSize, opts) {
|
|
6235
|
+
return opts.width && opts.width >= qrSize + opts.margin * 2 ? opts.width / (qrSize + opts.margin * 2) : opts.scale;
|
|
6236
|
+
};
|
|
6237
|
+
exports.getImageWidth = function getImageWidth(qrSize, opts) {
|
|
6238
|
+
const scale = exports.getScale(qrSize, opts);
|
|
6239
|
+
return Math.floor((qrSize + opts.margin * 2) * scale);
|
|
6240
|
+
};
|
|
6241
|
+
exports.qrToImageData = function qrToImageData(imgData, qr, opts) {
|
|
6242
|
+
const size = qr.modules.size;
|
|
6243
|
+
const data = qr.modules.data;
|
|
6244
|
+
const scale = exports.getScale(size, opts);
|
|
6245
|
+
const symbolSize = Math.floor((size + opts.margin * 2) * scale);
|
|
6246
|
+
const scaledMargin = opts.margin * scale;
|
|
6247
|
+
const palette = [opts.color.light, opts.color.dark];
|
|
6248
|
+
for (let i2 = 0; i2 < symbolSize; i2++) {
|
|
6249
|
+
for (let j2 = 0; j2 < symbolSize; j2++) {
|
|
6250
|
+
let posDst = (i2 * symbolSize + j2) * 4;
|
|
6251
|
+
let pxColor = opts.color.light;
|
|
6252
|
+
if (i2 >= scaledMargin && j2 >= scaledMargin && i2 < symbolSize - scaledMargin && j2 < symbolSize - scaledMargin) {
|
|
6253
|
+
const iSrc = Math.floor((i2 - scaledMargin) / scale);
|
|
6254
|
+
const jSrc = Math.floor((j2 - scaledMargin) / scale);
|
|
6255
|
+
pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];
|
|
6256
|
+
}
|
|
6257
|
+
imgData[posDst++] = pxColor.r;
|
|
6258
|
+
imgData[posDst++] = pxColor.g;
|
|
6259
|
+
imgData[posDst++] = pxColor.b;
|
|
6260
|
+
imgData[posDst] = pxColor.a;
|
|
6261
|
+
}
|
|
6262
|
+
}
|
|
6263
|
+
};
|
|
6264
|
+
})(utils);
|
|
6265
|
+
(function(exports) {
|
|
6266
|
+
const Utils2 = utils;
|
|
6267
|
+
function clearCanvas(ctx, canvas2, size) {
|
|
6268
|
+
ctx.clearRect(0, 0, canvas2.width, canvas2.height);
|
|
6269
|
+
if (!canvas2.style)
|
|
6270
|
+
canvas2.style = {};
|
|
6271
|
+
canvas2.height = size;
|
|
6272
|
+
canvas2.width = size;
|
|
6273
|
+
canvas2.style.height = size + "px";
|
|
6274
|
+
canvas2.style.width = size + "px";
|
|
6275
|
+
}
|
|
6276
|
+
function getCanvasElement() {
|
|
6277
|
+
try {
|
|
6278
|
+
return document.createElement("canvas");
|
|
6279
|
+
} catch (e2) {
|
|
6280
|
+
throw new Error("You need to specify a canvas element");
|
|
6281
|
+
}
|
|
6282
|
+
}
|
|
6283
|
+
exports.render = function render2(qrData, canvas2, options) {
|
|
6284
|
+
let opts = options;
|
|
6285
|
+
let canvasEl = canvas2;
|
|
6286
|
+
if (typeof opts === "undefined" && (!canvas2 || !canvas2.getContext)) {
|
|
6287
|
+
opts = canvas2;
|
|
6288
|
+
canvas2 = void 0;
|
|
6289
|
+
}
|
|
6290
|
+
if (!canvas2) {
|
|
6291
|
+
canvasEl = getCanvasElement();
|
|
6292
|
+
}
|
|
6293
|
+
opts = Utils2.getOptions(opts);
|
|
6294
|
+
const size = Utils2.getImageWidth(qrData.modules.size, opts);
|
|
6295
|
+
const ctx = canvasEl.getContext("2d");
|
|
6296
|
+
const image = ctx.createImageData(size, size);
|
|
6297
|
+
Utils2.qrToImageData(image.data, qrData, opts);
|
|
6298
|
+
clearCanvas(ctx, canvasEl, size);
|
|
6299
|
+
ctx.putImageData(image, 0, 0);
|
|
6300
|
+
return canvasEl;
|
|
6301
|
+
};
|
|
6302
|
+
exports.renderToDataURL = function renderToDataURL(qrData, canvas2, options) {
|
|
6303
|
+
let opts = options;
|
|
6304
|
+
if (typeof opts === "undefined" && (!canvas2 || !canvas2.getContext)) {
|
|
6305
|
+
opts = canvas2;
|
|
6306
|
+
canvas2 = void 0;
|
|
6307
|
+
}
|
|
6308
|
+
if (!opts)
|
|
6309
|
+
opts = {};
|
|
6310
|
+
const canvasEl = exports.render(qrData, canvas2, opts);
|
|
6311
|
+
const type = opts.type || "image/png";
|
|
6312
|
+
const rendererOpts = opts.rendererOpts || {};
|
|
6313
|
+
return canvasEl.toDataURL(type, rendererOpts.quality);
|
|
6314
|
+
};
|
|
6315
|
+
})(canvas);
|
|
6316
|
+
var svgTag = {};
|
|
6317
|
+
const Utils = utils;
|
|
6318
|
+
function getColorAttrib(color, attrib) {
|
|
6319
|
+
const alpha = color.a / 255;
|
|
6320
|
+
const str = attrib + '="' + color.hex + '"';
|
|
6321
|
+
return alpha < 1 ? str + " " + attrib + '-opacity="' + alpha.toFixed(2).slice(1) + '"' : str;
|
|
6322
|
+
}
|
|
6323
|
+
function svgCmd(cmd, x2, y2) {
|
|
6324
|
+
let str = cmd + x2;
|
|
6325
|
+
if (typeof y2 !== "undefined")
|
|
6326
|
+
str += " " + y2;
|
|
6327
|
+
return str;
|
|
6328
|
+
}
|
|
6329
|
+
function qrToPath(data, size, margin) {
|
|
6330
|
+
let path = "";
|
|
6331
|
+
let moveBy = 0;
|
|
6332
|
+
let newRow = false;
|
|
6333
|
+
let lineLength = 0;
|
|
6334
|
+
for (let i2 = 0; i2 < data.length; i2++) {
|
|
6335
|
+
const col = Math.floor(i2 % size);
|
|
6336
|
+
const row = Math.floor(i2 / size);
|
|
6337
|
+
if (!col && !newRow)
|
|
6338
|
+
newRow = true;
|
|
6339
|
+
if (data[i2]) {
|
|
6340
|
+
lineLength++;
|
|
6341
|
+
if (!(i2 > 0 && col > 0 && data[i2 - 1])) {
|
|
6342
|
+
path += newRow ? svgCmd("M", col + margin, 0.5 + row + margin) : svgCmd("m", moveBy, 0);
|
|
6343
|
+
moveBy = 0;
|
|
6344
|
+
newRow = false;
|
|
6345
|
+
}
|
|
6346
|
+
if (!(col + 1 < size && data[i2 + 1])) {
|
|
6347
|
+
path += svgCmd("h", lineLength);
|
|
6348
|
+
lineLength = 0;
|
|
6349
|
+
}
|
|
6350
|
+
} else {
|
|
6351
|
+
moveBy++;
|
|
6352
|
+
}
|
|
6353
|
+
}
|
|
6354
|
+
return path;
|
|
6355
|
+
}
|
|
6356
|
+
svgTag.render = function render(qrData, options, cb) {
|
|
6357
|
+
const opts = Utils.getOptions(options);
|
|
6358
|
+
const size = qrData.modules.size;
|
|
6359
|
+
const data = qrData.modules.data;
|
|
6360
|
+
const qrcodesize = size + opts.margin * 2;
|
|
6361
|
+
const bg = !opts.color.light.a ? "" : "<path " + getColorAttrib(opts.color.light, "fill") + ' d="M0 0h' + qrcodesize + "v" + qrcodesize + 'H0z"/>';
|
|
6362
|
+
const path = "<path " + getColorAttrib(opts.color.dark, "stroke") + ' d="' + qrToPath(data, size, opts.margin) + '"/>';
|
|
6363
|
+
const viewBox = 'viewBox="0 0 ' + qrcodesize + " " + qrcodesize + '"';
|
|
6364
|
+
const width = !opts.width ? "" : 'width="' + opts.width + '" height="' + opts.width + '" ';
|
|
6365
|
+
const svgTag2 = '<svg xmlns="http://www.w3.org/2000/svg" ' + width + viewBox + ' shape-rendering="crispEdges">' + bg + path + "</svg>\n";
|
|
6366
|
+
if (typeof cb === "function") {
|
|
6367
|
+
cb(null, svgTag2);
|
|
6368
|
+
}
|
|
6369
|
+
return svgTag2;
|
|
6370
|
+
};
|
|
6371
|
+
const canPromise = canPromise$1;
|
|
6372
|
+
const QRCode = qrcode;
|
|
6373
|
+
const CanvasRenderer = canvas;
|
|
6374
|
+
const SvgRenderer = svgTag;
|
|
6375
|
+
function renderCanvas(renderFunc, canvas2, text, opts, cb) {
|
|
6376
|
+
const args = [].slice.call(arguments, 1);
|
|
6377
|
+
const argsNum = args.length;
|
|
6378
|
+
const isLastArgCb = typeof args[argsNum - 1] === "function";
|
|
6379
|
+
if (!isLastArgCb && !canPromise()) {
|
|
6380
|
+
throw new Error("Callback required as last argument");
|
|
6381
|
+
}
|
|
6382
|
+
if (isLastArgCb) {
|
|
6383
|
+
if (argsNum < 2) {
|
|
6384
|
+
throw new Error("Too few arguments provided");
|
|
6385
|
+
}
|
|
6386
|
+
if (argsNum === 2) {
|
|
6387
|
+
cb = text;
|
|
6388
|
+
text = canvas2;
|
|
6389
|
+
canvas2 = opts = void 0;
|
|
6390
|
+
} else if (argsNum === 3) {
|
|
6391
|
+
if (canvas2.getContext && typeof cb === "undefined") {
|
|
6392
|
+
cb = opts;
|
|
6393
|
+
opts = void 0;
|
|
6394
|
+
} else {
|
|
6395
|
+
cb = opts;
|
|
6396
|
+
opts = text;
|
|
6397
|
+
text = canvas2;
|
|
6398
|
+
canvas2 = void 0;
|
|
6399
|
+
}
|
|
6400
|
+
}
|
|
6401
|
+
} else {
|
|
6402
|
+
if (argsNum < 1) {
|
|
6403
|
+
throw new Error("Too few arguments provided");
|
|
6404
|
+
}
|
|
6405
|
+
if (argsNum === 1) {
|
|
6406
|
+
text = canvas2;
|
|
6407
|
+
canvas2 = opts = void 0;
|
|
6408
|
+
} else if (argsNum === 2 && !canvas2.getContext) {
|
|
6409
|
+
opts = text;
|
|
6410
|
+
text = canvas2;
|
|
6411
|
+
canvas2 = void 0;
|
|
6412
|
+
}
|
|
6413
|
+
return new Promise(function(resolve, reject) {
|
|
6414
|
+
try {
|
|
6415
|
+
const data = QRCode.create(text, opts);
|
|
6416
|
+
resolve(renderFunc(data, canvas2, opts));
|
|
6417
|
+
} catch (e2) {
|
|
6418
|
+
reject(e2);
|
|
6419
|
+
}
|
|
6420
|
+
});
|
|
6421
|
+
}
|
|
6422
|
+
try {
|
|
6423
|
+
const data = QRCode.create(text, opts);
|
|
6424
|
+
cb(null, renderFunc(data, canvas2, opts));
|
|
6425
|
+
} catch (e2) {
|
|
6426
|
+
cb(e2);
|
|
6427
|
+
}
|
|
4424
6428
|
}
|
|
6429
|
+
browser.create = QRCode.create;
|
|
6430
|
+
browser.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);
|
|
6431
|
+
browser.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL);
|
|
6432
|
+
browser.toString = renderCanvas.bind(null, function(data, _2, opts) {
|
|
6433
|
+
return SvgRenderer.render(data, opts);
|
|
6434
|
+
});
|
|
4425
6435
|
export {
|
|
4426
6436
|
A$1 as A,
|
|
4427
6437
|
B$2 as B,
|
|
4428
6438
|
F$1 as F,
|
|
4429
6439
|
G$1 as G,
|
|
6440
|
+
P,
|
|
4430
6441
|
T$1 as T,
|
|
4431
6442
|
_$3 as _,
|
|
4432
6443
|
b$1 as b,
|
|
6444
|
+
browser,
|
|
4433
6445
|
d$1 as d,
|
|
4434
|
-
e,
|
|
6446
|
+
e$1 as e,
|
|
4435
6447
|
h$1 as h,
|
|
4436
6448
|
index,
|
|
4437
6449
|
inputToRGB,
|